From f0bf90d8c23b7053911db79fd5af7da3ffff1475 Mon Sep 17 00:00:00 2001 From: Joseph Flinn Date: Tue, 11 May 2021 20:26:52 -0700 Subject: [PATCH] Updates --- 404.css | 35 - 404.html | 14 +- 404/bootstrap.min.css | 7 + 404/font-awesome.min.css | 4 + 404/styles.css | 119 + app/main.a34068436143996e1f65.css | 88 + app/main.a34068436143996e1f65.css.map | 1 + app/main.a34068436143996e1f65.js | 2 + app/main.a34068436143996e1f65.js.map | 1 + app/main.d8139e017ad9a069b29d.css | 11460 ---------------- app/main.d8139e017ad9a069b29d.css.map | 1 - app/main.d8139e017ad9a069b29d.js | 2 - app/main.d8139e017ad9a069b29d.js.map | 1 - app/polyfills.a34068436143996e1f65.js | 139 + app/polyfills.a34068436143996e1f65.js.map | 1 + app/polyfills.d8139e017ad9a069b29d.js | 152 - app/polyfills.d8139e017ad9a069b29d.js.map | 1 - app/vendor.a34068436143996e1f65.js | 2465 ++++ ...map => vendor.a34068436143996e1f65.js.map} | 2 +- app/vendor.d8139e017ad9a069b29d.js | 2695 ---- connectors/duo.a34068436143996e1f65.css | 4 + connectors/duo.a34068436143996e1f65.css.map | 1 + ...069b29d.js => duo.a34068436143996e1f65.js} | 4 +- connectors/duo.a34068436143996e1f65.js.map | 1 + connectors/duo.d8139e017ad9a069b29d.css | 17 - connectors/duo.d8139e017ad9a069b29d.css.map | 1 - connectors/duo.d8139e017ad9a069b29d.js.map | 1 - connectors/sso.a34068436143996e1f65.css | 88 + connectors/sso.a34068436143996e1f65.css.map | 1 + connectors/sso.a34068436143996e1f65.js | 2 + connectors/sso.a34068436143996e1f65.js.map | 1 + connectors/sso.d8139e017ad9a069b29d.css | 11460 ---------------- connectors/sso.d8139e017ad9a069b29d.css.map | 1 - connectors/sso.d8139e017ad9a069b29d.js | 2 - connectors/sso.d8139e017ad9a069b29d.js.map | 1 - connectors/u2f.a34068436143996e1f65.js | 2 + connectors/u2f.a34068436143996e1f65.js.map | 1 + connectors/u2f.d8139e017ad9a069b29d.js | 2 - connectors/u2f.d8139e017ad9a069b29d.js.map | 1 - ...webauthn-fallback.a34068436143996e1f65.css | 88 + ...uthn-fallback.a34068436143996e1f65.css.map | 1 + .../webauthn-fallback.a34068436143996e1f65.js | 2 + ...authn-fallback.a34068436143996e1f65.js.map | 1 + connectors/webauthn.a34068436143996e1f65.css | 88 + .../webauthn.a34068436143996e1f65.css.map | 1 + connectors/webauthn.a34068436143996e1f65.js | 2 + .../webauthn.a34068436143996e1f65.js.map | 1 + duo-connector.html | 4 +- images/4.png | Bin 4810 -> 0 bytes images/7.png | Bin 0 -> 1620 bytes images/two-factor/7.png | Bin 0 -> 1620 bytes index.html | 4 +- locales/af/messages.json | 128 + locales/be/messages.json | 128 + locales/bg/messages.json | 392 +- locales/bn/messages.json | 128 + locales/ca/messages.json | 200 +- locales/cs/messages.json | 202 +- locales/da/messages.json | 202 +- locales/de/messages.json | 188 +- locales/el/messages.json | 198 +- locales/en/messages.json | 121 +- locales/en_GB/messages.json | 134 +- locales/en_IN/messages.json | 128 + locales/eo/messages.json | 1858 +-- locales/es/messages.json | 244 +- locales/et/messages.json | 206 +- locales/fi/messages.json | 296 +- locales/fr/messages.json | 130 +- locales/he/messages.json | 128 + locales/hr/messages.json | 248 +- locales/hu/messages.json | 208 +- locales/id/messages.json | 200 +- locales/it/messages.json | 632 +- locales/ja/messages.json | 354 +- locales/ko/messages.json | 200 +- locales/lv/messages.json | 208 +- locales/ml/messages.json | 128 + locales/nb/messages.json | 216 +- locales/nl/messages.json | 204 +- locales/pl/messages.json | 226 +- locales/pt_BR/messages.json | 198 +- locales/pt_PT/messages.json | 128 + locales/ro/messages.json | 204 +- locales/ru/messages.json | 260 +- locales/si/messages.json | 130 +- locales/sk/messages.json | 128 + locales/sl/messages.json | 128 + locales/sr/messages.json | 136 +- locales/sv/messages.json | 210 +- locales/tr/messages.json | 384 +- locales/uk/messages.json | 204 +- locales/vi/messages.json | 310 +- locales/zh_CN/messages.json | 236 +- locales/zh_TW/messages.json | 270 +- sso-connector.html | 4 +- u2f-connector.html | 2 +- version.json | 2 +- webauthn-connector.html | 16 + webauthn-fallback-connector.html | 36 + 100 files changed, 11308 insertions(+), 28486 deletions(-) delete mode 100644 404.css create mode 100644 404/bootstrap.min.css create mode 100644 404/font-awesome.min.css create mode 100644 404/styles.css create mode 100644 app/main.a34068436143996e1f65.css create mode 100644 app/main.a34068436143996e1f65.css.map create mode 100644 app/main.a34068436143996e1f65.js create mode 100644 app/main.a34068436143996e1f65.js.map delete mode 100644 app/main.d8139e017ad9a069b29d.css delete mode 100644 app/main.d8139e017ad9a069b29d.css.map delete mode 100644 app/main.d8139e017ad9a069b29d.js delete mode 100644 app/main.d8139e017ad9a069b29d.js.map create mode 100644 app/polyfills.a34068436143996e1f65.js create mode 100644 app/polyfills.a34068436143996e1f65.js.map delete mode 100644 app/polyfills.d8139e017ad9a069b29d.js delete mode 100644 app/polyfills.d8139e017ad9a069b29d.js.map create mode 100644 app/vendor.a34068436143996e1f65.js rename app/{vendor.d8139e017ad9a069b29d.js.map => vendor.a34068436143996e1f65.js.map} (53%) delete mode 100644 app/vendor.d8139e017ad9a069b29d.js create mode 100644 connectors/duo.a34068436143996e1f65.css create mode 100644 connectors/duo.a34068436143996e1f65.css.map rename connectors/{duo.d8139e017ad9a069b29d.js => duo.a34068436143996e1f65.js} (78%) create mode 100644 connectors/duo.a34068436143996e1f65.js.map delete mode 100644 connectors/duo.d8139e017ad9a069b29d.css delete mode 100644 connectors/duo.d8139e017ad9a069b29d.css.map delete mode 100644 connectors/duo.d8139e017ad9a069b29d.js.map create mode 100644 connectors/sso.a34068436143996e1f65.css create mode 100644 connectors/sso.a34068436143996e1f65.css.map create mode 100644 connectors/sso.a34068436143996e1f65.js create mode 100644 connectors/sso.a34068436143996e1f65.js.map delete mode 100644 connectors/sso.d8139e017ad9a069b29d.css delete mode 100644 connectors/sso.d8139e017ad9a069b29d.css.map delete mode 100644 connectors/sso.d8139e017ad9a069b29d.js delete mode 100644 connectors/sso.d8139e017ad9a069b29d.js.map create mode 100644 connectors/u2f.a34068436143996e1f65.js create mode 100644 connectors/u2f.a34068436143996e1f65.js.map delete mode 100644 connectors/u2f.d8139e017ad9a069b29d.js delete mode 100644 connectors/u2f.d8139e017ad9a069b29d.js.map create mode 100644 connectors/webauthn-fallback.a34068436143996e1f65.css create mode 100644 connectors/webauthn-fallback.a34068436143996e1f65.css.map create mode 100644 connectors/webauthn-fallback.a34068436143996e1f65.js create mode 100644 connectors/webauthn-fallback.a34068436143996e1f65.js.map create mode 100644 connectors/webauthn.a34068436143996e1f65.css create mode 100644 connectors/webauthn.a34068436143996e1f65.css.map create mode 100644 connectors/webauthn.a34068436143996e1f65.js create mode 100644 connectors/webauthn.a34068436143996e1f65.js.map delete mode 100644 images/4.png create mode 100644 images/7.png create mode 100644 images/two-factor/7.png create mode 100644 webauthn-connector.html create mode 100644 webauthn-fallback-connector.html diff --git a/404.css b/404.css deleted file mode 100644 index e63f2889..00000000 --- a/404.css +++ /dev/null @@ -1,35 +0,0 @@ -html, body, .row { - height: 100%; - -webkit-font-smoothing: antialiased; -} - -h2 { - font-size: 25px; - margin-bottom: 12.5px; - font-weight: 500; - line-height: 1.1; -} - -.brand { - font-size: 23px; - line-height: 25px; - color: #fff; - font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; -} - -.banner { - background-color: #175DDC; - height: 56px; -} - -.content { - padding-top: 20px; - padding-bottom: 20px; - padding-left: 15px; - padding-right: 15px; -} - -.footer { - padding: 40px 0 40px 0; - border-top: 1px solid #dee2e6; -} diff --git a/404.html b/404.html index dae3951b..eba36375 100644 --- a/404.html +++ b/404.html @@ -5,15 +5,11 @@ - - - - - + + + diff --git a/404/bootstrap.min.css b/404/bootstrap.min.css new file mode 100644 index 00000000..ef399d21 --- /dev/null +++ b/404/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.6.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/404/font-awesome.min.css b/404/font-awesome.min.css new file mode 100644 index 00000000..540440ce --- /dev/null +++ b/404/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/404/styles.css b/404/styles.css new file mode 100644 index 00000000..530e3faf --- /dev/null +++ b/404/styles.css @@ -0,0 +1,119 @@ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + src: url(../fonts/Open_Sans-italic-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: url(../fonts/Open_Sans-italic-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: url(../fonts/Open_Sans-italic-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: url(../fonts/Open_Sans-italic-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + src: url(../fonts/Open_Sans-italic-800.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: url(../fonts/Open_Sans-normal-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url(../fonts/Open_Sans-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: url(../fonts/Open_Sans-normal-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url(../fonts/Open_Sans-normal-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + src: url(../fonts/Open_Sans-normal-800.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +body { + font-family: 'Open Sans'; +} + +html, body, .row { + height: 100%; + -webkit-font-smoothing: antialiased; +} + +h2 { + font-size: 25px; + margin-bottom: 12.5px; + font-weight: 500; + line-height: 1.1; +} + +.brand { + font-size: 23px; + line-height: 25px; + color: #fff; + font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; +} + +.banner { + background-color: #175DDC; + height: 56px; +} + +.content { + padding-top: 20px; + padding-bottom: 20px; + padding-left: 15px; + padding-right: 15px; +} + +.footer { + padding: 40px 0 40px 0; + border-top: 1px solid #dee2e6; +} diff --git a/app/main.a34068436143996e1f65.css b/app/main.a34068436143996e1f65.css new file mode 100644 index 00000000..08def54e --- /dev/null +++ b/app/main.a34068436143996e1f65.css @@ -0,0 +1,88 @@ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + src: url(../fonts/Open_Sans-italic-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: url(../fonts/Open_Sans-italic-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: url(../fonts/Open_Sans-italic-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: url(../fonts/Open_Sans-italic-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + src: url(../fonts/Open_Sans-italic-800.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: url(../fonts/Open_Sans-normal-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url(../fonts/Open_Sans-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: url(../fonts/Open_Sans-normal-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url(../fonts/Open_Sans-normal-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + src: url(../fonts/Open_Sans-normal-800.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + + +:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: #28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: #6c757d;--gray-dark: #343a40;--primary: #175DDC;--secondary: #ced4da;--success: #00a65a;--info: #555;--warning: #bf7e16;--danger: #dd4b39;--light: #f8f9fa;--dark: #343a40;--primary-accent: #1252A3;--secondary-alt: #1A3B66;--breakpoint-xs: 0;--breakpoint-sm: 1px;--breakpoint-md: 2px;--breakpoint-lg: 3px;--breakpoint-xl: 4px;--font-family-sans-serif: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#333;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#175DDC;text-decoration:none;background-color:transparent}a:hover{color:#104097;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:none}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:1.7rem}h2,.h2{font-size:1.3rem}h3,.h3{font-size:1rem}h4,.h4{font-size:1rem}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:normal}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:90%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:90%;color:#6c757d}.blockquote-footer::before{content:"\2014\A0"}.img-fluid,.table.table-list td.table-list-icon img{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:100%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:100%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:100%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}@media (min-width: 1px){.container{max-width:540px}}@media (min-width: 2px){.container{max-width:720px}}@media (min-width: 3px){.container{max-width:960px}}@media (min-width: 4px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-10px;margin-left:-10px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:10px;padding-left:10px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width: 1px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width: 2px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width: 3px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width: 4px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#333}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.02)}.table-hover tbody tr:hover{color:#333;background-color:rgba(0,0,0,0.03)}.table-primary,.table-primary>th,.table-primary>td{background-color:#bed2f5}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#86abed}.table-hover .table-primary:hover{background-color:#a8c3f2}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a8c3f2}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#f1f3f5}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#e6e9ec}.table-hover .table-secondary:hover{background-color:#e2e6ea}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e2e6ea}.table-success,.table-success>th,.table-success>td{background-color:#b8e6d1}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#7ad1a9}.table-hover .table-success:hover{background-color:#a5dfc5}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#a5dfc5}.table-info,.table-info>th,.table-info>td{background-color:#cfcfcf}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#a7a7a7}.table-hover .table-info:hover{background-color:#c2c2c2}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c2c2c2}.table-warning,.table-warning>th,.table-warning>td{background-color:#eddbbe}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#debc86}.table-hover .table-warning:hover{background-color:#e7d0aa}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#e7d0aa}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5cdc8}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#eda198}.table-hover .table-danger:hover{background-color:#f1b9b2}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b9b2}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-primary-accent,.table-primary-accent>th,.table-primary-accent>td{background-color:#bdcfe5}.table-primary-accent th,.table-primary-accent td,.table-primary-accent thead th,.table-primary-accent tbody+tbody{border-color:#84a5cf}.table-hover .table-primary-accent:hover{background-color:#abc2de}.table-hover .table-primary-accent:hover>td,.table-hover .table-primary-accent:hover>th{background-color:#abc2de}.table-secondary-alt,.table-secondary-alt>th,.table-secondary-alt>td{background-color:#bfc8d4}.table-secondary-alt th,.table-secondary-alt td,.table-secondary-alt thead th,.table-secondary-alt tbody+tbody{border-color:#8899af}.table-hover .table-secondary-alt:hover{background-color:#b0bbca}.table-hover .table-secondary-alt:hover>td,.table-hover .table-secondary-alt:hover>th{background-color:#b0bbca}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.03)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.03)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.03)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark th,.table-dark td,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 0.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width: 1.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width: 2.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width: 3.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fbfbfb;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.form-control::placeholder{color:#b4b4b4;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e0e0e0;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fbfbfb}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.15rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#333;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled ~ .form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:90%;color:#00a65a}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(0,166,90,0.9);border-radius:.25rem}.was-validated .form-control:valid,.form-control.is-valid{border-color:#00a65a;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .form-control:valid ~ .valid-feedback,.was-validated .form-control:valid ~ .valid-tooltip,.form-control.is-valid ~ .valid-feedback,.form-control.is-valid ~ .valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#00a65a;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fbfbfb no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .custom-select:valid ~ .valid-feedback,.was-validated .custom-select:valid ~ .valid-tooltip,.custom-select.is-valid ~ .valid-feedback,.custom-select.is-valid ~ .valid-tooltip{display:block}.was-validated .form-control-file:valid ~ .valid-feedback,.was-validated .form-control-file:valid ~ .valid-tooltip,.form-control-file.is-valid ~ .valid-feedback,.form-control-file.is-valid ~ .valid-tooltip{display:block}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#00a65a}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#00a65a}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{border-color:#00a65a}.was-validated .custom-control-input:valid ~ .valid-feedback,.was-validated .custom-control-input:valid ~ .valid-tooltip,.custom-control-input.is-valid ~ .valid-feedback,.custom-control-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{border-color:#00d976;background-color:#00d976}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{border-color:#00a65a}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#00a65a}.was-validated .custom-file-input:valid ~ .valid-feedback,.was-validated .custom-file-input:valid ~ .valid-tooltip,.custom-file-input.is-valid ~ .valid-feedback,.custom-file-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:90%;color:#dd4b39}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(221,75,57,0.9);border-radius:.25rem}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dd4b39;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .form-control:invalid ~ .invalid-feedback,.was-validated .form-control:invalid ~ .invalid-tooltip,.form-control.is-invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dd4b39;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fbfbfb no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .custom-select:invalid ~ .invalid-feedback,.was-validated .custom-select:invalid ~ .invalid-tooltip,.custom-select.is-invalid ~ .invalid-feedback,.custom-select.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-control-file:invalid ~ .invalid-feedback,.was-validated .form-control-file:invalid ~ .invalid-tooltip,.form-control-file.is-invalid ~ .invalid-feedback,.form-control-file.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#dd4b39}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#dd4b39}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{border-color:#dd4b39}.was-validated .custom-control-input:invalid ~ .invalid-feedback,.was-validated .custom-control-input:invalid ~ .invalid-tooltip,.custom-control-input.is-invalid ~ .invalid-feedback,.custom-control-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{border-color:#e47365;background-color:#e47365}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{border-color:#dd4b39}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#dd4b39}.was-validated .custom-file-input:invalid ~ .invalid-feedback,.was-validated .custom-file-input:invalid ~ .invalid-tooltip,.custom-file-input.is-invalid ~ .invalid-feedback,.custom-file-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 1px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn,.swal2-popup .swal2-actions button{display:inline-block;font-weight:600;color:#333;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn,.swal2-popup .swal2-actions button{transition:none}}.btn:hover,.swal2-popup .swal2-actions button:hover{color:#333;text-decoration:none}.btn:focus,.swal2-popup .swal2-actions button:focus,.btn.focus,.swal2-popup .swal2-actions button.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.btn.disabled,.swal2-popup .swal2-actions button.disabled,.btn:disabled,.swal2-popup .swal2-actions button:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary,.swal2-popup .swal2-actions button.swal2-confirm{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-primary:hover,.swal2-popup .swal2-actions button.swal2-confirm:hover{color:#fff;background-color:#134eb9;border-color:#1249ae}.btn-primary:focus,.swal2-popup .swal2-actions button.swal2-confirm:focus,.btn-primary.focus,.swal2-popup .swal2-actions button.focus.swal2-confirm{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-primary.disabled,.swal2-popup .swal2-actions button.disabled.swal2-confirm,.btn-primary:disabled,.swal2-popup .swal2-actions button.swal2-confirm:disabled{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-primary:not(:disabled):not(.disabled):active,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-confirm{color:#fff;background-color:#1249ae;border-color:#1145a2}.btn-primary:not(:disabled):not(.disabled):active:focus,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-confirm:focus{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-secondary{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-secondary:hover{color:#212529;background-color:#b8c1ca;border-color:#b1bbc4}.btn-secondary:focus,.btn-secondary.focus{box-shadow:0 0 0 .2rem rgba(180,186,191,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#b1bbc4;border-color:#aab4bf}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(180,186,191,0.5)}.btn-success{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-success:hover{color:#fff;background-color:#008045;border-color:#00733e}.btn-success:focus,.btn-success.focus{box-shadow:0 0 0 .2rem rgba(38,179,115,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#00733e;border-color:#006637}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,179,115,0.5)}.btn-info{color:#fff;background-color:#555;border-color:#555}.btn-info:hover{color:#fff;background-color:#424242;border-color:#3c3c3c}.btn-info:focus,.btn-info.focus{box-shadow:0 0 0 .2rem rgba(111,111,111,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#555;border-color:#555}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#3c3c3c;border-color:#353535}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(111,111,111,0.5)}.btn-warning{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-warning:hover{color:#fff;background-color:#9d6712;border-color:#916011}.btn-warning:focus,.btn-warning.focus{box-shadow:0 0 0 .2rem rgba(201,145,57,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#916011;border-color:#86580f}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(201,145,57,0.5)}.btn-danger{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-danger:hover{color:#fff;background-color:#cd3623;border-color:#c23321}.btn-danger:focus,.btn-danger.focus{box-shadow:0 0 0 .2rem rgba(226,102,87,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c23321;border-color:#b7301f}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(226,102,87,0.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light:focus,.btn-light.focus{box-shadow:0 0 0 .2rem rgba(216,217,219,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,0.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{box-shadow:0 0 0 .2rem rgba(82,88,93,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,0.5)}.btn-primary-accent{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-primary-accent:hover{color:#fff;background-color:#0e4181;border-color:#0d3b75}.btn-primary-accent:focus,.btn-primary-accent.focus{box-shadow:0 0 0 .2rem rgba(54,108,177,0.5)}.btn-primary-accent.disabled,.btn-primary-accent:disabled{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-primary-accent:not(:disabled):not(.disabled):active,.btn-primary-accent:not(:disabled):not(.disabled).active,.show>.btn-primary-accent.dropdown-toggle{color:#fff;background-color:#0d3b75;border-color:#0c356a}.btn-primary-accent:not(:disabled):not(.disabled):active:focus,.btn-primary-accent:not(:disabled):not(.disabled).active:focus,.show>.btn-primary-accent.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(54,108,177,0.5)}.btn-secondary-alt{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-secondary-alt:hover{color:#fff;background-color:#122948;border-color:#10233d}.btn-secondary-alt:focus,.btn-secondary-alt.focus{box-shadow:0 0 0 .2rem rgba(60,88,125,0.5)}.btn-secondary-alt.disabled,.btn-secondary-alt:disabled{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-secondary-alt:not(:disabled):not(.disabled):active,.btn-secondary-alt:not(:disabled):not(.disabled).active,.show>.btn-secondary-alt.dropdown-toggle{color:#fff;background-color:#10233d;border-color:#0d1e33}.btn-secondary-alt:not(:disabled):not(.disabled):active:focus,.btn-secondary-alt:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary-alt.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,88,125,0.5)}.btn-outline-primary{color:#175DDC;border-color:#175DDC}.btn-outline-primary:hover{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#175DDC;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.btn-outline-secondary,.swal2-popup .swal2-actions button.swal2-cancel{color:#ced4da;border-color:#ced4da}.btn-outline-secondary:hover,.swal2-popup .swal2-actions button.swal2-cancel:hover{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-outline-secondary:focus,.swal2-popup .swal2-actions button.swal2-cancel:focus,.btn-outline-secondary.focus,.swal2-popup .swal2-actions button.focus.swal2-cancel{box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.btn-outline-secondary.disabled,.swal2-popup .swal2-actions button.disabled.swal2-cancel,.btn-outline-secondary:disabled,.swal2-popup .swal2-actions button.swal2-cancel:disabled{color:#ced4da;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-cancel{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-cancel:focus{box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.btn-outline-success{color:#00a65a;border-color:#00a65a}.btn-outline-success:hover{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#00a65a;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.btn-outline-info{color:#555;border-color:#555}.btn-outline-info:hover{color:#fff;background-color:#555;border-color:#555}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#555;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#555;border-color:#555}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.btn-outline-warning{color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:hover{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#bf7e16;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.btn-outline-danger{color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:hover{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dd4b39;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-primary-accent{color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:hover{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:focus,.btn-outline-primary-accent.focus{box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.btn-outline-primary-accent.disabled,.btn-outline-primary-accent:disabled{color:#1252A3;background-color:transparent}.btn-outline-primary-accent:not(:disabled):not(.disabled):active,.btn-outline-primary-accent:not(:disabled):not(.disabled).active,.show>.btn-outline-primary-accent.dropdown-toggle{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:not(:disabled):not(.disabled):active:focus,.btn-outline-primary-accent:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary-accent.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.btn-outline-secondary-alt{color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:hover{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:focus,.btn-outline-secondary-alt.focus{box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.btn-outline-secondary-alt.disabled,.btn-outline-secondary-alt:disabled{color:#1A3B66;background-color:transparent}.btn-outline-secondary-alt:not(:disabled):not(.disabled):active,.btn-outline-secondary-alt:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary-alt.dropdown-toggle{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary-alt:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary-alt.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.btn-link{font-weight:400;color:#175DDC;text-decoration:none}.btn-link:hover{color:#104097;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline;box-shadow:none}.btn-link:disabled,.btn-link.disabled{color:#6c757d;pointer-events:none}.btn-lg,.btn-group-lg>.btn,.swal2-popup .swal2-actions .btn-group-lg>button{padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn,.swal2-popup .swal2-actions .btn-group-sm>button{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#333;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 1px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 2px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 3px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 4px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^="top"],.dropdown-menu[x-placement^="right"],.dropdown-menu[x-placement^="bottom"],.dropdown-menu[x-placement^="left"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#333;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:rgba(0,0,0,0.06)}.dropdown-item.active,.dropdown-item:active{color:#333;text-decoration:none;background-color:rgba(0,0,0,0.1)}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#333}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.swal2-popup .swal2-actions .btn-group>button,.btn-group-vertical>.btn,.swal2-popup .swal2-actions .btn-group-vertical>button{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.swal2-popup .swal2-actions .btn-group>button:hover,.btn-group-vertical>.btn:hover,.swal2-popup .swal2-actions .btn-group-vertical>button:hover{z-index:1}.btn-group>.btn:focus,.swal2-popup .swal2-actions .btn-group>button:focus,.btn-group>.btn:active,.swal2-popup .swal2-actions .btn-group>button:active,.btn-group>.btn.active,.swal2-popup .swal2-actions .btn-group>button.active,.btn-group-vertical>.btn:focus,.swal2-popup .swal2-actions .btn-group-vertical>button:focus,.btn-group-vertical>.btn:active,.swal2-popup .swal2-actions .btn-group-vertical>button:active,.btn-group-vertical>.btn.active,.swal2-popup .swal2-actions .btn-group-vertical>button.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group>button:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .btn-group>button:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn,.swal2-popup .swal2-actions .btn-group>.btn-group:not(:last-child)>button{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group>button:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn,.swal2-popup .swal2-actions .btn-group>.btn-group:not(:first-child)>button{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split,.swal2-popup .swal2-actions .btn-group-sm>button+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split,.swal2-popup .swal2-actions .btn-group-lg>button+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.swal2-popup .swal2-actions .btn-group-vertical>button,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn,.swal2-popup .swal2-actions .btn-group-vertical>.btn-group:not(:last-child)>button{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn,.swal2-popup .swal2-actions .btn-group-vertical>.btn-group:not(:first-child)>button{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.swal2-popup .swal2-actions .btn-group-toggle>button,.btn-group-toggle>.btn-group>.btn,.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button{margin-bottom:0}.btn-group-toggle>.btn input[type="radio"],.swal2-popup .swal2-actions .btn-group-toggle>button input[type="radio"],.btn-group-toggle>.btn input[type="checkbox"],.swal2-popup .swal2-actions .btn-group-toggle>button input[type="checkbox"],.btn-group-toggle>.btn-group>.btn input[type="radio"],.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button input[type="radio"],.btn-group-toggle>.btn-group>.btn input[type="checkbox"],.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-prepend .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .input-group-prepend button,.input-group-append .btn,.input-group-append .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .input-group-append button{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-prepend .swal2-popup .swal2-actions button:focus,.swal2-popup .swal2-actions .input-group-prepend button:focus,.input-group-append .btn:focus,.input-group-append .swal2-popup .swal2-actions button:focus,.swal2-popup .swal2-actions .input-group-append button:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .swal2-popup .swal2-actions button+.btn,.swal2-popup .swal2-actions .input-group-prepend button+.btn,.input-group-prepend .swal2-popup .swal2-actions .btn+button,.swal2-popup .swal2-actions .input-group-prepend .btn+button,.input-group-prepend .swal2-popup .swal2-actions button+button,.swal2-popup .swal2-actions .input-group-prepend button+button,.input-group-prepend .btn+.input-group-text,.input-group-prepend .swal2-popup .swal2-actions button+.input-group-text,.swal2-popup .swal2-actions .input-group-prepend button+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .swal2-popup .swal2-actions .input-group-text+button,.swal2-popup .swal2-actions .input-group-prepend .input-group-text+button,.input-group-append .btn+.btn,.input-group-append .swal2-popup .swal2-actions button+.btn,.swal2-popup .swal2-actions .input-group-append button+.btn,.input-group-append .swal2-popup .swal2-actions .btn+button,.swal2-popup .swal2-actions .input-group-append .btn+button,.input-group-append .swal2-popup .swal2-actions button+button,.swal2-popup .swal2-actions .input-group-append button+button,.input-group-append .btn+.input-group-text,.input-group-append .swal2-popup .swal2-actions button+.input-group-text,.swal2-popup .swal2-actions .input-group-append button+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .swal2-popup .swal2-actions .input-group-text+button,.swal2-popup .swal2-actions .input-group-append .input-group-text+button{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type="radio"],.input-group-text input[type="checkbox"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group-lg>.input-group-prepend>button,.input-group-lg>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group-lg>.input-group-append>button{padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group-sm>.input-group-prepend>button,.input-group-sm>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group-sm>.input-group-append>button{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group>.input-group-prepend>button,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.swal2-popup .swal2-actions .input-group>.input-group-append:not(:last-child)>button,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .input-group>.input-group-append:last-child>button:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group>.input-group-append>button,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.swal2-popup .swal2-actions .input-group>.input-group-prepend:not(:first-child)>button,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.swal2-popup .swal2-actions .input-group>.input-group-prepend:first-child>button:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;border-color:#175DDC;background-color:#175DDC}.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-control-input:focus:not(:checked) ~ .custom-control-label::before{border-color:#81a9f2}.custom-control-input:not(:disabled):active ~ .custom-control-label::before{color:#fff;background-color:#afc8f7;border-color:#afc8f7}.custom-control-input:disabled ~ .custom-control-label{color:#6c757d}.custom-control-input:disabled ~ .custom-control-label::before{background-color:#e0e0e0}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fbfbfb;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50% / 50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{border-color:#175DDC;background-color:#175DDC}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(23,93,220,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(23,93,220,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(23,93,220,0.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked ~ .custom-control-label::after{background-color:#fbfbfb;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(23,93,220,0.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fbfbfb;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fbfbfb}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.15rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus ~ .custom-file-label{border-color:#81a9f2;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-file-input:disabled ~ .custom-file-label{background-color:#e0e0e0}.custom-file-input:lang(en) ~ .custom-file-label::after{content:"Browse"}.custom-file-input ~ .custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fbfbfb;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#afc8f7}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#afc8f7}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#afc8f7}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#175DDC}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.75rem 1rem}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:0;padding-bottom:0;margin-right:1rem;font-size:2.1875rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.15rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width: 0.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 1px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 1.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 2px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 2.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 3px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 3.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 4px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0,0,0,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.7)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.9)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255,255,255,0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.7)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.6rem}.card-subtitle{margin-top:-.3rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.6rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.6rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.6rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:10px}@media (min-width: 1px){.card-deck{flex-flow:row wrap;margin-right:-10px;margin-left:-10px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:10px;margin-bottom:0;margin-left:10px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:10px}@media (min-width: 1px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.6rem}@media (min-width: 1px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#175DDC;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#104097;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#175DDC;border-color:#175DDC}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.15rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge,.swal2-popup .swal2-actions button .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#175DDC}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#1249ae}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.badge-secondary{color:#212529;background-color:#ced4da}a.badge-secondary:hover,a.badge-secondary:focus{color:#212529;background-color:#b1bbc4}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.badge-success{color:#fff;background-color:#00a65a}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#00733e}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.badge-info{color:#fff;background-color:#555}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#3c3c3c}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.badge-warning{color:#fff;background-color:#bf7e16}a.badge-warning:hover,a.badge-warning:focus{color:#fff;background-color:#916011}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.badge-danger{color:#fff;background-color:#dd4b39}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#c23321}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:hover,a.badge-light:focus{color:#212529;background-color:#dae0e5}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#1d2124}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.badge-primary-accent{color:#fff;background-color:#1252A3}a.badge-primary-accent:hover,a.badge-primary-accent:focus{color:#fff;background-color:#0d3b75}a.badge-primary-accent:focus,a.badge-primary-accent.focus{outline:0;box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.badge-secondary-alt{color:#fff;background-color:#1A3B66}a.badge-secondary-alt:hover,a.badge-secondary-alt:focus{color:#fff;background-color:#10233d}a.badge-secondary-alt:focus,a.badge-secondary-alt.focus{outline:0;box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width: 1px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#0c3072;background-color:#d1dff8;border-color:#bed2f5}.alert-primary hr{border-top-color:#a8c3f2}.alert-primary .alert-link{color:#071d44}.alert-secondary{color:#6b6e71;background-color:#f5f6f8;border-color:#f1f3f5}.alert-secondary hr{border-top-color:#e2e6ea}.alert-secondary .alert-link{color:#525557}.alert-success{color:#00562f;background-color:#ccedde;border-color:#b8e6d1}.alert-success hr{border-top-color:#a5dfc5}.alert-success .alert-link{color:#002313}.alert-info{color:#2c2c2c;background-color:#ddd;border-color:#cfcfcf}.alert-info hr{border-top-color:#c2c2c2}.alert-info .alert-link{color:#131313}.alert-warning{color:#63420b;background-color:#f2e5d0;border-color:#eddbbe}.alert-warning hr{border-top-color:#e7d0aa}.alert-warning .alert-link{color:#352306}.alert-danger{color:#73271e;background-color:#f8dbd7;border-color:#f5cdc8}.alert-danger hr{border-top-color:#f1b9b2}.alert-danger .alert-link{color:#4b1913}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}.alert-primary-accent{color:#092b55;background-color:#d0dced;border-color:#bdcfe5}.alert-primary-accent hr{border-top-color:#abc2de}.alert-primary-accent .alert-link{color:#041427}.alert-secondary-alt{color:#0e1f35;background-color:#d1d8e0;border-color:#bfc8d4}.alert-secondary-alt hr{border-top-color:#b0bbca}.alert-secondary-alt .alert-link{color:#03070d}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#175DDC;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#333;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.6rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#333;background-color:#fff;border-color:rgba(0,0,0,0.125)}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width: 1px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 2px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 3px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 4px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#0c3072;background-color:#bed2f5}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#0c3072;background-color:#a8c3f2}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#0c3072;border-color:#0c3072}.list-group-item-secondary{color:#6b6e71;background-color:#f1f3f5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#6b6e71;background-color:#e2e6ea}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#6b6e71;border-color:#6b6e71}.list-group-item-success{color:#00562f;background-color:#b8e6d1}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#00562f;background-color:#a5dfc5}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#00562f;border-color:#00562f}.list-group-item-info{color:#2c2c2c;background-color:#cfcfcf}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#2c2c2c;background-color:#c2c2c2}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#2c2c2c;border-color:#2c2c2c}.list-group-item-warning{color:#63420b;background-color:#eddbbe}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#63420b;background-color:#e7d0aa}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#63420b;border-color:#63420b}.list-group-item-danger{color:#73271e;background-color:#f5cdc8}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#73271e;background-color:#f1b9b2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#73271e;border-color:#73271e}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.list-group-item-primary-accent{color:#092b55;background-color:#bdcfe5}.list-group-item-primary-accent.list-group-item-action:hover,.list-group-item-primary-accent.list-group-item-action:focus{color:#092b55;background-color:#abc2de}.list-group-item-primary-accent.list-group-item-action.active{color:#fff;background-color:#092b55;border-color:#092b55}.list-group-item-secondary-alt{color:#0e1f35;background-color:#bfc8d4}.list-group-item-secondary-alt.list-group-item-action:hover,.list-group-item-secondary-alt.list-group-item-action:focus{color:#0e1f35;background-color:#b0bbca}.list-group-item-secondary-alt.list-group-item-action.active{color:#fff;background-color:#0e1f35;border-color:#0e1f35}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0;appearance:none}a.close.disabled{pointer-events:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.3}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 1px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width: 3px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 4px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^="top"]>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^="top"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^="top"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^="right"]>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^="right"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^="right"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^="bottom"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^="bottom"]>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^="bottom"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^="bottom"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^="left"]>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^="left"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^="left"]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#333}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50% / 100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#175DDC !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#1249ae !important}.bg-secondary{background-color:#ced4da !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#b1bbc4 !important}.bg-success{background-color:#00a65a !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#00733e !important}.bg-info{background-color:#555 !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#3c3c3c !important}.bg-warning{background-color:#bf7e16 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#916011 !important}.bg-danger{background-color:#dd4b39 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#c23321 !important}.bg-light{background-color:#f8f9fa !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5 !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-primary-accent{background-color:#1252A3 !important}a.bg-primary-accent:hover,a.bg-primary-accent:focus,button.bg-primary-accent:hover,button.bg-primary-accent:focus{background-color:#0d3b75 !important}.bg-secondary-alt{background-color:#1A3B66 !important}a.bg-secondary-alt:hover,a.bg-secondary-alt:focus,button.bg-secondary-alt:hover,button.bg-secondary-alt:focus{background-color:#10233d !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #dee2e6 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-right{border-right:1px solid #dee2e6 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-left{border-left:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#175DDC !important}.border-secondary{border-color:#ced4da !important}.border-success{border-color:#00a65a !important}.border-info{border-color:#555 !important}.border-warning{border-color:#bf7e16 !important}.border-danger{border-color:#dd4b39 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#343a40 !important}.border-primary-accent{border-color:#1252A3 !important}.border-secondary-alt{border-color:#1A3B66 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded,.table.table-list td.table-list-icon img,app-avatar img{border-radius:.25rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-right{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-left{border-top-left-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-lg{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 1px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 2px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 3px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 4px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 1px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 2px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 3px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 4px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 1px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 2px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 3px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 4px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only,.table.table-list tr:not(:hover) td.table-list-options>.dropdown:not(.show) button:not(:focus):not(:active),.table.table-list tr:not(:hover) td.table-list-options>button:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.form-check-block .form-check-label>span,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.form-check-block+.form-check-block:not(.mt-2),.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.card-body-header,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-.25rem !important}.mt-n1,.my-n1{margin-top:-.25rem !important}.mr-n1,.mx-n1{margin-right:-.25rem !important}.mb-n1,.my-n1{margin-bottom:-.25rem !important}.ml-n1,.mx-n1{margin-left:-.25rem !important}.m-n2{margin:-.5rem !important}.mt-n2,.my-n2{margin-top:-.5rem !important}.mr-n2,.mx-n2{margin-right:-.5rem !important}.mb-n2,.my-n2{margin-bottom:-.5rem !important}.ml-n2,.mx-n2{margin-left:-.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 1px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem !important}.m-sm-n2{margin:-.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 2px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem !important}.m-md-n2{margin:-.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 3px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem !important}.m-lg-n2{margin:-.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 4px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem !important}.m-xl-n2{margin:-.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.text-monospace,.totp .totp-code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 1px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 2px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 3px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 4px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#175DDC !important}a.text-primary:hover,a.text-primary:focus{color:#104097 !important}.text-secondary{color:#ced4da !important}a.text-secondary:hover,a.text-secondary:focus{color:#a2aeb9 !important}.text-success{color:#00a65a !important}a.text-success:hover,a.text-success:focus{color:#005a31 !important}.text-info{color:#555 !important}a.text-info:hover,a.text-info:focus{color:#2f2f2f !important}.text-warning{color:#bf7e16 !important}a.text-warning:hover,a.text-warning:focus{color:#7a510e !important}.text-danger{color:#dd4b39 !important}a.text-danger:hover,a.text-danger:focus{color:#ac2d1e !important}.text-light{color:#f8f9fa !important}a.text-light:hover,a.text-light:focus{color:#cbd3da !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#121416 !important}.text-primary-accent{color:#1252A3 !important}a.text-primary-accent:hover,a.text-primary-accent:focus{color:#0a2f5e !important}.text-secondary-alt{color:#1A3B66 !important}a.text-secondary-alt:hover,a.text-secondary-alt:focus{color:#0a1829 !important}.text-body{color:#333 !important}.text-muted,.card-header small,.modal-header small{color:#6c757d !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;overflow-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:3px !important}.container{min-width:3px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #dee2e6 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url(../fonts/fontawesome-webfont.eot);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff2) format("woff2"),url(../fonts/fontawesome-webfont.woff) format("woff"),url(../fonts/fontawesome-webfont.ttf) format("truetype"),url(../fonts/fontawesome-webfont.svg#fontawesomeregular) format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\F000"}.fa-music:before{content:"\F001"}.fa-search:before{content:"\F002"}.fa-envelope-o:before{content:"\F003"}.fa-heart:before{content:"\F004"}.fa-star:before{content:"\F005"}.fa-star-o:before{content:"\F006"}.fa-user:before{content:"\F007"}.fa-film:before{content:"\F008"}.fa-th-large:before{content:"\F009"}.fa-th:before{content:"\F00A"}.fa-th-list:before{content:"\F00B"}.fa-check:before{content:"\F00C"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\F00D"}.fa-search-plus:before{content:"\F00E"}.fa-search-minus:before{content:"\F010"}.fa-power-off:before{content:"\F011"}.fa-signal:before{content:"\F012"}.fa-gear:before,.fa-cog:before{content:"\F013"}.fa-trash-o:before{content:"\F014"}.fa-home:before{content:"\F015"}.fa-file-o:before{content:"\F016"}.fa-clock-o:before{content:"\F017"}.fa-road:before{content:"\F018"}.fa-download:before{content:"\F019"}.fa-arrow-circle-o-down:before{content:"\F01A"}.fa-arrow-circle-o-up:before{content:"\F01B"}.fa-inbox:before{content:"\F01C"}.fa-play-circle-o:before{content:"\F01D"}.fa-rotate-right:before,.fa-repeat:before{content:"\F01E"}.fa-refresh:before{content:"\F021"}.fa-list-alt:before{content:"\F022"}.fa-lock:before{content:"\F023"}.fa-flag:before{content:"\F024"}.fa-headphones:before{content:"\F025"}.fa-volume-off:before{content:"\F026"}.fa-volume-down:before{content:"\F027"}.fa-volume-up:before{content:"\F028"}.fa-qrcode:before{content:"\F029"}.fa-barcode:before{content:"\F02A"}.fa-tag:before{content:"\F02B"}.fa-tags:before{content:"\F02C"}.fa-book:before{content:"\F02D"}.fa-bookmark:before{content:"\F02E"}.fa-print:before{content:"\F02F"}.fa-camera:before{content:"\F030"}.fa-font:before{content:"\F031"}.fa-bold:before{content:"\F032"}.fa-italic:before{content:"\F033"}.fa-text-height:before{content:"\F034"}.fa-text-width:before{content:"\F035"}.fa-align-left:before{content:"\F036"}.fa-align-center:before{content:"\F037"}.fa-align-right:before{content:"\F038"}.fa-align-justify:before{content:"\F039"}.fa-list:before{content:"\F03A"}.fa-dedent:before,.fa-outdent:before{content:"\F03B"}.fa-indent:before{content:"\F03C"}.fa-video-camera:before{content:"\F03D"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\F03E"}.fa-pencil:before{content:"\F040"}.fa-map-marker:before{content:"\F041"}.fa-adjust:before{content:"\F042"}.fa-tint:before{content:"\F043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\F044"}.fa-share-square-o:before{content:"\F045"}.fa-check-square-o:before{content:"\F046"}.fa-arrows:before{content:"\F047"}.fa-step-backward:before{content:"\F048"}.fa-fast-backward:before{content:"\F049"}.fa-backward:before{content:"\F04A"}.fa-play:before{content:"\F04B"}.fa-pause:before{content:"\F04C"}.fa-stop:before{content:"\F04D"}.fa-forward:before{content:"\F04E"}.fa-fast-forward:before{content:"\F050"}.fa-step-forward:before{content:"\F051"}.fa-eject:before{content:"\F052"}.fa-chevron-left:before{content:"\F053"}.fa-chevron-right:before{content:"\F054"}.fa-plus-circle:before{content:"\F055"}.fa-minus-circle:before{content:"\F056"}.fa-times-circle:before{content:"\F057"}.fa-check-circle:before{content:"\F058"}.fa-question-circle:before{content:"\F059"}.fa-info-circle:before{content:"\F05A"}.fa-crosshairs:before{content:"\F05B"}.fa-times-circle-o:before{content:"\F05C"}.fa-check-circle-o:before{content:"\F05D"}.fa-ban:before{content:"\F05E"}.fa-arrow-left:before{content:"\F060"}.fa-arrow-right:before{content:"\F061"}.fa-arrow-up:before{content:"\F062"}.fa-arrow-down:before{content:"\F063"}.fa-mail-forward:before,.fa-share:before{content:"\F064"}.fa-expand:before{content:"\F065"}.fa-compress:before{content:"\F066"}.fa-plus:before{content:"\F067"}.fa-minus:before{content:"\F068"}.fa-asterisk:before{content:"\F069"}.fa-exclamation-circle:before{content:"\F06A"}.fa-gift:before{content:"\F06B"}.fa-leaf:before{content:"\F06C"}.fa-fire:before{content:"\F06D"}.fa-eye:before{content:"\F06E"}.fa-eye-slash:before{content:"\F070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\F071"}.fa-plane:before{content:"\F072"}.fa-calendar:before{content:"\F073"}.fa-random:before{content:"\F074"}.fa-comment:before{content:"\F075"}.fa-magnet:before{content:"\F076"}.fa-chevron-up:before{content:"\F077"}.fa-chevron-down:before{content:"\F078"}.fa-retweet:before{content:"\F079"}.fa-shopping-cart:before{content:"\F07A"}.fa-folder:before{content:"\F07B"}.fa-folder-open:before{content:"\F07C"}.fa-arrows-v:before{content:"\F07D"}.fa-arrows-h:before{content:"\F07E"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\F080"}.fa-twitter-square:before{content:"\F081"}.fa-facebook-square:before{content:"\F082"}.fa-camera-retro:before{content:"\F083"}.fa-key:before{content:"\F084"}.fa-gears:before,.fa-cogs:before{content:"\F085"}.fa-comments:before{content:"\F086"}.fa-thumbs-o-up:before{content:"\F087"}.fa-thumbs-o-down:before{content:"\F088"}.fa-star-half:before{content:"\F089"}.fa-heart-o:before{content:"\F08A"}.fa-sign-out:before{content:"\F08B"}.fa-linkedin-square:before{content:"\F08C"}.fa-thumb-tack:before{content:"\F08D"}.fa-external-link:before{content:"\F08E"}.fa-sign-in:before{content:"\F090"}.fa-trophy:before{content:"\F091"}.fa-github-square:before{content:"\F092"}.fa-upload:before{content:"\F093"}.fa-lemon-o:before{content:"\F094"}.fa-phone:before{content:"\F095"}.fa-square-o:before{content:"\F096"}.fa-bookmark-o:before{content:"\F097"}.fa-phone-square:before{content:"\F098"}.fa-twitter:before{content:"\F099"}.fa-facebook-f:before,.fa-facebook:before{content:"\F09A"}.fa-github:before{content:"\F09B"}.fa-unlock:before{content:"\F09C"}.fa-credit-card:before{content:"\F09D"}.fa-feed:before,.fa-rss:before{content:"\F09E"}.fa-hdd-o:before{content:"\F0A0"}.fa-bullhorn:before{content:"\F0A1"}.fa-bell:before{content:"\F0F3"}.fa-certificate:before{content:"\F0A3"}.fa-hand-o-right:before{content:"\F0A4"}.fa-hand-o-left:before{content:"\F0A5"}.fa-hand-o-up:before{content:"\F0A6"}.fa-hand-o-down:before{content:"\F0A7"}.fa-arrow-circle-left:before{content:"\F0A8"}.fa-arrow-circle-right:before{content:"\F0A9"}.fa-arrow-circle-up:before{content:"\F0AA"}.fa-arrow-circle-down:before{content:"\F0AB"}.fa-globe:before{content:"\F0AC"}.fa-wrench:before{content:"\F0AD"}.fa-tasks:before{content:"\F0AE"}.fa-filter:before{content:"\F0B0"}.fa-briefcase:before{content:"\F0B1"}.fa-arrows-alt:before{content:"\F0B2"}.fa-group:before,.fa-users:before{content:"\F0C0"}.fa-chain:before,.fa-link:before{content:"\F0C1"}.fa-cloud:before{content:"\F0C2"}.fa-flask:before{content:"\F0C3"}.fa-cut:before,.fa-scissors:before{content:"\F0C4"}.fa-copy:before,.fa-files-o:before{content:"\F0C5"}.fa-paperclip:before{content:"\F0C6"}.fa-save:before,.fa-floppy-o:before{content:"\F0C7"}.fa-square:before{content:"\F0C8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\F0C9"}.fa-list-ul:before{content:"\F0CA"}.fa-list-ol:before{content:"\F0CB"}.fa-strikethrough:before{content:"\F0CC"}.fa-underline:before{content:"\F0CD"}.fa-table:before{content:"\F0CE"}.fa-magic:before{content:"\F0D0"}.fa-truck:before{content:"\F0D1"}.fa-pinterest:before{content:"\F0D2"}.fa-pinterest-square:before{content:"\F0D3"}.fa-google-plus-square:before{content:"\F0D4"}.fa-google-plus:before{content:"\F0D5"}.fa-money:before{content:"\F0D6"}.fa-caret-down:before{content:"\F0D7"}.fa-caret-up:before{content:"\F0D8"}.fa-caret-left:before{content:"\F0D9"}.fa-caret-right:before{content:"\F0DA"}.fa-columns:before{content:"\F0DB"}.fa-unsorted:before,.fa-sort:before{content:"\F0DC"}.fa-sort-down:before,.fa-sort-desc:before{content:"\F0DD"}.fa-sort-up:before,.fa-sort-asc:before{content:"\F0DE"}.fa-envelope:before{content:"\F0E0"}.fa-linkedin:before{content:"\F0E1"}.fa-rotate-left:before,.fa-undo:before{content:"\F0E2"}.fa-legal:before,.fa-gavel:before{content:"\F0E3"}.fa-dashboard:before,.fa-tachometer:before{content:"\F0E4"}.fa-comment-o:before{content:"\F0E5"}.fa-comments-o:before{content:"\F0E6"}.fa-flash:before,.fa-bolt:before{content:"\F0E7"}.fa-sitemap:before{content:"\F0E8"}.fa-umbrella:before{content:"\F0E9"}.fa-paste:before,.fa-clipboard:before{content:"\F0EA"}.fa-lightbulb-o:before{content:"\F0EB"}.fa-exchange:before{content:"\F0EC"}.fa-cloud-download:before{content:"\F0ED"}.fa-cloud-upload:before{content:"\F0EE"}.fa-user-md:before{content:"\F0F0"}.fa-stethoscope:before{content:"\F0F1"}.fa-suitcase:before{content:"\F0F2"}.fa-bell-o:before{content:"\F0A2"}.fa-coffee:before{content:"\F0F4"}.fa-cutlery:before{content:"\F0F5"}.fa-file-text-o:before{content:"\F0F6"}.fa-building-o:before{content:"\F0F7"}.fa-hospital-o:before{content:"\F0F8"}.fa-ambulance:before{content:"\F0F9"}.fa-medkit:before{content:"\F0FA"}.fa-fighter-jet:before{content:"\F0FB"}.fa-beer:before{content:"\F0FC"}.fa-h-square:before{content:"\F0FD"}.fa-plus-square:before{content:"\F0FE"}.fa-angle-double-left:before{content:"\F100"}.fa-angle-double-right:before{content:"\F101"}.fa-angle-double-up:before{content:"\F102"}.fa-angle-double-down:before{content:"\F103"}.fa-angle-left:before{content:"\F104"}.fa-angle-right:before{content:"\F105"}.fa-angle-up:before{content:"\F106"}.fa-angle-down:before{content:"\F107"}.fa-desktop:before{content:"\F108"}.fa-laptop:before{content:"\F109"}.fa-tablet:before{content:"\F10A"}.fa-mobile-phone:before,.fa-mobile:before{content:"\F10B"}.fa-circle-o:before{content:"\F10C"}.fa-quote-left:before{content:"\F10D"}.fa-quote-right:before{content:"\F10E"}.fa-spinner:before{content:"\F110"}.fa-circle:before{content:"\F111"}.fa-mail-reply:before,.fa-reply:before{content:"\F112"}.fa-github-alt:before{content:"\F113"}.fa-folder-o:before{content:"\F114"}.fa-folder-open-o:before{content:"\F115"}.fa-smile-o:before{content:"\F118"}.fa-frown-o:before{content:"\F119"}.fa-meh-o:before{content:"\F11A"}.fa-gamepad:before{content:"\F11B"}.fa-keyboard-o:before{content:"\F11C"}.fa-flag-o:before{content:"\F11D"}.fa-flag-checkered:before{content:"\F11E"}.fa-terminal:before{content:"\F120"}.fa-code:before{content:"\F121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\F122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\F123"}.fa-location-arrow:before{content:"\F124"}.fa-crop:before{content:"\F125"}.fa-code-fork:before{content:"\F126"}.fa-unlink:before,.fa-chain-broken:before{content:"\F127"}.fa-question:before{content:"\F128"}.fa-info:before{content:"\F129"}.fa-exclamation:before{content:"\F12A"}.fa-superscript:before{content:"\F12B"}.fa-subscript:before{content:"\F12C"}.fa-eraser:before{content:"\F12D"}.fa-puzzle-piece:before{content:"\F12E"}.fa-microphone:before{content:"\F130"}.fa-microphone-slash:before{content:"\F131"}.fa-shield:before{content:"\F132"}.fa-calendar-o:before{content:"\F133"}.fa-fire-extinguisher:before{content:"\F134"}.fa-rocket:before{content:"\F135"}.fa-maxcdn:before{content:"\F136"}.fa-chevron-circle-left:before{content:"\F137"}.fa-chevron-circle-right:before{content:"\F138"}.fa-chevron-circle-up:before{content:"\F139"}.fa-chevron-circle-down:before{content:"\F13A"}.fa-html5:before{content:"\F13B"}.fa-css3:before{content:"\F13C"}.fa-anchor:before{content:"\F13D"}.fa-unlock-alt:before{content:"\F13E"}.fa-bullseye:before{content:"\F140"}.fa-ellipsis-h:before{content:"\F141"}.fa-ellipsis-v:before{content:"\F142"}.fa-rss-square:before{content:"\F143"}.fa-play-circle:before{content:"\F144"}.fa-ticket:before{content:"\F145"}.fa-minus-square:before{content:"\F146"}.fa-minus-square-o:before{content:"\F147"}.fa-level-up:before{content:"\F148"}.fa-level-down:before{content:"\F149"}.fa-check-square:before{content:"\F14A"}.fa-pencil-square:before{content:"\F14B"}.fa-external-link-square:before{content:"\F14C"}.fa-share-square:before{content:"\F14D"}.fa-compass:before{content:"\F14E"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\F150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\F151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\F152"}.fa-euro:before,.fa-eur:before{content:"\F153"}.fa-gbp:before{content:"\F154"}.fa-dollar:before,.fa-usd:before{content:"\F155"}.fa-rupee:before,.fa-inr:before{content:"\F156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\F157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\F158"}.fa-won:before,.fa-krw:before{content:"\F159"}.fa-bitcoin:before,.fa-btc:before{content:"\F15A"}.fa-file:before{content:"\F15B"}.fa-file-text:before{content:"\F15C"}.fa-sort-alpha-asc:before{content:"\F15D"}.fa-sort-alpha-desc:before{content:"\F15E"}.fa-sort-amount-asc:before{content:"\F160"}.fa-sort-amount-desc:before{content:"\F161"}.fa-sort-numeric-asc:before{content:"\F162"}.fa-sort-numeric-desc:before{content:"\F163"}.fa-thumbs-up:before{content:"\F164"}.fa-thumbs-down:before{content:"\F165"}.fa-youtube-square:before{content:"\F166"}.fa-youtube:before{content:"\F167"}.fa-xing:before{content:"\F168"}.fa-xing-square:before{content:"\F169"}.fa-youtube-play:before{content:"\F16A"}.fa-dropbox:before{content:"\F16B"}.fa-stack-overflow:before{content:"\F16C"}.fa-instagram:before{content:"\F16D"}.fa-flickr:before{content:"\F16E"}.fa-adn:before{content:"\F170"}.fa-bitbucket:before{content:"\F171"}.fa-bitbucket-square:before{content:"\F172"}.fa-tumblr:before{content:"\F173"}.fa-tumblr-square:before{content:"\F174"}.fa-long-arrow-down:before{content:"\F175"}.fa-long-arrow-up:before{content:"\F176"}.fa-long-arrow-left:before{content:"\F177"}.fa-long-arrow-right:before{content:"\F178"}.fa-apple:before{content:"\F179"}.fa-windows:before{content:"\F17A"}.fa-android:before{content:"\F17B"}.fa-linux:before{content:"\F17C"}.fa-dribbble:before{content:"\F17D"}.fa-skype:before{content:"\F17E"}.fa-foursquare:before{content:"\F180"}.fa-trello:before{content:"\F181"}.fa-female:before{content:"\F182"}.fa-male:before{content:"\F183"}.fa-gittip:before,.fa-gratipay:before{content:"\F184"}.fa-sun-o:before{content:"\F185"}.fa-moon-o:before{content:"\F186"}.fa-archive:before{content:"\F187"}.fa-bug:before{content:"\F188"}.fa-vk:before{content:"\F189"}.fa-weibo:before{content:"\F18A"}.fa-renren:before{content:"\F18B"}.fa-pagelines:before{content:"\F18C"}.fa-stack-exchange:before{content:"\F18D"}.fa-arrow-circle-o-right:before{content:"\F18E"}.fa-arrow-circle-o-left:before{content:"\F190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\F191"}.fa-dot-circle-o:before{content:"\F192"}.fa-wheelchair:before{content:"\F193"}.fa-vimeo-square:before{content:"\F194"}.fa-turkish-lira:before,.fa-try:before{content:"\F195"}.fa-plus-square-o:before{content:"\F196"}.fa-space-shuttle:before{content:"\F197"}.fa-slack:before{content:"\F198"}.fa-envelope-square:before{content:"\F199"}.fa-wordpress:before{content:"\F19A"}.fa-openid:before{content:"\F19B"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\F19C"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\F19D"}.fa-yahoo:before{content:"\F19E"}.fa-google:before{content:"\F1A0"}.fa-reddit:before{content:"\F1A1"}.fa-reddit-square:before{content:"\F1A2"}.fa-stumbleupon-circle:before{content:"\F1A3"}.fa-stumbleupon:before{content:"\F1A4"}.fa-delicious:before{content:"\F1A5"}.fa-digg:before{content:"\F1A6"}.fa-pied-piper-pp:before{content:"\F1A7"}.fa-pied-piper-alt:before{content:"\F1A8"}.fa-drupal:before{content:"\F1A9"}.fa-joomla:before{content:"\F1AA"}.fa-language:before{content:"\F1AB"}.fa-fax:before{content:"\F1AC"}.fa-building:before{content:"\F1AD"}.fa-child:before{content:"\F1AE"}.fa-paw:before{content:"\F1B0"}.fa-spoon:before{content:"\F1B1"}.fa-cube:before{content:"\F1B2"}.fa-cubes:before{content:"\F1B3"}.fa-behance:before{content:"\F1B4"}.fa-behance-square:before{content:"\F1B5"}.fa-steam:before{content:"\F1B6"}.fa-steam-square:before{content:"\F1B7"}.fa-recycle:before{content:"\F1B8"}.fa-automobile:before,.fa-car:before{content:"\F1B9"}.fa-cab:before,.fa-taxi:before{content:"\F1BA"}.fa-tree:before{content:"\F1BB"}.fa-spotify:before{content:"\F1BC"}.fa-deviantart:before{content:"\F1BD"}.fa-soundcloud:before{content:"\F1BE"}.fa-database:before{content:"\F1C0"}.fa-file-pdf-o:before{content:"\F1C1"}.fa-file-word-o:before{content:"\F1C2"}.fa-file-excel-o:before{content:"\F1C3"}.fa-file-powerpoint-o:before{content:"\F1C4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\F1C5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\F1C6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\F1C7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\F1C8"}.fa-file-code-o:before{content:"\F1C9"}.fa-vine:before{content:"\F1CA"}.fa-codepen:before{content:"\F1CB"}.fa-jsfiddle:before{content:"\F1CC"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\F1CD"}.fa-circle-o-notch:before{content:"\F1CE"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\F1D0"}.fa-ge:before,.fa-empire:before{content:"\F1D1"}.fa-git-square:before{content:"\F1D2"}.fa-git:before{content:"\F1D3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\F1D4"}.fa-tencent-weibo:before{content:"\F1D5"}.fa-qq:before{content:"\F1D6"}.fa-wechat:before,.fa-weixin:before{content:"\F1D7"}.fa-send:before,.fa-paper-plane:before{content:"\F1D8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\F1D9"}.fa-history:before{content:"\F1DA"}.fa-circle-thin:before{content:"\F1DB"}.fa-header:before{content:"\F1DC"}.fa-paragraph:before{content:"\F1DD"}.fa-sliders:before{content:"\F1DE"}.fa-share-alt:before{content:"\F1E0"}.fa-share-alt-square:before{content:"\F1E1"}.fa-bomb:before{content:"\F1E2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\F1E3"}.fa-tty:before{content:"\F1E4"}.fa-binoculars:before{content:"\F1E5"}.fa-plug:before{content:"\F1E6"}.fa-slideshare:before{content:"\F1E7"}.fa-twitch:before{content:"\F1E8"}.fa-yelp:before{content:"\F1E9"}.fa-newspaper-o:before{content:"\F1EA"}.fa-wifi:before{content:"\F1EB"}.fa-calculator:before{content:"\F1EC"}.fa-paypal:before{content:"\F1ED"}.fa-google-wallet:before{content:"\F1EE"}.fa-cc-visa:before{content:"\F1F0"}.fa-cc-mastercard:before{content:"\F1F1"}.fa-cc-discover:before{content:"\F1F2"}.fa-cc-amex:before{content:"\F1F3"}.fa-cc-paypal:before{content:"\F1F4"}.fa-cc-stripe:before{content:"\F1F5"}.fa-bell-slash:before{content:"\F1F6"}.fa-bell-slash-o:before{content:"\F1F7"}.fa-trash:before{content:"\F1F8"}.fa-copyright:before{content:"\F1F9"}.fa-at:before{content:"\F1FA"}.fa-eyedropper:before{content:"\F1FB"}.fa-paint-brush:before{content:"\F1FC"}.fa-birthday-cake:before{content:"\F1FD"}.fa-area-chart:before{content:"\F1FE"}.fa-pie-chart:before{content:"\F200"}.fa-line-chart:before{content:"\F201"}.fa-lastfm:before{content:"\F202"}.fa-lastfm-square:before{content:"\F203"}.fa-toggle-off:before{content:"\F204"}.fa-toggle-on:before{content:"\F205"}.fa-bicycle:before{content:"\F206"}.fa-bus:before{content:"\F207"}.fa-ioxhost:before{content:"\F208"}.fa-angellist:before{content:"\F209"}.fa-cc:before{content:"\F20A"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\F20B"}.fa-meanpath:before{content:"\F20C"}.fa-buysellads:before{content:"\F20D"}.fa-connectdevelop:before{content:"\F20E"}.fa-dashcube:before{content:"\F210"}.fa-forumbee:before{content:"\F211"}.fa-leanpub:before{content:"\F212"}.fa-sellsy:before{content:"\F213"}.fa-shirtsinbulk:before{content:"\F214"}.fa-simplybuilt:before{content:"\F215"}.fa-skyatlas:before{content:"\F216"}.fa-cart-plus:before{content:"\F217"}.fa-cart-arrow-down:before{content:"\F218"}.fa-diamond:before{content:"\F219"}.fa-ship:before{content:"\F21A"}.fa-user-secret:before{content:"\F21B"}.fa-motorcycle:before{content:"\F21C"}.fa-street-view:before{content:"\F21D"}.fa-heartbeat:before{content:"\F21E"}.fa-venus:before{content:"\F221"}.fa-mars:before{content:"\F222"}.fa-mercury:before{content:"\F223"}.fa-intersex:before,.fa-transgender:before{content:"\F224"}.fa-transgender-alt:before{content:"\F225"}.fa-venus-double:before{content:"\F226"}.fa-mars-double:before{content:"\F227"}.fa-venus-mars:before{content:"\F228"}.fa-mars-stroke:before{content:"\F229"}.fa-mars-stroke-v:before{content:"\F22A"}.fa-mars-stroke-h:before{content:"\F22B"}.fa-neuter:before{content:"\F22C"}.fa-genderless:before{content:"\F22D"}.fa-facebook-official:before{content:"\F230"}.fa-pinterest-p:before{content:"\F231"}.fa-whatsapp:before{content:"\F232"}.fa-server:before{content:"\F233"}.fa-user-plus:before{content:"\F234"}.fa-user-times:before{content:"\F235"}.fa-hotel:before,.fa-bed:before{content:"\F236"}.fa-viacoin:before{content:"\F237"}.fa-train:before{content:"\F238"}.fa-subway:before{content:"\F239"}.fa-medium:before{content:"\F23A"}.fa-yc:before,.fa-y-combinator:before{content:"\F23B"}.fa-optin-monster:before{content:"\F23C"}.fa-opencart:before{content:"\F23D"}.fa-expeditedssl:before{content:"\F23E"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\F240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\F241"}.fa-battery-2:before,.fa-battery-half:before{content:"\F242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\F243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\F244"}.fa-mouse-pointer:before{content:"\F245"}.fa-i-cursor:before{content:"\F246"}.fa-object-group:before{content:"\F247"}.fa-object-ungroup:before{content:"\F248"}.fa-sticky-note:before{content:"\F249"}.fa-sticky-note-o:before{content:"\F24A"}.fa-cc-jcb:before{content:"\F24B"}.fa-cc-diners-club:before{content:"\F24C"}.fa-clone:before{content:"\F24D"}.fa-balance-scale:before{content:"\F24E"}.fa-hourglass-o:before{content:"\F250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\F251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\F252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\F253"}.fa-hourglass:before{content:"\F254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\F255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\F256"}.fa-hand-scissors-o:before{content:"\F257"}.fa-hand-lizard-o:before{content:"\F258"}.fa-hand-spock-o:before{content:"\F259"}.fa-hand-pointer-o:before{content:"\F25A"}.fa-hand-peace-o:before{content:"\F25B"}.fa-trademark:before{content:"\F25C"}.fa-registered:before{content:"\F25D"}.fa-creative-commons:before{content:"\F25E"}.fa-gg:before{content:"\F260"}.fa-gg-circle:before{content:"\F261"}.fa-tripadvisor:before{content:"\F262"}.fa-odnoklassniki:before{content:"\F263"}.fa-odnoklassniki-square:before{content:"\F264"}.fa-get-pocket:before{content:"\F265"}.fa-wikipedia-w:before{content:"\F266"}.fa-safari:before{content:"\F267"}.fa-chrome:before{content:"\F268"}.fa-firefox:before{content:"\F269"}.fa-opera:before{content:"\F26A"}.fa-internet-explorer:before{content:"\F26B"}.fa-tv:before,.fa-television:before{content:"\F26C"}.fa-contao:before{content:"\F26D"}.fa-500px:before{content:"\F26E"}.fa-amazon:before{content:"\F270"}.fa-calendar-plus-o:before{content:"\F271"}.fa-calendar-minus-o:before{content:"\F272"}.fa-calendar-times-o:before{content:"\F273"}.fa-calendar-check-o:before{content:"\F274"}.fa-industry:before{content:"\F275"}.fa-map-pin:before{content:"\F276"}.fa-map-signs:before{content:"\F277"}.fa-map-o:before{content:"\F278"}.fa-map:before{content:"\F279"}.fa-commenting:before{content:"\F27A"}.fa-commenting-o:before{content:"\F27B"}.fa-houzz:before{content:"\F27C"}.fa-vimeo:before{content:"\F27D"}.fa-black-tie:before{content:"\F27E"}.fa-fonticons:before{content:"\F280"}.fa-reddit-alien:before{content:"\F281"}.fa-edge:before{content:"\F282"}.fa-credit-card-alt:before{content:"\F283"}.fa-codiepie:before{content:"\F284"}.fa-modx:before{content:"\F285"}.fa-fort-awesome:before{content:"\F286"}.fa-usb:before{content:"\F287"}.fa-product-hunt:before{content:"\F288"}.fa-mixcloud:before{content:"\F289"}.fa-scribd:before{content:"\F28A"}.fa-pause-circle:before{content:"\F28B"}.fa-pause-circle-o:before{content:"\F28C"}.fa-stop-circle:before{content:"\F28D"}.fa-stop-circle-o:before{content:"\F28E"}.fa-shopping-bag:before{content:"\F290"}.fa-shopping-basket:before{content:"\F291"}.fa-hashtag:before{content:"\F292"}.fa-bluetooth:before{content:"\F293"}.fa-bluetooth-b:before{content:"\F294"}.fa-percent:before{content:"\F295"}.fa-gitlab:before{content:"\F296"}.fa-wpbeginner:before{content:"\F297"}.fa-wpforms:before{content:"\F298"}.fa-envira:before{content:"\F299"}.fa-universal-access:before{content:"\F29A"}.fa-wheelchair-alt:before{content:"\F29B"}.fa-question-circle-o:before{content:"\F29C"}.fa-blind:before{content:"\F29D"}.fa-audio-description:before{content:"\F29E"}.fa-volume-control-phone:before{content:"\F2A0"}.fa-braille:before{content:"\F2A1"}.fa-assistive-listening-systems:before{content:"\F2A2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\F2A3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\F2A4"}.fa-glide:before{content:"\F2A5"}.fa-glide-g:before{content:"\F2A6"}.fa-signing:before,.fa-sign-language:before{content:"\F2A7"}.fa-low-vision:before{content:"\F2A8"}.fa-viadeo:before{content:"\F2A9"}.fa-viadeo-square:before{content:"\F2AA"}.fa-snapchat:before{content:"\F2AB"}.fa-snapchat-ghost:before{content:"\F2AC"}.fa-snapchat-square:before{content:"\F2AD"}.fa-pied-piper:before{content:"\F2AE"}.fa-first-order:before{content:"\F2B0"}.fa-yoast:before{content:"\F2B1"}.fa-themeisle:before{content:"\F2B2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\F2B3"}.fa-fa:before,.fa-font-awesome:before{content:"\F2B4"}.fa-handshake-o:before{content:"\F2B5"}.fa-envelope-open:before{content:"\F2B6"}.fa-envelope-open-o:before{content:"\F2B7"}.fa-linode:before{content:"\F2B8"}.fa-address-book:before{content:"\F2B9"}.fa-address-book-o:before{content:"\F2BA"}.fa-vcard:before,.fa-address-card:before{content:"\F2BB"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\F2BC"}.fa-user-circle:before{content:"\F2BD"}.fa-user-circle-o:before{content:"\F2BE"}.fa-user-o:before{content:"\F2C0"}.fa-id-badge:before{content:"\F2C1"}.fa-drivers-license:before,.fa-id-card:before{content:"\F2C2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\F2C3"}.fa-quora:before{content:"\F2C4"}.fa-free-code-camp:before{content:"\F2C5"}.fa-telegram:before{content:"\F2C6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\F2C7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\F2C8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\F2C9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\F2CA"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\F2CB"}.fa-shower:before{content:"\F2CC"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\F2CD"}.fa-podcast:before{content:"\F2CE"}.fa-window-maximize:before{content:"\F2D0"}.fa-window-minimize:before{content:"\F2D1"}.fa-window-restore:before{content:"\F2D2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\F2D3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\F2D4"}.fa-bandcamp:before{content:"\F2D5"}.fa-grav:before{content:"\F2D6"}.fa-etsy:before{content:"\F2D7"}.fa-imdb:before{content:"\F2D8"}.fa-ravelry:before{content:"\F2D9"}.fa-eercast:before{content:"\F2DA"}.fa-microchip:before{content:"\F2DB"}.fa-snowflake-o:before{content:"\F2DC"}.fa-superpowers:before{content:"\F2DD"}.fa-wpexplorer:before{content:"\F2DE"}.fa-meetup:before{content:"\F2E0"}.sr-only,.table.table-list tr:not(:hover) td.table-list-options>.dropdown:not(.show) button:not(:focus):not(:active),.table.table-list tr:not(:hover) td.table-list-options>button:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.toaster-icon{position:absolute;left:0.0em;top:0.0em;font-weight:normal;color:#ffffff}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#ffffff}.toast-message a:hover{color:#cccccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#ffffff;-webkit-text-shadow:0 1px 0 #ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);z-index:999}.toast-close-button:hover,.toast-close-button:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-content{display:inline-block;width:95%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-center{top:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-center{bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-center{top:45%}#toast-container{position:fixed;z-index:999999;pointer-events:auto}#toast-container.toast-center,#toast-container.toast-top-center,#toast-container.toast-bottom-center{width:100%;pointer-events:none;left:0;right:0}#toast-container.toast-center>div,#toast-container.toast-top-center>div,#toast-container.toast-bottom-center>div{margin:6px auto;pointer-events:auto}#toast-container.toast-center>button,#toast-container.toast-top-center>button,#toast-container.toast-bottom-center>button{pointer-events:auto}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999999;-webkit-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999999;color:#ffffff;opacity:0.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000000;-webkit-box-shadow:0 0 12px #000000;box-shadow:0 0 12px #000000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}.icon-success{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important}.icon-error{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important}.icon-info{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important}.icon-wait{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/gif;base64,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") !important}.icon-warning{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{position:relative;background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-wait{background-color:#2f96b4}.toast-warning{background-color:#f89406}@media all and (max-width: 240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.1em;top:-0.2em}.toast-content{width:94%}}@media all and (min-width: 241px) and (max-width: 480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.1em;top:-0.2em}.toast-content{width:94%}}@media all and (min-width: 481px) and (max-width: 768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 0.625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 0.6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:0.5em 0 0;padding:0.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line']{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left']{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right']{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto !important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,0.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line']{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left']{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right']{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line']{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip']{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long']{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show 0.5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide 0.1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color 0.1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,0.4)}.swal2-container.swal2-backdrop-hide{background:transparent !important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-start,.swal2-container.swal2-top-left{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-start,.swal2-container.swal2-center-left{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-start,.swal2-container.swal2-bottom-left{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-right>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex !important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex !important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-top,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-bottom{align-items:center}.swal2-container.swal2-grow-column.swal2-top-start,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-bottom-left{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-top-right,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-bottom-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex !important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none !important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-container .swal2-modal{margin:0 !important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:none}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 0.4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,0.1), rgba(0,0,0,0.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:0.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:none;box-shadow:0 0 0 3px rgba(100,150,200,0.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,0.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color 0.1s ease-out;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:rgba(0,0,0,0);color:#f27474}.swal2-close:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,0.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word}.swal2-input,.swal2-file,.swal2-textarea,.swal2-select,.swal2-radio,.swal2-checkbox{margin:1em auto}.swal2-input,.swal2-file,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color 0.3s,box-shadow 0.3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,0.06);color:inherit;font-size:1.125em}.swal2-input.swal2-inputerror,.swal2-file.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}.swal2-input:focus,.swal2-file:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:none;box-shadow:0 0 0 3px rgba(100,150,200,0.5)}.swal2-input::placeholder,.swal2-file::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 0.75em}.swal2-input[type='number']{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-radio,.swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-radio label,.swal2-checkbox label{margin:0 .6em;font-size:1.125em}.swal2-radio input,.swal2-checkbox input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{display:none;align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:'!';display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:0.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^='swal2-x-mark-line']{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left']{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right']{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^='swal2-success-circular-line']{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left']{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right']{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:0.25em solid rgba(165,220,134,0.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^='swal2-success-line']{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip']{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^='swal2-success-line'][class$='long']{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^='swal2']{-webkit-tap-highlight-color:transparent}.swal2-show{animation:swal2-show 0.3s}.swal2-hide{animation:swal2-hide 0.15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator: true){.swal2-range input{width:100% !important}.swal2-range output{display:none}}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-range input{width:100% !important}.swal2-range output{display:none}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent !important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,0.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-start,body.swal2-no-backdrop .swal2-container.swal2-top-left{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%, -50%)}body.swal2-no-backdrop .swal2-container.swal2-center-start,body.swal2-no-backdrop .swal2-container.swal2-center-left{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-start,body.swal2-no-backdrop .swal2-container.swal2-bottom-left{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden='true']{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}#toast-container.toast-top-right{top:76px}#toast-container .toast-close-button{right:-0.15em}#toast-container .toast{opacity:1 !important;background-image:none !important;border-radius:.25rem;box-shadow:0 0 8px rgba(0,0,0,0.35);display:flex;align-items:center}#toast-container .toast:hover{box-shadow:0 0 10px rgba(0,0,0,0.6)}#toast-container .toast:before{font-family:FontAwesome;font-size:25px;line-height:20px;float:left;color:#ffffff;padding-right:10px;margin:auto 0 auto -36px}#toast-container .toast .toaster-icon{display:none}#toast-container .toast .toast-message p{margin-bottom:0.5rem}#toast-container .toast .toast-message p:last-child{margin-bottom:0}#toast-container .toast.toast-danger,#toast-container .toast.toast-error{background-image:none !important;background-color:#dd4b39}#toast-container .toast.toast-danger:before,#toast-container .toast.toast-error:before{content:"\F0E7";margin-left:-30px}#toast-container .toast.toast-warning{background-image:none !important;background-color:#bf7e16}#toast-container .toast.toast-warning:before{content:"\F071"}#toast-container .toast.toast-info{background-image:none !important;background-color:#555}#toast-container .toast.toast-info:before{content:"\F05A"}#toast-container .toast.toast-success{background-image:none !important;background-color:#00a65a}#toast-container .toast.toast-success:before{content:"\F00C"}.swal2-container{background-color:rgba(0,0,0,0.3)}.swal2-popup{padding:15px 0 0;background-color:#fff;color:#333;border:1px solid #9a9a9a;border-radius:.3rem;width:34em}.swal2-popup .swal2-header{padding:0 15px}.swal2-popup .swal2-icon{margin:0 auto;width:auto;height:auto;border:none}.swal2-popup .swal2-content{padding-bottom:15px;font-size:1rem;border-bottom:1px solid #dee2e6}.swal2-popup i.swal-custom-icon{display:block;margin:0 auto;font-size:35px}.swal2-popup .swal2-title{padding:10px 0 15px;margin:0;font-size:1.15rem;color:#333}.swal2-popup .swal2-content{font-size:1rem;color:#333;padding:0 15px 15px}.swal2-popup .swal2-actions{padding:15px;margin:0;background-color:#fbfbfb;border-radius:.3rem;display:flex;flex-direction:row;justify-content:flex-start;font-size:1rem}.swal2-popup .swal2-actions button{margin-right:10px}.swal2-popup .swal2-actions button.swal2-confirm{font-weight:bold}.swal2-popup .swal2-actions button.swal2-cancel{background-color:#ffffff}date-input-polyfill[data-open="true"]{z-index:10000 !important}html{font-size:14px}body{min-width:1010px}body.layout_frontend{background-color:#ecf0f5}body.full-width:not(.layout_frontend) .container{min-width:980px;width:90%}.page-header,.secondary-header{border-bottom:1px solid #dee2e6;padding-bottom:0.6rem;margin-bottom:0.5rem}.page-header h1,.page-header h2,.page-header h3,.page-header h4,.secondary-header h1,.secondary-header h2,.secondary-header h3,.secondary-header h4{margin:0}h1 small,h2 small,h3 small,h4 small,h5 small{font-size:80%}input:required,select:required,textarea:required{box-shadow:none}.secondary-header,.spaced-header{margin-top:4rem}.navbar{padding-left:0;padding-right:0}.navbar .dropdown-menu{min-width:200px;max-width:300px}.navbar .dropdown-menu .dropdown-item-text{line-height:1.3}.navbar .dropdown-menu .dropdown-item-text span,.navbar .dropdown-menu .dropdown-item-text small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar .nav-link{font-weight:600}.navbar-brand{margin-top:-20px;margin-bottom:-20px}.dropdown-menu button{cursor:pointer}.container{width:980px;max-width:none !important;margin:0 auto;padding:0}.page-content{margin-top:20px}.footer{margin-top:40px;padding:40px 0 40px 0;border-top:1px solid #dee2e6}.list-group-item.active{border-left:3px solid #175DDC;font-weight:bold;padding-left:calc(1.25rem - 3px)}.card-header,.modal-header{font-weight:bold;text-transform:uppercase}.card-header small,.modal-header small{font-weight:normal;text-transform:none}.card-body-header{font-size:1.15rem}.card ul.fa-ul.card-ul{margin-left:1.9em}.card ul.fa-ul.card-ul li{word-break:break-all}.card ul.fa-ul.card-ul .fa-li{top:4px}.card ul.fa-ul.card-ul.carets{margin-left:1.1em}.card ul.fa-ul.card-ul.carets .fa-li{left:-17px;width:1.1em}.card ul.fa-ul.card-ul ul.carets{margin-left:0.85em}.card-org-plans h2{font-size:1.15rem}.modal-dialog{width:500px}.modal-sm{width:300px}.modal-lg{width:800px}.modal-body h3,.modal-body .section-header>*{font-weight:normal;text-transform:uppercase;color:#6c757d}.modal .list-group-flush :first-child{border-top:none}.modal .list-group-flush :last-child{border-bottom:none}.modal-footer{justify-content:flex-start;background-color:#fbfbfb;border-radius:.3rem}label:not(.form-check-label):not(.btn),label.bold{font-weight:600}input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button}.btn[class*="btn-outline-"]:not(:hover),.swal2-popup .swal2-actions button[class*="btn-outline-"]:not(:hover){border-color:#ced4da;background-color:#fbfbfb}.btn-link:focus,.btn-link.focus{outline-color:-webkit-focus-ring-color;outline-offset:1px;outline-style:auto;outline-width:1px}.btn-outline-secondary,.swal2-popup .swal2-actions button.swal2-cancel{color:#6c757d}.btn-outline-secondary:hover:not(:disabled),.swal2-popup .swal2-actions button.swal2-cancel:hover:not(:disabled){color:#333}.btn-outline-secondary:disabled,.swal2-popup .swal2-actions button.swal2-cancel:disabled{opacity:1}.btn-outline-secondary:focus,.swal2-popup .swal2-actions button.swal2-cancel:focus,.btn-outline-secondary.focus,.swal2-popup .swal2-actions button.focus.swal2-cancel{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-submit{position:relative}.btn-submit .fa-spinner{position:absolute;display:none;align-items:center;justify-content:center;bottom:0;top:0;left:0;right:0}.btn-submit:disabled:not(.manual) .fa-spinner,.btn-submit.loading .fa-spinner{display:flex}.btn-submit:disabled:not(.manual) span,.btn-submit.loading span{visibility:hidden}.list-group-item:focus,.list-group-item.focus{z-index:100}.fa-icon-above-input{height:1.5em}.table.table-list thead th{border-top:none}.table.table-list tr:first-child td{border:none}.table.table-list td{vertical-align:middle}.table.table-list td.reduced-lh{line-height:1}.table.table-list td.reduced-lh small{font-size:80%}.table.table-list td small,.table.table-list td>.fa,.table.table-list td .icon{color:#6c757d}.table.table-list td.wrap{word-break:break-all}.table.table-list td.table-list-options{width:76px;max-width:76px;text-align:right;height:50px}.table.table-list td.table-list-options.wider{width:100px;max-width:100px}.table.table-list td.table-list-options .btn,.table.table-list td.table-list-options .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .table.table-list td.table-list-options button{line-height:1;transition:initial}.table.table-list td.table-list-options .dropdown-menu{line-height:1.5}.table.table-list td.table-list-icon{width:45px;max-width:45px;text-align:center}.table.table-list td.table-list-icon img{max-height:24px}.table.table-list td.table-list-checkbox{width:35px;max-width:35px}.table.table-list td.table-list-strike{color:#6c757d;text-decoration:line-through}.text-lg{font-size:1.15rem}.text-strike{text-decoration:line-through}.font-weight-semibold{font-weight:600}.password-wrapper{word-break:break-all;white-space:pre-wrap;min-width:0}.password-row{min-width:0}.password-number{color:#007fde}.password-special{color:#c40800}app-vault-groupings .card #search,app-org-vault-groupings .card #search,.groupings .card #search{margin-bottom:1rem}app-vault-groupings .card h3,app-org-vault-groupings .card h3,.groupings .card h3{font-weight:normal;text-transform:uppercase;color:#6c757d}app-vault-groupings .card ul:last-child,app-org-vault-groupings .card ul:last-child,.groupings .card ul:last-child{margin-bottom:0}app-vault-groupings .card .card-body a,app-org-vault-groupings .card .card-body a,.groupings .card .card-body a{color:#333}app-vault-groupings .card .card-body a:hover.text-muted,app-org-vault-groupings .card .card-body a:hover.text-muted,.groupings .card .card-body a:hover.text-muted{color:#333 !important}app-vault-groupings .card .show-active,app-org-vault-groupings .card .show-active,.groupings .card .show-active{display:none}app-vault-groupings .card li>.fa,app-vault-groupings .card li>div>.fa,app-org-vault-groupings .card li>.fa,app-org-vault-groupings .card li>div>.fa,.groupings .card li>.fa,.groupings .card li>div>.fa{cursor:pointer}app-vault-groupings .card li.active>.show-active,app-vault-groupings .card li.active>div .show-active,app-org-vault-groupings .card li.active>.show-active,app-org-vault-groupings .card li.active>div .show-active,.groupings .card li.active>.show-active,.groupings .card li.active>div .show-active{display:inline}app-vault-groupings .card li.active>a:first-of-type,app-vault-groupings .card li.active>div a:first-of-type,app-org-vault-groupings .card li.active>a:first-of-type,app-org-vault-groupings .card li.active>div a:first-of-type,.groupings .card li.active>a:first-of-type,.groupings .card li.active>div a:first-of-type{font-weight:bold;color:#175DDC}app-vault-groupings .card li.active>.fa,app-vault-groupings .card li.active>div>.fa,app-org-vault-groupings .card li.active>.fa,app-org-vault-groupings .card li.active>div>.fa,.groupings .card li.active>.fa,.groupings .card li.active>div>.fa{color:#175DDC}app-password-generator #lengthRange{width:100%}app-password-generator .card-password .card-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;font-size:1.15rem;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}app-password-generator-history .list-group-item{line-height:1}app-password-generator-history .list-group-item .password{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}app-import textarea{height:150px}app-user-billing .progress{height:20px}app-user-billing .progress .progress-bar{min-width:50px}#duo-frame{background:url(../images/loading.svg) 0 0 no-repeat;height:330px}#duo-frame iframe{width:100%;height:100%;border:none}#web-authn-frame{background:url(../images/loading.svg) 0 0 no-repeat;height:290px}#web-authn-frame iframe{width:100%;height:100%;border:none}#bt-dropin-container{background:url(../images/loading.svg) 0 0 no-repeat;min-height:50px}.braintree-placeholder,.braintree-sheet__header{display:none}.braintree-sheet__content--button{text-align:left;padding:0;min-height:0}.braintree-sheet__container{margin-bottom:0}.braintree-sheet{border:none}.totp .totp-code{font-size:1.2rem}.totp .totp-countdown{margin:3px 3px 0 0;display:block;user-select:none}.totp .totp-countdown .totp-sec{font-size:0.85em;position:absolute;line-height:32px;width:32px;text-align:center}.totp .totp-countdown svg{width:32px;height:32px;transform:rotate(-90deg)}.totp .totp-countdown .totp-circle{fill:none;stroke:#175DDC}.totp .totp-countdown .totp-circle.inner{stroke-width:3;stroke-dasharray:78.6;stroke-dashoffset:0}.totp .totp-countdown .totp-circle.outer{stroke-width:2;stroke-dasharray:88;stroke-dashoffset:0}.totp>.align-items-center{margin-bottom:-5px}.totp.low .totp-sec,.totp.low .totp-code{color:#dd4b39}.totp.low .totp-circle{stroke:#dd4b39}.callout{padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0.125);border-left-width:5px;border-radius:calc(.25rem - 1px);background-color:#fafafa}.callout .callout-heading{margin-top:0}.callout h3.callout-heading{font-weight:bold;text-transform:uppercase}.callout.callout-primary{border-left-color:#175DDC}.callout.callout-primary .callout-heading{color:#175DDC}.callout.callout-info{border-left-color:#343a40}.callout.callout-info .callout-heading{color:#343a40}.callout.callout-danger{border-left-color:#dd4b39}.callout.callout-danger .callout-heading{color:#dd4b39}.callout.callout-success{border-left-color:#00a65a}.callout.callout-success .callout-heading{color:#00a65a}.callout.callout-warning{border-left-color:#bf7e16}.callout.callout-warning .callout-heading{color:#bf7e16}.list-group-2fa .logo-2fa{min-width:100px}.form-check-block .form-check-label{font-weight:600}.form-check-block .form-check-label>small{display:block;color:#6c757d;font-weight:normal}.form-check-block .form-check-label>span{display:block;font-weight:normal}.form-inline input[type='datetime-local']{width:200px}.form-control.stripe-form-control{padding-top:0.55rem}.form-control.stripe-form-control.is-focused{color:#495057;background-color:#fff;border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.form-control.stripe-form-control.is-focused.is-invalid{box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.form-control.stripe-form-control.is-invalid{border-color:#dd4b39}.org-nav{background-color:#fbfbfb;border-bottom:1px solid #dee2e6;height:100px;min-height:100px}.org-nav .container{height:100%}.org-nav .nav-tabs{border-bottom:none}.org-nav .nav-tabs a{color:#333}.org-nav .nav-tabs a:not(.active){border-color:transparent}.org-nav .nav-tabs a.active{border-top:3px solid #175DDC;font-weight:bold;padding-top:calc(.5rem - 2px)}.org-nav .nav-tabs a.disabled{color:#b4b4b4}.org-nav .org-name{line-height:1}.org-nav .org-name span{font-size:1.15rem;display:block}img.logo{width:284px;height:43px;margin:0 auto;display:block}.min-height-fix{min-height:1px}.overflow-hidden{overflow:hidden}.cdk-drag-preview{z-index:1070 !important;opacity:0.8;background-color:#fff;border-radius:.25rem}.cursor-move{cursor:move !important}.layout.enterprise2 header{color:#ced4da;background-color:#175DDC}.layout.enterprise2 header:before{content:"";position:absolute;z-index:-1;width:100%;height:340px;left:0;transform:skewY(-3deg);background:#175DDC}.layout.enterprise2 header img.logo{margin:12px 0 0;width:284px;max-width:284px;height:auto}.layout.enterprise2 h2{color:#ffffff;font-size:1.8rem;margin:100px 0 150px 0}.layout.enterprise2 p{margin:20px 0 40px 0;font-size:1.4rem}.layout.enterprise2 p:before{content:"/";padding-right:12px}.layout.enterprise2 p:not(.highlight):before{color:#1252A3}.layout.enterprise2 p b:after{content:"\27F6";font-size:2rem;padding-left:6px}.layout.enterprise2 blockquote{margin:20px 0 0 0;font-size:1.4rem;padding-right:40px} + + +/*# sourceMappingURL=main.a34068436143996e1f65.css.map*/ \ No newline at end of file diff --git a/app/main.a34068436143996e1f65.css.map b/app/main.a34068436143996e1f65.css.map new file mode 100644 index 00000000..51cfdc1c --- /dev/null +++ b/app/main.a34068436143996e1f65.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/css/webfonts.css","webpack:///./src/scss/styles.scss"],"names":[],"mappings":"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","file":"app/main.a34068436143996e1f65.css","sourcesContent":["@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 300;\n\tsrc: url(../fonts/Open_Sans-italic-300.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 400;\n\tsrc: url(../fonts/Open_Sans-italic-400.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 600;\n\tsrc: url(../fonts/Open_Sans-italic-600.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 700;\n\tsrc: url(../fonts/Open_Sans-italic-700.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 800;\n\tsrc: url(../fonts/Open_Sans-italic-800.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 300;\n\tsrc: url(../fonts/Open_Sans-normal-300.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 400;\n\tsrc: url(../fonts/Open_Sans-normal-400.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 600;\n\tsrc: url(../fonts/Open_Sans-normal-600.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 700;\n\tsrc: url(../fonts/Open_Sans-normal-700.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 800;\n\tsrc: url(../fonts/Open_Sans-normal-800.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n",":root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: #28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: #6c757d;--gray-dark: #343a40;--primary: #175DDC;--secondary: #ced4da;--success: #00a65a;--info: #555;--warning: #bf7e16;--danger: #dd4b39;--light: #f8f9fa;--dark: #343a40;--primary-accent: #1252A3;--secondary-alt: #1A3B66;--breakpoint-xs: 0;--breakpoint-sm: 1px;--breakpoint-md: 2px;--breakpoint-lg: 3px;--breakpoint-xl: 4px;--font-family-sans-serif: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#333;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus{outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#175DDC;text-decoration:none;background-color:transparent}a:hover{color:#104097;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button:not(:disabled),[type=\"button\"]:not(:disabled),[type=\"reset\"]:not(:disabled),[type=\"submit\"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{padding:0;border-style:none}input[type=\"radio\"],input[type=\"checkbox\"]{box-sizing:border-box;padding:0}input[type=\"date\"],input[type=\"time\"],input[type=\"datetime-local\"],input[type=\"month\"]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{outline-offset:-2px;-webkit-appearance:none}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:1.7rem}h2,.h2{font-size:1.3rem}h3,.h3{font-size:1rem}h4,.h4{font-size:1rem}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:normal}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:90%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:90%;color:#6c757d}.blockquote-footer::before{content:\"\\2014\\A0\"}.img-fluid,.table.table-list td.table-list-icon img{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:100%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:100%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:100%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}@media (min-width: 1px){.container{max-width:540px}}@media (min-width: 2px){.container{max-width:720px}}@media (min-width: 3px){.container{max-width:960px}}@media (min-width: 4px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-10px;margin-left:-10px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=\"col-\"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:10px;padding-left:10px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width: 1px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width: 2px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width: 3px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width: 4px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#333}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.02)}.table-hover tbody tr:hover{color:#333;background-color:rgba(0,0,0,0.03)}.table-primary,.table-primary>th,.table-primary>td{background-color:#bed2f5}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#86abed}.table-hover .table-primary:hover{background-color:#a8c3f2}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a8c3f2}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#f1f3f5}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#e6e9ec}.table-hover .table-secondary:hover{background-color:#e2e6ea}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e2e6ea}.table-success,.table-success>th,.table-success>td{background-color:#b8e6d1}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#7ad1a9}.table-hover .table-success:hover{background-color:#a5dfc5}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#a5dfc5}.table-info,.table-info>th,.table-info>td{background-color:#cfcfcf}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#a7a7a7}.table-hover .table-info:hover{background-color:#c2c2c2}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c2c2c2}.table-warning,.table-warning>th,.table-warning>td{background-color:#eddbbe}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#debc86}.table-hover .table-warning:hover{background-color:#e7d0aa}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#e7d0aa}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5cdc8}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#eda198}.table-hover .table-danger:hover{background-color:#f1b9b2}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b9b2}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-primary-accent,.table-primary-accent>th,.table-primary-accent>td{background-color:#bdcfe5}.table-primary-accent th,.table-primary-accent td,.table-primary-accent thead th,.table-primary-accent tbody+tbody{border-color:#84a5cf}.table-hover .table-primary-accent:hover{background-color:#abc2de}.table-hover .table-primary-accent:hover>td,.table-hover .table-primary-accent:hover>th{background-color:#abc2de}.table-secondary-alt,.table-secondary-alt>th,.table-secondary-alt>td{background-color:#bfc8d4}.table-secondary-alt th,.table-secondary-alt td,.table-secondary-alt thead th,.table-secondary-alt tbody+tbody{border-color:#8899af}.table-hover .table-secondary-alt:hover{background-color:#b0bbca}.table-hover .table-secondary-alt:hover>td,.table-hover .table-secondary-alt:hover>th{background-color:#b0bbca}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.03)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.03)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.03)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark th,.table-dark td,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 0.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width: 1.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width: 2.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width: 3.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fbfbfb;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.form-control::placeholder{color:#b4b4b4;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e0e0e0;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fbfbfb}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.15rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#333;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=\"col-\"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled ~ .form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:90%;color:#00a65a}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(0,166,90,0.9);border-radius:.25rem}.was-validated .form-control:valid,.form-control.is-valid{border-color:#00a65a;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .form-control:valid ~ .valid-feedback,.was-validated .form-control:valid ~ .valid-tooltip,.form-control.is-valid ~ .valid-feedback,.form-control.is-valid ~ .valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#00a65a;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fbfbfb no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .custom-select:valid ~ .valid-feedback,.was-validated .custom-select:valid ~ .valid-tooltip,.custom-select.is-valid ~ .valid-feedback,.custom-select.is-valid ~ .valid-tooltip{display:block}.was-validated .form-control-file:valid ~ .valid-feedback,.was-validated .form-control-file:valid ~ .valid-tooltip,.form-control-file.is-valid ~ .valid-feedback,.form-control-file.is-valid ~ .valid-tooltip{display:block}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#00a65a}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#00a65a}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{border-color:#00a65a}.was-validated .custom-control-input:valid ~ .valid-feedback,.was-validated .custom-control-input:valid ~ .valid-tooltip,.custom-control-input.is-valid ~ .valid-feedback,.custom-control-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{border-color:#00d976;background-color:#00d976}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{border-color:#00a65a}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#00a65a}.was-validated .custom-file-input:valid ~ .valid-feedback,.was-validated .custom-file-input:valid ~ .valid-tooltip,.custom-file-input.is-valid ~ .valid-feedback,.custom-file-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:90%;color:#dd4b39}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(221,75,57,0.9);border-radius:.25rem}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dd4b39;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .form-control:invalid ~ .invalid-feedback,.was-validated .form-control:invalid ~ .invalid-tooltip,.form-control.is-invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dd4b39;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px,url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fbfbfb no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .custom-select:invalid ~ .invalid-feedback,.was-validated .custom-select:invalid ~ .invalid-tooltip,.custom-select.is-invalid ~ .invalid-feedback,.custom-select.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-control-file:invalid ~ .invalid-feedback,.was-validated .form-control-file:invalid ~ .invalid-tooltip,.form-control-file.is-invalid ~ .invalid-feedback,.form-control-file.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#dd4b39}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#dd4b39}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{border-color:#dd4b39}.was-validated .custom-control-input:invalid ~ .invalid-feedback,.was-validated .custom-control-input:invalid ~ .invalid-tooltip,.custom-control-input.is-invalid ~ .invalid-feedback,.custom-control-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{border-color:#e47365;background-color:#e47365}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{border-color:#dd4b39}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#dd4b39}.was-validated .custom-file-input:invalid ~ .invalid-feedback,.was-validated .custom-file-input:invalid ~ .invalid-tooltip,.custom-file-input.is-invalid ~ .invalid-feedback,.custom-file-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 1px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn,.swal2-popup .swal2-actions button{display:inline-block;font-weight:600;color:#333;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn,.swal2-popup .swal2-actions button{transition:none}}.btn:hover,.swal2-popup .swal2-actions button:hover{color:#333;text-decoration:none}.btn:focus,.swal2-popup .swal2-actions button:focus,.btn.focus,.swal2-popup .swal2-actions button.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.btn.disabled,.swal2-popup .swal2-actions button.disabled,.btn:disabled,.swal2-popup .swal2-actions button:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary,.swal2-popup .swal2-actions button.swal2-confirm{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-primary:hover,.swal2-popup .swal2-actions button.swal2-confirm:hover{color:#fff;background-color:#134eb9;border-color:#1249ae}.btn-primary:focus,.swal2-popup .swal2-actions button.swal2-confirm:focus,.btn-primary.focus,.swal2-popup .swal2-actions button.focus.swal2-confirm{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-primary.disabled,.swal2-popup .swal2-actions button.disabled.swal2-confirm,.btn-primary:disabled,.swal2-popup .swal2-actions button.swal2-confirm:disabled{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-primary:not(:disabled):not(.disabled):active,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-confirm{color:#fff;background-color:#1249ae;border-color:#1145a2}.btn-primary:not(:disabled):not(.disabled):active:focus,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-confirm:focus{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-secondary{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-secondary:hover{color:#212529;background-color:#b8c1ca;border-color:#b1bbc4}.btn-secondary:focus,.btn-secondary.focus{box-shadow:0 0 0 .2rem rgba(180,186,191,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#b1bbc4;border-color:#aab4bf}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(180,186,191,0.5)}.btn-success{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-success:hover{color:#fff;background-color:#008045;border-color:#00733e}.btn-success:focus,.btn-success.focus{box-shadow:0 0 0 .2rem rgba(38,179,115,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#00733e;border-color:#006637}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,179,115,0.5)}.btn-info{color:#fff;background-color:#555;border-color:#555}.btn-info:hover{color:#fff;background-color:#424242;border-color:#3c3c3c}.btn-info:focus,.btn-info.focus{box-shadow:0 0 0 .2rem rgba(111,111,111,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#555;border-color:#555}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#3c3c3c;border-color:#353535}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(111,111,111,0.5)}.btn-warning{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-warning:hover{color:#fff;background-color:#9d6712;border-color:#916011}.btn-warning:focus,.btn-warning.focus{box-shadow:0 0 0 .2rem rgba(201,145,57,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#916011;border-color:#86580f}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(201,145,57,0.5)}.btn-danger{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-danger:hover{color:#fff;background-color:#cd3623;border-color:#c23321}.btn-danger:focus,.btn-danger.focus{box-shadow:0 0 0 .2rem rgba(226,102,87,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c23321;border-color:#b7301f}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(226,102,87,0.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light:focus,.btn-light.focus{box-shadow:0 0 0 .2rem rgba(216,217,219,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,0.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{box-shadow:0 0 0 .2rem rgba(82,88,93,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,0.5)}.btn-primary-accent{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-primary-accent:hover{color:#fff;background-color:#0e4181;border-color:#0d3b75}.btn-primary-accent:focus,.btn-primary-accent.focus{box-shadow:0 0 0 .2rem rgba(54,108,177,0.5)}.btn-primary-accent.disabled,.btn-primary-accent:disabled{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-primary-accent:not(:disabled):not(.disabled):active,.btn-primary-accent:not(:disabled):not(.disabled).active,.show>.btn-primary-accent.dropdown-toggle{color:#fff;background-color:#0d3b75;border-color:#0c356a}.btn-primary-accent:not(:disabled):not(.disabled):active:focus,.btn-primary-accent:not(:disabled):not(.disabled).active:focus,.show>.btn-primary-accent.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(54,108,177,0.5)}.btn-secondary-alt{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-secondary-alt:hover{color:#fff;background-color:#122948;border-color:#10233d}.btn-secondary-alt:focus,.btn-secondary-alt.focus{box-shadow:0 0 0 .2rem rgba(60,88,125,0.5)}.btn-secondary-alt.disabled,.btn-secondary-alt:disabled{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-secondary-alt:not(:disabled):not(.disabled):active,.btn-secondary-alt:not(:disabled):not(.disabled).active,.show>.btn-secondary-alt.dropdown-toggle{color:#fff;background-color:#10233d;border-color:#0d1e33}.btn-secondary-alt:not(:disabled):not(.disabled):active:focus,.btn-secondary-alt:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary-alt.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,88,125,0.5)}.btn-outline-primary{color:#175DDC;border-color:#175DDC}.btn-outline-primary:hover{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#175DDC;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.btn-outline-secondary,.swal2-popup .swal2-actions button.swal2-cancel{color:#ced4da;border-color:#ced4da}.btn-outline-secondary:hover,.swal2-popup .swal2-actions button.swal2-cancel:hover{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-outline-secondary:focus,.swal2-popup .swal2-actions button.swal2-cancel:focus,.btn-outline-secondary.focus,.swal2-popup .swal2-actions button.focus.swal2-cancel{box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.btn-outline-secondary.disabled,.swal2-popup .swal2-actions button.disabled.swal2-cancel,.btn-outline-secondary:disabled,.swal2-popup .swal2-actions button.swal2-cancel:disabled{color:#ced4da;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-cancel{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-cancel:focus{box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.btn-outline-success{color:#00a65a;border-color:#00a65a}.btn-outline-success:hover{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#00a65a;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.btn-outline-info{color:#555;border-color:#555}.btn-outline-info:hover{color:#fff;background-color:#555;border-color:#555}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#555;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#555;border-color:#555}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.btn-outline-warning{color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:hover{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#bf7e16;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.btn-outline-danger{color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:hover{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dd4b39;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-primary-accent{color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:hover{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:focus,.btn-outline-primary-accent.focus{box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.btn-outline-primary-accent.disabled,.btn-outline-primary-accent:disabled{color:#1252A3;background-color:transparent}.btn-outline-primary-accent:not(:disabled):not(.disabled):active,.btn-outline-primary-accent:not(:disabled):not(.disabled).active,.show>.btn-outline-primary-accent.dropdown-toggle{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:not(:disabled):not(.disabled):active:focus,.btn-outline-primary-accent:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary-accent.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.btn-outline-secondary-alt{color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:hover{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:focus,.btn-outline-secondary-alt.focus{box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.btn-outline-secondary-alt.disabled,.btn-outline-secondary-alt:disabled{color:#1A3B66;background-color:transparent}.btn-outline-secondary-alt:not(:disabled):not(.disabled):active,.btn-outline-secondary-alt:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary-alt.dropdown-toggle{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary-alt:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary-alt.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.btn-link{font-weight:400;color:#175DDC;text-decoration:none}.btn-link:hover{color:#104097;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline;box-shadow:none}.btn-link:disabled,.btn-link.disabled{color:#6c757d;pointer-events:none}.btn-lg,.btn-group-lg>.btn,.swal2-popup .swal2-actions .btn-group-lg>button{padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn,.swal2-popup .swal2-actions .btn-group-sm>button{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=\"submit\"].btn-block,input[type=\"reset\"].btn-block,input[type=\"button\"].btn-block{width:100%}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#333;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 1px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 2px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 3px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 4px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\"}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=\"top\"],.dropdown-menu[x-placement^=\"right\"],.dropdown-menu[x-placement^=\"bottom\"],.dropdown-menu[x-placement^=\"left\"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#333;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:rgba(0,0,0,0.06)}.dropdown-item.active,.dropdown-item:active{color:#333;text-decoration:none;background-color:rgba(0,0,0,0.1)}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#333}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.swal2-popup .swal2-actions .btn-group>button,.btn-group-vertical>.btn,.swal2-popup .swal2-actions .btn-group-vertical>button{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.swal2-popup .swal2-actions .btn-group>button:hover,.btn-group-vertical>.btn:hover,.swal2-popup .swal2-actions .btn-group-vertical>button:hover{z-index:1}.btn-group>.btn:focus,.swal2-popup .swal2-actions .btn-group>button:focus,.btn-group>.btn:active,.swal2-popup .swal2-actions .btn-group>button:active,.btn-group>.btn.active,.swal2-popup .swal2-actions .btn-group>button.active,.btn-group-vertical>.btn:focus,.swal2-popup .swal2-actions .btn-group-vertical>button:focus,.btn-group-vertical>.btn:active,.swal2-popup .swal2-actions .btn-group-vertical>button:active,.btn-group-vertical>.btn.active,.swal2-popup .swal2-actions .btn-group-vertical>button.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group>button:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .btn-group>button:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn,.swal2-popup .swal2-actions .btn-group>.btn-group:not(:last-child)>button{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group>button:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn,.swal2-popup .swal2-actions .btn-group>.btn-group:not(:first-child)>button{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split,.swal2-popup .swal2-actions .btn-group-sm>button+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split,.swal2-popup .swal2-actions .btn-group-lg>button+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.swal2-popup .swal2-actions .btn-group-vertical>button,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn,.swal2-popup .swal2-actions .btn-group-vertical>.btn-group:not(:last-child)>button{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn,.swal2-popup .swal2-actions .btn-group-vertical>.btn-group:not(:first-child)>button{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.swal2-popup .swal2-actions .btn-group-toggle>button,.btn-group-toggle>.btn-group>.btn,.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button{margin-bottom:0}.btn-group-toggle>.btn input[type=\"radio\"],.swal2-popup .swal2-actions .btn-group-toggle>button input[type=\"radio\"],.btn-group-toggle>.btn input[type=\"checkbox\"],.swal2-popup .swal2-actions .btn-group-toggle>button input[type=\"checkbox\"],.btn-group-toggle>.btn-group>.btn input[type=\"radio\"],.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button input[type=\"radio\"],.btn-group-toggle>.btn-group>.btn input[type=\"checkbox\"],.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button input[type=\"checkbox\"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-prepend .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .input-group-prepend button,.input-group-append .btn,.input-group-append .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .input-group-append button{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-prepend .swal2-popup .swal2-actions button:focus,.swal2-popup .swal2-actions .input-group-prepend button:focus,.input-group-append .btn:focus,.input-group-append .swal2-popup .swal2-actions button:focus,.swal2-popup .swal2-actions .input-group-append button:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .swal2-popup .swal2-actions button+.btn,.swal2-popup .swal2-actions .input-group-prepend button+.btn,.input-group-prepend .swal2-popup .swal2-actions .btn+button,.swal2-popup .swal2-actions .input-group-prepend .btn+button,.input-group-prepend .swal2-popup .swal2-actions button+button,.swal2-popup .swal2-actions .input-group-prepend button+button,.input-group-prepend .btn+.input-group-text,.input-group-prepend .swal2-popup .swal2-actions button+.input-group-text,.swal2-popup .swal2-actions .input-group-prepend button+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .swal2-popup .swal2-actions .input-group-text+button,.swal2-popup .swal2-actions .input-group-prepend .input-group-text+button,.input-group-append .btn+.btn,.input-group-append .swal2-popup .swal2-actions button+.btn,.swal2-popup .swal2-actions .input-group-append button+.btn,.input-group-append .swal2-popup .swal2-actions .btn+button,.swal2-popup .swal2-actions .input-group-append .btn+button,.input-group-append .swal2-popup .swal2-actions button+button,.swal2-popup .swal2-actions .input-group-append button+button,.input-group-append .btn+.input-group-text,.input-group-append .swal2-popup .swal2-actions button+.input-group-text,.swal2-popup .swal2-actions .input-group-append button+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .swal2-popup .swal2-actions .input-group-text+button,.swal2-popup .swal2-actions .input-group-append .input-group-text+button{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=\"radio\"],.input-group-text input[type=\"checkbox\"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group-lg>.input-group-prepend>button,.input-group-lg>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group-lg>.input-group-append>button{padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group-sm>.input-group-prepend>button,.input-group-sm>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group-sm>.input-group-append>button{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group>.input-group-prepend>button,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.swal2-popup .swal2-actions .input-group>.input-group-append:not(:last-child)>button,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .input-group>.input-group-append:last-child>button:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group>.input-group-append>button,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.swal2-popup .swal2-actions .input-group>.input-group-prepend:not(:first-child)>button,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.swal2-popup .swal2-actions .input-group>.input-group-prepend:first-child>button:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;border-color:#175DDC;background-color:#175DDC}.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-control-input:focus:not(:checked) ~ .custom-control-label::before{border-color:#81a9f2}.custom-control-input:not(:disabled):active ~ .custom-control-label::before{color:#fff;background-color:#afc8f7;border-color:#afc8f7}.custom-control-input:disabled ~ .custom-control-label{color:#6c757d}.custom-control-input:disabled ~ .custom-control-label::before{background-color:#e0e0e0}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:\"\";background-color:#fbfbfb;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\";background:no-repeat 50% / 50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{border-color:#175DDC;background-color:#175DDC}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(23,93,220,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(23,93,220,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked ~ .custom-control-label::after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(23,93,220,0.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked ~ .custom-control-label::after{background-color:#fbfbfb;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(23,93,220,0.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right .75rem center/8px 10px;background-color:#fbfbfb;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fbfbfb}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.15rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus ~ .custom-file-label{border-color:#81a9f2;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-file-input:disabled ~ .custom-file-label{background-color:#e0e0e0}.custom-file-input:lang(en) ~ .custom-file-label::after{content:\"Browse\"}.custom-file-input ~ .custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fbfbfb;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:\"Browse\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#afc8f7}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#afc8f7}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#afc8f7}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#175DDC}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.75rem 1rem}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:0;padding-bottom:0;margin-right:1rem;font-size:2.1875rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.15rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat center center;background-size:100% 100%}@media (max-width: 0.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 1px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 1.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 2px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 2.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 3px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 3.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 4px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0,0,0,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.7)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.9)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255,255,255,0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.7)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.6rem}.card-subtitle{margin-top:-.3rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.6rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.6rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.6rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:10px}@media (min-width: 1px){.card-deck{flex-flow:row wrap;margin-right:-10px;margin-left:-10px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:10px;margin-bottom:0;margin-left:10px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:10px}@media (min-width: 1px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.6rem}@media (min-width: 1px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#175DDC;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#104097;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#175DDC;border-color:#175DDC}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.15rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge,.swal2-popup .swal2-actions button .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#175DDC}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#1249ae}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.badge-secondary{color:#212529;background-color:#ced4da}a.badge-secondary:hover,a.badge-secondary:focus{color:#212529;background-color:#b1bbc4}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.badge-success{color:#fff;background-color:#00a65a}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#00733e}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.badge-info{color:#fff;background-color:#555}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#3c3c3c}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.badge-warning{color:#fff;background-color:#bf7e16}a.badge-warning:hover,a.badge-warning:focus{color:#fff;background-color:#916011}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.badge-danger{color:#fff;background-color:#dd4b39}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#c23321}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:hover,a.badge-light:focus{color:#212529;background-color:#dae0e5}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#1d2124}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.badge-primary-accent{color:#fff;background-color:#1252A3}a.badge-primary-accent:hover,a.badge-primary-accent:focus{color:#fff;background-color:#0d3b75}a.badge-primary-accent:focus,a.badge-primary-accent.focus{outline:0;box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.badge-secondary-alt{color:#fff;background-color:#1A3B66}a.badge-secondary-alt:hover,a.badge-secondary-alt:focus{color:#fff;background-color:#10233d}a.badge-secondary-alt:focus,a.badge-secondary-alt.focus{outline:0;box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width: 1px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#0c3072;background-color:#d1dff8;border-color:#bed2f5}.alert-primary hr{border-top-color:#a8c3f2}.alert-primary .alert-link{color:#071d44}.alert-secondary{color:#6b6e71;background-color:#f5f6f8;border-color:#f1f3f5}.alert-secondary hr{border-top-color:#e2e6ea}.alert-secondary .alert-link{color:#525557}.alert-success{color:#00562f;background-color:#ccedde;border-color:#b8e6d1}.alert-success hr{border-top-color:#a5dfc5}.alert-success .alert-link{color:#002313}.alert-info{color:#2c2c2c;background-color:#ddd;border-color:#cfcfcf}.alert-info hr{border-top-color:#c2c2c2}.alert-info .alert-link{color:#131313}.alert-warning{color:#63420b;background-color:#f2e5d0;border-color:#eddbbe}.alert-warning hr{border-top-color:#e7d0aa}.alert-warning .alert-link{color:#352306}.alert-danger{color:#73271e;background-color:#f8dbd7;border-color:#f5cdc8}.alert-danger hr{border-top-color:#f1b9b2}.alert-danger .alert-link{color:#4b1913}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}.alert-primary-accent{color:#092b55;background-color:#d0dced;border-color:#bdcfe5}.alert-primary-accent hr{border-top-color:#abc2de}.alert-primary-accent .alert-link{color:#041427}.alert-secondary-alt{color:#0e1f35;background-color:#d1d8e0;border-color:#bfc8d4}.alert-secondary-alt hr{border-top-color:#b0bbca}.alert-secondary-alt .alert-link{color:#03070d}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#175DDC;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#333;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.6rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#333;background-color:#fff;border-color:rgba(0,0,0,0.125)}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width: 1px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 2px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 3px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 4px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#0c3072;background-color:#bed2f5}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#0c3072;background-color:#a8c3f2}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#0c3072;border-color:#0c3072}.list-group-item-secondary{color:#6b6e71;background-color:#f1f3f5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#6b6e71;background-color:#e2e6ea}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#6b6e71;border-color:#6b6e71}.list-group-item-success{color:#00562f;background-color:#b8e6d1}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#00562f;background-color:#a5dfc5}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#00562f;border-color:#00562f}.list-group-item-info{color:#2c2c2c;background-color:#cfcfcf}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#2c2c2c;background-color:#c2c2c2}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#2c2c2c;border-color:#2c2c2c}.list-group-item-warning{color:#63420b;background-color:#eddbbe}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#63420b;background-color:#e7d0aa}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#63420b;border-color:#63420b}.list-group-item-danger{color:#73271e;background-color:#f5cdc8}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#73271e;background-color:#f1b9b2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#73271e;border-color:#73271e}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.list-group-item-primary-accent{color:#092b55;background-color:#bdcfe5}.list-group-item-primary-accent.list-group-item-action:hover,.list-group-item-primary-accent.list-group-item-action:focus{color:#092b55;background-color:#abc2de}.list-group-item-primary-accent.list-group-item-action.active{color:#fff;background-color:#092b55;border-color:#092b55}.list-group-item-secondary-alt{color:#0e1f35;background-color:#bfc8d4}.list-group-item-secondary-alt.list-group-item-action:hover,.list-group-item-secondary-alt.list-group-item-action:focus{color:#0e1f35;background-color:#b0bbca}.list-group-item-secondary-alt.list-group-item-action.active{color:#fff;background-color:#0e1f35;border-color:#0e1f35}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0;appearance:none}a.close.disabled{pointer-events:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.3}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 1px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width: 3px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 4px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=\"top\"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=\"top\"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=\"right\"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=\"right\"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=\"bottom\"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=\"left\"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=\"left\"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^=\"top\"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^=\"top\"]>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^=\"top\"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^=\"top\"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^=\"right\"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^=\"right\"]>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^=\"right\"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^=\"right\"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^=\"bottom\"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^=\"bottom\"]>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^=\"bottom\"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^=\"bottom\"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^=\"left\"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^=\"left\"]>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^=\"left\"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^=\"left\"]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#333}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:\"\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50% / 100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#175DDC !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#1249ae !important}.bg-secondary{background-color:#ced4da !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#b1bbc4 !important}.bg-success{background-color:#00a65a !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#00733e !important}.bg-info{background-color:#555 !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#3c3c3c !important}.bg-warning{background-color:#bf7e16 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#916011 !important}.bg-danger{background-color:#dd4b39 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#c23321 !important}.bg-light{background-color:#f8f9fa !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5 !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-primary-accent{background-color:#1252A3 !important}a.bg-primary-accent:hover,a.bg-primary-accent:focus,button.bg-primary-accent:hover,button.bg-primary-accent:focus{background-color:#0d3b75 !important}.bg-secondary-alt{background-color:#1A3B66 !important}a.bg-secondary-alt:hover,a.bg-secondary-alt:focus,button.bg-secondary-alt:hover,button.bg-secondary-alt:focus{background-color:#10233d !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #dee2e6 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-right{border-right:1px solid #dee2e6 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-left{border-left:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#175DDC !important}.border-secondary{border-color:#ced4da !important}.border-success{border-color:#00a65a !important}.border-info{border-color:#555 !important}.border-warning{border-color:#bf7e16 !important}.border-danger{border-color:#dd4b39 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#343a40 !important}.border-primary-accent{border-color:#1252A3 !important}.border-secondary-alt{border-color:#1A3B66 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded,.table.table-list td.table-list-icon img,app-avatar img{border-radius:.25rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-right{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-left{border-top-left-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-lg{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:\"\"}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 1px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 2px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 3px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 4px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 1px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 2px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 3px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 4px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 1px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 2px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 3px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 4px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only,.table.table-list tr:not(:hover) td.table-list-options>.dropdown:not(.show) button:not(:focus):not(:active),.table.table-list tr:not(:hover) td.table-list-options>button:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\"\";background-color:rgba(0,0,0,0)}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.form-check-block .form-check-label>span,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.form-check-block+.form-check-block:not(.mt-2),.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.card-body-header,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-.25rem !important}.mt-n1,.my-n1{margin-top:-.25rem !important}.mr-n1,.mx-n1{margin-right:-.25rem !important}.mb-n1,.my-n1{margin-bottom:-.25rem !important}.ml-n1,.mx-n1{margin-left:-.25rem !important}.m-n2{margin:-.5rem !important}.mt-n2,.my-n2{margin-top:-.5rem !important}.mr-n2,.mx-n2{margin-right:-.5rem !important}.mb-n2,.my-n2{margin-bottom:-.5rem !important}.ml-n2,.mx-n2{margin-left:-.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 1px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem !important}.m-sm-n2{margin:-.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 2px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem !important}.m-md-n2{margin:-.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 3px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem !important}.m-lg-n2{margin:-.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 4px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem !important}.m-xl-n2{margin:-.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.text-monospace,.totp .totp-code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 1px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 2px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 3px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 4px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#175DDC !important}a.text-primary:hover,a.text-primary:focus{color:#104097 !important}.text-secondary{color:#ced4da !important}a.text-secondary:hover,a.text-secondary:focus{color:#a2aeb9 !important}.text-success{color:#00a65a !important}a.text-success:hover,a.text-success:focus{color:#005a31 !important}.text-info{color:#555 !important}a.text-info:hover,a.text-info:focus{color:#2f2f2f !important}.text-warning{color:#bf7e16 !important}a.text-warning:hover,a.text-warning:focus{color:#7a510e !important}.text-danger{color:#dd4b39 !important}a.text-danger:hover,a.text-danger:focus{color:#ac2d1e !important}.text-light{color:#f8f9fa !important}a.text-light:hover,a.text-light:focus{color:#cbd3da !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#121416 !important}.text-primary-accent{color:#1252A3 !important}a.text-primary-accent:hover,a.text-primary-accent:focus{color:#0a2f5e !important}.text-secondary-alt{color:#1A3B66 !important}a.text-secondary-alt:hover,a.text-secondary-alt:focus{color:#0a1829 !important}.text-body{color:#333 !important}.text-muted,.card-header small,.modal-header small{color:#6c757d !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;overflow-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:3px !important}.container{min-width:3px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #dee2e6 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:'FontAwesome';src:url(../fonts/fontawesome-webfont.eot);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format(\"embedded-opentype\"),url(../fonts/fontawesome-webfont.woff2) format(\"woff2\"),url(../fonts/fontawesome-webfont.woff) format(\"woff\"),url(../fonts/fontawesome-webfont.ttf) format(\"truetype\"),url(../fonts/fontawesome-webfont.svg#fontawesomeregular) format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\\F000\"}.fa-music:before{content:\"\\F001\"}.fa-search:before{content:\"\\F002\"}.fa-envelope-o:before{content:\"\\F003\"}.fa-heart:before{content:\"\\F004\"}.fa-star:before{content:\"\\F005\"}.fa-star-o:before{content:\"\\F006\"}.fa-user:before{content:\"\\F007\"}.fa-film:before{content:\"\\F008\"}.fa-th-large:before{content:\"\\F009\"}.fa-th:before{content:\"\\F00A\"}.fa-th-list:before{content:\"\\F00B\"}.fa-check:before{content:\"\\F00C\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\\F00D\"}.fa-search-plus:before{content:\"\\F00E\"}.fa-search-minus:before{content:\"\\F010\"}.fa-power-off:before{content:\"\\F011\"}.fa-signal:before{content:\"\\F012\"}.fa-gear:before,.fa-cog:before{content:\"\\F013\"}.fa-trash-o:before{content:\"\\F014\"}.fa-home:before{content:\"\\F015\"}.fa-file-o:before{content:\"\\F016\"}.fa-clock-o:before{content:\"\\F017\"}.fa-road:before{content:\"\\F018\"}.fa-download:before{content:\"\\F019\"}.fa-arrow-circle-o-down:before{content:\"\\F01A\"}.fa-arrow-circle-o-up:before{content:\"\\F01B\"}.fa-inbox:before{content:\"\\F01C\"}.fa-play-circle-o:before{content:\"\\F01D\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\\F01E\"}.fa-refresh:before{content:\"\\F021\"}.fa-list-alt:before{content:\"\\F022\"}.fa-lock:before{content:\"\\F023\"}.fa-flag:before{content:\"\\F024\"}.fa-headphones:before{content:\"\\F025\"}.fa-volume-off:before{content:\"\\F026\"}.fa-volume-down:before{content:\"\\F027\"}.fa-volume-up:before{content:\"\\F028\"}.fa-qrcode:before{content:\"\\F029\"}.fa-barcode:before{content:\"\\F02A\"}.fa-tag:before{content:\"\\F02B\"}.fa-tags:before{content:\"\\F02C\"}.fa-book:before{content:\"\\F02D\"}.fa-bookmark:before{content:\"\\F02E\"}.fa-print:before{content:\"\\F02F\"}.fa-camera:before{content:\"\\F030\"}.fa-font:before{content:\"\\F031\"}.fa-bold:before{content:\"\\F032\"}.fa-italic:before{content:\"\\F033\"}.fa-text-height:before{content:\"\\F034\"}.fa-text-width:before{content:\"\\F035\"}.fa-align-left:before{content:\"\\F036\"}.fa-align-center:before{content:\"\\F037\"}.fa-align-right:before{content:\"\\F038\"}.fa-align-justify:before{content:\"\\F039\"}.fa-list:before{content:\"\\F03A\"}.fa-dedent:before,.fa-outdent:before{content:\"\\F03B\"}.fa-indent:before{content:\"\\F03C\"}.fa-video-camera:before{content:\"\\F03D\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\\F03E\"}.fa-pencil:before{content:\"\\F040\"}.fa-map-marker:before{content:\"\\F041\"}.fa-adjust:before{content:\"\\F042\"}.fa-tint:before{content:\"\\F043\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\\F044\"}.fa-share-square-o:before{content:\"\\F045\"}.fa-check-square-o:before{content:\"\\F046\"}.fa-arrows:before{content:\"\\F047\"}.fa-step-backward:before{content:\"\\F048\"}.fa-fast-backward:before{content:\"\\F049\"}.fa-backward:before{content:\"\\F04A\"}.fa-play:before{content:\"\\F04B\"}.fa-pause:before{content:\"\\F04C\"}.fa-stop:before{content:\"\\F04D\"}.fa-forward:before{content:\"\\F04E\"}.fa-fast-forward:before{content:\"\\F050\"}.fa-step-forward:before{content:\"\\F051\"}.fa-eject:before{content:\"\\F052\"}.fa-chevron-left:before{content:\"\\F053\"}.fa-chevron-right:before{content:\"\\F054\"}.fa-plus-circle:before{content:\"\\F055\"}.fa-minus-circle:before{content:\"\\F056\"}.fa-times-circle:before{content:\"\\F057\"}.fa-check-circle:before{content:\"\\F058\"}.fa-question-circle:before{content:\"\\F059\"}.fa-info-circle:before{content:\"\\F05A\"}.fa-crosshairs:before{content:\"\\F05B\"}.fa-times-circle-o:before{content:\"\\F05C\"}.fa-check-circle-o:before{content:\"\\F05D\"}.fa-ban:before{content:\"\\F05E\"}.fa-arrow-left:before{content:\"\\F060\"}.fa-arrow-right:before{content:\"\\F061\"}.fa-arrow-up:before{content:\"\\F062\"}.fa-arrow-down:before{content:\"\\F063\"}.fa-mail-forward:before,.fa-share:before{content:\"\\F064\"}.fa-expand:before{content:\"\\F065\"}.fa-compress:before{content:\"\\F066\"}.fa-plus:before{content:\"\\F067\"}.fa-minus:before{content:\"\\F068\"}.fa-asterisk:before{content:\"\\F069\"}.fa-exclamation-circle:before{content:\"\\F06A\"}.fa-gift:before{content:\"\\F06B\"}.fa-leaf:before{content:\"\\F06C\"}.fa-fire:before{content:\"\\F06D\"}.fa-eye:before{content:\"\\F06E\"}.fa-eye-slash:before{content:\"\\F070\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\\F071\"}.fa-plane:before{content:\"\\F072\"}.fa-calendar:before{content:\"\\F073\"}.fa-random:before{content:\"\\F074\"}.fa-comment:before{content:\"\\F075\"}.fa-magnet:before{content:\"\\F076\"}.fa-chevron-up:before{content:\"\\F077\"}.fa-chevron-down:before{content:\"\\F078\"}.fa-retweet:before{content:\"\\F079\"}.fa-shopping-cart:before{content:\"\\F07A\"}.fa-folder:before{content:\"\\F07B\"}.fa-folder-open:before{content:\"\\F07C\"}.fa-arrows-v:before{content:\"\\F07D\"}.fa-arrows-h:before{content:\"\\F07E\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\\F080\"}.fa-twitter-square:before{content:\"\\F081\"}.fa-facebook-square:before{content:\"\\F082\"}.fa-camera-retro:before{content:\"\\F083\"}.fa-key:before{content:\"\\F084\"}.fa-gears:before,.fa-cogs:before{content:\"\\F085\"}.fa-comments:before{content:\"\\F086\"}.fa-thumbs-o-up:before{content:\"\\F087\"}.fa-thumbs-o-down:before{content:\"\\F088\"}.fa-star-half:before{content:\"\\F089\"}.fa-heart-o:before{content:\"\\F08A\"}.fa-sign-out:before{content:\"\\F08B\"}.fa-linkedin-square:before{content:\"\\F08C\"}.fa-thumb-tack:before{content:\"\\F08D\"}.fa-external-link:before{content:\"\\F08E\"}.fa-sign-in:before{content:\"\\F090\"}.fa-trophy:before{content:\"\\F091\"}.fa-github-square:before{content:\"\\F092\"}.fa-upload:before{content:\"\\F093\"}.fa-lemon-o:before{content:\"\\F094\"}.fa-phone:before{content:\"\\F095\"}.fa-square-o:before{content:\"\\F096\"}.fa-bookmark-o:before{content:\"\\F097\"}.fa-phone-square:before{content:\"\\F098\"}.fa-twitter:before{content:\"\\F099\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\\F09A\"}.fa-github:before{content:\"\\F09B\"}.fa-unlock:before{content:\"\\F09C\"}.fa-credit-card:before{content:\"\\F09D\"}.fa-feed:before,.fa-rss:before{content:\"\\F09E\"}.fa-hdd-o:before{content:\"\\F0A0\"}.fa-bullhorn:before{content:\"\\F0A1\"}.fa-bell:before{content:\"\\F0F3\"}.fa-certificate:before{content:\"\\F0A3\"}.fa-hand-o-right:before{content:\"\\F0A4\"}.fa-hand-o-left:before{content:\"\\F0A5\"}.fa-hand-o-up:before{content:\"\\F0A6\"}.fa-hand-o-down:before{content:\"\\F0A7\"}.fa-arrow-circle-left:before{content:\"\\F0A8\"}.fa-arrow-circle-right:before{content:\"\\F0A9\"}.fa-arrow-circle-up:before{content:\"\\F0AA\"}.fa-arrow-circle-down:before{content:\"\\F0AB\"}.fa-globe:before{content:\"\\F0AC\"}.fa-wrench:before{content:\"\\F0AD\"}.fa-tasks:before{content:\"\\F0AE\"}.fa-filter:before{content:\"\\F0B0\"}.fa-briefcase:before{content:\"\\F0B1\"}.fa-arrows-alt:before{content:\"\\F0B2\"}.fa-group:before,.fa-users:before{content:\"\\F0C0\"}.fa-chain:before,.fa-link:before{content:\"\\F0C1\"}.fa-cloud:before{content:\"\\F0C2\"}.fa-flask:before{content:\"\\F0C3\"}.fa-cut:before,.fa-scissors:before{content:\"\\F0C4\"}.fa-copy:before,.fa-files-o:before{content:\"\\F0C5\"}.fa-paperclip:before{content:\"\\F0C6\"}.fa-save:before,.fa-floppy-o:before{content:\"\\F0C7\"}.fa-square:before{content:\"\\F0C8\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\\F0C9\"}.fa-list-ul:before{content:\"\\F0CA\"}.fa-list-ol:before{content:\"\\F0CB\"}.fa-strikethrough:before{content:\"\\F0CC\"}.fa-underline:before{content:\"\\F0CD\"}.fa-table:before{content:\"\\F0CE\"}.fa-magic:before{content:\"\\F0D0\"}.fa-truck:before{content:\"\\F0D1\"}.fa-pinterest:before{content:\"\\F0D2\"}.fa-pinterest-square:before{content:\"\\F0D3\"}.fa-google-plus-square:before{content:\"\\F0D4\"}.fa-google-plus:before{content:\"\\F0D5\"}.fa-money:before{content:\"\\F0D6\"}.fa-caret-down:before{content:\"\\F0D7\"}.fa-caret-up:before{content:\"\\F0D8\"}.fa-caret-left:before{content:\"\\F0D9\"}.fa-caret-right:before{content:\"\\F0DA\"}.fa-columns:before{content:\"\\F0DB\"}.fa-unsorted:before,.fa-sort:before{content:\"\\F0DC\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\\F0DD\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\\F0DE\"}.fa-envelope:before{content:\"\\F0E0\"}.fa-linkedin:before{content:\"\\F0E1\"}.fa-rotate-left:before,.fa-undo:before{content:\"\\F0E2\"}.fa-legal:before,.fa-gavel:before{content:\"\\F0E3\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\\F0E4\"}.fa-comment-o:before{content:\"\\F0E5\"}.fa-comments-o:before{content:\"\\F0E6\"}.fa-flash:before,.fa-bolt:before{content:\"\\F0E7\"}.fa-sitemap:before{content:\"\\F0E8\"}.fa-umbrella:before{content:\"\\F0E9\"}.fa-paste:before,.fa-clipboard:before{content:\"\\F0EA\"}.fa-lightbulb-o:before{content:\"\\F0EB\"}.fa-exchange:before{content:\"\\F0EC\"}.fa-cloud-download:before{content:\"\\F0ED\"}.fa-cloud-upload:before{content:\"\\F0EE\"}.fa-user-md:before{content:\"\\F0F0\"}.fa-stethoscope:before{content:\"\\F0F1\"}.fa-suitcase:before{content:\"\\F0F2\"}.fa-bell-o:before{content:\"\\F0A2\"}.fa-coffee:before{content:\"\\F0F4\"}.fa-cutlery:before{content:\"\\F0F5\"}.fa-file-text-o:before{content:\"\\F0F6\"}.fa-building-o:before{content:\"\\F0F7\"}.fa-hospital-o:before{content:\"\\F0F8\"}.fa-ambulance:before{content:\"\\F0F9\"}.fa-medkit:before{content:\"\\F0FA\"}.fa-fighter-jet:before{content:\"\\F0FB\"}.fa-beer:before{content:\"\\F0FC\"}.fa-h-square:before{content:\"\\F0FD\"}.fa-plus-square:before{content:\"\\F0FE\"}.fa-angle-double-left:before{content:\"\\F100\"}.fa-angle-double-right:before{content:\"\\F101\"}.fa-angle-double-up:before{content:\"\\F102\"}.fa-angle-double-down:before{content:\"\\F103\"}.fa-angle-left:before{content:\"\\F104\"}.fa-angle-right:before{content:\"\\F105\"}.fa-angle-up:before{content:\"\\F106\"}.fa-angle-down:before{content:\"\\F107\"}.fa-desktop:before{content:\"\\F108\"}.fa-laptop:before{content:\"\\F109\"}.fa-tablet:before{content:\"\\F10A\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\\F10B\"}.fa-circle-o:before{content:\"\\F10C\"}.fa-quote-left:before{content:\"\\F10D\"}.fa-quote-right:before{content:\"\\F10E\"}.fa-spinner:before{content:\"\\F110\"}.fa-circle:before{content:\"\\F111\"}.fa-mail-reply:before,.fa-reply:before{content:\"\\F112\"}.fa-github-alt:before{content:\"\\F113\"}.fa-folder-o:before{content:\"\\F114\"}.fa-folder-open-o:before{content:\"\\F115\"}.fa-smile-o:before{content:\"\\F118\"}.fa-frown-o:before{content:\"\\F119\"}.fa-meh-o:before{content:\"\\F11A\"}.fa-gamepad:before{content:\"\\F11B\"}.fa-keyboard-o:before{content:\"\\F11C\"}.fa-flag-o:before{content:\"\\F11D\"}.fa-flag-checkered:before{content:\"\\F11E\"}.fa-terminal:before{content:\"\\F120\"}.fa-code:before{content:\"\\F121\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\\F122\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\\F123\"}.fa-location-arrow:before{content:\"\\F124\"}.fa-crop:before{content:\"\\F125\"}.fa-code-fork:before{content:\"\\F126\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\\F127\"}.fa-question:before{content:\"\\F128\"}.fa-info:before{content:\"\\F129\"}.fa-exclamation:before{content:\"\\F12A\"}.fa-superscript:before{content:\"\\F12B\"}.fa-subscript:before{content:\"\\F12C\"}.fa-eraser:before{content:\"\\F12D\"}.fa-puzzle-piece:before{content:\"\\F12E\"}.fa-microphone:before{content:\"\\F130\"}.fa-microphone-slash:before{content:\"\\F131\"}.fa-shield:before{content:\"\\F132\"}.fa-calendar-o:before{content:\"\\F133\"}.fa-fire-extinguisher:before{content:\"\\F134\"}.fa-rocket:before{content:\"\\F135\"}.fa-maxcdn:before{content:\"\\F136\"}.fa-chevron-circle-left:before{content:\"\\F137\"}.fa-chevron-circle-right:before{content:\"\\F138\"}.fa-chevron-circle-up:before{content:\"\\F139\"}.fa-chevron-circle-down:before{content:\"\\F13A\"}.fa-html5:before{content:\"\\F13B\"}.fa-css3:before{content:\"\\F13C\"}.fa-anchor:before{content:\"\\F13D\"}.fa-unlock-alt:before{content:\"\\F13E\"}.fa-bullseye:before{content:\"\\F140\"}.fa-ellipsis-h:before{content:\"\\F141\"}.fa-ellipsis-v:before{content:\"\\F142\"}.fa-rss-square:before{content:\"\\F143\"}.fa-play-circle:before{content:\"\\F144\"}.fa-ticket:before{content:\"\\F145\"}.fa-minus-square:before{content:\"\\F146\"}.fa-minus-square-o:before{content:\"\\F147\"}.fa-level-up:before{content:\"\\F148\"}.fa-level-down:before{content:\"\\F149\"}.fa-check-square:before{content:\"\\F14A\"}.fa-pencil-square:before{content:\"\\F14B\"}.fa-external-link-square:before{content:\"\\F14C\"}.fa-share-square:before{content:\"\\F14D\"}.fa-compass:before{content:\"\\F14E\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\\F150\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\\F151\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\\F152\"}.fa-euro:before,.fa-eur:before{content:\"\\F153\"}.fa-gbp:before{content:\"\\F154\"}.fa-dollar:before,.fa-usd:before{content:\"\\F155\"}.fa-rupee:before,.fa-inr:before{content:\"\\F156\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\\F157\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\\F158\"}.fa-won:before,.fa-krw:before{content:\"\\F159\"}.fa-bitcoin:before,.fa-btc:before{content:\"\\F15A\"}.fa-file:before{content:\"\\F15B\"}.fa-file-text:before{content:\"\\F15C\"}.fa-sort-alpha-asc:before{content:\"\\F15D\"}.fa-sort-alpha-desc:before{content:\"\\F15E\"}.fa-sort-amount-asc:before{content:\"\\F160\"}.fa-sort-amount-desc:before{content:\"\\F161\"}.fa-sort-numeric-asc:before{content:\"\\F162\"}.fa-sort-numeric-desc:before{content:\"\\F163\"}.fa-thumbs-up:before{content:\"\\F164\"}.fa-thumbs-down:before{content:\"\\F165\"}.fa-youtube-square:before{content:\"\\F166\"}.fa-youtube:before{content:\"\\F167\"}.fa-xing:before{content:\"\\F168\"}.fa-xing-square:before{content:\"\\F169\"}.fa-youtube-play:before{content:\"\\F16A\"}.fa-dropbox:before{content:\"\\F16B\"}.fa-stack-overflow:before{content:\"\\F16C\"}.fa-instagram:before{content:\"\\F16D\"}.fa-flickr:before{content:\"\\F16E\"}.fa-adn:before{content:\"\\F170\"}.fa-bitbucket:before{content:\"\\F171\"}.fa-bitbucket-square:before{content:\"\\F172\"}.fa-tumblr:before{content:\"\\F173\"}.fa-tumblr-square:before{content:\"\\F174\"}.fa-long-arrow-down:before{content:\"\\F175\"}.fa-long-arrow-up:before{content:\"\\F176\"}.fa-long-arrow-left:before{content:\"\\F177\"}.fa-long-arrow-right:before{content:\"\\F178\"}.fa-apple:before{content:\"\\F179\"}.fa-windows:before{content:\"\\F17A\"}.fa-android:before{content:\"\\F17B\"}.fa-linux:before{content:\"\\F17C\"}.fa-dribbble:before{content:\"\\F17D\"}.fa-skype:before{content:\"\\F17E\"}.fa-foursquare:before{content:\"\\F180\"}.fa-trello:before{content:\"\\F181\"}.fa-female:before{content:\"\\F182\"}.fa-male:before{content:\"\\F183\"}.fa-gittip:before,.fa-gratipay:before{content:\"\\F184\"}.fa-sun-o:before{content:\"\\F185\"}.fa-moon-o:before{content:\"\\F186\"}.fa-archive:before{content:\"\\F187\"}.fa-bug:before{content:\"\\F188\"}.fa-vk:before{content:\"\\F189\"}.fa-weibo:before{content:\"\\F18A\"}.fa-renren:before{content:\"\\F18B\"}.fa-pagelines:before{content:\"\\F18C\"}.fa-stack-exchange:before{content:\"\\F18D\"}.fa-arrow-circle-o-right:before{content:\"\\F18E\"}.fa-arrow-circle-o-left:before{content:\"\\F190\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\\F191\"}.fa-dot-circle-o:before{content:\"\\F192\"}.fa-wheelchair:before{content:\"\\F193\"}.fa-vimeo-square:before{content:\"\\F194\"}.fa-turkish-lira:before,.fa-try:before{content:\"\\F195\"}.fa-plus-square-o:before{content:\"\\F196\"}.fa-space-shuttle:before{content:\"\\F197\"}.fa-slack:before{content:\"\\F198\"}.fa-envelope-square:before{content:\"\\F199\"}.fa-wordpress:before{content:\"\\F19A\"}.fa-openid:before{content:\"\\F19B\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\\F19C\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\\F19D\"}.fa-yahoo:before{content:\"\\F19E\"}.fa-google:before{content:\"\\F1A0\"}.fa-reddit:before{content:\"\\F1A1\"}.fa-reddit-square:before{content:\"\\F1A2\"}.fa-stumbleupon-circle:before{content:\"\\F1A3\"}.fa-stumbleupon:before{content:\"\\F1A4\"}.fa-delicious:before{content:\"\\F1A5\"}.fa-digg:before{content:\"\\F1A6\"}.fa-pied-piper-pp:before{content:\"\\F1A7\"}.fa-pied-piper-alt:before{content:\"\\F1A8\"}.fa-drupal:before{content:\"\\F1A9\"}.fa-joomla:before{content:\"\\F1AA\"}.fa-language:before{content:\"\\F1AB\"}.fa-fax:before{content:\"\\F1AC\"}.fa-building:before{content:\"\\F1AD\"}.fa-child:before{content:\"\\F1AE\"}.fa-paw:before{content:\"\\F1B0\"}.fa-spoon:before{content:\"\\F1B1\"}.fa-cube:before{content:\"\\F1B2\"}.fa-cubes:before{content:\"\\F1B3\"}.fa-behance:before{content:\"\\F1B4\"}.fa-behance-square:before{content:\"\\F1B5\"}.fa-steam:before{content:\"\\F1B6\"}.fa-steam-square:before{content:\"\\F1B7\"}.fa-recycle:before{content:\"\\F1B8\"}.fa-automobile:before,.fa-car:before{content:\"\\F1B9\"}.fa-cab:before,.fa-taxi:before{content:\"\\F1BA\"}.fa-tree:before{content:\"\\F1BB\"}.fa-spotify:before{content:\"\\F1BC\"}.fa-deviantart:before{content:\"\\F1BD\"}.fa-soundcloud:before{content:\"\\F1BE\"}.fa-database:before{content:\"\\F1C0\"}.fa-file-pdf-o:before{content:\"\\F1C1\"}.fa-file-word-o:before{content:\"\\F1C2\"}.fa-file-excel-o:before{content:\"\\F1C3\"}.fa-file-powerpoint-o:before{content:\"\\F1C4\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\\F1C5\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\\F1C6\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\\F1C7\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\\F1C8\"}.fa-file-code-o:before{content:\"\\F1C9\"}.fa-vine:before{content:\"\\F1CA\"}.fa-codepen:before{content:\"\\F1CB\"}.fa-jsfiddle:before{content:\"\\F1CC\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\\F1CD\"}.fa-circle-o-notch:before{content:\"\\F1CE\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\\F1D0\"}.fa-ge:before,.fa-empire:before{content:\"\\F1D1\"}.fa-git-square:before{content:\"\\F1D2\"}.fa-git:before{content:\"\\F1D3\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\\F1D4\"}.fa-tencent-weibo:before{content:\"\\F1D5\"}.fa-qq:before{content:\"\\F1D6\"}.fa-wechat:before,.fa-weixin:before{content:\"\\F1D7\"}.fa-send:before,.fa-paper-plane:before{content:\"\\F1D8\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\\F1D9\"}.fa-history:before{content:\"\\F1DA\"}.fa-circle-thin:before{content:\"\\F1DB\"}.fa-header:before{content:\"\\F1DC\"}.fa-paragraph:before{content:\"\\F1DD\"}.fa-sliders:before{content:\"\\F1DE\"}.fa-share-alt:before{content:\"\\F1E0\"}.fa-share-alt-square:before{content:\"\\F1E1\"}.fa-bomb:before{content:\"\\F1E2\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\\F1E3\"}.fa-tty:before{content:\"\\F1E4\"}.fa-binoculars:before{content:\"\\F1E5\"}.fa-plug:before{content:\"\\F1E6\"}.fa-slideshare:before{content:\"\\F1E7\"}.fa-twitch:before{content:\"\\F1E8\"}.fa-yelp:before{content:\"\\F1E9\"}.fa-newspaper-o:before{content:\"\\F1EA\"}.fa-wifi:before{content:\"\\F1EB\"}.fa-calculator:before{content:\"\\F1EC\"}.fa-paypal:before{content:\"\\F1ED\"}.fa-google-wallet:before{content:\"\\F1EE\"}.fa-cc-visa:before{content:\"\\F1F0\"}.fa-cc-mastercard:before{content:\"\\F1F1\"}.fa-cc-discover:before{content:\"\\F1F2\"}.fa-cc-amex:before{content:\"\\F1F3\"}.fa-cc-paypal:before{content:\"\\F1F4\"}.fa-cc-stripe:before{content:\"\\F1F5\"}.fa-bell-slash:before{content:\"\\F1F6\"}.fa-bell-slash-o:before{content:\"\\F1F7\"}.fa-trash:before{content:\"\\F1F8\"}.fa-copyright:before{content:\"\\F1F9\"}.fa-at:before{content:\"\\F1FA\"}.fa-eyedropper:before{content:\"\\F1FB\"}.fa-paint-brush:before{content:\"\\F1FC\"}.fa-birthday-cake:before{content:\"\\F1FD\"}.fa-area-chart:before{content:\"\\F1FE\"}.fa-pie-chart:before{content:\"\\F200\"}.fa-line-chart:before{content:\"\\F201\"}.fa-lastfm:before{content:\"\\F202\"}.fa-lastfm-square:before{content:\"\\F203\"}.fa-toggle-off:before{content:\"\\F204\"}.fa-toggle-on:before{content:\"\\F205\"}.fa-bicycle:before{content:\"\\F206\"}.fa-bus:before{content:\"\\F207\"}.fa-ioxhost:before{content:\"\\F208\"}.fa-angellist:before{content:\"\\F209\"}.fa-cc:before{content:\"\\F20A\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\\F20B\"}.fa-meanpath:before{content:\"\\F20C\"}.fa-buysellads:before{content:\"\\F20D\"}.fa-connectdevelop:before{content:\"\\F20E\"}.fa-dashcube:before{content:\"\\F210\"}.fa-forumbee:before{content:\"\\F211\"}.fa-leanpub:before{content:\"\\F212\"}.fa-sellsy:before{content:\"\\F213\"}.fa-shirtsinbulk:before{content:\"\\F214\"}.fa-simplybuilt:before{content:\"\\F215\"}.fa-skyatlas:before{content:\"\\F216\"}.fa-cart-plus:before{content:\"\\F217\"}.fa-cart-arrow-down:before{content:\"\\F218\"}.fa-diamond:before{content:\"\\F219\"}.fa-ship:before{content:\"\\F21A\"}.fa-user-secret:before{content:\"\\F21B\"}.fa-motorcycle:before{content:\"\\F21C\"}.fa-street-view:before{content:\"\\F21D\"}.fa-heartbeat:before{content:\"\\F21E\"}.fa-venus:before{content:\"\\F221\"}.fa-mars:before{content:\"\\F222\"}.fa-mercury:before{content:\"\\F223\"}.fa-intersex:before,.fa-transgender:before{content:\"\\F224\"}.fa-transgender-alt:before{content:\"\\F225\"}.fa-venus-double:before{content:\"\\F226\"}.fa-mars-double:before{content:\"\\F227\"}.fa-venus-mars:before{content:\"\\F228\"}.fa-mars-stroke:before{content:\"\\F229\"}.fa-mars-stroke-v:before{content:\"\\F22A\"}.fa-mars-stroke-h:before{content:\"\\F22B\"}.fa-neuter:before{content:\"\\F22C\"}.fa-genderless:before{content:\"\\F22D\"}.fa-facebook-official:before{content:\"\\F230\"}.fa-pinterest-p:before{content:\"\\F231\"}.fa-whatsapp:before{content:\"\\F232\"}.fa-server:before{content:\"\\F233\"}.fa-user-plus:before{content:\"\\F234\"}.fa-user-times:before{content:\"\\F235\"}.fa-hotel:before,.fa-bed:before{content:\"\\F236\"}.fa-viacoin:before{content:\"\\F237\"}.fa-train:before{content:\"\\F238\"}.fa-subway:before{content:\"\\F239\"}.fa-medium:before{content:\"\\F23A\"}.fa-yc:before,.fa-y-combinator:before{content:\"\\F23B\"}.fa-optin-monster:before{content:\"\\F23C\"}.fa-opencart:before{content:\"\\F23D\"}.fa-expeditedssl:before{content:\"\\F23E\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\\F240\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\\F241\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\\F242\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\\F243\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\\F244\"}.fa-mouse-pointer:before{content:\"\\F245\"}.fa-i-cursor:before{content:\"\\F246\"}.fa-object-group:before{content:\"\\F247\"}.fa-object-ungroup:before{content:\"\\F248\"}.fa-sticky-note:before{content:\"\\F249\"}.fa-sticky-note-o:before{content:\"\\F24A\"}.fa-cc-jcb:before{content:\"\\F24B\"}.fa-cc-diners-club:before{content:\"\\F24C\"}.fa-clone:before{content:\"\\F24D\"}.fa-balance-scale:before{content:\"\\F24E\"}.fa-hourglass-o:before{content:\"\\F250\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\\F251\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\\F252\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\\F253\"}.fa-hourglass:before{content:\"\\F254\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\\F255\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\\F256\"}.fa-hand-scissors-o:before{content:\"\\F257\"}.fa-hand-lizard-o:before{content:\"\\F258\"}.fa-hand-spock-o:before{content:\"\\F259\"}.fa-hand-pointer-o:before{content:\"\\F25A\"}.fa-hand-peace-o:before{content:\"\\F25B\"}.fa-trademark:before{content:\"\\F25C\"}.fa-registered:before{content:\"\\F25D\"}.fa-creative-commons:before{content:\"\\F25E\"}.fa-gg:before{content:\"\\F260\"}.fa-gg-circle:before{content:\"\\F261\"}.fa-tripadvisor:before{content:\"\\F262\"}.fa-odnoklassniki:before{content:\"\\F263\"}.fa-odnoklassniki-square:before{content:\"\\F264\"}.fa-get-pocket:before{content:\"\\F265\"}.fa-wikipedia-w:before{content:\"\\F266\"}.fa-safari:before{content:\"\\F267\"}.fa-chrome:before{content:\"\\F268\"}.fa-firefox:before{content:\"\\F269\"}.fa-opera:before{content:\"\\F26A\"}.fa-internet-explorer:before{content:\"\\F26B\"}.fa-tv:before,.fa-television:before{content:\"\\F26C\"}.fa-contao:before{content:\"\\F26D\"}.fa-500px:before{content:\"\\F26E\"}.fa-amazon:before{content:\"\\F270\"}.fa-calendar-plus-o:before{content:\"\\F271\"}.fa-calendar-minus-o:before{content:\"\\F272\"}.fa-calendar-times-o:before{content:\"\\F273\"}.fa-calendar-check-o:before{content:\"\\F274\"}.fa-industry:before{content:\"\\F275\"}.fa-map-pin:before{content:\"\\F276\"}.fa-map-signs:before{content:\"\\F277\"}.fa-map-o:before{content:\"\\F278\"}.fa-map:before{content:\"\\F279\"}.fa-commenting:before{content:\"\\F27A\"}.fa-commenting-o:before{content:\"\\F27B\"}.fa-houzz:before{content:\"\\F27C\"}.fa-vimeo:before{content:\"\\F27D\"}.fa-black-tie:before{content:\"\\F27E\"}.fa-fonticons:before{content:\"\\F280\"}.fa-reddit-alien:before{content:\"\\F281\"}.fa-edge:before{content:\"\\F282\"}.fa-credit-card-alt:before{content:\"\\F283\"}.fa-codiepie:before{content:\"\\F284\"}.fa-modx:before{content:\"\\F285\"}.fa-fort-awesome:before{content:\"\\F286\"}.fa-usb:before{content:\"\\F287\"}.fa-product-hunt:before{content:\"\\F288\"}.fa-mixcloud:before{content:\"\\F289\"}.fa-scribd:before{content:\"\\F28A\"}.fa-pause-circle:before{content:\"\\F28B\"}.fa-pause-circle-o:before{content:\"\\F28C\"}.fa-stop-circle:before{content:\"\\F28D\"}.fa-stop-circle-o:before{content:\"\\F28E\"}.fa-shopping-bag:before{content:\"\\F290\"}.fa-shopping-basket:before{content:\"\\F291\"}.fa-hashtag:before{content:\"\\F292\"}.fa-bluetooth:before{content:\"\\F293\"}.fa-bluetooth-b:before{content:\"\\F294\"}.fa-percent:before{content:\"\\F295\"}.fa-gitlab:before{content:\"\\F296\"}.fa-wpbeginner:before{content:\"\\F297\"}.fa-wpforms:before{content:\"\\F298\"}.fa-envira:before{content:\"\\F299\"}.fa-universal-access:before{content:\"\\F29A\"}.fa-wheelchair-alt:before{content:\"\\F29B\"}.fa-question-circle-o:before{content:\"\\F29C\"}.fa-blind:before{content:\"\\F29D\"}.fa-audio-description:before{content:\"\\F29E\"}.fa-volume-control-phone:before{content:\"\\F2A0\"}.fa-braille:before{content:\"\\F2A1\"}.fa-assistive-listening-systems:before{content:\"\\F2A2\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\\F2A3\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\\F2A4\"}.fa-glide:before{content:\"\\F2A5\"}.fa-glide-g:before{content:\"\\F2A6\"}.fa-signing:before,.fa-sign-language:before{content:\"\\F2A7\"}.fa-low-vision:before{content:\"\\F2A8\"}.fa-viadeo:before{content:\"\\F2A9\"}.fa-viadeo-square:before{content:\"\\F2AA\"}.fa-snapchat:before{content:\"\\F2AB\"}.fa-snapchat-ghost:before{content:\"\\F2AC\"}.fa-snapchat-square:before{content:\"\\F2AD\"}.fa-pied-piper:before{content:\"\\F2AE\"}.fa-first-order:before{content:\"\\F2B0\"}.fa-yoast:before{content:\"\\F2B1\"}.fa-themeisle:before{content:\"\\F2B2\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\\F2B3\"}.fa-fa:before,.fa-font-awesome:before{content:\"\\F2B4\"}.fa-handshake-o:before{content:\"\\F2B5\"}.fa-envelope-open:before{content:\"\\F2B6\"}.fa-envelope-open-o:before{content:\"\\F2B7\"}.fa-linode:before{content:\"\\F2B8\"}.fa-address-book:before{content:\"\\F2B9\"}.fa-address-book-o:before{content:\"\\F2BA\"}.fa-vcard:before,.fa-address-card:before{content:\"\\F2BB\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\\F2BC\"}.fa-user-circle:before{content:\"\\F2BD\"}.fa-user-circle-o:before{content:\"\\F2BE\"}.fa-user-o:before{content:\"\\F2C0\"}.fa-id-badge:before{content:\"\\F2C1\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\\F2C2\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\\F2C3\"}.fa-quora:before{content:\"\\F2C4\"}.fa-free-code-camp:before{content:\"\\F2C5\"}.fa-telegram:before{content:\"\\F2C6\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\\F2C7\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\\F2C8\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\\F2C9\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\\F2CA\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\\F2CB\"}.fa-shower:before{content:\"\\F2CC\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\\F2CD\"}.fa-podcast:before{content:\"\\F2CE\"}.fa-window-maximize:before{content:\"\\F2D0\"}.fa-window-minimize:before{content:\"\\F2D1\"}.fa-window-restore:before{content:\"\\F2D2\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\\F2D3\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\\F2D4\"}.fa-bandcamp:before{content:\"\\F2D5\"}.fa-grav:before{content:\"\\F2D6\"}.fa-etsy:before{content:\"\\F2D7\"}.fa-imdb:before{content:\"\\F2D8\"}.fa-ravelry:before{content:\"\\F2D9\"}.fa-eercast:before{content:\"\\F2DA\"}.fa-microchip:before{content:\"\\F2DB\"}.fa-snowflake-o:before{content:\"\\F2DC\"}.fa-superpowers:before{content:\"\\F2DD\"}.fa-wpexplorer:before{content:\"\\F2DE\"}.fa-meetup:before{content:\"\\F2E0\"}.sr-only,.table.table-list tr:not(:hover) td.table-list-options>.dropdown:not(.show) button:not(:focus):not(:active),.table.table-list tr:not(:hover) td.table-list-options>button:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.toaster-icon{position:absolute;left:0.0em;top:0.0em;font-weight:normal;color:#ffffff}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#ffffff}.toast-message a:hover{color:#cccccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#ffffff;-webkit-text-shadow:0 1px 0 #ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);z-index:999}.toast-close-button:hover,.toast-close-button:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-content{display:inline-block;width:95%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-center{top:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-center{bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-center{top:45%}#toast-container{position:fixed;z-index:999999;pointer-events:auto}#toast-container.toast-center,#toast-container.toast-top-center,#toast-container.toast-bottom-center{width:100%;pointer-events:none;left:0;right:0}#toast-container.toast-center>div,#toast-container.toast-top-center>div,#toast-container.toast-bottom-center>div{margin:6px auto;pointer-events:auto}#toast-container.toast-center>button,#toast-container.toast-top-center>button,#toast-container.toast-bottom-center>button{pointer-events:auto}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999999;-webkit-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999999;color:#ffffff;opacity:0.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000000;-webkit-box-shadow:0 0 12px #000000;box-shadow:0 0 12px #000000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}.icon-success{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==\") !important}.icon-error{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=\") !important}.icon-info{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=\") !important}.icon-wait{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/gif;base64,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\") !important}.icon-warning{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=\") !important}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{position:relative;background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-wait{background-color:#2f96b4}.toast-warning{background-color:#f89406}@media all and (max-width: 240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.1em;top:-0.2em}.toast-content{width:94%}}@media all and (min-width: 241px) and (max-width: 480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.1em;top:-0.2em}.toast-content{width:94%}}@media all and (min-width: 481px) and (max-width: 768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 0.625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 0.6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:0.5em 0 0;padding:0.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line']{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left']{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right']{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto !important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,0.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line']{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left']{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right']{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line']{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip']{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long']{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show 0.5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide 0.1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color 0.1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,0.4)}.swal2-container.swal2-backdrop-hide{background:transparent !important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-start,.swal2-container.swal2-top-left{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-start,.swal2-container.swal2-center-left{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-start,.swal2-container.swal2-bottom-left{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-right>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex !important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex !important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-top,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-bottom{align-items:center}.swal2-container.swal2-grow-column.swal2-top-start,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-bottom-left{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-top-right,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-bottom-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex !important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none !important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-container .swal2-modal{margin:0 !important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:none}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 0.4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,0.1), rgba(0,0,0,0.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:0.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:none;box-shadow:0 0 0 3px rgba(100,150,200,0.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,0.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color 0.1s ease-out;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:rgba(0,0,0,0);color:#f27474}.swal2-close:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,0.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word}.swal2-input,.swal2-file,.swal2-textarea,.swal2-select,.swal2-radio,.swal2-checkbox{margin:1em auto}.swal2-input,.swal2-file,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color 0.3s,box-shadow 0.3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,0.06);color:inherit;font-size:1.125em}.swal2-input.swal2-inputerror,.swal2-file.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}.swal2-input:focus,.swal2-file:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:none;box-shadow:0 0 0 3px rgba(100,150,200,0.5)}.swal2-input::placeholder,.swal2-file::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 0.75em}.swal2-input[type='number']{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-radio,.swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-radio label,.swal2-checkbox label{margin:0 .6em;font-size:1.125em}.swal2-radio input,.swal2-checkbox input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{display:none;align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:'!';display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:0.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^='swal2-x-mark-line']{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left']{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right']{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^='swal2-success-circular-line']{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left']{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right']{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:0.25em solid rgba(165,220,134,0.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^='swal2-success-line']{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip']{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^='swal2-success-line'][class$='long']{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^='swal2']{-webkit-tap-highlight-color:transparent}.swal2-show{animation:swal2-show 0.3s}.swal2-hide{animation:swal2-hide 0.15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator: true){.swal2-range input{width:100% !important}.swal2-range output{display:none}}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-range input{width:100% !important}.swal2-range output{display:none}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent !important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,0.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-start,body.swal2-no-backdrop .swal2-container.swal2-top-left{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%, -50%)}body.swal2-no-backdrop .swal2-container.swal2-center-start,body.swal2-no-backdrop .swal2-container.swal2-center-left{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-start,body.swal2-no-backdrop .swal2-container.swal2-bottom-left{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden='true']{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}#toast-container.toast-top-right{top:76px}#toast-container .toast-close-button{right:-0.15em}#toast-container .toast{opacity:1 !important;background-image:none !important;border-radius:.25rem;box-shadow:0 0 8px rgba(0,0,0,0.35);display:flex;align-items:center}#toast-container .toast:hover{box-shadow:0 0 10px rgba(0,0,0,0.6)}#toast-container .toast:before{font-family:FontAwesome;font-size:25px;line-height:20px;float:left;color:#ffffff;padding-right:10px;margin:auto 0 auto -36px}#toast-container .toast .toaster-icon{display:none}#toast-container .toast .toast-message p{margin-bottom:0.5rem}#toast-container .toast .toast-message p:last-child{margin-bottom:0}#toast-container .toast.toast-danger,#toast-container .toast.toast-error{background-image:none !important;background-color:#dd4b39}#toast-container .toast.toast-danger:before,#toast-container .toast.toast-error:before{content:\"\\F0E7\";margin-left:-30px}#toast-container .toast.toast-warning{background-image:none !important;background-color:#bf7e16}#toast-container .toast.toast-warning:before{content:\"\\F071\"}#toast-container .toast.toast-info{background-image:none !important;background-color:#555}#toast-container .toast.toast-info:before{content:\"\\F05A\"}#toast-container .toast.toast-success{background-image:none !important;background-color:#00a65a}#toast-container .toast.toast-success:before{content:\"\\F00C\"}.swal2-container{background-color:rgba(0,0,0,0.3)}.swal2-popup{padding:15px 0 0;background-color:#fff;color:#333;border:1px solid #9a9a9a;border-radius:.3rem;width:34em}.swal2-popup .swal2-header{padding:0 15px}.swal2-popup .swal2-icon{margin:0 auto;width:auto;height:auto;border:none}.swal2-popup .swal2-content{padding-bottom:15px;font-size:1rem;border-bottom:1px solid #dee2e6}.swal2-popup i.swal-custom-icon{display:block;margin:0 auto;font-size:35px}.swal2-popup .swal2-title{padding:10px 0 15px;margin:0;font-size:1.15rem;color:#333}.swal2-popup .swal2-content{font-size:1rem;color:#333;padding:0 15px 15px}.swal2-popup .swal2-actions{padding:15px;margin:0;background-color:#fbfbfb;border-radius:.3rem;display:flex;flex-direction:row;justify-content:flex-start;font-size:1rem}.swal2-popup .swal2-actions button{margin-right:10px}.swal2-popup .swal2-actions button.swal2-confirm{font-weight:bold}.swal2-popup .swal2-actions button.swal2-cancel{background-color:#ffffff}date-input-polyfill[data-open=\"true\"]{z-index:10000 !important}html{font-size:14px}body{min-width:1010px}body.layout_frontend{background-color:#ecf0f5}body.full-width:not(.layout_frontend) .container{min-width:980px;width:90%}.page-header,.secondary-header{border-bottom:1px solid #dee2e6;padding-bottom:0.6rem;margin-bottom:0.5rem}.page-header h1,.page-header h2,.page-header h3,.page-header h4,.secondary-header h1,.secondary-header h2,.secondary-header h3,.secondary-header h4{margin:0}h1 small,h2 small,h3 small,h4 small,h5 small{font-size:80%}input:required,select:required,textarea:required{box-shadow:none}.secondary-header,.spaced-header{margin-top:4rem}.navbar{padding-left:0;padding-right:0}.navbar .dropdown-menu{min-width:200px;max-width:300px}.navbar .dropdown-menu .dropdown-item-text{line-height:1.3}.navbar .dropdown-menu .dropdown-item-text span,.navbar .dropdown-menu .dropdown-item-text small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar .nav-link{font-weight:600}.navbar-brand{margin-top:-20px;margin-bottom:-20px}.dropdown-menu button{cursor:pointer}.container{width:980px;max-width:none !important;margin:0 auto;padding:0}.page-content{margin-top:20px}.footer{margin-top:40px;padding:40px 0 40px 0;border-top:1px solid #dee2e6}.list-group-item.active{border-left:3px solid #175DDC;font-weight:bold;padding-left:calc(1.25rem - 3px)}.card-header,.modal-header{font-weight:bold;text-transform:uppercase}.card-header small,.modal-header small{font-weight:normal;text-transform:none}.card-body-header{font-size:1.15rem}.card ul.fa-ul.card-ul{margin-left:1.9em}.card ul.fa-ul.card-ul li{word-break:break-all}.card ul.fa-ul.card-ul .fa-li{top:4px}.card ul.fa-ul.card-ul.carets{margin-left:1.1em}.card ul.fa-ul.card-ul.carets .fa-li{left:-17px;width:1.1em}.card ul.fa-ul.card-ul ul.carets{margin-left:0.85em}.card-org-plans h2{font-size:1.15rem}.modal-dialog{width:500px}.modal-sm{width:300px}.modal-lg{width:800px}.modal-body h3,.modal-body .section-header>*{font-weight:normal;text-transform:uppercase;color:#6c757d}.modal .list-group-flush :first-child{border-top:none}.modal .list-group-flush :last-child{border-bottom:none}.modal-footer{justify-content:flex-start;background-color:#fbfbfb;border-radius:.3rem}label:not(.form-check-label):not(.btn),label.bold{font-weight:600}input[type=\"search\"]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button}.btn[class*=\"btn-outline-\"]:not(:hover),.swal2-popup .swal2-actions button[class*=\"btn-outline-\"]:not(:hover){border-color:#ced4da;background-color:#fbfbfb}.btn-link:focus,.btn-link.focus{outline-color:-webkit-focus-ring-color;outline-offset:1px;outline-style:auto;outline-width:1px}.btn-outline-secondary,.swal2-popup .swal2-actions button.swal2-cancel{color:#6c757d}.btn-outline-secondary:hover:not(:disabled),.swal2-popup .swal2-actions button.swal2-cancel:hover:not(:disabled){color:#333}.btn-outline-secondary:disabled,.swal2-popup .swal2-actions button.swal2-cancel:disabled{opacity:1}.btn-outline-secondary:focus,.swal2-popup .swal2-actions button.swal2-cancel:focus,.btn-outline-secondary.focus,.swal2-popup .swal2-actions button.focus.swal2-cancel{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-submit{position:relative}.btn-submit .fa-spinner{position:absolute;display:none;align-items:center;justify-content:center;bottom:0;top:0;left:0;right:0}.btn-submit:disabled:not(.manual) .fa-spinner,.btn-submit.loading .fa-spinner{display:flex}.btn-submit:disabled:not(.manual) span,.btn-submit.loading span{visibility:hidden}.list-group-item:focus,.list-group-item.focus{z-index:100}.fa-icon-above-input{height:1.5em}.table.table-list thead th{border-top:none}.table.table-list tr:first-child td{border:none}.table.table-list td{vertical-align:middle}.table.table-list td.reduced-lh{line-height:1}.table.table-list td.reduced-lh small{font-size:80%}.table.table-list td small,.table.table-list td>.fa,.table.table-list td .icon{color:#6c757d}.table.table-list td.wrap{word-break:break-all}.table.table-list td.table-list-options{width:76px;max-width:76px;text-align:right;height:50px}.table.table-list td.table-list-options.wider{width:100px;max-width:100px}.table.table-list td.table-list-options .btn,.table.table-list td.table-list-options .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .table.table-list td.table-list-options button{line-height:1;transition:initial}.table.table-list td.table-list-options .dropdown-menu{line-height:1.5}.table.table-list td.table-list-icon{width:45px;max-width:45px;text-align:center}.table.table-list td.table-list-icon img{max-height:24px}.table.table-list td.table-list-checkbox{width:35px;max-width:35px}.table.table-list td.table-list-strike{color:#6c757d;text-decoration:line-through}.text-lg{font-size:1.15rem}.text-strike{text-decoration:line-through}.font-weight-semibold{font-weight:600}.password-wrapper{word-break:break-all;white-space:pre-wrap;min-width:0}.password-row{min-width:0}.password-number{color:#007fde}.password-special{color:#c40800}app-vault-groupings .card #search,app-org-vault-groupings .card #search,.groupings .card #search{margin-bottom:1rem}app-vault-groupings .card h3,app-org-vault-groupings .card h3,.groupings .card h3{font-weight:normal;text-transform:uppercase;color:#6c757d}app-vault-groupings .card ul:last-child,app-org-vault-groupings .card ul:last-child,.groupings .card ul:last-child{margin-bottom:0}app-vault-groupings .card .card-body a,app-org-vault-groupings .card .card-body a,.groupings .card .card-body a{color:#333}app-vault-groupings .card .card-body a:hover.text-muted,app-org-vault-groupings .card .card-body a:hover.text-muted,.groupings .card .card-body a:hover.text-muted{color:#333 !important}app-vault-groupings .card .show-active,app-org-vault-groupings .card .show-active,.groupings .card .show-active{display:none}app-vault-groupings .card li>.fa,app-vault-groupings .card li>div>.fa,app-org-vault-groupings .card li>.fa,app-org-vault-groupings .card li>div>.fa,.groupings .card li>.fa,.groupings .card li>div>.fa{cursor:pointer}app-vault-groupings .card li.active>.show-active,app-vault-groupings .card li.active>div .show-active,app-org-vault-groupings .card li.active>.show-active,app-org-vault-groupings .card li.active>div .show-active,.groupings .card li.active>.show-active,.groupings .card li.active>div .show-active{display:inline}app-vault-groupings .card li.active>a:first-of-type,app-vault-groupings .card li.active>div a:first-of-type,app-org-vault-groupings .card li.active>a:first-of-type,app-org-vault-groupings .card li.active>div a:first-of-type,.groupings .card li.active>a:first-of-type,.groupings .card li.active>div a:first-of-type{font-weight:bold;color:#175DDC}app-vault-groupings .card li.active>.fa,app-vault-groupings .card li.active>div>.fa,app-org-vault-groupings .card li.active>.fa,app-org-vault-groupings .card li.active>div>.fa,.groupings .card li.active>.fa,.groupings .card li.active>div>.fa{color:#175DDC}app-password-generator #lengthRange{width:100%}app-password-generator .card-password .card-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;font-size:1.15rem;font-family:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}app-password-generator-history .list-group-item{line-height:1}app-password-generator-history .list-group-item .password{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}app-import textarea{height:150px}app-user-billing .progress{height:20px}app-user-billing .progress .progress-bar{min-width:50px}#duo-frame{background:url(../images/loading.svg) 0 0 no-repeat;height:330px}#duo-frame iframe{width:100%;height:100%;border:none}#web-authn-frame{background:url(../images/loading.svg) 0 0 no-repeat;height:290px}#web-authn-frame iframe{width:100%;height:100%;border:none}#bt-dropin-container{background:url(../images/loading.svg) 0 0 no-repeat;min-height:50px}.braintree-placeholder,.braintree-sheet__header{display:none}.braintree-sheet__content--button{text-align:left;padding:0;min-height:0}.braintree-sheet__container{margin-bottom:0}.braintree-sheet{border:none}.totp .totp-code{font-size:1.2rem}.totp .totp-countdown{margin:3px 3px 0 0;display:block;user-select:none}.totp .totp-countdown .totp-sec{font-size:0.85em;position:absolute;line-height:32px;width:32px;text-align:center}.totp .totp-countdown svg{width:32px;height:32px;transform:rotate(-90deg)}.totp .totp-countdown .totp-circle{fill:none;stroke:#175DDC}.totp .totp-countdown .totp-circle.inner{stroke-width:3;stroke-dasharray:78.6;stroke-dashoffset:0}.totp .totp-countdown .totp-circle.outer{stroke-width:2;stroke-dasharray:88;stroke-dashoffset:0}.totp>.align-items-center{margin-bottom:-5px}.totp.low .totp-sec,.totp.low .totp-code{color:#dd4b39}.totp.low .totp-circle{stroke:#dd4b39}.callout{padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0.125);border-left-width:5px;border-radius:calc(.25rem - 1px);background-color:#fafafa}.callout .callout-heading{margin-top:0}.callout h3.callout-heading{font-weight:bold;text-transform:uppercase}.callout.callout-primary{border-left-color:#175DDC}.callout.callout-primary .callout-heading{color:#175DDC}.callout.callout-info{border-left-color:#343a40}.callout.callout-info .callout-heading{color:#343a40}.callout.callout-danger{border-left-color:#dd4b39}.callout.callout-danger .callout-heading{color:#dd4b39}.callout.callout-success{border-left-color:#00a65a}.callout.callout-success .callout-heading{color:#00a65a}.callout.callout-warning{border-left-color:#bf7e16}.callout.callout-warning .callout-heading{color:#bf7e16}.list-group-2fa .logo-2fa{min-width:100px}.form-check-block .form-check-label{font-weight:600}.form-check-block .form-check-label>small{display:block;color:#6c757d;font-weight:normal}.form-check-block .form-check-label>span{display:block;font-weight:normal}.form-inline input[type='datetime-local']{width:200px}.form-control.stripe-form-control{padding-top:0.55rem}.form-control.stripe-form-control.is-focused{color:#495057;background-color:#fff;border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.form-control.stripe-form-control.is-focused.is-invalid{box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.form-control.stripe-form-control.is-invalid{border-color:#dd4b39}.org-nav{background-color:#fbfbfb;border-bottom:1px solid #dee2e6;height:100px;min-height:100px}.org-nav .container{height:100%}.org-nav .nav-tabs{border-bottom:none}.org-nav .nav-tabs a{color:#333}.org-nav .nav-tabs a:not(.active){border-color:transparent}.org-nav .nav-tabs a.active{border-top:3px solid #175DDC;font-weight:bold;padding-top:calc(.5rem - 2px)}.org-nav .nav-tabs a.disabled{color:#b4b4b4}.org-nav .org-name{line-height:1}.org-nav .org-name span{font-size:1.15rem;display:block}img.logo{width:284px;height:43px;margin:0 auto;display:block}.min-height-fix{min-height:1px}.overflow-hidden{overflow:hidden}.cdk-drag-preview{z-index:1070 !important;opacity:0.8;background-color:#fff;border-radius:.25rem}.cursor-move{cursor:move !important}.layout.enterprise2 header{color:#ced4da;background-color:#175DDC}.layout.enterprise2 header:before{content:\"\";position:absolute;z-index:-1;width:100%;height:340px;left:0;transform:skewY(-3deg);background:#175DDC}.layout.enterprise2 header img.logo{margin:12px 0 0;width:284px;max-width:284px;height:auto}.layout.enterprise2 h2{color:#ffffff;font-size:1.8rem;margin:100px 0 150px 0}.layout.enterprise2 p{margin:20px 0 40px 0;font-size:1.4rem}.layout.enterprise2 p:before{content:\"/\";padding-right:12px}.layout.enterprise2 p:not(.highlight):before{color:#1252A3}.layout.enterprise2 p b:after{content:\"\\27F6\";font-size:2rem;padding-left:6px}.layout.enterprise2 blockquote{margin:20px 0 0 0;font-size:1.4rem;padding-right:40px}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/main.a34068436143996e1f65.js b/app/main.a34068436143996e1f65.js new file mode 100644 index 00000000..a1123ad9 --- /dev/null +++ b/app/main.a34068436143996e1f65.js @@ -0,0 +1,2 @@ +!function(e){function t(t){for(var r,a,s=t[0],l=t[1],c=t[2],u=0,d=[];u1&&(r+=e.slice(1)),void 0===t[e=r]&&(e=e.toLowerCase()),void 0===t[e]&&(e=e.toUpperCase())}return t[e]},e}();t.BaseResponse=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(0),i=n(3),o=n(4);function a(e,t){if(1&e&&r.ɵɵelement(0,"i",4),2&e){var n=r.ɵɵnextContext(2);r.ɵɵclassMapInterpolate1("fa ",n.icon,"")}}function s(e,t){if(1&e&&(r.ɵɵelementStart(0,"h3",2),r.ɵɵtext(1,"\n "),r.ɵɵtemplate(2,a,1,3,"i",3),r.ɵɵtext(3),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(2),r.ɵɵproperty("ngIf",n.icon),r.ɵɵadvance(1),r.ɵɵtextInterpolate1("\n ",n.title,"\n ")}}var l=function(e){return{clickable:e}},c=["*"],p=function(){function e(e){this.i18nService=e,this.type="info"}return e.prototype.ngOnInit=function(){this.calloutStyle=this.type,"warning"===this.type||"danger"===this.type?("danger"===this.type&&(this.calloutStyle="danger"),void 0===this.title&&(this.title=this.i18nService.t("warning")),void 0===this.icon&&(this.icon="fa-warning")):"error"===this.type?(this.calloutStyle="danger",void 0===this.title&&(this.title=this.i18nService.t("error")),void 0===this.icon&&(this.icon="fa-bolt")):"tip"===this.type&&(this.calloutStyle="success",void 0===this.title&&(this.title=this.i18nService.t("tip")),void 0===this.icon&&(this.icon="fa-lightbulb-o"))},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.I18nService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-callout"]],inputs:{type:"type",icon:"icon",title:"title",clickable:"clickable"},ngContentSelectors:c,decls:7,vars:7,consts:[["role","alert",3,"ngClass"],["class","callout-heading",4,"ngIf"],[1,"callout-heading"],["aria-hidden","true",3,"class",4,"ngIf"],["aria-hidden","true"]],template:function(e,t){1&e&&(r.ɵɵprojectionDef(),r.ɵɵelementStart(0,"div",0),r.ɵɵtext(1,"\n "),r.ɵɵtemplate(2,s,4,2,"h3",1),r.ɵɵtext(3,"\n "),r.ɵɵprojection(4),r.ɵɵtext(5,"\n"),r.ɵɵelementEnd(),r.ɵɵtext(6,"\n")),2&e&&(r.ɵɵclassMapInterpolate1("callout callout-",t.calloutStyle,""),r.ɵɵproperty("ngClass",r.ɵɵpureFunction1(5,l,t.clickable)),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.title))},directives:[o.NgClass,o.NgIf],encapsulation:2}),e}();t.CalloutComponent=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(711),i=n(143),o=n(156),a=n(258),s=n(30),l=n(209),c=n(127),p=n(159),u=n(94),d=n(39),m=n(118),h=n(106),f=n(709),v=function(){function e(){this.organizationId=null,this.logService=new f.ConsoleLogService(!1),this.newLineRegex=/(?:\r\n|\r|\n)/,this.passwordFieldNames=["password","pass word","passphrase","pass phrase","pass","code","code word","codeword","secret","secret word","personpwd","key","keyword","key word","keyphrase","key phrase","form_pw","wppassword","pin","pwd","pw","pword","passwd","p","serial","serial#","license key","reg #","passwort"],this.usernameFieldNames=["user","name","user name","username","login name","email","e-mail","id","userid","user id","login","form_loginname","wpname","mail","loginid","login id","log","personlogin","first name","last name","card#","account #","member","member #","nom","benutzername"],this.notesFieldNames=["note","notes","comment","comments","memo","description","free form","freeform","free text","freetext","free","kommentar"],this.uriFieldNames=["url","hyper link","hyperlink","link","host","hostname","host name","server","address","hyper ref","href","web","website","web site","site","web-site","uri","ort","adresse"],this.parseCsvOptions={encoding:"UTF-8",skipEmptyLines:!1}}return Object.defineProperty(e.prototype,"organization",{get:function(){return null!=this.organizationId},enumerable:!0,configurable:!0}),e.prototype.parseXml=function(e){var t=(new DOMParser).parseFromString(e,"application/xml");return null!=t&&null==t.querySelector("parsererror")?t:null},e.prototype.parseCsv=function(e,t,n){var i=this;void 0===n&&(n={});var o=Object.assign({header:t},this.parseCsvOptions,n);e=this.splitNewLine(e).join("\n").trim();var a=r.parse(e,o);return null!=a.errors&&a.errors.length>0&&a.errors.forEach((function(e){null!=e.row&&i.logService.warning("Error parsing row "+e.row+": "+e.message)})),a.data&&a.data.length>0?a.data:null},e.prototype.parseSingleRowCsv=function(e){if(this.isNullOrWhitespace(e))return null;var t=this.parseCsv(e,!1);return null!=t&&t.length>0&&t[0].length>0?t[0]:null},e.prototype.makeUriArray=function(e){var t=this;if(null==e)return null;if("string"==typeof e){var n=new a.LoginUriView;return n.uri=this.fixUri(e),this.isNullOrWhitespace(n.uri)?null:(n.match=null,[n])}if(e.length>0){var r=[];return e.forEach((function(e){var n=new a.LoginUriView;n.uri=t.fixUri(e),t.isNullOrWhitespace(n.uri)||(n.match=null,r.push(n))})),0===r.length?null:r}return null},e.prototype.fixUri=function(e){return null==e?null:(-1===(e=e.trim()).indexOf("://")&&e.indexOf(".")>=0&&(e="http://"+e),e.length>1e3?e.substring(0,1e3):e)},e.prototype.nameFromUrl=function(e){var t=s.Utils.getHostname(e);return this.isNullOrWhitespace(t)?null:t.startsWith("www.")?t.replace("www.",""):t},e.prototype.isNullOrWhitespace=function(e){return s.Utils.isNullOrWhitespace(e)},e.prototype.getValueOrDefault=function(e,t){return void 0===t&&(t=null),this.isNullOrWhitespace(e)?t:e},e.prototype.splitNewLine=function(e){return e.split(this.newLineRegex)},e.prototype.getCardBrand=function(e){if(this.isNullOrWhitespace(e))return null;var t=new RegExp("^4");return null!=e.match(t)?"Visa":/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/.test(e)?"Mastercard":(t=new RegExp("^3[47]"),null!=e.match(t)?"Amex":(t=new RegExp("^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)"),null!=e.match(t)?"Discover":(t=new RegExp("^36"),null!=e.match(t)?"Diners Club":(t=new RegExp("^30[0-5]"),null!=e.match(t)?"Diners Club":(t=new RegExp("^35(2[89]|[3-8][0-9])"),null!=e.match(t)?"JCB":(t=new RegExp("^(4026|417500|4508|4844|491(3|7))"),null!=e.match(t)?"Visa":null))))))},e.prototype.setCardExpiration=function(e,t){if(!this.isNullOrWhitespace(t)){var n=t.split("/");if(2===n.length){var r=null,i=null;if(1!==n[0].length&&2!==n[0].length||2===(r=n[0]).length&&"0"===r[0]&&(r=r.substr(1,1)),2!==n[1].length&&4!==n[1].length||(i=2===r.length?"20"+n[1]:n[1]),null!=r&&null!=i)return e.card.expMonth=r,e.card.expYear=i,!0}}return!1},e.prototype.moveFoldersToCollections=function(e){e.folderRelationships.forEach((function(t){return e.collectionRelationships.push(t)})),e.collections=e.folders.map((function(e){var t=new o.CollectionView;return t.name=e.name,t})),e.folderRelationships=[],e.folders=[]},e.prototype.querySelectorDirectChild=function(e,t){var n=this.querySelectorAllDirectChild(e,t);return 0===n.length?null:n[0]},e.prototype.querySelectorAllDirectChild=function(e,t){return Array.from(e.querySelectorAll(t)).filter((function(t){return t.parentNode===e}))},e.prototype.initLoginCipher=function(){var e=new i.CipherView;return e.favorite=!1,e.notes="",e.fields=[],e.login=new p.LoginView,e.type=d.CipherType.Login,e},e.prototype.cleanupCipher=function(e){null!=e&&(e.type!==d.CipherType.Login&&(e.login=null),this.isNullOrWhitespace(e.name)&&(e.name="--"),this.isNullOrWhitespace(e.notes)?e.notes=null:e.notes=e.notes.trim(),null!=e.fields&&0===e.fields.length&&(e.fields=null))},e.prototype.processKvp=function(e,t,n,r){if(void 0===r&&(r=m.FieldType.Text),!this.isNullOrWhitespace(n))if(this.isNullOrWhitespace(t)&&(t=""),n.length>200||n.trim().search(this.newLineRegex)>-1)null==e.notes&&(e.notes=""),e.notes+=t+": "+this.splitNewLine(n).join("\n")+"\n";else{null==e.fields&&(e.fields=[]);var i=new l.FieldView;i.type=r,i.name=t,i.value=n,e.fields.push(i)}},e.prototype.processFolder=function(e,t){var n=e.folders.length,r=!this.isNullOrWhitespace(t),i=r;if(r)for(var o=0;o-1&&(n=t.getUrlObject("http://"+e)));return n},t.validIpAddress=function(e){return/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(e)},t.isMobile=function(e){var t,n=!1;return t=e.navigator.userAgent||e.navigator.vendor||e.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(n=!0),n||null!=e.navigator.userAgent.match(/iPad/i)},t.isAppleMobile=function(e){return null!=e.navigator.userAgent.match(/iPhone/i)||null!=e.navigator.userAgent.match(/iPad/i)},t.getUrlObject=function(e){try{if(null!=a)return a.URL?new a.URL(e):a.parse(e);if("function"==typeof URL)return new URL(e);if(null!=window){var t=e.indexOf("://")>-1;if(!t&&e.indexOf(".")>-1)e="http://"+e;else if(!t)return null;var n=window.document.createElement("a");return n.href=e,n}}catch(r){}return null},t.inited=!1,t.isNativeScript=!1,t.isNode=!1,t.isBrowser=!0,t.isMobileBrowser=!1,t.isAppleMobileBrowser=!1,t.global=null,t.tldEndingRegex=/.*\.(com|net|org|edu|uk|gov|ca|de|jp|fr|au|ru|ch|io|es|us|co|xyz|info|ly|mil)$/,t}();t.Utils=s,s.init()}).call(this,n(126),n(102),n(95).Buffer)},,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.PasswordGenerationService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.onClick=function(e){e.preventDefault()},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appStopClick",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",(function(e){return t.onClick(e)}))}}),e}();t.StopClickDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.StateService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Login=1]="Login",e[e.SecureNote=2]="SecureNote",e[e.Card=3]="Card",e[e.Identity=4]="Identity"}(t.CipherType||(t.CipherType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.CollectionService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.StorageService=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.PolicyService=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e,t){this.el=e,this.renderer=t}return Object.defineProperty(e.prototype,"appInputVerbatim",{set:function(e){this.disableComplete=""===e||!0===e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.disableComplete&&!this.el.nativeElement.hasAttribute("autocomplete")&&this.renderer.setAttribute(this.el.nativeElement,"autocomplete","off"),this.el.nativeElement.hasAttribute("autocapitalize")||this.renderer.setAttribute(this.el.nativeElement,"autocapitalize","none"),this.el.nativeElement.hasAttribute("autocorrect")||this.renderer.setAttribute(this.el.nativeElement,"autocorrect","none"),this.el.nativeElement.hasAttribute("spellcheck")||this.renderer.setAttribute(this.el.nativeElement,"spellcheck","false"),this.el.nativeElement.hasAttribute("inputmode")||this.renderer.setAttribute(this.el.nativeElement,"inputmode","verbatim")},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef),r.ɵɵdirectiveInject(r.Renderer2))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appInputVerbatim",""]],inputs:{appInputVerbatim:"appInputVerbatim"}}),e}();t.InputVerbatimDirective=i},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.FolderService=r},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.onClick=function(e){e.stopPropagation()},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appStopProp",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",(function(e){return t.onClick(e)}))}}),e}();t.StopPropDirective=i},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.AuthService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.SyncService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.EnvironmentService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(30),i=n(0),o=function(){function e(e){this.el=e}return Object.defineProperty(e.prototype,"appAutofocus",{set:function(e){this.autofocus=""===e||!0===e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){!r.Utils.isMobileBrowser&&this.autofocus&&this.el.nativeElement.focus()},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(i.ElementRef))},e.ɵdir=i.ɵɵdefineDirective({type:e,selectors:[["","appAutofocus",""]],inputs:{appAutofocus:"appAutofocus"}}),e}();t.AutofocusDirective=o},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.environmentUrlsKey=e.environmentUrlsKey,this.disableGaKey=e.disableGaKey,this.disableAddLoginNotificationKey=e.disableAddLoginNotificationKey,this.disableContextMenuItemKey=e.disableContextMenuItemKey,this.disableFaviconKey=e.disableFaviconKey,this.disableBadgeCounterKey=e.disableBadgeCounterKey,this.disableAutoTotpCopyKey=e.disableAutoTotpCopyKey,this.enableAutoFillOnPageLoadKey=e.enableAutoFillOnPageLoadKey,this.vaultTimeoutKey=e.vaultTimeoutKey,this.vaultTimeoutActionKey=e.vaultTimeoutActionKey,this.lastActiveKey=e.lastActiveKey,this.neverDomainsKey=e.neverDomainsKey,this.installedVersionKey=e.installedVersionKey,this.localeKey=e.localeKey,this.themeKey=e.themeKey,this.collapsedGroupingsKey=e.collapsedGroupingsKey,this.autoConfirmFingerprints=e.autoConfirmFingerprints,this.dontShowCardsCurrentTab=e.dontShowCardsCurrentTab,this.dontShowIdentitiesCurrentTab=e.dontShowIdentitiesCurrentTab,this.defaultUriMatch=e.defaultUriMatch,this.pinProtectedKey=e.pinProtectedKey,this.protectedPin=e.protectedPin,this.clearClipboardKey=e.clearClipboardKey,this.eventCollectionKey=e.eventCollectionKey,this.ssoCodeVerifierKey=e.ssoCodeVerifierKey,this.ssoStateKey=e.ssoStateKey,this.biometricUnlockKey=e.biometricUnlockKey,this.biometricText=e.biometricText,this.biometricAwaitingAcceptance=e.biometricAwaitingAcceptance,this.biometricFingerprintValidated=e.biometricFingerprintValidated}return e.environmentUrlsKey="environmentUrls",e.disableGaKey="disableGa",e.disableAddLoginNotificationKey="disableAddLoginNotification",e.disableChangedPasswordNotificationKey="disableChangedPasswordNotification",e.disableContextMenuItemKey="disableContextMenuItem",e.disableFaviconKey="disableFavicon",e.disableBadgeCounterKey="disableBadgeCounter",e.disableAutoTotpCopyKey="disableAutoTotpCopy",e.enableAutoFillOnPageLoadKey="enableAutoFillOnPageLoad",e.vaultTimeoutKey="lockOption",e.vaultTimeoutActionKey="vaultTimeoutAction",e.lastActiveKey="lastActive",e.neverDomainsKey="neverDomains",e.installedVersionKey="installedVersion",e.localeKey="locale",e.themeKey="theme",e.collapsedGroupingsKey="collapsedGroupings",e.autoConfirmFingerprints="autoConfirmFingerprints",e.dontShowCardsCurrentTab="dontShowCardsCurrentTab",e.dontShowIdentitiesCurrentTab="dontShowIdentitiesCurrentTab",e.defaultUriMatch="defaultUriMatch",e.pinProtectedKey="pinProtectedKey",e.protectedPin="protectedPin",e.clearClipboardKey="clearClipboardKey",e.eventCollectionKey="eventCollection",e.ssoCodeVerifierKey="ssoCodeVerifier",e.ssoStateKey="ssoState",e.biometricUnlockKey="biometric",e.biometricText="biometricText",e.biometricAwaitingAcceptance="biometricAwaitingAcceptance",e.biometricFingerprintValidated="biometricFingerprintValidated",e}();t.ConstantsService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.EventService=r},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.PasswordVerificationRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.indexedEntityId=null};t.SearchService=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1?e[a]=s||null:e[a]=s?new o.EncString(s):null}},e.prototype.buildDataModel=function(e,t,n,r){for(var i in void 0===r&&(r=[]),n)if(n.hasOwnProperty(i)){var o=e[n[i]||i];r.indexOf(i)>-1?t[i]=null!=o?o:null:t[i]=null!=o?o.encryptedString:null}},e.prototype.decryptObj=function(e,t,n,o){return void 0===o&&(o=null),r(this,void 0,void 0,(function(){var r,a,s;return i(this,(function(i){switch(i.label){case 0:for(s in r=[],a=this,t)t.hasOwnProperty(s)&&function(i){var s=Promise.resolve().then((function(){var e=t[i]||i;return a[e]?a[e].decrypt(n,o):null})).then((function(t){e[i]=t}));r.push(s)}(s);return[4,Promise.all(r)];case 1:return i.sent(),[2,e]}}))}))},e}();t.default=a},,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(273),a=(n(0),n(847)),s=n(30),l=(n(14),n(0)),c=n(14);function p(e,t){}var u=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.el=null,r}return i(t,e),t.prototype.ngOnDestroy=function(){},t.prototype.show=function(e,t,n,r){var i=this;void 0===n&&(n=!0),void 0===r&&(r=null),this.parentContainer=t,this.fade=n;var a=this.componentFactoryResolver.resolveComponentFactory(e),l=this.container.createComponent(a);null!=r&&r(l.instance);var c=Array.from(document.querySelectorAll(".modal"));return c.length>0&&(this.el=o(c[0]),this.el.modal("show"),this.el.on("show.bs.modal",(function(){i.onShow.emit(),i.messagingService.send("modalShow")})),this.el.on("shown.bs.modal",(function(){i.onShown.emit(),i.messagingService.send("modalShown"),s.Utils.isMobileBrowser||i.el.find("*[appAutoFocus]").focus()})),this.el.on("hide.bs.modal",(function(){i.onClose.emit(),i.messagingService.send("modalClose")})),this.el.on("hidden.bs.modal",(function(){i.onClosed.emit(),i.messagingService.send("modalClosed"),null!=i.parentContainer&&i.parentContainer.clear()}))),l.instance},t.prototype.close=function(){null!=this.el&&this.el.modal("hide")},t.ɵfac=function(e){return new(e||t)(l.ɵɵdirectiveInject(l.ComponentFactoryResolver),l.ɵɵdirectiveInject(c.MessagingService))},t.ɵcmp=l.ɵɵdefineComponent({type:t,selectors:[["app-modal"]],features:[l.ɵɵInheritDefinitionFeature],decls:2,vars:0,consts:[["container",""]],template:function(e,t){1&e&&l.ɵɵtemplate(0,p,0,0,"ng-template",null,0,l.ɵɵtemplateRefExtractor)},encapsulation:2}),t}(a.ModalComponent);t.ModalComponent=u},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.AuditService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.cardholderName=null,this.expMonth=null,this.expYear=null,this.code=null,this._brand=null,this._number=null,this._subTitle=null}return Object.defineProperty(e.prototype,"maskedCode",{get:function(){return null!=this.code?"•".repeat(this.code.length):null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"brand",{get:function(){return this._brand},set:function(e){this._brand=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"number",{get:function(){return this._number},set:function(e){this._number=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){if(null==this._subTitle&&(this._subTitle=this.brand,null!=this.number&&this.number.length>=4)){null!=this._subTitle&&""!==this._subTitle?this._subTitle+=", ":this._subTitle="";var e=this.number.length>=5&&null!=this.number.match(new RegExp("^3[47]"))?5:4;this._subTitle+="*"+this.number.substr(this.number.length-e)}return this._subTitle},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expiration",{get:function(){if(!this.expMonth&&!this.expYear)return null;var e=null!=this.expMonth?("0"+this.expMonth).slice(-2):"__";return e+=" / "+(null!=this.expYear?this.formatYear(this.expYear):"____")},enumerable:!0,configurable:!0}),e.prototype.formatYear=function(e){return 2===e.length?"20"+e:e},e}();t.CardView=r},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.VaultTimeoutService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.type=null,e&&(this.type=e.type)}return Object.defineProperty(e.prototype,"subTitle",{get:function(){return null},enumerable:!0,configurable:!0}),e}();t.SecureNoteView=r},,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.TokenService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.CryptoFunctionService=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1?(e="http://"+e,t=!0):this.imageEnabled&&(t=0===e.indexOf("http")&&e.indexOf(".")>-1),this.imageEnabled&&t)try{this.image=this.iconsUrl+"/"+s.Utils.getHostname(e)+"/icon.png",this.fallbackImage="images/fa-globe.png"}catch(n){}}else this.image=null},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(c.EnvironmentService),l.ɵɵdirectiveInject(p.StateService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["app-vault-icon"]],inputs:{cipher:"cipher"},features:[l.ɵɵNgOnChangesFeature],decls:7,vars:2,consts:[["aria-hidden","true",1,"icon"],["alt","",3,"src","appFallbackSrc",4,"ngIf"],[3,"class",4,"ngIf"],["alt","",3,"src","appFallbackSrc"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtext(1,"\n "),l.ɵɵtemplate(2,m,1,2,"img",1),l.ɵɵtext(3,"\n "),l.ɵɵtemplate(4,h,1,3,"i",2),l.ɵɵtext(5,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(6,"\n")),2&e&&(l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.imageEnabled&&t.image),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",!t.imageEnabled||!t.image))},directives:[u.NgIf,d.FallbackSrcDirective],encapsulation:2}),e}();t.IconComponent=v},,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});n(0);var o=n(823),a=n(0),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.ɵfac=function(e){return l(e||t)},t.ɵprov=a.ɵɵdefineInjectable({token:t,factory:t.ɵfac}),t}(o.BroadcasterService);t.BroadcasterService=s;var l=a.ɵɵgetInheritedFactory(s)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Authenticator=0]="Authenticator",e[e.Email=1]="Email",e[e.Duo=2]="Duo",e[e.Yubikey=3]="Yubikey",e[e.U2f=4]="U2f",e[e.Remember=5]="Remember",e[e.OrganizationDuo=6]="OrganizationDuo",e[e.WebAuthn=7]="WebAuthn"}(t.TwoFactorProviderType||(t.TwoFactorProviderType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.TotpService=r},,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1)try{window.document.body.removeChild(e)}catch(t){}}))}),500),this.hidePaypal||(window.document.head.removeChild(this.btScript),window.setTimeout((function(){Array.from(window.document.head.querySelectorAll("script")).forEach((function(e){if(null!=e.src&&e.src.indexOf("paypal")>-1)try{window.document.head.removeChild(e)}catch(t){}}));var e=window.document.head.querySelector("#braintree-dropin-stylesheet");if(null!=e)try{window.document.head.removeChild(e)}catch(t){}}),500))},e.prototype.changeMethod=function(){var e=this;this.btInstance=null,this.method===o.PaymentMethodType.PayPal?window.setTimeout((function(){window.braintree.dropin.create({authorization:e.platformUtilsService.isDev()?a.WebConstants.btSandboxKey:a.WebConstants.btProductionKey,container:"#bt-dropin-container",paymentOptionPriority:["paypal"],paypal:{flow:"vault",buttonStyle:{label:"pay",size:"medium",shape:"pill",color:"blue"}}},(function(t,n){null==t?e.btInstance=n:console.error(t)}))}),250):this.setStripeElement()},e.prototype.createPaymentToken=function(){var e=this;return new Promise((function(t,n){e.method===o.PaymentMethodType.Credit?t([null,e.method]):e.method===o.PaymentMethodType.PayPal?e.btInstance.requestPaymentMethod().then((function(n){t([n.nonce,e.method])})).catch((function(e){n(e.message)})):e.method!==o.PaymentMethodType.Card&&e.method!==o.PaymentMethodType.BankAccount||(e.method===o.PaymentMethodType.Card?e.apiService.postSetupPayment().then((function(t){return e.stripe.handleCardSetup(t,e.stripeCardNumberElement)})).then((function(r){r.error?n(r.error.message):r.setupIntent&&"succeeded"===r.setupIntent.status?t([r.setupIntent.payment_method,e.method]):n()})):e.stripe.createToken("bank_account",e.bank).then((function(r){r.error?n(r.error.message):r.token&&null!=r.token.id?t([r.token.id,e.method]):n()})))}))},e.prototype.handleStripeCardPayment=function(e,t){var n=this;return new Promise((function(o,a){if(!n.showMethods||null!=n.stripeCardNumberElement){return(n.showMethods?n.stripe.handleCardSetup(e,n.stripeCardNumberElement):n.stripe.handleCardSetup(e)).then((function(e){return r(n,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return e.error?(a(e.error.message),[3,5]):[3,1];case 1:return e.paymentIntent&&"succeeded"===e.paymentIntent.status?null==t?[3,3]:[4,t()]:[3,4];case 2:n.sent(),n.label=3;case 3:return o(),[3,5];case 4:a(),n.label=5;case 5:return[2]}}))}))}))}a()}))},e.prototype.setStripeElement=function(){var e=this;window.setTimeout((function(){e.showMethods&&e.method===o.PaymentMethodType.Card&&(null==e.stripeCardNumberElement&&(e.stripeCardNumberElement=e.stripeElements.create("cardNumber",{style:I,classes:E,placeholder:""})),null==e.stripeCardExpiryElement&&(e.stripeCardExpiryElement=e.stripeElements.create("cardExpiry",{style:I,classes:E})),null==e.stripeCardCvcElement&&(e.stripeCardCvcElement=e.stripeElements.create("cardCvc",{style:I,classes:E,placeholder:""})),e.stripeCardNumberElement.mount("#stripe-card-number-element"),e.stripeCardExpiryElement.mount("#stripe-card-expiry-element"),e.stripeCardCvcElement.mount("#stripe-card-cvc-element"))}),50)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.PlatformUtilsService),s.ɵɵdirectiveInject(c.ApiService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["app-payment"]],inputs:{showMethods:"showMethods",showOptions:"showOptions",method:"method",hideBank:"hideBank",hidePaypal:"hidePaypal",hideCredit:"hideCredit"},decls:10,vars:5,consts:[["class","mb-4 text-lg",4,"ngIf"],[4,"ngIf"],[1,"mb-4","text-lg"],[1,"form-check","form-check-inline","mr-4"],["type","radio","name","Method","id","method-card",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-card",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-credit-card"],["class","form-check form-check-inline mr-4",4,"ngIf"],["class","form-check form-check-inline",4,"ngIf"],["type","radio","name","Method","id","method-bank",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-bank",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-university"],[1,"form-check","form-check-inline"],["type","radio","name","Method","id","method-paypal",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-paypal",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-paypal"],["type","radio","name","Method","id","method-credit",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-credit",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-dollar"],[1,"row"],[1,"form-group","col-4"],["for","stripe-card-number-element"],["id","stripe-card-number-element",1,"form-control","stripe-form-control"],[1,"form-group","col-8","d-flex","align-items-end"],["src","images/cards.png","alt","Visa, MasterCard, Discover, AmEx, JCB, Diners Club, UnionPay","width","323","height","32"],["for","stripe-card-expiry-element"],["id","stripe-card-expiry-element",1,"form-control","stripe-form-control"],[1,"d-flex"],["for","stripe-card-cvc-element"],["href","https://www.cvvnumber.com/cvv.html","tabindex","-1","target","_blank","rel","noopener noreferrer",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],["id","stripe-card-cvc-element",1,"form-control","stripe-form-control"],["type","warning",3,"title"],[1,"form-group","col-6"],["for","routing_number"],["id","routing_number","type","text","name","routing_number","required","","appInputVerbatim","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_number"],["id","account_number","type","text","name","account_number","required","","appInputVerbatim","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_holder_name"],["id","account_holder_name","type","text","name","account_holder_name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_holder_type"],["id","account_holder_type","name","account_holder_type","required","",1,"form-control",3,"ngModel","ngModelChange"],["value",""],["value","company"],["value","individual"],[1,"mb-3"],["id","bt-dropin-container",1,"mb-1"],[1,"text-muted"],["type","note"]],template:function(e,t){1&e&&(s.ɵɵtemplate(0,x,19,8,"div",0),s.ɵɵtext(1,"\n"),s.ɵɵtemplate(2,b,46,12,"ng-container",1),s.ɵɵtext(3,"\n"),s.ɵɵtemplate(4,S,60,34,"ng-container",1),s.ɵɵtext(5,"\n"),s.ɵɵtemplate(6,w,11,3,"ng-container",1),s.ɵɵtext(7,"\n"),s.ɵɵtemplate(8,C,6,3,"ng-container",1),s.ɵɵtext(9,"\n")),2&e&&(s.ɵɵproperty("ngIf",t.showOptions&&t.showMethods),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.Card),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.BankAccount),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.PayPal),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.Credit))},directives:[p.NgIf,u.RadioControlValueAccessor,u.DefaultValueAccessor,u.NgControlStatus,u.NgModel,d.A11yTitleDirective,m.CalloutComponent,u.RequiredValidator,h.InputVerbatimDirective,u.SelectControlValueAccessor,u.NgSelectOption,u.ɵangular_packages_forms_forms_x],pipes:[f.I18nPipe],encapsulation:2}),e}();t.PaymentComponent=P},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Text=0]="Text",e[e.Hidden=1]="Hidden",e[e.Boolean=2]="Boolean"}(t.FieldType||(t.FieldType={}))},,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.id=null,this.name=null,this.revisionDate=null,e&&(this.id=e.id,this.revisionDate=e.revisionDate)};t.FolderView=r},,,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1&&(n=this.getFirstLetters(r,this.charCount)),null==n&&(n=r.substr(0,this.charCount)),a=this.getCharText(n),s=this.stringToColor(r),(l=this.getSvg(this.size,s)).appendChild(a),c=window.document.createElement("div").appendChild(l).outerHTML,p=window.btoa(unescape(encodeURIComponent(c))),this.src="data:image/svg+xml;base64,"+p,i.label=4;case 4:return[2]}}))}))},e.prototype.stringToColor=function(e){for(var t=0,n=0;n>8*n&255).toString(16)).substr(-2)}return r},e.prototype.getFirstLetters=function(e,t){var n=e.split(" ");if(n.length>1){for(var r="",i=0;i0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasAttachments",{get:function(){return this.attachments&&this.attachments.length>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasOldAttachments",{get:function(){if(this.hasAttachments)for(var e=0;e0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"passwordRevisionDisplayDate",{get:function(){return this.type!==r.CipherType.Login||null==this.login||null==this.login.password||""===this.login.password?null:this.login.passwordRevisionDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDeleted",{get:function(){return null!=this.deletedDate},enumerable:!0,configurable:!0}),e}();t.CipherView=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(30),i=function(){function e(e){this.title=null,this.middleName=null,this.address1=null,this.address2=null,this.address3=null,this.city=null,this.state=null,this.postalCode=null,this.country=null,this.company=null,this.email=null,this.phone=null,this.ssn=null,this.username=null,this.passportNumber=null,this.licenseNumber=null,this._firstName=null,this._lastName=null,this._subTitle=null}return Object.defineProperty(e.prototype,"firstName",{get:function(){return this._firstName},set:function(e){this._firstName=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastName",{get:function(){return this._lastName},set:function(e){this._lastName=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){return null!=this._subTitle||null==this.firstName&&null==this.lastName||(this._subTitle="",null!=this.firstName&&(this._subTitle=this.firstName),null!=this.lastName&&(""!==this._subTitle&&(this._subTitle+=" "),this._subTitle+=this.lastName)),this._subTitle},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullName",{get:function(){if(null!=this.title||null!=this.firstName||null!=this.middleName||null!=this.lastName){var e="";return null!=this.title&&(e+=this.title+" "),null!=this.firstName&&(e+=this.firstName+" "),null!=this.middleName&&(e+=this.middleName+" "),null!=this.lastName&&(e+=this.lastName),e.trim()}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullAddress",{get:function(){var e=this.address1;return r.Utils.isNullOrWhitespace(this.address2)||(r.Utils.isNullOrWhitespace(e)||(e+=", "),e+=this.address2),r.Utils.isNullOrWhitespace(this.address3)||(r.Utils.isNullOrWhitespace(e)||(e+=", "),e+=this.address3),e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullAddressPart2",{get:function(){if(null==this.city&&null==this.state&&null==this.postalCode)return null;var e=this.city||"-",t=this.state,n=this.postalCode||"-",i=e;return r.Utils.isNullOrWhitespace(t)||(i+=", "+t),i+=", "+n},enumerable:!0,configurable:!0}),e}();t.IdentityView=i},,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.id=e.id,this.organizationId=e.organizationId,this.name=e.name,this.externalId=e.externalId,this.readOnly=e.readOnly};t.CollectionData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(140),i=function(e){this.id=null,this.organizationId=null,this.name=null,this.externalId=null,this.readOnly=null,this.hidePasswords=null,e&&(this.id=e.id,this.organizationId=e.organizationId,this.externalId=e.externalId,e instanceof r.Collection&&(this.readOnly=e.readOnly,this.hidePasswords=e.hidePasswords))};t.CollectionView=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Invited=0]="Invited",e[e.Accepted=1]="Accepted",e[e.Confirmed=2]="Confirmed"}(t.OrganizationUserStatusType||(t.OrganizationUserStatusType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(39),i=n(482),o=n(483),a=n(484),s=n(485),l=n(486),c=n(595),p=n(488),u=function(e,t,n){if(null!=e){switch(this.id=e.id,this.organizationId=e.organizationId,this.folderId=e.folderId,this.userId=t,this.edit=e.edit,this.viewPassword=e.viewPassword,this.organizationUseTotp=e.organizationUseTotp,this.favorite=e.favorite,this.revisionDate=e.revisionDate,this.type=e.type,this.name=e.name,this.notes=e.notes,this.collectionIds=null!=n?n:e.collectionIds,this.deletedDate=e.deletedDate,this.type){case r.CipherType.Login:this.login=new l.LoginData(e.login);break;case r.CipherType.SecureNote:this.secureNote=new p.SecureNoteData(e.secureNote);break;case r.CipherType.Card:this.card=new o.CardData(e.card);break;case r.CipherType.Identity:this.identity=new s.IdentityData(e.identity)}null!=e.fields&&(this.fields=e.fields.map((function(e){return new a.FieldData(e)}))),null!=e.attachments&&(this.attachments=e.attachments.map((function(e){return new i.AttachmentData(e)}))),null!=e.passwordHistory&&(this.passwordHistory=e.passwordHistory.map((function(e){return new c.PasswordHistoryData(e)})))}};t.CipherData=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(30),i=function(){function e(e){this.username=null,this.password=null,this.passwordRevisionDate=null,this.totp=null,this.uris=null,e&&(this.passwordRevisionDate=e.passwordRevisionDate)}return Object.defineProperty(e.prototype,"uri",{get:function(){return this.hasUris?this.uris[0].uri:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maskedPassword",{get:function(){return null!=this.password?"••••••••":null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){return this.username},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canLaunch",{get:function(){return this.hasUris&&this.uris.some((function(e){return e.canLaunch}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTotp",{get:function(){return!r.Utils.isNullOrWhitespace(this.totp)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"launchUri",{get:function(){if(this.hasUris){var e=this.uris.find((function(e){return e.canLaunch}));if(null!=e)return e.launchUri}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasUris",{get:function(){return null!=this.uris&&this.uris.length>0},enumerable:!0,configurable:!0}),e}();t.LoginView=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Text=0]="Text",e[e.File=1]="File"}(t.SendType||(t.SendType={}))},,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?(p=[],[4,this.attachments.reduce((function(t,n){return t.then((function(){return n.decrypt(l,e)})).then((function(e){p.push(e)}))}),Promise.resolve())]):[3,13];case 12:a.sent(),t.attachments=p,a.label=13;case 13:return null!=this.fields&&this.fields.length>0?(u=[],[4,this.fields.reduce((function(t,n){return t.then((function(){return n.decrypt(l,e)})).then((function(e){u.push(e)}))}),Promise.resolve())]):[3,15];case 14:a.sent(),t.fields=u,a.label=15;case 15:return null!=this.passwordHistory&&this.passwordHistory.length>0?(d=[],[4,this.passwordHistory.reduce((function(t,n){return t.then((function(){return n.decrypt(l,e)})).then((function(e){d.push(e)}))}),Promise.resolve())]):[3,17];case 16:a.sent(),t.passwordHistory=d,a.label=17;case 17:return[2,t]}}))}))},t.prototype.toCipherData=function(e){var t=new l.CipherData;switch(t.id=this.id,t.organizationId=this.organizationId,t.folderId=this.folderId,t.userId=null!=this.organizationId?e:null,t.edit=this.edit,t.viewPassword=this.viewPassword,t.organizationUseTotp=this.organizationUseTotp,t.favorite=this.favorite,t.revisionDate=null!=this.revisionDate?this.revisionDate.toISOString():null,t.type=this.type,t.collectionIds=this.collectionIds,t.deletedDate=null!=this.deletedDate?this.deletedDate.toISOString():null,this.buildDataModel(this,t,{name:null,notes:null}),t.type){case s.CipherType.Login:t.login=this.login.toLoginData();break;case s.CipherType.SecureNote:t.secureNote=this.secureNote.toSecureNoteData();break;case s.CipherType.Card:t.card=this.card.toCardData();break;case s.CipherType.Identity:t.identity=this.identity.toIdentityData()}return null!=this.fields&&(t.fields=this.fields.map((function(e){return e.toFieldData()}))),null!=this.attachments&&(t.attachments=this.attachments.map((function(e){return e.toAttachmentData()}))),null!=this.passwordHistory&&(t.passwordHistory=this.passwordHistory.map((function(e){return e.toPasswordHistoryData()}))),t},t}(d.default);t.Cipher=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.SendService=r},,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.name=null,this.value=null,this.type=null,this.newField=!1,this.showValue=!1,e&&(this.type=e.type)}return Object.defineProperty(e.prototype,"maskedValue",{get:function(){return null!=this.value?"••••••••":null},enumerable:!0,configurable:!0}),e}();t.FieldView=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(39),i=n(599),o=n(600),a=n(601),s=n(602),l=n(603),c=n(604),p=n(880),u=function(e){var t=this;switch(this.type=e.type,this.folderId=e.folderId,this.organizationId=e.organizationId,this.name=e.name?e.name.encryptedString:null,this.notes=e.notes?e.notes.encryptedString:null,this.favorite=e.favorite,this.lastKnownRevisionDate=e.revisionDate,this.type){case r.CipherType.Login:this.login=new s.LoginApi,this.login.uris=null,this.login.username=e.login.username?e.login.username.encryptedString:null,this.login.password=e.login.password?e.login.password.encryptedString:null,this.login.passwordRevisionDate=null!=e.login.passwordRevisionDate?e.login.passwordRevisionDate.toISOString():null,this.login.totp=e.login.totp?e.login.totp.encryptedString:null,null!=e.login.uris&&(this.login.uris=e.login.uris.map((function(e){var t=new l.LoginUriApi;return t.uri=null!=e.uri?e.uri.encryptedString:null,t.match=null!=e.match?e.match:null,t})));break;case r.CipherType.SecureNote:this.secureNote=new c.SecureNoteApi,this.secureNote.type=e.secureNote.type;break;case r.CipherType.Card:this.card=new i.CardApi,this.card.cardholderName=null!=e.card.cardholderName?e.card.cardholderName.encryptedString:null,this.card.brand=null!=e.card.brand?e.card.brand.encryptedString:null,this.card.number=null!=e.card.number?e.card.number.encryptedString:null,this.card.expMonth=null!=e.card.expMonth?e.card.expMonth.encryptedString:null,this.card.expYear=null!=e.card.expYear?e.card.expYear.encryptedString:null,this.card.code=null!=e.card.code?e.card.code.encryptedString:null;break;case r.CipherType.Identity:this.identity=new a.IdentityApi,this.identity.title=null!=e.identity.title?e.identity.title.encryptedString:null,this.identity.firstName=null!=e.identity.firstName?e.identity.firstName.encryptedString:null,this.identity.middleName=null!=e.identity.middleName?e.identity.middleName.encryptedString:null,this.identity.lastName=null!=e.identity.lastName?e.identity.lastName.encryptedString:null,this.identity.address1=null!=e.identity.address1?e.identity.address1.encryptedString:null,this.identity.address2=null!=e.identity.address2?e.identity.address2.encryptedString:null,this.identity.address3=null!=e.identity.address3?e.identity.address3.encryptedString:null,this.identity.city=null!=e.identity.city?e.identity.city.encryptedString:null,this.identity.state=null!=e.identity.state?e.identity.state.encryptedString:null,this.identity.postalCode=null!=e.identity.postalCode?e.identity.postalCode.encryptedString:null,this.identity.country=null!=e.identity.country?e.identity.country.encryptedString:null,this.identity.company=null!=e.identity.company?e.identity.company.encryptedString:null,this.identity.email=null!=e.identity.email?e.identity.email.encryptedString:null,this.identity.phone=null!=e.identity.phone?e.identity.phone.encryptedString:null,this.identity.ssn=null!=e.identity.ssn?e.identity.ssn.encryptedString:null,this.identity.username=null!=e.identity.username?e.identity.username.encryptedString:null,this.identity.passportNumber=null!=e.identity.passportNumber?e.identity.passportNumber.encryptedString:null,this.identity.licenseNumber=null!=e.identity.licenseNumber?e.identity.licenseNumber.encryptedString:null}null!=e.fields&&(this.fields=e.fields.map((function(e){var t=new o.FieldApi;return t.type=e.type,t.name=e.name?e.name.encryptedString:null,t.value=e.value?e.value.encryptedString:null,t}))),null!=e.passwordHistory&&(this.passwordHistory=[],e.passwordHistory.forEach((function(e){t.passwordHistory.push({lastUsedDate:e.lastUsedDate,password:e.password?e.password.encryptedString:null})}))),null!=e.attachments&&(this.attachments={},this.attachments2={},e.attachments.forEach((function(e){var n=e.fileName?e.fileName.encryptedString:null;t.attachments[e.id]=n;var r=new p.AttachmentRequest;r.fileName=n,null!=e.key&&(r.key=e.key.encryptedString),t.attachments2[e.id]=r})))};t.CipherRequest=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t,n,r){var i=e.call(this,t)||this,o=null;if(null!=t){var a=i.getResponseProperty("ErrorModel");o=a&&r?a:t}return o?(i.message=i.getResponseProperty("Message",o),i.validationErrors=i.getResponseProperty("ValidationErrors",o)):429===n&&(i.message="Rate limit exceeded. Try again later."),i.statusCode=n,i}return i(t,e),t.prototype.getSingleMessage=function(){if(null==this.validationErrors)return this.message;for(var e in this.validationErrors)if(this.validationErrors.hasOwnProperty(e)&&this.validationErrors[e].length)return this.validationErrors[e][0];return this.message},t.prototype.getAllMessages=function(){var e=[];if(null==this.validationErrors)return e;var t=function(t){if(!n.validationErrors.hasOwnProperty(t))return"continue";n.validationErrors[t].forEach((function(n){var r="";if(t.indexOf("[")>-1&&t.indexOf("]")>-1){var i=t.lastIndexOf(".");r=t.substr(0,i>-1?i:t.length)+": "}e.push(r+n)}))},n=this;for(var r in this.validationErrors)t(r);return e},t}(n(23).BaseResponse);t.ErrorResponse=o},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3),n(5);var r=n(0),i=n(3),o=n(5),a=function(){function e(e,t){this.i18nService=e,this.platformUtilsService=t}return e.prototype.showError=function(e){var t=this.i18nService.t("unexpectedError"),n=[];return null!=e&&"string"==typeof e?n.push(e):null==e||"object"!=typeof e?n.push(t):null!=e.validationErrors?n=n.concat(e.getAllMessages()):n.push(e.message?e.message:t),1===n.length?this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),n[0]):n.length>1&&this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),n,{timeout:5e3*n.length}),n},e.ɵfac=function(t){return new(t||e)(r.ɵɵinject(i.I18nService),r.ɵɵinject(o.PlatformUtilsService))},e.ɵprov=r.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ValidationService=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(72);var r=n(8),i=(n(3),n(0)),o=n(8),a=n(72),s=n(3),l=function(){function e(e,t,n,i){var o=this;this.router=e,this.activatedRoute=t,this.titleService=n,this.previousUrl=void 0,this.currentUrl=void 0,this.currentUrl=this.router.url,e.events.subscribe((function(e){if(e instanceof r.NavigationEnd){o.previousUrl=o.currentUrl,o.currentUrl=e.url;for(var t=i.t("pageTitle","Bitwarden"),n=null,a=null,s=o.activatedRoute.firstChild;null!=s;){if(null==s.firstChild){if(null!=s.snapshot.data&&null!=s.snapshot.data.title){a=s.snapshot.data.title;break}if(null!=s.snapshot.data&&null!=s.snapshot.data.titleId){n=s.snapshot.data.titleId;break}n=null,a=null;break}s=s.firstChild}if(null!=n||null!=a){var l=null!=a?a:i.t(n);null!=l&&""!==l&&(t=l+" | "+t)}o.titleService.setTitle(t)}}))}return e.prototype.getPreviousUrl=function(){return this.previousUrl},e.prototype.setPreviousUrl=function(e){this.previousUrl=e},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(o.Router),i.ɵɵinject(o.ActivatedRoute),i.ɵɵinject(a.Title),i.ɵɵinject(s.I18nService))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.RouterService=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.PBKDF2_SHA256=0]="PBKDF2_SHA256"}(t.KdfType||(t.KdfType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(0),i=n(3),o=n(4);function a(e,t){if(1&e&&(r.ɵɵelementContainerStart(0),r.ɵɵtext(1),r.ɵɵelementContainerEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵtextInterpolate1("\n ",n.text,"\n ")}}var s=function(e){return{width:e}},l=function(){function e(e){this.i18nService=e,this.showText=!1,this.scoreWidth=0,this.color="bg-danger"}return e.prototype.ngOnChanges=function(){switch(this.scoreWidth=null==this.score?0:20*(this.score+1),this.score){case 4:this.color="bg-success",this.text=this.i18nService.t("strong");break;case 3:this.color="bg-primary",this.text=this.i18nService.t("good");break;case 2:this.color="bg-warning",this.text=this.i18nService.t("weak");break;default:this.color="bg-danger",this.text=null!=this.score?this.i18nService.t("weak"):null}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.I18nService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-password-strength"]],inputs:{score:"score",showText:"showText"},features:[r.ɵɵNgOnChangesFeature],decls:8,vars:8,consts:[[1,"progress"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",3,"ngStyle"],[4,"ngIf"]],template:function(e,t){1&e&&(r.ɵɵelementStart(0,"div",0),r.ɵɵtext(1,"\n "),r.ɵɵelementStart(2,"div",1),r.ɵɵtext(3,"\n "),r.ɵɵtemplate(4,a,2,1,"ng-container",2),r.ɵɵtext(5,"\n "),r.ɵɵelementEnd(),r.ɵɵtext(6,"\n"),r.ɵɵelementEnd(),r.ɵɵtext(7,"\n")),2&e&&(r.ɵɵadvance(2),r.ɵɵclassMapInterpolate1("progress-bar ",t.color,""),r.ɵɵproperty("ngStyle",r.ɵɵpureFunction1(6,s,t.scoreWidth+"%")),r.ɵɵattribute("aria-valuenow",t.scoreWidth),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.showText&&t.text))},directives:[o.NgStyle,o.NgIf],encapsulation:2}),e}();t.PasswordStrengthComponent=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Owner=0]="Owner",e[e.Admin=1]="Admin",e[e.User=2]="User",e[e.Manager=3]="Manager",e[e.Custom=4]="Custom"}(t.OrganizationUserType||(t.OrganizationUserType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t,n,r,i){return null==e||0===e.length?[]:null==t||t.length<2?e:(t=t.trim().toLowerCase(),e.filter((function(e){return null!=n&&null!=e[n]&&e[n].toString().toLowerCase().indexOf(t)>-1||(null!=r&&null!=e[r]&&e[r].toString().toLowerCase().indexOf(t)>-1||null!=i&&null!=e[i]&&e[i].toString().toLowerCase().indexOf(t)>-1)})))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"search",type:e,pure:!0}),e}();t.SearchPipe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(280),i=n(254),o=n(0),a=n(3),s=function(){function e(e){this.i18nService=e}return e.prototype.getDefaultDateFilters=function(){var e=new Date,t=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59);e.setDate(e.getDate()-30);var n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0);return[this.toDateTimeLocalString(n),this.toDateTimeLocalString(t)]},e.prototype.formatDateFilters=function(e,t){var n=new Date(e),r=new Date(t+":59.999");if(isNaN(n.getTime())||isNaN(r.getTime())||r"+n+"";var r=this.makeAnchor(n);return r.setAttribute("href","#/organizations/"+e.organizationId+"/vault?search="+n+"&viewEvents="+e.cipherId),r.outerHTML},e.prototype.formatGroupId=function(e){var t=this.getShortId(e.groupId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/groups?search="+t),n.outerHTML},e.prototype.formatCollectionId=function(e){var t=this.getShortId(e.collectionId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/collections?search="+t),n.outerHTML},e.prototype.formatOrgUserId=function(e){var t=this.getShortId(e.organizationUserId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/people?search="+t+"&viewEvents="+e.organizationUserId),n.outerHTML},e.prototype.formatPolicyId=function(e){var t=this.getShortId(e.policyId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/policies?policyId="+e.policyId),n.outerHTML},e.prototype.makeAnchor=function(e){var t=document.createElement("a");return t.title=this.i18nService.t("view"),t.innerHTML=""+e+"",t},e.prototype.getShortId=function(e){return e.substring(0,8)},e.prototype.toDateTimeLocalString=function(e){return e.getFullYear()+"-"+this.pad(e.getMonth()+1)+"-"+this.pad(e.getDate())+"T"+this.pad(e.getHours())+":"+this.pad(e.getMinutes())},e.prototype.pad=function(e){var t=Math.floor(Math.abs(e));return(t<10?"0":"")+t},e.ɵfac=function(t){return new(t||e)(o.ɵɵinject(a.I18nService))},e.ɵprov=o.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.EventService=s;var l=function(){};t.EventInfo=l;var c=function(){this.cipherInfo=!0};t.EventOptions=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.User_LoggedIn=1e3]="User_LoggedIn",e[e.User_ChangedPassword=1001]="User_ChangedPassword",e[e.User_Updated2fa=1002]="User_Updated2fa",e[e.User_Disabled2fa=1003]="User_Disabled2fa",e[e.User_Recovered2fa=1004]="User_Recovered2fa",e[e.User_FailedLogIn=1005]="User_FailedLogIn",e[e.User_FailedLogIn2fa=1006]="User_FailedLogIn2fa",e[e.User_ClientExportedVault=1007]="User_ClientExportedVault",e[e.Cipher_Created=1100]="Cipher_Created",e[e.Cipher_Updated=1101]="Cipher_Updated",e[e.Cipher_Deleted=1102]="Cipher_Deleted",e[e.Cipher_AttachmentCreated=1103]="Cipher_AttachmentCreated",e[e.Cipher_AttachmentDeleted=1104]="Cipher_AttachmentDeleted",e[e.Cipher_Shared=1105]="Cipher_Shared",e[e.Cipher_UpdatedCollections=1106]="Cipher_UpdatedCollections",e[e.Cipher_ClientViewed=1107]="Cipher_ClientViewed",e[e.Cipher_ClientToggledPasswordVisible=1108]="Cipher_ClientToggledPasswordVisible",e[e.Cipher_ClientToggledHiddenFieldVisible=1109]="Cipher_ClientToggledHiddenFieldVisible",e[e.Cipher_ClientToggledCardCodeVisible=1110]="Cipher_ClientToggledCardCodeVisible",e[e.Cipher_ClientCopiedPassword=1111]="Cipher_ClientCopiedPassword",e[e.Cipher_ClientCopiedHiddenField=1112]="Cipher_ClientCopiedHiddenField",e[e.Cipher_ClientCopiedCardCode=1113]="Cipher_ClientCopiedCardCode",e[e.Cipher_ClientAutofilled=1114]="Cipher_ClientAutofilled",e[e.Cipher_SoftDeleted=1115]="Cipher_SoftDeleted",e[e.Cipher_Restored=1116]="Cipher_Restored",e[e.Collection_Created=1300]="Collection_Created",e[e.Collection_Updated=1301]="Collection_Updated",e[e.Collection_Deleted=1302]="Collection_Deleted",e[e.Group_Created=1400]="Group_Created",e[e.Group_Updated=1401]="Group_Updated",e[e.Group_Deleted=1402]="Group_Deleted",e[e.OrganizationUser_Invited=1500]="OrganizationUser_Invited",e[e.OrganizationUser_Confirmed=1501]="OrganizationUser_Confirmed",e[e.OrganizationUser_Updated=1502]="OrganizationUser_Updated",e[e.OrganizationUser_Removed=1503]="OrganizationUser_Removed",e[e.OrganizationUser_UpdatedGroups=1504]="OrganizationUser_UpdatedGroups",e[e.OrganizationUser_UnlinkedSso=1505]="OrganizationUser_UnlinkedSso",e[e.OrganizationUser_ResetPassword_Enroll=1506]="OrganizationUser_ResetPassword_Enroll",e[e.OrganizationUser_ResetPassword_Withdraw=1507]="OrganizationUser_ResetPassword_Withdraw",e[e.Organization_Updated=1600]="Organization_Updated",e[e.Organization_PurgedVault=1601]="Organization_PurgedVault",e[e.Policy_Updated=1700]="Policy_Updated"}(t.EventType||(t.EventType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Card=0]="Card",e[e.BankAccount=1]="BankAccount",e[e.PayPal=2]="PayPal",e[e.BitPay=3]="BitPay",e[e.Credit=4]="Credit",e[e.WireTransfer=5]="WireTransfer",e[e.AppleInApp=6]="AppleInApp",e[e.GoogleInApp=7]="GoogleInApp",e[e.Check=8]="Check"}(t.PaymentMethodType||(t.PaymentMethodType={}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]4?(t=Math.floor(this.totpCode.length/2),this.totpCodeFormatted=this.totpCode.substring(0,t)+" "+this.totpCode.substring(t)):this.totpCodeFormatted=this.totpCode:(this.totpCodeFormatted=null,this.totpInterval&&window.clearInterval(this.totpInterval)),[2]}}))}))},t.prototype.allowOwnershipAssignment=function(){return(!this.editMode||this.cloneMode)&&null!=this.ownershipOptions&&(this.ownershipOptions.length>1||!this.allowPersonal)},t.prototype.totpTick=function(e){return o(this,void 0,void 0,(function(){var t,n;return a(this,(function(r){switch(r.label){case 0:return t=Math.round((new Date).getTime()/1e3),n=t%e,this.totpSec=e-n,this.totpDash=+(Math.round(78.6/e*n+"e+2")+"e-2"),this.totpLow=this.totpSec<=7,0!==n?[3,2]:[4,this.totpUpdateCode()];case 1:r.sent(),r.label=2;case 2:return[2]}}))}))},t.ɵfac=function(e){return new(e||t)(p.ɵɵdirectiveInject(u.CipherService),p.ɵɵdirectiveInject(d.FolderService),p.ɵɵdirectiveInject(m.I18nService),p.ɵɵdirectiveInject(h.PlatformUtilsService),p.ɵɵdirectiveInject(f.AuditService),p.ɵɵdirectiveInject(v.StateService),p.ɵɵdirectiveInject(y.UserService),p.ɵɵdirectiveInject(g.CollectionService),p.ɵɵdirectiveInject(x.TotpService),p.ɵɵdirectiveInject(b.PasswordGenerationService),p.ɵɵdirectiveInject(S.MessagingService),p.ɵɵdirectiveInject(w.EventService),p.ɵɵdirectiveInject(C.PolicyService))},t.ɵcmp=p.ɵɵdefineComponent({type:t,selectors:[["app-vault-add-edit"]],features:[p.ɵɵInheritDefinitionFeature],decls:36,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","cipherAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","","autocomplete","off",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","cipherAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit","class","btn btn-primary btn-submit",3,"disabled",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["class","ml-auto",4,"ngIf"],[1,"modal-body"],["type","info",4,"ngIf"],["class","row",4,"ngIf"],[1,"row"],[1,"col-6","form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","col-6 form-group",4,"ngIf"],[4,"ngIf"],[1,"form-group"],["for","notes"],["id","notes","name","Notes","rows","6",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"mt-4"],["cdkDropList","",3,"cdkDropListDropped",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-2",3,"click",4,"ngIf"],["type","info"],["for","type"],["id","type","name","Type","appAutofocus","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["for","folder"],["id","folder","name","FolderId",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","loginUsername"],[1,"input-group"],["id","loginUsername","type","text","name","Login.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","input-group-append",4,"ngIf"],[1,"d-flex"],["for","loginPassword"],["class","ml-auto d-flex",4,"ngIf"],["id","loginPassword","name","Login.Password","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"input-group-append"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","disabled","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],["aria-hidden","true",1,"fa","fa-lg","fa-clone"],["for","loginTotp"],["id","loginTotp","name","Login.Totp","appInputVerbatim","",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-6","form-group","totp","d-flex","align-items-end",3,"ngClass"],["class","d-flex align-items-center",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-3",3,"click",4,"ngIf"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","click"],[1,"ml-auto","d-flex"],["href","#","class","d-block mr-2 fa-icon-above-input","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["href","#","appStopClick","",1,"d-block","fa-icon-above-input",3,"appA11yTitle","appApiAction","click"],["checkPasswordBtn",""],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-check-circle",3,"hidden"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-spinner","fa-spin",3,"hidden","title"],["href","#","appStopClick","",1,"d-block","mr-2","fa-icon-above-input",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-refresh"],["src","images/totp-countdown.png",1,"ml-2",3,"title"],["href","#","appStopClick","","class","badge badge-primary ml-3",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"badge","badge-primary","ml-3",3,"click"],[1,"d-flex","align-items-center"],[1,"totp-countdown","mr-3","ml-2"],[1,"totp-sec"],["r","12.6","cy","16","cx","16",1,"totp-circle","inner",3,"ngStyle"],["r","14","cy","16","cx","16",1,"totp-circle","outer"],[1,"totp-code","mr-2",3,"title"],["type","button",1,"btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-clone"],["class","row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"col-7","form-group"],[3,"for"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","placeholder","ngModelChange"],["aria-hidden","true",1,"fa","fa-lg","fa-share"],[1,"col-5","form-group"],["href","https://help.bitwarden.com/article/uri-match-detection/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-control","overflow-hidden",3,"id","name","ngModel","disabled","ngModelChange","change"],["type","button","class","btn btn-link text-danger ml-2",3,"appA11yTitle","click",4,"ngIf"],["type","button",1,"btn","btn-link","text-danger","ml-2",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-minus-circle","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus-circle","fa-fw"],["for","cardCardholderName"],["id","cardCardholderName","type","text","name","Card.CardCardholderName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardBrand"],["id","cardBrand","name","Card.Brand",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardNumber"],["id","cardNumber","type","text","name","Card.Number","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"col","form-group"],["for","cardExpMonth"],["id","cardExpMonth","name","Card.ExpMonth",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardExpYear"],["id","cardExpYear","type","text","name","Card.ExpYear",1,"form-control",3,"ngModel","placeholder","disabled","ngModelChange"],["for","cardCode"],["id","cardCode","name","Card.Code","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-4","form-group"],["for","idTitle"],["id","idTitle","name","Identity.Title",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idFirstName"],["id","idFirstName","type","text","name","Identity.FirstName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idMiddleName"],["id","idMiddleName","type","text","name","Identity.MiddleName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLastName"],["id","idLastName","type","text","name","Identity.LastName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idUsername"],["id","idUsername","type","text","name","Identity.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCompany"],["id","idCompany","type","text","name","Identity.Company",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idSsn"],["id","idSsn","type","text","name","Identity.SSN","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPassportNumber"],["id","idPassportNumber","type","text","name","Identity.PassportNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLicenseNumber"],["id","idLicenseNumber","type","text","name","Identity.LicenseNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idEmail"],["id","idEmail","type","text","name","Identity.Email","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPhone"],["id","idPhone","type","text","name","Identity.Phone",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress1"],["id","idAddress1","type","text","name","Identity.Address1",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress2"],["id","idAddress2","type","text","name","Identity.Address2",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress3"],["id","idAddress3","type","text","name","Identity.Address3",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCity"],["id","idCity","type","text","name","Identity.City",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idState"],["id","idState","type","text","name","Identity.State",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPostalCode"],["id","idPostalCode","type","text","name","Identity.PostalCode",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCountry"],["id","idCountry","type","text","name","Identity.Country",1,"form-control",3,"ngModel","disabled","ngModelChange"],["cdkDropList","",3,"cdkDropListDropped"],["class","row","cdkDrag","",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"row"],["href","https://help.bitwarden.com/article/custom-fields/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","ngModelChange"],["class","input-group",4,"ngIf"],[1,"flex-fill"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange",4,"ngIf"],["type","button","class","btn btn-link text-muted cursor-move",3,"appA11yTitle",4,"ngIf"],["appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"id","type","name","ngModel","disabled","ngModelChange"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-link","text-muted","cursor-move",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-bars","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-2",3,"click"],[1,"col-5"],["for","addFieldType",1,"sr-only"],["id","addFieldType","name","AddFieldType",1,"form-control",3,"ngModel","ngModelChange"],["for","organizationId"],["id","organizationId","name","OrganizationId",1,"form-control",3,"ngModel","disabled","ngModelChange","change"],["class","form-check",4,"ngFor","ngForOf"],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"ngModel","id","name","disabled","ngModelChange"],[1,"form-check-label",3,"for"],[1,"small","text-muted","mt-4"],[1,"font-weight-semibold"],["class","ml-3",4,"ngIf"],["href","#","appStopClick","",3,"title","click"],[1,"ml-3"],[4,"ngFor","ngForOf"],[1,"password-wrapper","text-monospace","ml-2"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"ml-auto"],["type","button","class","btn btn-link",3,"appA11yTitle","click",4,"ngIf"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",(function(){return t.submit()})),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,_e,54,25,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵelementStart(22,"div",9),p.ɵɵtext(23,"\n "),p.ɵɵtemplate(24,Ae,9,7,"button",10),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",11),p.ɵɵtext(27),p.ɵɵpipe(28,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(29,"\n "),p.ɵɵtemplate(30,Be,6,2,"div",12),p.ɵɵtext(31,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(32,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(33,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n")),2&e&&(p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,7,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.cipher),p.ɵɵadvance(4),p.ɵɵproperty("ngIf",!t.viewOnly),p.ɵɵadvance(3),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(28,9,t.viewOnly?"close":"cancel"),"\n "),p.ɵɵadvance(3),p.ɵɵproperty("ngIf",t.cipher&&!t.viewOnly))},directives:[I.NgControlStatusGroup,I.NgForm,E.ApiActionDirective,P.A11yTitleDirective,k.NgIf,I.DefaultValueAccessor,I.RequiredValidator,I.NgControlStatus,I.NgModel,_.CalloutComponent,I.SelectControlValueAccessor,A.AutofocusDirective,k.NgForOf,I.NgSelectOption,I.ɵangular_packages_forms_forms_x,O.InputVerbatimDirective,k.NgClass,T.StopClickDirective,k.NgStyle,M.CdkDropList,M.CdkDrag,B.TrueFalseValueDirective,I.CheckboxControlValueAccessor],pipes:[D.I18nPipe,k.DatePipe],encapsulation:2}),t}(c.AddEditComponent);t.AddEditComponent=De},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.ImportService=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(498),a=n(23),s=n(883),l=n(599),c=n(600),p=n(601),u=n(602),d=n(604),m=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.folderId=n.getResponseProperty("FolderId")||null,n.type=n.getResponseProperty("Type"),n.name=n.getResponseProperty("Name"),n.notes=n.getResponseProperty("Notes"),n.favorite=n.getResponseProperty("Favorite")||!1,n.edit=!!n.getResponseProperty("Edit"),null==n.getResponseProperty("ViewPassword")?n.viewPassword=!0:n.viewPassword=n.getResponseProperty("ViewPassword"),n.organizationUseTotp=n.getResponseProperty("OrganizationUseTotp"),n.revisionDate=n.getResponseProperty("RevisionDate"),n.collectionIds=n.getResponseProperty("CollectionIds"),n.deletedDate=n.getResponseProperty("DeletedDate");var r=n.getResponseProperty("Login");null!=r&&(n.login=new u.LoginApi(r));var i=n.getResponseProperty("Card");null!=i&&(n.card=new l.CardApi(i));var a=n.getResponseProperty("Identity");null!=a&&(n.identity=new p.IdentityApi(a));var m=n.getResponseProperty("SecureNote");null!=m&&(n.secureNote=new d.SecureNoteApi(m));var h=n.getResponseProperty("Fields");null!=h&&(n.fields=h.map((function(e){return new c.FieldApi(e)})));var f=n.getResponseProperty("Attachments");null!=f&&(n.attachments=f.map((function(e){return new o.AttachmentResponse(e)})));var v=n.getResponseProperty("PasswordHistory");return null!=v&&(n.passwordHistory=v.map((function(e){return new s.PasswordHistoryResponse(e)}))),n}return i(t,e),t}(a.BaseResponse);t.CipherResponse=m},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]500?500:this.ciphers.length,n=0;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]r){if(o===a.TwoFactorProviderType.WebAuthn&&!e)return;n=o,r=s.priority}})),n},e.prototype.makePreloginKey=function(e,t){return i(this,void 0,void 0,(function(){var n,r,i,a;return o(this,(function(o){switch(o.label){case 0:t=t.trim().toLowerCase(),n=null,r=null,o.label=1;case 1:return o.trys.push([1,3,,4]),[4,this.apiService.postPrelogin(new p.PreloginRequest(t))];case 2:return null!=(i=o.sent())&&(n=i.kdf,r=i.kdfIterations),[3,4];case 3:if(null==(a=o.sent())||404!==a.statusCode)throw a;return[3,4];case 4:return[2,this.cryptoService.makeKey(e,t,n,r)]}}))}))},e.prototype.authingWithApiKey=function(){return null!=this.clientId&&null!=this.clientSecret},e.prototype.authingWithSso=function(){return null!=this.code&&null!=this.codeVerifier&&null!=this.ssoRedirectUrl},e.prototype.authingWithPassword=function(){return null!=this.email&&null!=this.masterPasswordHash},e.prototype.logInHelper=function(e,t,n,r,p,d,m,h,f,v,y){return i(this,void 0,void 0,(function(){var i,g,x,b,S,w,C,I,E,P,k,_,A;return o(this,(function(o){switch(o.label){case 0:return[4,this.tokenService.getTwoFactorToken(e)];case 1:return i=o.sent(),[4,this.appIdService.getAppId()];case 2:return g=o.sent(),x=new l.DeviceRequest(g,this.platformUtilsService),b=[],S=[],w=[],b=null!=e&&null!=t?[e,t]:null,S=null!=n&&null!=r&&null!=p?[n,r,p]:null,w=null!=d&&null!=m?[d,m]:null,C=null!=v&&null!=f?new u.TokenRequest(b,S,w,f,v,y,x):null!=i?new u.TokenRequest(b,S,w,a.TwoFactorProviderType.Remember,i,!1,x):new u.TokenRequest(b,S,w,null,null,!1,x),[4,this.apiService.postIdentityToken(C)];case 3:return I=o.sent(),this.clearState(),(E=new s.AuthResult).twoFactor=!I.accessToken,E.twoFactor?(P=I,this.email=e,this.masterPasswordHash=t,this.code=n,this.codeVerifier=r,this.ssoRedirectUrl=p,this.clientId=d,this.clientSecret=m,this.key=this.setCryptoKeys?h:null,this.twoFactorProvidersData=P.twoFactorProviders2,E.twoFactorProviders=P.twoFactorProviders2,[2,E]):(k=I,E.resetMasterPassword=k.resetMasterPassword,null==k.twoFactorToken?[3,5]:[4,this.tokenService.setTwoFactorToken(k.twoFactorToken,e)]);case 4:o.sent(),o.label=5;case 5:return[4,this.tokenService.setTokens(k.accessToken,k.refreshToken)];case 6:return o.sent(),[4,this.userService.setInformation(this.tokenService.getUserId(),this.tokenService.getEmail(),k.kdf,k.kdfIterations)];case 7:return o.sent(),this.setCryptoKeys?null==h?[3,9]:[4,this.cryptoService.setKey(h)]:[3,19];case 8:o.sent(),o.label=9;case 9:return null==t?[3,11]:[4,this.cryptoService.setKeyHash(t)];case 10:o.sent(),o.label=11;case 11:return null!=n&&null==k.key?[3,19]:[4,this.cryptoService.setEncKey(k.key)];case 12:if(o.sent(),null!=k.privateKey)return[3,17];o.label=13;case 13:return o.trys.push([13,16,,17]),[4,this.cryptoService.makeKeyPair()];case 14:return _=o.sent(),[4,this.apiService.postAccountKeys(new c.KeysRequest(_[0],_[1].encryptedString))];case 15:return o.sent(),k.privateKey=_[1].encryptedString,[3,17];case 16:return A=o.sent(),this.logService.error(A),[3,17];case 17:return[4,this.cryptoService.setEncPrivateKey(k.privateKey)];case 18:o.sent(),o.label=19;case 19:return null!=this.vaultTimeoutService&&(this.vaultTimeoutService.biometricLocked=!1),this.messagingService.send("loggedIn"),[2,E]}}))}))},e.prototype.clearState=function(){this.key=null,this.email=null,this.masterPasswordHash=null,this.code=null,this.codeVerifier=null,this.ssoRedirectUrl=null,this.clientId=null,this.clientSecret=null,this.twoFactorProvidersData=null,this.selectedTwoFactorProviderType=null},e}();t.AuthService=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n){this.id=e,this.readOnly=t,this.hidePasswords=n};t.SelectionReadOnlyRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Android=0]="Android",e[e.iOS=1]="iOS",e[e.ChromeExtension=2]="ChromeExtension",e[e.FirefoxExtension=3]="FirefoxExtension",e[e.OperaExtension=4]="OperaExtension",e[e.EdgeExtension=5]="EdgeExtension",e[e.WindowsDesktop=6]="WindowsDesktop",e[e.MacOsDesktop=7]="MacOsDesktop",e[e.LinuxDesktop=8]="LinuxDesktop",e[e.ChromeBrowser=9]="ChromeBrowser",e[e.FirefoxBrowser=10]="FirefoxBrowser",e[e.OperaBrowser=11]="OperaBrowser",e[e.EdgeBrowser=12]="EdgeBrowser",e[e.IEBrowser=13]="IEBrowser",e[e.UnknownBrowser=14]="UnknownBrowser",e[e.AndroidAmazon=15]="AndroidAmazon",e[e.UWP=16]="UWP",e[e.SafariBrowser=17]="SafariBrowser",e[e.VivaldiBrowser=18]="VivaldiBrowser",e[e.VivaldiExtension=19]="VivaldiExtension",e[e.SafariExtension=20]="SafariExtension"}(t.DeviceType||(t.DeviceType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.SettingsService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Free=0]="Free",e[e.FamiliesAnnually2019=1]="FamiliesAnnually2019",e[e.TeamsMonthly2019=2]="TeamsMonthly2019",e[e.TeamsAnnually2019=3]="TeamsAnnually2019",e[e.EnterpriseMonthly2019=4]="EnterpriseMonthly2019",e[e.EnterpriseAnnually2019=5]="EnterpriseAnnually2019",e[e.Custom=6]="Custom",e[e.FamiliesAnnually=7]="FamiliesAnnually",e[e.TeamsMonthly=8]="TeamsMonthly",e[e.TeamsAnnually=9]="TeamsAnnually",e[e.EnterpriseMonthly=10]="EnterpriseMonthly",e[e.EnterpriseAnnually=11]="EnterpriseAnnually"}(t.PlanType||(t.PlanType={}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(e.uris=[],this.uris.forEach((function(t){e.uris.push(t.toLoginUriData())}))),e},t}(n(81).default);t.Login=p},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(487),a=n(258),s=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t||(r.match=t.match,r.buildDomainModel(r,t,{uri:null},n,[])),r}return i(t,e),t.prototype.decrypt=function(e,t){return this.decryptObj(new a.LoginUriView(this),{uri:null},e,t)},t.prototype.toLoginUriData=function(){var e=new o.LoginUriData;return this.buildDataModel(this,e,{uri:null},["match"]),e},t}(n(81).default);t.LoginUri=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(488),a=n(81),s=n(94),l=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t||(r.type=t.type),r}return i(t,e),t.prototype.decrypt=function(e,t){return Promise.resolve(new s.SecureNoteView(this))},t.prototype.toSecureNoteData=function(){var e=new o.SecureNoteData;return e.type=this.type,e},t}(a.default);t.SecureNote=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=n(13),o=n(0),a=function(){function e(e,t){this.elementRef=e,this.renderer=t,this.trueValue=!0,this.falseValue=!1,this.propagateChange=function(e){}}return e.prototype.onHostChange=function(e){this.propagateChange(e.target.checked?this.trueValue:this.falseValue)},e.prototype.writeValue=function(e){e===this.trueValue?this.renderer.setProperty(this.elementRef.nativeElement,"checked",!0):this.renderer.setProperty(this.elementRef.nativeElement,"checked",!1)},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(e){},e.prototype.setDisabledState=function(e){},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(o.ElementRef),o.ɵɵdirectiveInject(o.Renderer2))},e.ɵdir=o.ɵɵdefineDirective({type:e,selectors:[["input","type","checkbox","appTrueFalseValue",""]],hostBindings:function(e,t){1&e&&o.ɵɵlistener("change",(function(e){return t.onHostChange(e)}))},inputs:{trueValue:"trueValue",falseValue:"falseValue"},features:[o.ɵɵProvidersFeature([{provide:i.NG_VALUE_ACCESSOR,useExisting:r.forwardRef((function(){return e})),multi:!0}])]}),e}();t.TrueFalseValueDirective=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.readOnly=n.getResponseProperty("ReadOnly"),n.hidePasswords=n.getResponseProperty("HidePasswords"),n}return i(t,e),t}(n(23).BaseResponse);t.SelectionReadOnlyResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(619),s=function(e){function t(t){var n=e.call(this,t)||this;n.organizations=[],n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.emailVerified=n.getResponseProperty("EmailVerified"),n.masterPasswordHint=n.getResponseProperty("MasterPasswordHint"),n.premium=n.getResponseProperty("Premium"),n.culture=n.getResponseProperty("Culture"),n.twoFactorEnabled=n.getResponseProperty("TwoFactorEnabled"),n.key=n.getResponseProperty("Key"),n.privateKey=n.getResponseProperty("PrivateKey"),n.securityStamp=n.getResponseProperty("SecurityStamp");var r=n.getResponseProperty("Organizations");return null!=r&&(n.organizations=r.map((function(e){return new a.ProfileOrganizationResponse(e)}))),n}return i(t,e),t}(o.BaseResponse);t.ProfileResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),a=(n(40),n(48),n(41),n(7),n(888)),s=n(0),l=n(40),c=n(48),p=n(41),u=n(7),d=n(17),m=n(13),h=n(65),f=n(4),v=n(37),y=n(10),g=function(e){return{active:e}};function x(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"a",8),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().selectFavorites()})),s.ɵɵtext(3,"\n "),s.ɵɵelement(4,"i",17),s.ɵɵtext(5),s.ɵɵpipe(6,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(7,"\n "),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(4,g,r.selectedFavorites)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(6,2,"favorites"),"\n ")}}function b(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"a",8),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().selectTrash()})),s.ɵɵtext(3,"\n "),s.ɵɵelement(4,"i",18),s.ɵɵtext(5),s.ɵɵpipe(6,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(7,"\n "),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(4,g,r.selectedTrash)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(6,2,"trash"),"\n ")}}function S(e,t){1&e&&(s.ɵɵelementStart(0,"p",19),s.ɵɵtext(1,"\n "),s.ɵɵelement(2,"i",20),s.ɵɵpipe(3,"i18n"),s.ɵɵtext(4,"\n "),s.ɵɵelementStart(5,"span",21),s.ɵɵtext(6),s.ɵɵpipe(7,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(8,"\n "),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(3,2,"loading")),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(7,4,"loading")))}var w=function(e,t){return{"fa-caret-right":e,"fa-caret-down":t}};function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",32),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).collapse(e.node)})),s.ɵɵpipe(1,"i18n"),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext().$implicit,i=s.ɵɵnextContext(4);s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(1,2,"toggleCollapse")),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(4,w,i.isCollapsed(r.node),!i.isCollapsed(r.node)))}}function I(e,t){1&e&&s.ɵɵelement(0,"i",33)}function E(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"a",34),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).editFolder(e.node)})),s.ɵɵpipe(1,"i18n"),s.ɵɵtext(2,"\n "),s.ɵɵelement(3,"i",35),s.ɵɵtext(4,"\n "),s.ɵɵelementEnd()}2&e&&s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(1,1,"editFolder"))}function P(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}var k=function(e){return{$implicit:e}};function _(e,t){if(1&e&&(s.ɵɵelementStart(0,"ul",36),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,P,2,0,"ng-container",26),s.ɵɵtext(3,"\n "),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵnextContext(2);var r=s.ɵɵreference(15);s.ɵɵadvance(2),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(2,k,n.children))}}function A(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"div",22),s.ɵɵtext(3,"\n "),s.ɵɵtemplate(4,C,2,7,"i",28),s.ɵɵtext(5,"\n "),s.ɵɵelementStart(6,"a",8),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(4).selectFolder(e.node)})),s.ɵɵtext(7,"\n "),s.ɵɵtemplate(8,I,1,0,"i",29),s.ɵɵtext(9),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵtemplate(11,E,5,3,"a",30),s.ɵɵtext(12,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(13,"\n "),s.ɵɵtemplate(14,_,4,4,"ul",31),s.ɵɵtext(15,"\n "),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(4);s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(6,g,i.selectedFolder&&r.node.id===i.selectedFolderId)),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",r.children.length),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",0===r.children.length),s.ɵɵadvance(1),s.ɵɵtextInterpolate1("",r.node.name,"\n "),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.node.id),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",r.children.length&&!i.isCollapsed(r.node))}}function O(e,t){if(1&e&&(s.ɵɵtext(0,"\n "),s.ɵɵtemplate(1,A,16,8,"li",27),s.ɵɵtext(2,"\n ")),2&e){var n=t.$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",n)}}function T(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function M(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h3",22),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementStart(5,"a",23),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).addFolder()})),s.ɵɵpipe(6,"i18n"),s.ɵɵtext(7,"\n "),s.ɵɵelement(8,"i",24),s.ɵɵtext(9,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"ul",6),s.ɵɵtext(13,"\n "),s.ɵɵtemplate(14,O,3,1,"ng-template",null,25,s.ɵɵtemplateRefExtractor),s.ɵɵtext(16,"\n "),s.ɵɵtemplate(17,T,2,0,"ng-container",26),s.ɵɵtext(18,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(19,"\n "),s.ɵɵelementContainerEnd()}if(2&e){var r=s.ɵɵreference(15),i=s.ɵɵnextContext(2);s.ɵɵadvance(3),s.ɵɵtextInterpolate1("\n ",s.ɵɵpipeBind1(4,4,"folders"),"\n "),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(6,6,"addFolder")),s.ɵɵadvance(12),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(8,k,i.nestedFolders))}}function B(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",32),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).collapse(e.node)})),s.ɵɵpipe(1,"i18n"),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext().$implicit,i=s.ɵɵnextContext(4);s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(1,2,"toggleCollapse")),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(4,w,i.isCollapsed(r.node),!i.isCollapsed(r.node)))}}function D(e,t){1&e&&s.ɵɵelement(0,"i",39)}function R(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function V(e,t){if(1&e&&(s.ɵɵelementStart(0,"ul",36),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,R,2,0,"ng-container",26),s.ɵɵtext(3,"\n "),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵnextContext(2);var r=s.ɵɵreference(9);s.ɵɵadvance(2),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(2,k,n.children))}}function j(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,B,2,7,"i",28),s.ɵɵtext(3,"\n "),s.ɵɵelementStart(4,"a",8),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(4).selectCollection(e.node)})),s.ɵɵtext(5,"\n "),s.ɵɵtemplate(6,D,1,0,"i",38),s.ɵɵtext(7),s.ɵɵelementEnd(),s.ɵɵtext(8,"\n "),s.ɵɵtemplate(9,V,4,4,"ul",31),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(4);s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(5,g,r.node.id===i.selectedCollectionId)),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.children.length),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",0===r.children.length),s.ɵɵadvance(1),s.ɵɵtextInterpolate1("",r.node.name,"\n "),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.children.length&&!i.isCollapsed(r.node))}}function F(e,t){if(1&e&&(s.ɵɵtext(0,"\n "),s.ɵɵtemplate(1,j,11,7,"li",27),s.ɵɵtext(2,"\n ")),2&e){var n=t.$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",n)}}function U(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function N(e,t){if(1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h3"),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(5,"\n "),s.ɵɵelementStart(6,"ul",6),s.ɵɵtext(7,"\n "),s.ɵɵtemplate(8,F,3,1,"ng-template",null,37,s.ɵɵtemplateRefExtractor),s.ɵɵtext(10,"\n "),s.ɵɵtemplate(11,U,2,0,"ng-container",26),s.ɵɵtext(12,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(13,"\n "),s.ɵɵelementContainerEnd()),2&e){var n=s.ɵɵreference(9),r=s.ɵɵnextContext(2);s.ɵɵadvance(3),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(4,3,"collections")),s.ɵɵadvance(8),s.ɵɵproperty("ngTemplateOutlet",n)("ngTemplateOutletContext",s.ɵɵpureFunction1(5,k,r.nestedCollections))}}function z(e,t){if(1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,M,20,10,"ng-container",16),s.ɵɵtext(3,"\n "),s.ɵɵtemplate(4,N,14,7,"ng-container",16),s.ɵɵtext(5,"\n "),s.ɵɵelementContainerEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(2),s.ɵɵproperty("ngIf",n.showFolders),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",n.showCollections&&n.collections&&n.collections.length)}}var L=function(e){function t(t,n,r,i){var a=e.call(this,t,n,r,i)||this;return a.onSearchTextChanged=new o.EventEmitter,a.searchText="",a.searchPlaceholder=null,a}return i(t,e),t.prototype.searchTextChanged=function(){this.onSearchTextChanged.emit(this.searchText)},t.ɵfac=function(e){return new(e||t)(s.ɵɵdirectiveInject(l.CollectionService),s.ɵɵdirectiveInject(c.FolderService),s.ɵɵdirectiveInject(p.StorageService),s.ɵɵdirectiveInject(u.UserService))},t.ɵcmp=s.ɵɵdefineComponent({type:t,selectors:[["app-vault-groupings"]],outputs:{onSearchTextChanged:"onSearchTextChanged"},features:[s.ɵɵInheritDefinitionFeature],decls:82,vars:47,consts:[[1,"card","vault-filters"],[1,"card-header","d-flex"],["href","https://help.bitwarden.com/article/searching-vault/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"card-body"],["type","search","id","search","autocomplete","off","appAutofocus","",1,"form-control",3,"placeholder","ngModel","ngModelChange","input"],[1,"fa-ul","card-ul"],[3,"ngClass"],["href","#","appStopClick","",3,"click"],[1,"fa-li","fa","fa-fw","fa-th"],[3,"ngClass",4,"ngIf"],[1,"fa-li","fa","fa-fw","fa-globe"],[1,"fa-li","fa","fa-fw","fa-credit-card"],[1,"fa-li","fa","fa-fw","fa-id-card-o"],[1,"fa-li","fa","fa-fw","fa-sticky-note-o"],["class","text-muted",4,"ngIf"],[4,"ngIf"],[1,"fa-li","fa","fa-fw","fa-star"],[1,"fa-li","fa","fa-fw","fa-trash-o"],[1,"text-muted"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"sr-only"],[1,"d-flex"],["href","#","appStopClick","",1,"text-muted","ml-auto",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["recursiveFolders",""],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngClass",4,"ngFor","ngForOf"],["class","fa-li fa",3,"title","ngClass","click",4,"ngIf"],["class","fa-li fa fa-folder-o","aria-hidden","true",4,"ngIf"],["href","#","class","text-muted ml-auto show-active","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["class","fa-ul card-ul carets",4,"ngIf"],[1,"fa-li","fa",3,"title","ngClass","click"],["aria-hidden","true",1,"fa-li","fa","fa-folder-o"],["href","#","appStopClick","",1,"text-muted","ml-auto","show-active",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-pencil","fa-fw"],[1,"fa-ul","card-ul","carets"],["recursiveCollections",""],["class","fa-li fa fa-cube","aria-hidden","true",4,"ngIf"],["aria-hidden","true",1,"fa-li","fa","fa-cube"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"div",1),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementStart(5,"a",2),s.ɵɵpipe(6,"i18n"),s.ɵɵtext(7,"\n "),s.ɵɵelement(8,"i",3),s.ɵɵtext(9,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"div",4),s.ɵɵtext(13,"\n "),s.ɵɵelementStart(14,"input",5),s.ɵɵlistener("ngModelChange",(function(e){return t.searchText=e}))("input",(function(){return t.searchTextChanged()})),s.ɵɵpipe(15,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(16,"\n "),s.ɵɵelementStart(17,"ul",6),s.ɵɵtext(18,"\n "),s.ɵɵelementStart(19,"li",7),s.ɵɵtext(20,"\n "),s.ɵɵelementStart(21,"a",8),s.ɵɵlistener("click",(function(){return t.selectAll()})),s.ɵɵtext(22,"\n "),s.ɵɵelement(23,"i",9),s.ɵɵtext(24),s.ɵɵpipe(25,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(26,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(27,"\n "),s.ɵɵtemplate(28,x,8,6,"li",10),s.ɵɵtext(29,"\n "),s.ɵɵtemplate(30,b,8,6,"li",10),s.ɵɵtext(31,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(32,"\n "),s.ɵɵelementStart(33,"h3"),s.ɵɵtext(34),s.ɵɵpipe(35,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(36,"\n "),s.ɵɵelementStart(37,"ul",6),s.ɵɵtext(38,"\n "),s.ɵɵelementStart(39,"li",7),s.ɵɵtext(40,"\n "),s.ɵɵelementStart(41,"a",8),s.ɵɵlistener("click",(function(){return t.selectType(t.cipherType.Login)})),s.ɵɵtext(42,"\n "),s.ɵɵelement(43,"i",11),s.ɵɵtext(44),s.ɵɵpipe(45,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(46,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(47,"\n "),s.ɵɵelementStart(48,"li",7),s.ɵɵtext(49,"\n "),s.ɵɵelementStart(50,"a",8),s.ɵɵlistener("click",(function(){return t.selectType(t.cipherType.Card)})),s.ɵɵtext(51,"\n "),s.ɵɵelement(52,"i",12),s.ɵɵtext(53),s.ɵɵpipe(54,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(55,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(56,"\n "),s.ɵɵelementStart(57,"li",7),s.ɵɵtext(58,"\n "),s.ɵɵelementStart(59,"a",8),s.ɵɵlistener("click",(function(){return t.selectType(t.cipherType.Identity)})),s.ɵɵtext(60,"\n "),s.ɵɵelement(61,"i",13),s.ɵɵtext(62),s.ɵɵpipe(63,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(64,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(65,"\n "),s.ɵɵelementStart(66,"li",7),s.ɵɵtext(67,"\n "),s.ɵɵelementStart(68,"a",8),s.ɵɵlistener("click",(function(){return t.selectType(t.cipherType.SecureNote)})),s.ɵɵtext(69,"\n "),s.ɵɵelement(70,"i",14),s.ɵɵtext(71),s.ɵɵpipe(72,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(73,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(74,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(75,"\n "),s.ɵɵtemplate(76,S,9,6,"p",15),s.ɵɵtext(77,"\n "),s.ɵɵtemplate(78,z,6,2,"ng-container",16),s.ɵɵtext(79,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(80,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(81,"\n")),2&e&&(s.ɵɵadvance(3),s.ɵɵtextInterpolate1("\n ",s.ɵɵpipeBind1(4,19,"filters"),"\n "),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(6,21,"learnMore")),s.ɵɵadvance(9),s.ɵɵpropertyInterpolate("placeholder",t.searchPlaceholder||s.ɵɵpipeBind1(15,23,"searchVault")),s.ɵɵproperty("ngModel",t.searchText),s.ɵɵadvance(5),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(37,g,t.selectedAll)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(25,25,"allItems"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.showFavorites),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showTrash),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(35,27,"types")),s.ɵɵadvance(5),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(39,g,t.selectedType===t.cipherType.Login)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(45,29,"typeLogin"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(41,g,t.selectedType===t.cipherType.Card)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(54,31,"typeCard"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(43,g,t.selectedType===t.cipherType.Identity)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(63,33,"typeIdentity"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(45,g,t.selectedType===t.cipherType.SecureNote)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(72,35,"typeSecureNote"),"\n "),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!t.loaded),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.loaded))},directives:[d.A11yTitleDirective,m.DefaultValueAccessor,h.AutofocusDirective,m.NgControlStatus,m.NgModel,f.NgClass,v.StopClickDirective,f.NgIf,f.NgTemplateOutlet,f.NgForOf],pipes:[y.I18nPipe],encapsulation:2}),t}(a.GroupingsComponent);t.GroupingsComponent=L},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(157),i=n(251),o=function(){function e(e){null!=e&&(this.id=e.id,this.name=e.name,this.status=e.status,this.type=e.type,this.enabled=e.enabled,this.usePolicies=e.usePolicies,this.useGroups=e.useGroups,this.useDirectory=e.useDirectory,this.useEvents=e.useEvents,this.useTotp=e.useTotp,this.use2fa=e.use2fa,this.useApi=e.useApi,this.useBusinessPortal=e.useBusinessPortal,this.useSso=e.useSso,this.selfHost=e.selfHost,this.usersGetPremium=e.usersGetPremium,this.seats=e.seats,this.maxCollections=e.maxCollections,this.maxStorageGb=e.maxStorageGb,this.ssoBound=e.ssoBound,this.identifier=e.identifier,this.permissions=e.permissions,this.resetPasswordKey=e.resetPasswordKey,this.userId=e.userId)}return Object.defineProperty(e.prototype,"canAccess",{get:function(){return this.type===i.OrganizationUserType.Owner||this.enabled&&this.status===r.OrganizationUserStatusType.Confirmed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isManager",{get:function(){return this.type===i.OrganizationUserType.Manager||this.type===i.OrganizationUserType.Owner||this.type===i.OrganizationUserType.Admin},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAdmin",{get:function(){return this.type===i.OrganizationUserType.Owner||this.type===i.OrganizationUserType.Admin},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isOwner",{get:function(){return this.type===i.OrganizationUserType.Owner},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessBusinessPortal",{get:function(){return this.isAdmin||this.permissions.accessBusinessPortal},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessEventLogs",{get:function(){return this.isAdmin||this.permissions.accessEventLogs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessImportExport",{get:function(){return this.isAdmin||this.permissions.accessImportExport},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessReports",{get:function(){return this.isAdmin||this.permissions.accessReports},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageAllCollections",{get:function(){return this.isAdmin||this.permissions.manageAllCollections},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageAssignedCollections",{get:function(){return this.isManager||this.permissions.manageAssignedCollections},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageGroups",{get:function(){return this.isAdmin||this.permissions.manageGroups},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageSso",{get:function(){return this.isAdmin||this.permissions.manageSso},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManagePolicies",{get:function(){return this.isAdmin||this.permissions.managePolicies},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageUsers",{get:function(){return this.isAdmin||this.permissions.manageUsers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isResetPasswordEnrolled",{get:function(){return null!=this.resetPasswordKey},enumerable:!0,configurable:!0}),e}();t.Organization=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.id=null,this.size=null,this.sizeName=null,this.fileName=null,e&&(this.id=e.id,this.size=e.size,this.sizeName=e.sizeName)}return Object.defineProperty(e.prototype,"fileSize",{get:function(){try{if(null!=this.size)return parseInt(this.size,null)}catch(e){}return 0},enumerable:!0,configurable:!0}),e}();t.SendFileView=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.text=null,e&&(this.hidden=e.hidden)}return Object.defineProperty(e.prototype,"maskedText",{get:function(){return null!=this.text?"••••••••":null},enumerable:!0,configurable:!0}),e}();t.SendTextView=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1&&(e=e.concat(this.email.substr(0,t).trim().toLowerCase().split(/[^A-Za-z0-9]/))),e},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.I18nService),o.ɵɵdirectiveInject(s.CryptoService),o.ɵɵdirectiveInject(l.MessagingService),o.ɵɵdirectiveInject(c.UserService),o.ɵɵdirectiveInject(p.PasswordGenerationService),o.ɵɵdirectiveInject(u.PlatformUtilsService),o.ɵɵdirectiveInject(d.PolicyService))},e.ɵdir=o.ɵɵdefineDirective({type:e}),e}();t.ChangePasswordComponent=m},,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&t.forEach((function(t){var n=e.data.filter((function(e){return e.id===t}));null!=n&&n.length>0&&(n[0].checked=!0)})),[3,5];case 3:return"collection"!==this.entity?[3,5]:[4,this.apiService.getCollectionUsers(this.organizationId,this.entityId)];case 4:null!=(t=r.sent())&&e.data.length>0&&t.forEach((function(t){var n=e.data.filter((function(e){return!e.accessAll&&e.id===t.id}));null!=n&&n.length>0&&(n[0].checked=!0,n[0].readOnly=t.readOnly,n[0].hidePasswords=t.hidePasswords)})),r.label=5;case 5:return this.allUsers.forEach((function(e){"collection"===n.entity&&e.accessAll&&(e.checked=!0),e.checked&&n.selectedCount++})),[2]}}))}))},e.prototype.check=function(e){"collection"===this.entity&&e.accessAll||(e.checked=!e.checked,this.selectedChanged(e))},e.prototype.selectedChanged=function(e){e.checked?this.selectedCount++:("collection"===this.entity&&(e.readOnly=!1,e.hidePasswords=!1),this.selectedCount--)},e.prototype.filterSelected=function(e){this.showSelected=e},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),"group"===this.entity?(e=this.users.filter((function(e){return e.checked})).map((function(e){return e.id})),this.formPromise=this.apiService.putGroupUsers(this.organizationId,this.entityId,e)):(e=this.users.filter((function(e){return e.checked&&!e.accessAll})).map((function(e){return new l.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)})),this.formPromise=this.apiService.putCollectionUsers(this.organizationId,this.entityId,e)),[4,this.formPromise];case 1:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("updatedUsers")),this.onEditedUsers.emit(),[3,3];case 2:return t.sent(),[3,3];case 3:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.ToasterService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-entity-users"]],inputs:{entity:"entity",entityId:"entityId",entityName:"entityName",organizationId:"organizationId"},outputs:{onEditedUsers:"onEditedUsers"},decls:49,vars:29,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAccessTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAccessTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"d-flex"],[1,"mr-3"],["for","search",1,"sr-only"],["type","search","id","search","name","SearchText",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["role","group",1,"btn-group","btn-group-sm"],["type","button",1,"btn","btn-outline-secondary",3,"ngClass","click"],["class","badge badge-pill badge-info",4,"ngIf"],[4,"ngIf"],[1,"badge","badge-pill","badge-info"],[1,"table","table-hover","table-list","mb-0"],["width","100","class","text-center",4,"ngIf"],[4,"ngFor","ngForOf"],["width","100",1,"text-center"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","disabled","ngModelChange","change"],["width","30",3,"click"],["size","25",3,"data","email","circle","fontSize"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],["class","text-center",4,"ngIf"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-th",3,"title"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",(function(){return t.submit()})),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵpipe(11,"i18n"),p.ɵɵelementStart(12,"small"),p.ɵɵtext(13),p.ɵɵelementEnd(),p.ɵɵtext(14,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(15,"\n "),p.ɵɵelementStart(16,"button",6),p.ɵɵpipe(17,"i18n"),p.ɵɵtext(18,"\n "),p.ɵɵelementStart(19,"span",7),p.ɵɵtext(20,"×"),p.ɵɵelementEnd(),p.ɵɵtext(21,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(22,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(23,"\n "),p.ɵɵtemplate(24,w,9,6,"div",8),p.ɵɵtext(25,"\n "),p.ɵɵtemplate(26,G,32,22,"div",8),p.ɵɵpipe(27,"search"),p.ɵɵtext(28,"\n "),p.ɵɵelementStart(29,"div",9),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"button",10),p.ɵɵtext(32,"\n "),p.ɵɵelement(33,"i",11),p.ɵɵpipe(34,"i18n"),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"span"),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(40,"\n "),p.ɵɵelementStart(41,"button",12),p.ɵɵtext(42),p.ɵɵpipe(43,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(11,10,"userAccess"),"\n "),p.ɵɵadvance(3),p.ɵɵtextInterpolate(t.entityName),p.ɵɵadvance(3),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(17,12,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading||!t.users),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading&&t.users&&p.ɵɵpipeBindV(27,14,p.ɵɵpureFunction2(26,K,t.users,t.searchText))),p.ɵɵadvance(5),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(34,20,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,22,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(43,24,"close"))}},directives:[h.NgControlStatusGroup,h.NgForm,f.ApiActionDirective,v.A11yTitleDirective,y.NgIf,h.DefaultValueAccessor,h.NgControlStatus,h.NgModel,y.NgClass,y.NgForOf,h.CheckboxControlValueAccessor,g.StopPropDirective,x.AvatarComponent],pipes:[b.I18nPipe,S.SearchPipe],encapsulation:2}),e}();t.EntityUsersComponent=q},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?this.events=this.events.concat(o):this.events=o,this.loading=!1,this.morePromise=null,this.refreshPromise=null,[2]}}))}))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ApiService),o.ɵɵdirectiveInject(s.I18nService),o.ɵɵdirectiveInject(l.EventService),o.ɵɵdirectiveInject(c.ToasterService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["app-entity-events"]],inputs:{name:"name",entity:"entity",entityId:"entityId",organizationId:"organizationId",showUser:"showUser"},decls:36,vars:12,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","eventLogsTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],[1,"modal-content"],[1,"modal-header"],["id","eventLogsTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"d-flex"],[1,"form-inline"],["for","start",1,"sr-only"],["type","datetime-local","id","start","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],[1,"mx-2"],["for","end",1,"sr-only"],["type","datetime-local","id","end","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"appApiAction","disabled","click"],["refreshBtn",""],["aria-hidden","true",1,"fa","fa-refresh","fa-fw",3,"ngClass"],[4,"ngIf"],["class","table table-hover mb-0",4,"ngIf"],["type","button","class","btn btn-block btn-link btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],[1,"table","table-hover","mb-0"],["width","210",1,"border-top-0"],["width","40",1,"border-top-0"],["class","border-top-0","width","150",4,"ngIf"],[1,"border-top-0"],[4,"ngFor","ngForOf"],["width","150",1,"border-top-0"],["aria-hidden","true",3,"title"],[3,"innerHTML"],[3,"appA11yTitle"],["type","button",1,"btn","btn-block","btn-link","btn-submit",3,"appApiAction","disabled","click"],["moreBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",1),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"div",2),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"div",3),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"h2",4),o.ɵɵtext(9),o.ɵɵpipe(10,"i18n"),o.ɵɵtemplate(11,f,2,1,"small",5),o.ɵɵtext(12,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementStart(14,"button",6),o.ɵɵpipe(15,"i18n"),o.ɵɵtext(16,"\n "),o.ɵɵelementStart(17,"span",7),o.ɵɵtext(18,"×"),o.ɵɵelementEnd(),o.ɵɵtext(19,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(20,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(21,"\n "),o.ɵɵtemplate(22,v,9,6,"div",8),o.ɵɵtext(23,"\n "),o.ɵɵtemplate(24,I,40,25,"div",8),o.ɵɵtext(25,"\n "),o.ɵɵelementStart(26,"div",9),o.ɵɵtext(27,"\n "),o.ɵɵelementStart(28,"button",10),o.ɵɵtext(29),o.ɵɵpipe(30,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(31,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(32,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(33,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(34,"\n"),o.ɵɵelementEnd(),o.ɵɵtext(35,"\n")),2&e&&(o.ɵɵadvance(9),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(10,6,"eventLogs"),"\n "),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.name),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(15,8,"close")),o.ɵɵadvance(8),o.ɵɵproperty("ngIf",!t.loaded),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.loaded),o.ɵɵadvance(5),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(30,10,"close")))},directives:[p.NgIf,u.A11yTitleDirective,d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,m.ApiActionDirective,p.NgClass,p.NgForOf],pipes:[h.I18nPipe,p.DatePipe],encapsulation:2}),e}();t.EntityEventsComponent=E},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){void 0===t&&(t=null);var n=e.call(this,t)||this;return null==t||(n.accessBusinessPortal=n.getResponseProperty("AccessBusinessPortal"),n.accessEventLogs=n.getResponseProperty("AccessEventLogs"),n.accessImportExport=n.getResponseProperty("AccessImportExport"),n.accessReports=n.getResponseProperty("AccessReports"),n.manageAllCollections=n.getResponseProperty("ManageAllCollections"),n.manageAssignedCollections=n.getResponseProperty("ManageAssignedCollections"),n.manageCiphers=n.getResponseProperty("ManageCiphers"),n.manageGroups=n.getResponseProperty("ManageGroups"),n.manageSso=n.getResponseProperty("ManageSso"),n.managePolicies=n.getResponseProperty("ManagePolicies"),n.manageUsers=n.getResponseProperty("ManageUsers"),n.manageResetPassword=n.getResponseProperty("ManageResetPassword")),n}return i(t,e),t}(n(23).BaseResponse);t.PermissionsApi=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)return void(this.creditAmount=parseFloat((Math.round(100*e)/100).toString()).toFixed(2).toString())}}catch(t){}this.creditAmount=""},Object.defineProperty(e.prototype,"creditAmountNumber",{get:function(){if(null!=this.creditAmount&&""!==this.creditAmount)try{return parseFloat(this.creditAmount)}catch(e){}return null},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.UserService),c.ɵɵdirectiveInject(u.ApiService),c.ɵɵdirectiveInject(d.PlatformUtilsService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["app-add-credit"]],viewQuery:function(e,t){var n;(1&e&&c.ɵɵstaticViewQuery(g,!0,o.ElementRef),2&e)&&(c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.ppButtonFormRef=n.first))},inputs:{creditAmount:"creditAmount",showOptions:"showOptions",method:"method",organizationId:"organizationId"},outputs:{onAdded:"onAdded",onCanceled:"onCanceled"},decls:92,vars:32,consts:[["ngNativeValidate","",1,"card",3,"appApiAction","ngSubmit"],["form",""],[1,"card-body"],["type","button",1,"close",3,"appA11yTitle","click"],["aria-hidden","true"],[1,"card-body-header"],["class","mb-4 text-lg",4,"ngIf"],[1,"form-group"],[1,"row"],[1,"col-4"],["for","creditAmount"],[1,"input-group"],[1,"input-group-prepend"],[1,"input-group-text"],["id","creditAmount","type","text","name","CreditAmount","required","",1,"form-control",3,"ngModel","ngModelChange","blur"],[1,"form-text","text-muted"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["method","post","target","_top",3,"action"],["ppButtonForm",""],["type","hidden","name","cmd","value","_xclick"],["type","hidden","name","business",3,"value"],["type","hidden","name","button_subtype","value","services"],["type","hidden","name","no_note","value","1"],["type","hidden","name","no_shipping","value","1"],["type","hidden","name","rm","value","1"],["type","hidden","name","return",3,"value"],["type","hidden","name","cancel_return",3,"value"],["type","hidden","name","currency_code","value","USD"],["type","hidden","name","image_url","value","https://bitwarden.com/images/paypal-banner.png"],["type","hidden","name","bn","value","PP-BuyNowBF:btn_buynow_LG.gif:NonHosted"],["type","hidden","name","amount",3,"value"],["type","hidden","name","custom",3,"value"],["type","hidden","name","item_name","value","Bitwarden Account Credit"],["type","hidden","name","item_number",3,"value"],[1,"mb-4","text-lg"],[1,"form-check","form-check-inline"],["type","radio","name","Method","id","credit-method-paypal",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","credit-method-paypal",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-paypal"],["type","radio","name","Method","id","credit-method-bitcoin",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","credit-method-bitcoin",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-bitcoin"]],template:function(e,t){if(1&e&&(c.ɵɵelementStart(0,"form",0,1),c.ɵɵlistener("ngSubmit",(function(){return t.submit()})),c.ɵɵtext(2,"\n "),c.ɵɵelementStart(3,"div",2),c.ɵɵtext(4,"\n "),c.ɵɵelementStart(5,"button",3),c.ɵɵlistener("click",(function(){return t.cancel()})),c.ɵɵpipe(6,"i18n"),c.ɵɵelementStart(7,"span",4),c.ɵɵtext(8,"×"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtext(9,"\n "),c.ɵɵelementStart(10,"h3",5),c.ɵɵtext(11),c.ɵɵpipe(12,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(13,"\n "),c.ɵɵtemplate(14,x,22,4,"div",6),c.ɵɵtext(15,"\n "),c.ɵɵelementStart(16,"div",7),c.ɵɵtext(17,"\n "),c.ɵɵelementStart(18,"div",8),c.ɵɵtext(19,"\n "),c.ɵɵelementStart(20,"div",9),c.ɵɵtext(21,"\n "),c.ɵɵelementStart(22,"label",10),c.ɵɵtext(23),c.ɵɵpipe(24,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(25,"\n "),c.ɵɵelementStart(26,"div",11),c.ɵɵtext(27,"\n "),c.ɵɵelementStart(28,"div",12),c.ɵɵelementStart(29,"span",13),c.ɵɵtext(30,"$USD"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtext(31,"\n "),c.ɵɵelementStart(32,"input",14),c.ɵɵlistener("ngModelChange",(function(e){return t.creditAmount=e}))("blur",(function(){return t.formatAmount()})),c.ɵɵelementEnd(),c.ɵɵtext(33,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(34,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(35,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(36,"\n "),c.ɵɵelementStart(37,"small",15),c.ɵɵtext(38),c.ɵɵpipe(39,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(40,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(41,"\n "),c.ɵɵelementStart(42,"button",16),c.ɵɵtext(43,"\n "),c.ɵɵelement(44,"i",17),c.ɵɵpipe(45,"i18n"),c.ɵɵtext(46,"\n "),c.ɵɵelementStart(47,"span"),c.ɵɵtext(48),c.ɵɵpipe(49,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(50,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(51,"\n "),c.ɵɵelementStart(52,"button",18),c.ɵɵlistener("click",(function(){return t.cancel()})),c.ɵɵtext(53),c.ɵɵpipe(54,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(55,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(56,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(57,"\n"),c.ɵɵelementStart(58,"form",19,20),c.ɵɵtext(60,"\n "),c.ɵɵelement(61,"input",21),c.ɵɵtext(62,"\n "),c.ɵɵelement(63,"input",22),c.ɵɵtext(64,"\n "),c.ɵɵelement(65,"input",23),c.ɵɵtext(66,"\n "),c.ɵɵelement(67,"input",24),c.ɵɵtext(68,"\n "),c.ɵɵelement(69,"input",25),c.ɵɵtext(70,"\n "),c.ɵɵelement(71,"input",26),c.ɵɵtext(72,"\n "),c.ɵɵelement(73,"input",27),c.ɵɵtext(74,"\n "),c.ɵɵelement(75,"input",28),c.ɵɵtext(76,"\n "),c.ɵɵelement(77,"input",29),c.ɵɵtext(78,"\n "),c.ɵɵelement(79,"input",30),c.ɵɵtext(80,"\n "),c.ɵɵelement(81,"input",31),c.ɵɵtext(82,"\n "),c.ɵɵelement(83,"input",32),c.ɵɵtext(84,"\n "),c.ɵɵelement(85,"input",33),c.ɵɵtext(86,"\n "),c.ɵɵelement(87,"input",34),c.ɵɵtext(88,"\n "),c.ɵɵelement(89,"input",35),c.ɵɵtext(90,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(91,"\n")),2&e){var n=c.ɵɵreference(1);c.ɵɵproperty("appApiAction",t.formPromise),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("appA11yTitle",c.ɵɵpipeBind1(6,18,"cancel")),c.ɵɵadvance(6),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(12,20,"addCredit")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",t.showOptions),c.ɵɵadvance(9),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(24,22,"amount")),c.ɵɵadvance(9),c.ɵɵproperty("ngModel",t.creditAmount),c.ɵɵadvance(6),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(39,24,"creditDelayed")),c.ɵɵadvance(4),c.ɵɵproperty("disabled",n.loading||t.ppLoading),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("title",c.ɵɵpipeBind1(45,26,"loading")),c.ɵɵadvance(4),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(49,28,"submit")),c.ɵɵadvance(5),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(54,30,"cancel"),"\n "),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("action",t.ppButtonFormAction,c.ɵɵsanitizeUrl),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("value",t.ppButtonBusinessId),c.ɵɵadvance(10),c.ɵɵpropertyInterpolate("value",t.returnUrl),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("value",t.returnUrl),c.ɵɵadvance(8),c.ɵɵpropertyInterpolate("value",t.creditAmount),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("value",t.ppButtonCustomField),c.ɵɵadvance(4),c.ɵɵpropertyInterpolate("value",t.subject)}},directives:[m.NgControlStatusGroup,m.NgForm,h.ApiActionDirective,f.A11yTitleDirective,v.NgIf,m.DefaultValueAccessor,m.RequiredValidator,m.NgControlStatus,m.NgModel,m.ɵangular_packages_forms_forms_y,m.RadioControlValueAccessor],pipes:[y.I18nPipe],encapsulation:2}),e}();t.AddCreditComponent=b},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t.push(e),r.exposedPasswordMap.set(e.id,n))}));n.push(i)}})),[4,Promise.all(n)];case 2:return i.sent(),this.ciphers=t,[2]}}))}))},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(u.AuditService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(d.MessagingService),c.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-exposed-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:26,vars:14,consts:[[1,"page-header"],["type","button",1,"btn","btn-primary","btn-submit",3,"disabled","click"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],[4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],[1,"badge","badge-warning"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],[1,"sr-only"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(5,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(6,"\n"),c.ɵɵelementStart(7,"p"),c.ɵɵtext(8),c.ɵɵpipe(9,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(10,"\n"),c.ɵɵelementStart(11,"button",1),c.ɵɵlistener("click",(function(){return t.load()})),c.ɵɵtext(12,"\n "),c.ɵɵelement(13,"i",2),c.ɵɵpipe(14,"i18n"),c.ɵɵtext(15,"\n "),c.ɵɵelementStart(16,"span"),c.ɵɵtext(17),c.ɵɵpipe(18,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(19,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(20,"\n"),c.ɵɵtemplate(21,k,6,2,"div",3),c.ɵɵtext(22,"\n"),c.ɵɵtemplate(23,_,0,0,"ng-template",null,4,c.ɵɵtemplateRefExtractor),c.ɵɵtext(25,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(4,6,"exposedPasswordsReport")),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(9,8,"exposedPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("disabled",t.loading),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("title",c.ɵɵpipeBind1(14,10,"loading")),c.ɵɵadvance(4),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(18,12,"checkExposedPasswords")),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.ExposedPasswordsReportComponent=A},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1||!this.allowPersonal)&&(null!=this.organization?this.cloneMode&&this.organization.canManageAllCollections:!this.editMode||this.cloneMode)},t.prototype.loadCollections=function(){return this.organization.canManageAllCollections?Promise.resolve(this.collections):e.prototype.loadCollections.call(this)},t.prototype.loadCipher=function(){return o(this,void 0,void 0,(function(){var t,n;return a(this,(function(r){switch(r.label){case 0:return this.organization.canManageAllCollections?[3,2]:[4,e.prototype.loadCipher.call(this)];case 1:return[2,r.sent()];case 2:return[4,this.apiService.getCipherAdmin(this.cipherId)];case 3:return t=r.sent(),n=new s.CipherData(t),this.originalCipher=new l.Cipher(n),[2,new l.Cipher(n)]}}))}))},t.prototype.encryptCipher=function(){return this.organization.canManageAllCollections?this.cipherService.encrypt(this.cipher,null,this.originalCipher):e.prototype.encryptCipher.call(this)},t.prototype.saveCipher=function(t){return o(this,void 0,void 0,(function(){var n;return a(this,(function(r){return this.organization.canManageAllCollections&&null!=t.organizationId?this.editMode&&!this.cloneMode?(n=new p.CipherRequest(t),[2,this.apiService.putCipherAdmin(this.cipherId,n)]):(n=new c.CipherCreateRequest(t),[2,this.apiService.postCipherAdmin(n)]):[2,e.prototype.saveCipher.call(this,t)]}))}))},t.prototype.deleteCipher=function(){return o(this,void 0,void 0,(function(){return a(this,(function(t){return this.organization.canManageAllCollections?[2,this.cipher.isDeleted?this.apiService.deleteCipherAdmin(this.cipherId):this.apiService.putDeleteCipherAdmin(this.cipherId)]:[2,e.prototype.deleteCipher.call(this)]}))}))},t.ɵfac=function(e){return new(e||t)(d.ɵɵdirectiveInject(m.CipherService),d.ɵɵdirectiveInject(h.FolderService),d.ɵɵdirectiveInject(f.I18nService),d.ɵɵdirectiveInject(v.PlatformUtilsService),d.ɵɵdirectiveInject(y.AuditService),d.ɵɵdirectiveInject(g.StateService),d.ɵɵdirectiveInject(x.UserService),d.ɵɵdirectiveInject(b.CollectionService),d.ɵɵdirectiveInject(S.TotpService),d.ɵɵdirectiveInject(w.PasswordGenerationService),d.ɵɵdirectiveInject(C.ApiService),d.ɵɵdirectiveInject(I.MessagingService),d.ɵɵdirectiveInject(E.EventService),d.ɵɵdirectiveInject(P.PolicyService))},t.ɵcmp=d.ɵɵdefineComponent({type:t,selectors:[["app-org-vault-add-edit"]],features:[d.ɵɵInheritDefinitionFeature],decls:36,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","cipherAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","","autocomplete","off",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","cipherAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit","class","btn btn-primary btn-submit",3,"disabled",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["class","ml-auto",4,"ngIf"],[1,"modal-body"],["type","info",4,"ngIf"],["class","row",4,"ngIf"],[1,"row"],[1,"col-6","form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","col-6 form-group",4,"ngIf"],[4,"ngIf"],[1,"form-group"],["for","notes"],["id","notes","name","Notes","rows","6",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"mt-4"],["cdkDropList","",3,"cdkDropListDropped",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-2",3,"click",4,"ngIf"],["type","info"],["for","type"],["id","type","name","Type","appAutofocus","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["for","folder"],["id","folder","name","FolderId",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","loginUsername"],[1,"input-group"],["id","loginUsername","type","text","name","Login.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","input-group-append",4,"ngIf"],[1,"d-flex"],["for","loginPassword"],["class","ml-auto d-flex",4,"ngIf"],["id","loginPassword","name","Login.Password","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"input-group-append"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","disabled","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],["aria-hidden","true",1,"fa","fa-lg","fa-clone"],["for","loginTotp"],["id","loginTotp","name","Login.Totp","appInputVerbatim","",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-6","form-group","totp","d-flex","align-items-end",3,"ngClass"],["class","d-flex align-items-center",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-3",3,"click",4,"ngIf"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","click"],[1,"ml-auto","d-flex"],["href","#","class","d-block mr-2 fa-icon-above-input","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["href","#","appStopClick","",1,"d-block","fa-icon-above-input",3,"appA11yTitle","appApiAction","click"],["checkPasswordBtn",""],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-check-circle",3,"hidden"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-spinner","fa-spin",3,"hidden","title"],["href","#","appStopClick","",1,"d-block","mr-2","fa-icon-above-input",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-refresh"],["src","images/totp-countdown.png",1,"ml-2",3,"title"],["href","#","appStopClick","","class","badge badge-primary ml-3",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"badge","badge-primary","ml-3",3,"click"],[1,"d-flex","align-items-center"],[1,"totp-countdown","mr-3","ml-2"],[1,"totp-sec"],["r","12.6","cy","16","cx","16",1,"totp-circle","inner",3,"ngStyle"],["r","14","cy","16","cx","16",1,"totp-circle","outer"],[1,"totp-code","mr-2",3,"title"],["type","button",1,"btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-clone"],["class","row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"col-7","form-group"],[3,"for"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","placeholder","ngModelChange"],["aria-hidden","true",1,"fa","fa-lg","fa-share"],[1,"col-5","form-group"],["href","https://help.bitwarden.com/article/uri-match-detection/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-control","overflow-hidden",3,"id","name","ngModel","disabled","ngModelChange","change"],["type","button","class","btn btn-link text-danger ml-2",3,"appA11yTitle","click",4,"ngIf"],["type","button",1,"btn","btn-link","text-danger","ml-2",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-minus-circle","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus-circle","fa-fw"],["for","cardCardholderName"],["id","cardCardholderName","type","text","name","Card.CardCardholderName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardBrand"],["id","cardBrand","name","Card.Brand",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardNumber"],["id","cardNumber","type","text","name","Card.Number","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"col","form-group"],["for","cardExpMonth"],["id","cardExpMonth","name","Card.ExpMonth",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardExpYear"],["id","cardExpYear","type","text","name","Card.ExpYear",1,"form-control",3,"ngModel","placeholder","disabled","ngModelChange"],["for","cardCode"],["id","cardCode","name","Card.Code","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-4","form-group"],["for","idTitle"],["id","idTitle","name","Identity.Title",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idFirstName"],["id","idFirstName","type","text","name","Identity.FirstName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idMiddleName"],["id","idMiddleName","type","text","name","Identity.MiddleName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLastName"],["id","idLastName","type","text","name","Identity.LastName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idUsername"],["id","idUsername","type","text","name","Identity.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCompany"],["id","idCompany","type","text","name","Identity.Company",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idSsn"],["id","idSsn","type","text","name","Identity.SSN","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPassportNumber"],["id","idPassportNumber","type","text","name","Identity.PassportNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLicenseNumber"],["id","idLicenseNumber","type","text","name","Identity.LicenseNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idEmail"],["id","idEmail","type","text","name","Identity.Email","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPhone"],["id","idPhone","type","text","name","Identity.Phone",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress1"],["id","idAddress1","type","text","name","Identity.Address1",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress2"],["id","idAddress2","type","text","name","Identity.Address2",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress3"],["id","idAddress3","type","text","name","Identity.Address3",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCity"],["id","idCity","type","text","name","Identity.City",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idState"],["id","idState","type","text","name","Identity.State",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPostalCode"],["id","idPostalCode","type","text","name","Identity.PostalCode",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCountry"],["id","idCountry","type","text","name","Identity.Country",1,"form-control",3,"ngModel","disabled","ngModelChange"],["cdkDropList","",3,"cdkDropListDropped"],["class","row","cdkDrag","",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"row"],["href","https://help.bitwarden.com/article/custom-fields/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","ngModelChange"],["class","input-group",4,"ngIf"],[1,"flex-fill"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange",4,"ngIf"],["type","button","class","btn btn-link text-muted cursor-move",3,"appA11yTitle",4,"ngIf"],["appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"id","type","name","ngModel","disabled","ngModelChange"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-link","text-muted","cursor-move",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-bars","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-2",3,"click"],[1,"col-5"],["for","addFieldType",1,"sr-only"],["id","addFieldType","name","AddFieldType",1,"form-control",3,"ngModel","ngModelChange"],["for","organizationId"],["id","organizationId","name","OrganizationId",1,"form-control",3,"ngModel","disabled","ngModelChange","change"],["class","form-check",4,"ngFor","ngForOf"],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"ngModel","id","name","disabled","ngModelChange"],[1,"form-check-label",3,"for"],[1,"small","text-muted","mt-4"],[1,"font-weight-semibold"],["class","ml-3",4,"ngIf"],["href","#","appStopClick","",3,"title","click"],[1,"ml-3"],[4,"ngFor","ngForOf"],[1,"password-wrapper","text-monospace","ml-2"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"ml-auto"],["type","button","class","btn btn-link",3,"appA11yTitle","click",4,"ngIf"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){1&e&&(d.ɵɵelementStart(0,"div",0),d.ɵɵtext(1,"\n "),d.ɵɵelementStart(2,"div",1),d.ɵɵtext(3,"\n "),d.ɵɵelementStart(4,"form",2,3),d.ɵɵlistener("ngSubmit",(function(){return t.submit()})),d.ɵɵtext(6,"\n "),d.ɵɵelementStart(7,"div",4),d.ɵɵtext(8,"\n "),d.ɵɵelementStart(9,"h2",5),d.ɵɵtext(10),d.ɵɵelementEnd(),d.ɵɵtext(11,"\n "),d.ɵɵelementStart(12,"button",6),d.ɵɵpipe(13,"i18n"),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"span",7),d.ɵɵtext(16,"×"),d.ɵɵelementEnd(),d.ɵɵtext(17,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(18,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(19,"\n "),d.ɵɵtemplate(20,Te,54,25,"div",8),d.ɵɵtext(21,"\n "),d.ɵɵelementStart(22,"div",9),d.ɵɵtext(23,"\n "),d.ɵɵtemplate(24,Me,9,7,"button",10),d.ɵɵtext(25,"\n "),d.ɵɵelementStart(26,"button",11),d.ɵɵtext(27),d.ɵɵpipe(28,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(29,"\n "),d.ɵɵtemplate(30,Ve,6,2,"div",12),d.ɵɵtext(31,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(32,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(33,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(34,"\n"),d.ɵɵelementEnd(),d.ɵɵtext(35,"\n")),2&e&&(d.ɵɵadvance(4),d.ɵɵproperty("appApiAction",t.formPromise),d.ɵɵadvance(6),d.ɵɵtextInterpolate(t.title),d.ɵɵadvance(2),d.ɵɵpropertyInterpolate("appA11yTitle",d.ɵɵpipeBind1(13,7,"close")),d.ɵɵadvance(8),d.ɵɵproperty("ngIf",t.cipher),d.ɵɵadvance(4),d.ɵɵproperty("ngIf",!t.viewOnly),d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(28,9,t.viewOnly?"close":"cancel"),"\n "),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",t.cipher&&!t.viewOnly))},directives:[k.NgControlStatusGroup,k.NgForm,_.ApiActionDirective,A.A11yTitleDirective,O.NgIf,k.DefaultValueAccessor,k.RequiredValidator,k.NgControlStatus,k.NgModel,T.CalloutComponent,k.SelectControlValueAccessor,M.AutofocusDirective,O.NgForOf,k.NgSelectOption,k.ɵangular_packages_forms_forms_x,B.InputVerbatimDirective,O.NgClass,D.StopClickDirective,O.NgStyle,R.CdkDropList,R.CdkDrag,V.TrueFalseValueDirective,k.CheckboxControlValueAccessor],pipes:[j.I18nPipe,O.DatePipe],encapsulation:2}),t}(u.AddEditComponent);t.AddEditComponent=je},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.id=e.id,this.url=e.url,this.fileName=e.fileName,this.key=e.key,this.size=e.size,this.sizeName=e.sizeName)};t.AttachmentData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.cardholderName=e.cardholderName,this.brand=e.brand,this.number=e.number,this.expMonth=e.expMonth,this.expYear=e.expYear,this.code=e.code)};t.CardData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.type=e.type,this.name=e.name,this.value=e.value)};t.FieldData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.title=e.title,this.firstName=e.firstName,this.middleName=e.middleName,this.lastName=e.lastName,this.address1=e.address1,this.address2=e.address2,this.address3=e.address3,this.city=e.city,this.state=e.state,this.postalCode=e.postalCode,this.country=e.country,this.company=e.company,this.email=e.email,this.phone=e.phone,this.ssn=e.ssn,this.username=e.username,this.passportNumber=e.passportNumber,this.licenseNumber=e.licenseNumber)};t.IdentityData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(487),i=function(e){null!=e&&(this.username=e.username,this.password=e.password,this.passwordRevisionDate=e.passwordRevisionDate,this.totp=e.totp,e.uris&&(this.uris=e.uris.map((function(e){return new r.LoginUriData(e)}))))};t.LoginData=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.match=null,null!=e&&(this.uri=e.uri,this.match=e.match)};t.LoginUriData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.type=e.type)};t.SecureNoteData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0))return[3,4];i.label=1;case 1:return i.trys.push([1,3,,4]),[4,this.getFileContents(n[0])];case 2:return null!=(o=i.sent())&&(r=o),[3,4];case 3:return i.sent(),[3,4];case 4:if(null==r||""===r)return this.toasterService.popAsync("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectFile")),this.loading=!1,[2];i.label=5;case 5:return i.trys.push([5,7,,8]),this.formPromise=this.importService.import(e,r,this.organizationId),[4,this.formPromise];case 6:return null!=(a=i.sent())?(this.error(a),this.loading=!1,[2]):(this.toasterService.popAsync("success",null,this.i18nService.t("importSuccess")),this.router.navigate(this.successNavigate),[3,8]);case 7:return i.sent(),[3,8];case 8:return this.loading=!1,[2]}}))}))},e.prototype.getFormatInstructionTitle=function(){var e=this;if(null==this.format)return null;var t=this.featuredImportOptions.concat(this.importOptions).filter((function(t){return t.id===e.format}));return t.length>0?this.i18nService.t("instructionsFor",t[0].name):null},e.prototype.setImportOptions=function(){this.featuredImportOptions=o([{id:null,name:"-- "+this.i18nService.t("select")+" --"}],this.importService.featuredImportOptions),this.importOptions=this.importService.regularImportOptions},e.prototype.error=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,a.default.fire({heightAuto:!1,buttonsStyling:!1,icon:"error",iconHtml:'',input:"textarea",inputValue:e.message,inputAttributes:{readonly:"true"},title:this.i18nService.t("importError"),text:this.i18nService.t("importErrorDesc"),showConfirmButton:!0,confirmButtonText:this.i18nService.t("ok"),onOpen:function(e){e.querySelector(".swal2-textarea").scrollTo(0,0)}})];case 1:return t.sent(),[2]}}))}))},e.prototype.getFileContents=function(e){var t=this;return new Promise((function(n,r){var i=new FileReader;i.readAsText(e,"utf-8"),i.onload=function(i){if("lastpasscsv"===t.format&&"text/html"===e.type){var o=(new DOMParser).parseFromString(i.target.result,"text/html").querySelector("pre");return null!=o?void n(o.textContent):void r()}n(i.target.result)},i.onerror=function(){r()}}))},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.I18nService),s.ɵɵdirectiveInject(c.ToasterService),s.ɵɵdirectiveInject(p.ImportService),s.ɵɵdirectiveInject(u.Router),s.ɵɵdirectiveInject(d.PlatformUtilsService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["app-import"]],decls:67,vars:24,consts:[[1,"page-header"],["ngNativeValidate","",3,"ngSubmit"],["form",""],[1,"row"],[1,"col-6"],[1,"form-group"],["for","type"],["id","type","name","Format","required","",1,"form-control",3,"ngModel","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[4,"ngIf"],["type","info",3,"title",4,"ngIf"],["for","file"],["type","file","id","file","name","file",1,"form-control-file"],["for","fileContents"],["id","fileContents","name","FileContents",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[3,"ngValue"],["value","-","disabled",""],["type","info",3,"title"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/export-your-data/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-lastpass/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-chrome/"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/import-from-firefox/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-1password/"],["target","_blank","rel","noopener","href","https://bit.ly/2GpOMTg"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h1"),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(5,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(6,"\n"),s.ɵɵelementStart(7,"form",1,2),s.ɵɵlistener("ngSubmit",(function(){return t.submit()})),s.ɵɵtext(9,"\n "),s.ɵɵelementStart(10,"div",3),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"div",4),s.ɵɵtext(13,"\n "),s.ɵɵelementStart(14,"div",5),s.ɵɵtext(15,"\n "),s.ɵɵelementStart(16,"label",6),s.ɵɵtext(17),s.ɵɵpipe(18,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(19,"\n "),s.ɵɵelementStart(20,"select",7),s.ɵɵlistener("ngModelChange",(function(e){return t.format=e})),s.ɵɵtext(21,"\n "),s.ɵɵtemplate(22,y,2,2,"option",8),s.ɵɵtext(23,"\n "),s.ɵɵtemplate(24,x,6,1,"ng-container",9),s.ɵɵtext(25,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(26,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(27,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(28,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(29,"\n "),s.ɵɵtemplate(30,ve,100,50,"app-callout",10),s.ɵɵtext(31,"\n "),s.ɵɵelementStart(32,"div",3),s.ɵɵtext(33,"\n "),s.ɵɵelementStart(34,"div",4),s.ɵɵtext(35,"\n "),s.ɵɵelementStart(36,"div",5),s.ɵɵtext(37,"\n "),s.ɵɵelementStart(38,"label",11),s.ɵɵtext(39),s.ɵɵpipe(40,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(41,"\n "),s.ɵɵelement(42,"input",12),s.ɵɵtext(43,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(44,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(45,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(46,"\n "),s.ɵɵelementStart(47,"div",5),s.ɵɵtext(48,"\n "),s.ɵɵelementStart(49,"label",13),s.ɵɵtext(50),s.ɵɵpipe(51,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(52,"\n "),s.ɵɵelementStart(53,"textarea",14),s.ɵɵlistener("ngModelChange",(function(e){return t.fileContents=e})),s.ɵɵelementEnd(),s.ɵɵtext(54,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(55,"\n "),s.ɵɵelementStart(56,"button",15),s.ɵɵtext(57,"\n "),s.ɵɵelement(58,"i",16),s.ɵɵpipe(59,"i18n"),s.ɵɵtext(60,"\n "),s.ɵɵelementStart(61,"span"),s.ɵɵtext(62),s.ɵɵpipe(63,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(64,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(65,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(66,"\n")),2&e&&(s.ɵɵadvance(3),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(4,12,"importData")),s.ɵɵadvance(14),s.ɵɵtextInterpolate1("1. ",s.ɵɵpipeBind1(18,14,"selectFormat"),""),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",t.format),s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",t.featuredImportOptions),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.importOptions&&t.importOptions.length),s.ɵɵadvance(6),s.ɵɵproperty("ngIf",t.format),s.ɵɵadvance(9),s.ɵɵtextInterpolate1("2. ",s.ɵɵpipeBind1(40,16,"selectImportFile"),""),s.ɵɵadvance(11),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(51,18,"orCopyPasteFileContents")),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",t.fileContents),s.ɵɵadvance(3),s.ɵɵproperty("disabled",t.loading),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(59,20,"loading")),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(63,22,"importData")))},directives:[m.NgControlStatusGroup,m.NgForm,m.SelectControlValueAccessor,m.RequiredValidator,m.NgControlStatus,m.NgModel,h.NgForOf,h.NgIf,m.DefaultValueAccessor,m.NgSelectOption,m.ɵangular_packages_forms_forms_x,f.CalloutComponent],pipes:[v.I18nPipe],encapsulation:2}),e}();t.ImportComponent=ye},,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?[4,this.getAllCiphers()]:[3,6];case 4:return e=o.sent(),t=[],n=[],r=new Map,e.forEach((function(e){if(e.type===s.CipherType.Login&&(null==e.login.totp||""===e.login.totp)&&e.login.hasUris&&!e.isDeleted)for(var n=0;n0?[2]:[4,fetch(new Request("https://2fa.directory/api/v2/totp.json"))];case 1:if(200!==(e=a.sent()).status)throw new Error;return[4,e.json()];case 2:for(n in t=a.sent())if(t.hasOwnProperty(n))for(i in r=t[n])r.hasOwnProperty(i)&&null!=(o=r[i]).url&&null!=(s=l.Utils.getHostname(o.url))&&this.services.set(s,o.doc);return[2]}}))}))},t.ɵfac=function(e){return new(e||t)(p.ɵɵdirectiveInject(u.CipherService),p.ɵɵdirectiveInject(p.ComponentFactoryResolver),p.ɵɵdirectiveInject(d.MessagingService),p.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=p.ɵɵdefineComponent({type:t,selectors:[["app-inactive-two-factor-report"]],features:[p.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],["href","#","appStopClick","",3,"title","click"],[1,"text-right"],["class","badge badge-primary","target","_blank","rel","noopener",3,"href",4,"ngIf"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"],["target","_blank","rel","noopener",1,"badge","badge-primary",3,"href"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"h1"),p.ɵɵtext(3),p.ɵɵpipe(4,"i18n"),p.ɵɵtemplate(5,b,9,6,"small",1),p.ɵɵtext(6,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(7,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(8,"\n"),p.ɵɵelementStart(9,"p"),p.ɵɵtext(10),p.ɵɵpipe(11,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(12,"\n"),p.ɵɵtemplate(13,S,9,6,"div",1),p.ɵɵtext(14,"\n"),p.ɵɵtemplate(15,_,6,2,"div",2),p.ɵɵtext(16,"\n"),p.ɵɵtemplate(17,A,0,0,"ng-template",null,3,p.ɵɵtemplateRefExtractor),p.ɵɵtext(19,"\n")),2&e&&(p.ɵɵadvance(3),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(4,5,"inactive2faReport"),"\n "),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(11,7,"inactive2faReportDesc")),p.ɵɵadvance(3),p.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(c.CipherReportComponent);t.InactiveTwoFactorReportComponent=O},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1})),this.ciphers=n,[2]}}))}))},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(u.MessagingService),c.ɵɵdirectiveInject(d.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-reused-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],[1,"badge","badge-warning"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵtemplate(5,x,9,6,"small",1),c.ɵɵtext(6,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵelementStart(9,"p"),c.ɵɵtext(10),c.ɵɵpipe(11,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,b,9,6,"div",1),c.ɵɵtext(14,"\n"),c.ɵɵtemplate(15,_,6,2,"div",2),c.ɵɵtext(16,"\n"),c.ɵɵtemplate(17,A,0,0,"ng-template",null,3,c.ɵɵtemplateRefExtractor),c.ɵɵtext(19,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(4,5,"reusedPasswordsReport"),"\n "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(11,7,"reusedPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[m.NgIf,h.CalloutComponent,m.NgForOf,f.IconComponent,v.StopClickDirective,y.StopPropDirective],pipes:[g.I18nPipe,m.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.ReusedPasswordsReportComponent=O},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1?l.concat(e.login.username.substr(0,c).trim().toLowerCase().split(/[^A-Za-z0-9]/)).filter((function(e){return e.length>=3})):e.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/).filter((function(e){return e.length>=3}))}var p=i.passwordGenerationService.passwordStrength(e.login.password,l.length>0?l:null);i.passwordStrengthCache.set(a,p.score)}var u=i.passwordStrengthCache.get(a);null!=u&&u<=2&&(i.passwordStrengthMap.set(e.id,i.scoreKey(u)),t.push(e))}})),t.sort((function(e,t){return i.passwordStrengthCache.get(r(e))-i.passwordStrengthCache.get(r(t))})),this.ciphers=t,[2]}}))}))},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.prototype.scoreKey=function(e){switch(e){case 4:return["strong","success"];case 3:return["good","primary"];case 2:return["weak","warning"];default:return["veryWeak","danger"]}},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(u.PasswordGenerationService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(d.MessagingService),c.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-weak-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵtemplate(5,b,9,6,"small",1),c.ɵɵtext(6,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵelementStart(9,"p"),c.ɵɵtext(10),c.ɵɵpipe(11,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,S,9,6,"div",1),c.ɵɵtext(14,"\n"),c.ɵɵtemplate(15,A,6,2,"div",2),c.ɵɵtext(16,"\n"),c.ɵɵtemplate(17,O,0,0,"ng-template",null,3,c.ɵɵtemplateRefExtractor),c.ɵɵtext(19,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(4,5,"weakPasswordsReport"),"\n "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(11,7,"weakPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.WeakPasswordsReportComponent=T},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1)""===r.substr(o).trim()&&(i=o);e+=r.substring(0,i)}this.platformUtilsService.copyToClipboard(e,{window:window})}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef),r.ɵɵdirectiveInject(i.PlatformUtilsService))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appSelectCopy",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("copy",(function(){return t.onCopy()}))}}),e}();t.SelectCopyDirective=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e){for(var t="",n=0;n":r=">",i=!0;break;case" ":r=" ",i=!0}var o="letter";i||r.match(/[^\w ]/)?o="special":r.match(/\d/)&&(o="number"),t+=''+r+""}return t},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"colorPassword",type:e,pure:!0}),e}();t.ColorPasswordPipe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.userId=t,this.name=e.name,this.id=e.id,this.revisionDate=e.revisionDate};t.FolderData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(127),a=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t||(r.buildDomainModel(r,t,{id:null,name:null},n,["id"]),r.revisionDate=null!=t.revisionDate?new Date(t.revisionDate):null),r}return i(t,e),t.prototype.decrypt=function(){return this.decryptObj(new o.FolderView(this),{name:null},null)},t}(n(81).default);t.Folder=a},,,,,,function(e,t){},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.NotificationsService=r},,,,function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=529},,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1&&(this.email=r.email),null!=r.premium?this.stateService.save("loginRedirect",{route:"/settings/premium"}):null!=r.org&&this.stateService.save("loginRedirect",{route:"/settings/create-organization",qParams:{plan:r.org}}),[4,e.prototype.ngOnInit.call(this)];case 1:return n.sent(),null!=t&&t.unsubscribe(),[2]}}))}))})),[2]}))}))},t.prototype.goAfterLogIn=function(){return o(this,void 0,void 0,(function(){var e,t,n;return a(this,(function(r){switch(r.label){case 0:return[4,this.stateService.get("orgInvitation")];case 1:return e=r.sent(),[4,this.stateService.get("emergencyInvitation")];case 2:return t=r.sent(),null==e?[3,3]:(this.router.navigate(["accept-organization"],{queryParams:e}),[3,8]);case 3:return null==t?[3,4]:(this.router.navigate(["accept-emergency"],{queryParams:t}),[3,8]);case 4:return[4,this.stateService.get("loginRedirect")];case 5:return null==(n=r.sent())?[3,7]:(this.router.navigate([n.route],{queryParams:n.qParams}),[4,this.stateService.remove("loginRedirect")]);case 6:return r.sent(),[3,8];case 7:this.router.navigate([this.successRoute]),r.label=8;case 8:return[2]}}))}))},t.ɵfac=function(e){return new(e||t)(l.ɵɵdirectiveInject(c.AuthService),l.ɵɵdirectiveInject(p.Router),l.ɵɵdirectiveInject(u.I18nService),l.ɵɵdirectiveInject(p.ActivatedRoute),l.ɵɵdirectiveInject(d.StorageService),l.ɵɵdirectiveInject(m.StateService),l.ɵɵdirectiveInject(h.PlatformUtilsService),l.ɵɵdirectiveInject(f.EnvironmentService),l.ɵɵdirectiveInject(v.PasswordGenerationService),l.ɵɵdirectiveInject(y.CryptoFunctionService))},t.ɵcmp=l.ɵɵdefineComponent({type:t,selectors:[["app-login"]],features:[l.ɵɵInheritDefinitionFeature],decls:97,vars:43,consts:[["ngNativeValidate","",1,"container",3,"appApiAction","ngSubmit"],["form",""],[1,"row","justify-content-md-center","mt-5"],[1,"col-5"],["src","images/logo-dark@2x.png","alt","Bitwarden",1,"logo","mb-2"],[1,"lead","text-center","mx-4","mb-4"],[1,"card","d-block"],[1,"card-body"],[1,"form-group"],["for","email"],["id","email","type","text","name","Email","required","","inputmode","email","appInputVerbatim","false",1,"form-control",3,"ngModel","ngModelChange"],["for","masterPassword"],[1,"d-flex"],["id","masterPassword","name","MasterPassword","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"form-text"],["routerLink","/hint"],[1,"form-check"],["type","checkbox","id","rememberEmail","name","RememberEmail",1,"form-check-input",3,"ngModel","ngModelChange"],["for","rememberEmail",1,"form-check-label"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-sign-in"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["routerLink","/register",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0",3,"queryParams"],["aria-hidden","true",1,"fa","fa-pencil-square-o"],["routerLink","/sso",1,"btn","btn-outline-secondary","btn-block","mt-2"],["aria-hidden","true",1,"fa","fa-bank"]],template:function(e,t){if(1&e&&(l.ɵɵelementStart(0,"form",0,1),l.ɵɵlistener("ngSubmit",(function(){return t.submit()})),l.ɵɵtext(2,"\n "),l.ɵɵelementStart(3,"div",2),l.ɵɵtext(4,"\n "),l.ɵɵelementStart(5,"div",3),l.ɵɵtext(6,"\n "),l.ɵɵelement(7,"img",4),l.ɵɵtext(8,"\n "),l.ɵɵelementStart(9,"p",5),l.ɵɵtext(10),l.ɵɵpipe(11,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(12,"\n "),l.ɵɵelementStart(13,"div",6),l.ɵɵtext(14,"\n "),l.ɵɵelementStart(15,"div",7),l.ɵɵtext(16,"\n "),l.ɵɵelementStart(17,"div",8),l.ɵɵtext(18,"\n "),l.ɵɵelementStart(19,"label",9),l.ɵɵtext(20),l.ɵɵpipe(21,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(22,"\n "),l.ɵɵelementStart(23,"input",10),l.ɵɵlistener("ngModelChange",(function(e){return t.email=e})),l.ɵɵelementEnd(),l.ɵɵtext(24,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(25,"\n "),l.ɵɵelementStart(26,"div",8),l.ɵɵtext(27,"\n "),l.ɵɵelementStart(28,"label",11),l.ɵɵtext(29),l.ɵɵpipe(30,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(31,"\n "),l.ɵɵelementStart(32,"div",12),l.ɵɵtext(33,"\n "),l.ɵɵelementStart(34,"input",13),l.ɵɵlistener("ngModelChange",(function(e){return t.masterPassword=e})),l.ɵɵelementEnd(),l.ɵɵtext(35,"\n "),l.ɵɵelementStart(36,"button",14),l.ɵɵlistener("click",(function(){return t.togglePassword()})),l.ɵɵpipe(37,"i18n"),l.ɵɵtext(38,"\n "),l.ɵɵelement(39,"i",15),l.ɵɵtext(40,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(41,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(42,"\n "),l.ɵɵelementStart(43,"small",16),l.ɵɵtext(44,"\n "),l.ɵɵelementStart(45,"a",17),l.ɵɵtext(46),l.ɵɵpipe(47,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(48,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(49,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(50,"\n "),l.ɵɵelementStart(51,"div",18),l.ɵɵtext(52,"\n "),l.ɵɵelementStart(53,"input",19),l.ɵɵlistener("ngModelChange",(function(e){return t.rememberEmail=e})),l.ɵɵelementEnd(),l.ɵɵtext(54,"\n "),l.ɵɵelementStart(55,"label",20),l.ɵɵtext(56),l.ɵɵpipe(57,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(58,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(59,"\n "),l.ɵɵelement(60,"hr"),l.ɵɵtext(61,"\n "),l.ɵɵelementStart(62,"div",12),l.ɵɵtext(63,"\n "),l.ɵɵelementStart(64,"button",21),l.ɵɵtext(65,"\n "),l.ɵɵelementStart(66,"span"),l.ɵɵtext(67,"\n "),l.ɵɵelement(68,"i",22),l.ɵɵtext(69),l.ɵɵpipe(70,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(71,"\n "),l.ɵɵelement(72,"i",23),l.ɵɵpipe(73,"i18n"),l.ɵɵtext(74,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(75,"\n "),l.ɵɵelementStart(76,"a",24),l.ɵɵtext(77,"\n "),l.ɵɵelement(78,"i",25),l.ɵɵtext(79),l.ɵɵpipe(80,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(81,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(82,"\n "),l.ɵɵelementStart(83,"div",12),l.ɵɵtext(84,"\n "),l.ɵɵelementStart(85,"a",26),l.ɵɵtext(86,"\n "),l.ɵɵelement(87,"i",27),l.ɵɵtext(88),l.ɵɵpipe(89,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(90,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(91,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(92,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(93,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(94,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(95,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(96,"\n")),2&e){var n=l.ɵɵreference(1);l.ɵɵproperty("appApiAction",t.formPromise),l.ɵɵadvance(10),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(11,18,"loginOrCreateNewAccount")),l.ɵɵadvance(10),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(21,20,"emailAddress")),l.ɵɵadvance(3),l.ɵɵproperty("ngModel",t.email),l.ɵɵadvance(6),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(30,22,"masterPass")),l.ɵɵadvance(5),l.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),l.ɵɵproperty("ngModel",t.masterPassword),l.ɵɵadvance(2),l.ɵɵpropertyInterpolate("appA11yTitle",l.ɵɵpipeBind1(37,24,"toggleVisibility")),l.ɵɵadvance(3),l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(38,I,!t.showPassword,t.showPassword)),l.ɵɵadvance(7),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(47,26,"getMasterPasswordHint")),l.ɵɵadvance(7),l.ɵɵproperty("ngModel",t.rememberEmail),l.ɵɵadvance(3),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(57,28,"rememberEmail")),l.ɵɵadvance(8),l.ɵɵproperty("disabled",n.loading),l.ɵɵadvance(5),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(70,30,"logIn"),"\n "),l.ɵɵadvance(3),l.ɵɵpropertyInterpolate("title",l.ɵɵpipeBind1(73,32,"loading")),l.ɵɵadvance(4),l.ɵɵproperty("queryParams",l.ɵɵpureFunction1(41,E,t.email)),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(80,34,"createAccount"),"\n "),l.ɵɵadvance(9),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(89,36,"enterpriseSingleSignOn"),"\n ")}},directives:[g.NgControlStatusGroup,g.NgForm,x.ApiActionDirective,g.DefaultValueAccessor,g.RequiredValidator,b.InputVerbatimDirective,g.NgControlStatus,g.NgModel,S.A11yTitleDirective,w.NgClass,p.RouterLinkWithHref,g.CheckboxControlValueAccessor],pipes:[C.I18nPipe],encapsulation:2}),t}(s.LoginComponent);t.LoginComponent=P},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}function K(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div",12),u.ɵɵtext(1,"\n "),u.ɵɵelementStart(2,"div",48),u.ɵɵtext(3,"\n "),u.ɵɵelementStart(4,"input",49),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext().acceptPolicies=e})),u.ɵɵelementEnd(),u.ɵɵtext(5,"\n "),u.ɵɵelementStart(6,"label",50),u.ɵɵtext(7),u.ɵɵpipe(8,"i18n"),u.ɵɵelement(9,"br"),u.ɵɵtext(10,"\n "),u.ɵɵelementStart(11,"a",51),u.ɵɵtext(12),u.ɵɵpipe(13,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(14,",\n "),u.ɵɵelementStart(15,"a",52),u.ɵɵtext(16),u.ɵɵpipe(17,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(18,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(19,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(20,"\n "),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext();u.ɵɵadvance(4),u.ɵɵproperty("ngModel",r.acceptPolicies),u.ɵɵadvance(3),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(8,4,"acceptPolicies"),""),u.ɵɵadvance(5),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(13,6,"termsOfService")),u.ɵɵadvance(4),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(17,8,"privacyPolicy"))}}var q=function(e){return["layout",e]},W=function(e,t){return{"col-5":e,"col-12":t}},H=function(e,t){return{"fa-eye":e,"fa-eye-slash":t}},$=function(e){function t(t,n,r,i,o,a,s,l,c,p){var u=e.call(this,t,n,r,i,o,s,l,c)||this;return u.route=a,u.policyService=p,u.showCreateOrgMessage=!1,u.layout="",u}return i(t,e),t.prototype.getPasswordScoreAlertDisplay=function(){if(null==this.enforcedPolicyOptions)return"";var e;switch(this.enforcedPolicyOptions.minComplexity){case 4:e=this.i18nService.t("strong");break;case 3:e=this.i18nService.t("good");break;default:e=this.i18nService.t("weak")}return e+" ("+this.enforcedPolicyOptions.minComplexity+")"},t.prototype.ngOnInit=function(){return o(this,void 0,void 0,(function(){var e,t,n,r,i,o=this;return a(this,(function(a){switch(a.label){case 0:return e=this.route.queryParams.subscribe((function(t){o.referenceData=new p.ReferenceEventRequest,null!=t.email&&t.email.indexOf("@")>-1&&(o.email=t.email),null!=t.premium?o.stateService.save("loginRedirect",{route:"/settings/premium"}):null!=t.org&&(o.showCreateOrgMessage=!0,o.referenceData.flow=t.org,o.stateService.save("loginRedirect",{route:"/settings/create-organization",qParams:{plan:t.org}})),null!=t.layout&&(o.layout=o.referenceData.layout=t.layout),null!=t.reference?o.referenceData.id=t.reference:o.referenceData.id=("; "+document.cookie).split("; reference=").pop().split(";").shift(),""===o.referenceData.id&&(o.referenceData.id=null),null!=e&&e.unsubscribe()})),[4,this.stateService.get("orgInvitation")];case 1:if(null==(t=a.sent()))return[3,5];a.label=2;case 2:return a.trys.push([2,4,,5]),[4,this.apiService.getPoliciesByToken(t.organizationId,t.token,t.email,t.organizationUserId)];case 3:return null!=(n=a.sent()).data&&(r=n.data.map((function(e){return new c.PolicyData(e)})),this.policies=r.map((function(e){return new l.Policy(e)}))),[3,5];case 4:return a.sent(),[3,5];case 5:return null==this.policies?[3,7]:(i=this,[4,this.policyService.getMasterPasswordPolicyOptions(this.policies)]);case 6:i.enforcedPolicyOptions=a.sent(),a.label=7;case 7:return[2]}}))}))},t.prototype.submit=function(){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return null==this.enforcedPolicyOptions||this.policyService.evaluateMasterPassword(this.masterPasswordScore,this.masterPassword,this.enforcedPolicyOptions)?[4,e.prototype.submit.call(this)]:(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("masterPasswordPolicyRequirementsNotMet")),[2]);case 1:return t.sent(),[2]}}))}))},t.ɵfac=function(e){return new(e||t)(u.ɵɵdirectiveInject(d.AuthService),u.ɵɵdirectiveInject(m.Router),u.ɵɵdirectiveInject(h.I18nService),u.ɵɵdirectiveInject(f.CryptoService),u.ɵɵdirectiveInject(v.ApiService),u.ɵɵdirectiveInject(m.ActivatedRoute),u.ɵɵdirectiveInject(y.StateService),u.ɵɵdirectiveInject(g.PlatformUtilsService),u.ɵɵdirectiveInject(x.PasswordGenerationService),u.ɵɵdirectiveInject(b.PolicyService))},t.ɵcmp=u.ɵɵdefineComponent({type:t,selectors:[["app-register"]],features:[u.ɵɵInheritDefinitionFeature],decls:146,vars:80,consts:[[1,"layout",3,"ngClass"],["class","header",4,"ngIf"],["ngNativeValidate","",1,"container",3,"appApiAction","ngSubmit"],["form",""],[1,"row"],["class","col-7",4,"ngIf"],[3,"ngClass"],[1,"row","justify-content-md-center","mt-5"],["class","lead text-center mb-4",4,"ngIf"],[1,"card","d-block"],[1,"card-body"],["type","info","icon","fa-thumb-tack",3,"title",4,"ngIf"],[1,"form-group"],["for","email"],["id","email","type","text","name","Email","required","","inputmode","email","appInputVerbatim","false",1,"form-control",3,"ngModel","appAutofocus","ngModelChange"],[1,"form-text","text-muted"],["for","name"],["id","name","type","text","name","Name",1,"form-control",3,"ngModel","appAutofocus","ngModelChange"],["type","info",4,"ngIf"],["for","masterPassword"],[1,"d-flex"],[1,"w-100"],["id","masterPassword","name","MasterPassword","required","","appInputVerbatim","",1,"text-monospace","form-control","mb-1",3,"type","ngModel","ngModelChange","input"],[3,"score","showText"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"progress-bar","invisible"],["for","masterPasswordRetype"],["id","masterPasswordRetype","name","MasterPasswordRetype","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["for","hint"],["id","hint","type","text","name","Hint",1,"form-control",3,"ngModel","ngModelChange"],["class","form-group",4,"ngIf"],[1,"d-flex","mb-2"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["routerLink","/",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0"],[1,"header"],[1,"container"],[1,"col-7"],["alt","Bitwarden","src","images/logo-horizontal-white.png",1,"logo","mb-2"],[1,"mt-5"],[4,"ngIf"],[1,"highlight"],["src","images/wired-logo.png","alt","Wired"],[1,"lead","text-center","mb-4"],["type","info","icon","fa-thumb-tack",3,"title"],["type","info"],[1,"mb-0"],[1,"form-check"],["type","checkbox","id","acceptPolicies","name","AcceptPolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","acceptPolicies",1,"form-check-label","small","text-muted"],["href","https://bitwarden.com/terms/","target","_blank","rel","noopener"],["href","https://bitwarden.com/privacy/","target","_blank","rel","noopener"]],template:function(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",0),u.ɵɵtext(1,"\n "),u.ɵɵtemplate(2,O,13,0,"header",1),u.ɵɵtext(3,"\n "),u.ɵɵelementStart(4,"form",2,3),u.ɵɵlistener("ngSubmit",(function(){return t.submit()})),u.ɵɵtext(6,"\n "),u.ɵɵelementStart(7,"div",4),u.ɵɵtext(8,"\n "),u.ɵɵtemplate(9,D,11,3,"div",5),u.ɵɵtext(10,"\n "),u.ɵɵelementStart(11,"div",6),u.ɵɵtext(12,"\n "),u.ɵɵelementStart(13,"div",7),u.ɵɵtext(14,"\n "),u.ɵɵelementStart(15,"div",6),u.ɵɵtext(16,"\n "),u.ɵɵtemplate(17,R,3,3,"p",8),u.ɵɵtext(18,"\n "),u.ɵɵelementStart(19,"div",9),u.ɵɵtext(20,"\n "),u.ɵɵelementStart(21,"div",10),u.ɵɵtext(22,"\n "),u.ɵɵtemplate(23,V,4,6,"app-callout",11),u.ɵɵtext(24,"\n "),u.ɵɵelementStart(25,"div",12),u.ɵɵtext(26,"\n "),u.ɵɵelementStart(27,"label",13),u.ɵɵtext(28),u.ɵɵpipe(29,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(30,"\n "),u.ɵɵelementStart(31,"input",14),u.ɵɵlistener("ngModelChange",(function(e){return t.email=e})),u.ɵɵelementEnd(),u.ɵɵtext(32,"\n "),u.ɵɵelementStart(33,"small",15),u.ɵɵtext(34),u.ɵɵpipe(35,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(36,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(37,"\n "),u.ɵɵelementStart(38,"div",12),u.ɵɵtext(39,"\n "),u.ɵɵelementStart(40,"label",16),u.ɵɵtext(41),u.ɵɵpipe(42,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(43,"\n "),u.ɵɵelementStart(44,"input",17),u.ɵɵlistener("ngModelChange",(function(e){return t.name=e})),u.ɵɵelementEnd(),u.ɵɵtext(45,"\n "),u.ɵɵelementStart(46,"small",15),u.ɵɵtext(47),u.ɵɵpipe(48,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(49,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(50,"\n "),u.ɵɵelementStart(51,"div",12),u.ɵɵtext(52,"\n "),u.ɵɵtemplate(53,G,18,9,"app-callout",18),u.ɵɵtext(54,"\n "),u.ɵɵelementStart(55,"label",19),u.ɵɵtext(56),u.ɵɵpipe(57,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(58,"\n "),u.ɵɵelementStart(59,"div",20),u.ɵɵtext(60,"\n "),u.ɵɵelementStart(61,"div",21),u.ɵɵtext(62,"\n "),u.ɵɵelementStart(63,"input",22),u.ɵɵlistener("ngModelChange",(function(e){return t.masterPassword=e}))("input",(function(){return t.updatePasswordStrength()})),u.ɵɵelementEnd(),u.ɵɵtext(64,"\n "),u.ɵɵelementStart(65,"app-password-strength",23),u.ɵɵtext(66,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(67,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(68,"\n "),u.ɵɵelementStart(69,"div"),u.ɵɵtext(70,"\n "),u.ɵɵelementStart(71,"button",24),u.ɵɵlistener("click",(function(){return t.togglePassword(!1)})),u.ɵɵpipe(72,"i18n"),u.ɵɵtext(73,"\n "),u.ɵɵelement(74,"i",25),u.ɵɵtext(75,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(76,"\n "),u.ɵɵelement(77,"div",26),u.ɵɵtext(78,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(79,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(80,"\n "),u.ɵɵelementStart(81,"small",15),u.ɵɵtext(82),u.ɵɵpipe(83,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(84,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(85,"\n "),u.ɵɵelementStart(86,"div",12),u.ɵɵtext(87,"\n "),u.ɵɵelementStart(88,"label",27),u.ɵɵtext(89),u.ɵɵpipe(90,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(91,"\n "),u.ɵɵelementStart(92,"div",20),u.ɵɵtext(93,"\n "),u.ɵɵelementStart(94,"input",28),u.ɵɵlistener("ngModelChange",(function(e){return t.confirmMasterPassword=e})),u.ɵɵelementEnd(),u.ɵɵtext(95,"\n "),u.ɵɵelementStart(96,"button",24),u.ɵɵlistener("click",(function(){return t.togglePassword(!0)})),u.ɵɵpipe(97,"i18n"),u.ɵɵtext(98,"\n "),u.ɵɵelement(99,"i",25),u.ɵɵtext(100,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(101,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(102,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(103,"\n "),u.ɵɵelementStart(104,"div",12),u.ɵɵtext(105,"\n "),u.ɵɵelementStart(106,"label",29),u.ɵɵtext(107),u.ɵɵpipe(108,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(109,"\n "),u.ɵɵelementStart(110,"input",30),u.ɵɵlistener("ngModelChange",(function(e){return t.hint=e})),u.ɵɵelementEnd(),u.ɵɵtext(111,"\n "),u.ɵɵelementStart(112,"small",15),u.ɵɵtext(113),u.ɵɵpipe(114,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(115,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(116,"\n "),u.ɵɵtemplate(117,K,21,10,"div",31),u.ɵɵtext(118,"\n "),u.ɵɵelement(119,"hr"),u.ɵɵtext(120,"\n "),u.ɵɵelementStart(121,"div",32),u.ɵɵtext(122,"\n "),u.ɵɵelementStart(123,"button",33),u.ɵɵtext(124,"\n "),u.ɵɵelementStart(125,"span"),u.ɵɵtext(126),u.ɵɵpipe(127,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(128,"\n "),u.ɵɵelement(129,"i",34),u.ɵɵpipe(130,"i18n"),u.ɵɵtext(131,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(132,"\n "),u.ɵɵelementStart(133,"a",35),u.ɵɵtext(134),u.ɵɵpipe(135,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(136,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(137,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(138,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(139,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(140,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(141,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(142,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(143,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(144,"\n"),u.ɵɵelementEnd(),u.ɵɵtext(145,"\n")),2&e){var n=u.ɵɵreference(5);u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(66,q,t.layout)),u.ɵɵadvance(2),u.ɵɵproperty("ngIf","enterprise2"===t.layout),u.ɵɵadvance(2),u.ɵɵproperty("appApiAction",t.formPromise),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",t.layout),u.ɵɵadvance(2),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(68,W,t.layout,!t.layout)),u.ɵɵadvance(4),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(71,W,!t.layout,t.layout)),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",!t.layout),u.ɵɵadvance(6),u.ɵɵproperty("ngIf",t.showCreateOrgMessage),u.ɵɵadvance(5),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(29,38,"emailAddress")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.email)("appAutofocus",""===t.email),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(35,40,"emailAddressDesc")),u.ɵɵadvance(7),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(42,42,"yourName")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.name)("appAutofocus",""!==t.email),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(48,44,"yourNameDesc")),u.ɵɵadvance(6),u.ɵɵproperty("ngIf",t.enforcedPolicyOptions),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(57,46,"masterPass")),u.ɵɵadvance(7),u.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),u.ɵɵproperty("ngModel",t.masterPassword),u.ɵɵadvance(2),u.ɵɵproperty("score",t.masterPasswordScore)("showText",!0),u.ɵɵadvance(6),u.ɵɵpropertyInterpolate("appA11yTitle",u.ɵɵpipeBind1(72,48,"toggleVisibility")),u.ɵɵadvance(3),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(74,H,!t.showPassword,t.showPassword)),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(83,50,"masterPassDesc")),u.ɵɵadvance(7),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(90,52,"reTypeMasterPass")),u.ɵɵadvance(5),u.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),u.ɵɵproperty("ngModel",t.confirmMasterPassword),u.ɵɵadvance(2),u.ɵɵpropertyInterpolate("appA11yTitle",u.ɵɵpipeBind1(97,54,"toggleVisibility")),u.ɵɵadvance(3),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(77,H,!t.showPassword,t.showPassword)),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(108,56,"masterPassHint")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.hint),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(114,58,"masterPassHintDesc")),u.ɵɵadvance(4),u.ɵɵproperty("ngIf",t.showTerms),u.ɵɵadvance(6),u.ɵɵproperty("disabled",n.loading),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(127,60,"submit")),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate("title",u.ɵɵpipeBind1(130,62,"loading")),u.ɵɵadvance(5),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(135,64,"cancel"),"\n ")}},directives:[S.NgClass,S.NgIf,w.NgControlStatusGroup,w.NgForm,C.ApiActionDirective,w.DefaultValueAccessor,w.RequiredValidator,I.InputVerbatimDirective,w.NgControlStatus,w.NgModel,E.AutofocusDirective,P.PasswordStrengthComponent,k.A11yTitleDirective,m.RouterLinkWithHref,_.CalloutComponent,w.CheckboxControlValueAccessor],pipes:[A.I18nPipe],encapsulation:2}),t}(s.RegisterComponent);t.RegisterComponent=$},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});n(0),n(8),n(6),n(18),n(3),n(14),n(36),n(5),n(43),n(61),n(7);var o=n(844),a=n(0),s=n(6),l=n(3),c=n(18),p=n(14),u=n(7),d=n(36),m=n(5),h=n(43),f=n(8),v=n(61),y=n(13),g=n(16),x=n(4),b=n(24),S=n(45),w=n(250),C=n(17),I=n(10);function E(e,t){1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵtext(1,"\n "),a.ɵɵelement(2,"i",9),a.ɵɵpipe(3,"i18n"),a.ɵɵtext(4),a.ɵɵpipe(5,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(2),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(3,2,"loading")),a.ɵɵadvance(2),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(5,4,"loading"),"\n "))}function P(e,t){if(1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind2(2,1,"policyInEffectMinComplexity",n.getPasswordScoreAlertDisplay()),"\n ")}}function k(e,t){if(1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind2(2,1,"policyInEffectMinLength",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength.toString()),"\n ")}}function _(e,t){1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"policyInEffectUppercase"),""))}function A(e,t){1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"policyInEffectLowercase"),""))}function O(e,t){1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"policyInEffectNumbers"),""))}function T(e,t){1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind2(2,1,"policyInEffectSpecial","!@#$%^&*"),""))}function M(e,t){if(1&e&&(a.ɵɵelementStart(0,"app-callout",11),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementStart(3,"ul",29),a.ɵɵtext(4,"\n "),a.ɵɵtemplate(5,P,3,4,"li",30),a.ɵɵtext(6,"\n "),a.ɵɵtemplate(7,k,3,4,"li",30),a.ɵɵtext(8,"\n "),a.ɵɵtemplate(9,_,3,3,"li",30),a.ɵɵtext(10,"\n "),a.ɵɵtemplate(11,A,3,3,"li",30),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,O,3,3,"li",30),a.ɵɵtext(14,"\n "),a.ɵɵtemplate(15,T,3,4,"li",30),a.ɵɵtext(16,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(17,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,7,"masterPasswordPolicyInEffect"),"\n "),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minComplexity)>0),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var B=function(e,t){return{"fa-eye":e,"fa-eye-slash":t}};function D(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",10),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"app-callout",11),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"div",12),a.ɵɵtext(7,"\n "),a.ɵɵtemplate(8,M,18,9,"app-callout",13),a.ɵɵtext(9,"\n "),a.ɵɵelementStart(10,"label",14),a.ɵɵtext(11),a.ɵɵpipe(12,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementStart(14,"div",15),a.ɵɵtext(15,"\n "),a.ɵɵelementStart(16,"div",16),a.ɵɵtext(17,"\n "),a.ɵɵelementStart(18,"input",17),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().masterPassword=e}))("input",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().updatePasswordStrength()})),a.ɵɵelementEnd(),a.ɵɵtext(19,"\n "),a.ɵɵelementStart(20,"app-password-strength",18),a.ɵɵtext(21,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(22,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(23,"\n "),a.ɵɵelementStart(24,"div"),a.ɵɵtext(25,"\n "),a.ɵɵelementStart(26,"button",19),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().togglePassword(!1)})),a.ɵɵpipe(27,"i18n"),a.ɵɵtext(28,"\n "),a.ɵɵelement(29,"i",20),a.ɵɵtext(30,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(31,"\n "),a.ɵɵelement(32,"div",21),a.ɵɵtext(33,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(34,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(35,"\n "),a.ɵɵelementStart(36,"small",22),a.ɵɵtext(37),a.ɵɵpipe(38,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(39,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(40,"\n "),a.ɵɵelementStart(41,"div",12),a.ɵɵtext(42,"\n "),a.ɵɵelementStart(43,"label",23),a.ɵɵtext(44),a.ɵɵpipe(45,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(46,"\n "),a.ɵɵelementStart(47,"div",15),a.ɵɵtext(48,"\n "),a.ɵɵelementStart(49,"input",24),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().masterPasswordRetype=e})),a.ɵɵelementEnd(),a.ɵɵtext(50,"\n "),a.ɵɵelementStart(51,"button",19),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().togglePassword(!0)})),a.ɵɵpipe(52,"i18n"),a.ɵɵtext(53,"\n "),a.ɵɵelement(54,"i",20),a.ɵɵtext(55,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(56,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(57,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(58,"\n "),a.ɵɵelementStart(59,"div",12),a.ɵɵtext(60,"\n "),a.ɵɵelementStart(61,"label",25),a.ɵɵtext(62),a.ɵɵpipe(63,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(64,"\n "),a.ɵɵelementStart(65,"input",26),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().hint=e})),a.ɵɵelementEnd(),a.ɵɵtext(66,"\n "),a.ɵɵelementStart(67,"small",22),a.ɵɵtext(68),a.ɵɵpipe(69,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(70,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(71,"\n "),a.ɵɵelement(72,"hr"),a.ɵɵtext(73,"\n "),a.ɵɵelementStart(74,"div",15),a.ɵɵtext(75,"\n "),a.ɵɵelementStart(76,"button",27),a.ɵɵtext(77,"\n "),a.ɵɵelement(78,"i",9),a.ɵɵpipe(79,"i18n"),a.ɵɵtext(80,"\n "),a.ɵɵelementStart(81,"span"),a.ɵɵtext(82),a.ɵɵpipe(83,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(84,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(85,"\n "),a.ɵɵelementStart(86,"button",28),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().logOut()})),a.ɵɵtext(87),a.ɵɵpipe(88,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(89,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(90,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(),i=a.ɵɵreference(1);a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(4,22,"ssoCompleteRegistration")),a.ɵɵadvance(5),a.ɵɵproperty("ngIf",r.enforcedPolicyOptions),a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(12,24,"masterPass")),a.ɵɵadvance(7),a.ɵɵpropertyInterpolate("type",r.showPassword?"text":"password"),a.ɵɵproperty("ngModel",r.masterPassword),a.ɵɵadvance(2),a.ɵɵproperty("score",r.masterPasswordScore)("showText",!0),a.ɵɵadvance(6),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(27,26,"toggleVisibility")),a.ɵɵadvance(3),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(44,B,!r.showPassword,r.showPassword)),a.ɵɵadvance(8),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(38,28,"masterPassDesc")),a.ɵɵadvance(7),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(45,30,"reTypeMasterPass")),a.ɵɵadvance(5),a.ɵɵpropertyInterpolate("type",r.showPassword?"text":"password"),a.ɵɵproperty("ngModel",r.masterPasswordRetype),a.ɵɵadvance(2),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(52,32,"toggleVisibility")),a.ɵɵadvance(3),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(47,B,!r.showPassword,r.showPassword)),a.ɵɵadvance(8),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(63,34,"masterPassHint")),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",r.hint),a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(69,36,"masterPassHintDesc")),a.ɵɵadvance(8),a.ɵɵproperty("disabled",i.loading),a.ɵɵadvance(2),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(79,38,"loading")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(83,40,"submit")),a.ɵɵadvance(5),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(88,42,"logOut"),"\n ")}}var R=function(e){function t(t,n,r,i,o,a,s,l,c,p,u){return e.call(this,n,r,i,o,a,s,l,c,t,p,u)||this}return i(t,e),t.ɵfac=function(e){return new(e||t)(a.ɵɵdirectiveInject(s.ApiService),a.ɵɵdirectiveInject(l.I18nService),a.ɵɵdirectiveInject(c.CryptoService),a.ɵɵdirectiveInject(p.MessagingService),a.ɵɵdirectiveInject(u.UserService),a.ɵɵdirectiveInject(d.PasswordGenerationService),a.ɵɵdirectiveInject(m.PlatformUtilsService),a.ɵɵdirectiveInject(h.PolicyService),a.ɵɵdirectiveInject(f.Router),a.ɵɵdirectiveInject(v.SyncService),a.ɵɵdirectiveInject(f.ActivatedRoute))},t.ɵcmp=a.ɵɵdefineComponent({type:t,selectors:[["app-set-password"]],features:[a.ɵɵInheritDefinitionFeature],decls:21,vars:6,consts:[["ngNativeValidate","","autocomplete","off",3,"appApiAction","ngSubmit"],["form",""],[1,"row","justify-content-md-center","mt-5"],[1,"col-5"],[1,"lead","text-center","mb-4"],[1,"card","d-block"],["class","card-body text-center",4,"ngIf"],["class","card-body",4,"ngIf"],[1,"card-body","text-center"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"card-body"],["type","info"],[1,"form-group"],["type","info",4,"ngIf"],["for","masterPassword"],[1,"d-flex"],[1,"w-100"],["id","masterPassword","name","MasterPasswordHash","required","","appInputVerbatim","",1,"text-monospace","form-control","mb-1",3,"type","ngModel","ngModelChange","input"],[3,"score","showText"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"progress-bar","invisible"],[1,"form-text","text-muted"],["for","masterPasswordRetype"],["id","masterPasswordRetype","name","MasterPasswordRetype","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["for","hint"],["id","hint","type","text","name","Hint",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["type","button",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0",3,"click"],[1,"mb-0"],[4,"ngIf"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"form",0,1),a.ɵɵlistener("ngSubmit",(function(){return t.submit()})),a.ɵɵtext(2,"\n "),a.ɵɵelementStart(3,"div",2),a.ɵɵtext(4,"\n "),a.ɵɵelementStart(5,"div",3),a.ɵɵtext(6,"\n "),a.ɵɵelementStart(7,"p",4),a.ɵɵtext(8),a.ɵɵpipe(9,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(10,"\n "),a.ɵɵelementStart(11,"div",5),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,E,6,6,"div",6),a.ɵɵtext(14,"\n "),a.ɵɵtemplate(15,D,91,50,"div",7),a.ɵɵtext(16,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(17,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(18,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(19,"\n"),a.ɵɵelementEnd(),a.ɵɵtext(20,"\n")),2&e&&(a.ɵɵproperty("appApiAction",t.formPromise),a.ɵɵadvance(8),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(9,4,"setMasterPassword")),a.ɵɵadvance(5),a.ɵɵproperty("ngIf",t.syncLoading),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!t.syncLoading))},directives:[y.NgControlStatusGroup,y.NgForm,g.ApiActionDirective,x.NgIf,b.CalloutComponent,y.DefaultValueAccessor,y.RequiredValidator,S.InputVerbatimDirective,y.NgControlStatus,y.NgModel,w.PasswordStrengthComponent,C.A11yTitleDirective,x.NgClass],pipes:[I.I18nPipe],encapsulation:2}),t}(o.SetPasswordComponent);t.SetPasswordComponent=R},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1?t[1]:null},e.prototype.checkState=function(e,t){if(null==e)return!1;if(null==t)return!1;var n=e.split("_identifier="),r=t.split("_identifier=");return n[0]===r[0]},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.AuthService),s.ɵɵdirectiveInject(c.Router),s.ɵɵdirectiveInject(p.I18nService),s.ɵɵdirectiveInject(c.ActivatedRoute),s.ɵɵdirectiveInject(u.StorageService),s.ɵɵdirectiveInject(d.StateService),s.ɵɵdirectiveInject(m.PlatformUtilsService),s.ɵɵdirectiveInject(h.ApiService),s.ɵɵdirectiveInject(f.CryptoFunctionService),s.ɵɵdirectiveInject(v.PasswordGenerationService))},e.ɵdir=s.ɵɵdefineDirective({type:e}),e}();t.SsoComponent=y},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]this.pageSize&&(t=this.pagedCollectionsCount),this.collections.length>e&&(this.pagedCollections=this.pagedCollections.concat(this.collections.slice(e,e+t))),this.pagedCollectionsCount=this.pagedCollections.length,this.didScroll=this.pagedCollections.length>this.pageSize}},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(l.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(c.CollectionAddEditComponent,this.addEditModalRef);r.organizationId=this.organizationId,r.collectionId=null!=e?e.id:null,r.onSavedCollection.subscribe((function(){t.modal.close(),t.load()})),r.onDeletedCollection.subscribe((function(){t.modal.close(),t.removeCollection(e)})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.add=function(){this.edit(null)},e.prototype.delete=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteCollectionConfirmation"),e.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteCollection(this.organizationId,e.id)];case 3:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("deletedCollectionId",e.name)),this.removeCollection(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.users=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(l.ModalComponent);this.modal=this.usersModalRef.createComponent(n).instance;var r=this.modal.show(p.EntityUsersComponent,this.usersModalRef);r.organizationId=this.organizationId,r.entity="collection",r.entityId=e.id,r.entityName=e.name,r.onEditedUsers.subscribe((function(){t.load(),t.modal.close()})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.resetPaging=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return this.pagedCollections=[],this.loadMore(),[2]}))}))},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.collections&&this.collections.length>this.pageSize},e.prototype.removeCollection=function(e){var t=this.collections.indexOf(e);t>-1&&(this.collections.splice(t,1),this.resetPaging())},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.ApiService),u.ɵɵdirectiveInject(m.ActivatedRoute),u.ɵɵdirectiveInject(h.CollectionService),u.ɵɵdirectiveInject(u.ComponentFactoryResolver),u.ɵɵdirectiveInject(f.ToasterService),u.ɵɵdirectiveInject(v.I18nService),u.ɵɵdirectiveInject(y.PlatformUtilsService),u.ɵɵdirectiveInject(g.UserService),u.ɵɵdirectiveInject(x.SearchService))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["app-org-manage-collections"]],viewQuery:function(e,t){var n;(1&e&&(u.ɵɵstaticViewQuery(k,!0,o.ViewContainerRef),u.ɵɵstaticViewQuery(_,!0,o.ViewContainerRef)),2&e)&&(u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.addEditModalRef=n.first),u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.usersModalRef=n.first))},decls:37,vars:20,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["usersTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover table-list","infiniteScroll","",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-users"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-trash-o"]],template:function(e,t){1&e&&(u.ɵɵelementStart(0,"div",0),u.ɵɵtext(1,"\n "),u.ɵɵelementStart(2,"h1"),u.ɵɵtext(3),u.ɵɵpipe(4,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(5,"\n "),u.ɵɵelementStart(6,"div",1),u.ɵɵtext(7,"\n "),u.ɵɵelementStart(8,"div"),u.ɵɵtext(9,"\n "),u.ɵɵelementStart(10,"label",2),u.ɵɵtext(11),u.ɵɵpipe(12,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(13,"\n "),u.ɵɵelementStart(14,"input",3),u.ɵɵlistener("ngModelChange",(function(e){return t.searchText=e})),u.ɵɵpipe(15,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(16,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(17,"\n "),u.ɵɵelementStart(18,"button",4),u.ɵɵlistener("click",(function(){return t.add()})),u.ɵɵtext(19,"\n "),u.ɵɵelement(20,"i",5),u.ɵɵtext(21),u.ɵɵpipe(22,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(23,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(24,"\n"),u.ɵɵelementEnd(),u.ɵɵtext(25,"\n"),u.ɵɵtemplate(26,A,9,6,"ng-container",6),u.ɵɵtext(27,"\n"),u.ɵɵtemplate(28,B,6,2,"ng-container",6),u.ɵɵpipe(29,"search"),u.ɵɵtext(30,"\n"),u.ɵɵtemplate(31,D,0,0,"ng-template",null,7,u.ɵɵtemplateRefExtractor),u.ɵɵtext(33,"\n"),u.ɵɵtemplate(34,R,0,0,"ng-template",null,8,u.ɵɵtemplateRefExtractor),u.ɵɵtext(36,"\n")),2&e&&(u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(4,7,"collections")),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(12,9,"search")),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate("placeholder",u.ɵɵpipeBind1(15,11,"search")),u.ɵɵproperty("ngModel",t.searchText),u.ɵɵadvance(7),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(22,13,"newCollection"),"\n "),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",t.loading),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedCollections:u.ɵɵpipeBind4(29,15,t.collections,t.searchText,"name","id"))))},directives:[b.DefaultValueAccessor,b.NgControlStatus,b.NgModel,S.NgIf,w.InfiniteScrollDirective,S.NgForOf,C.StopClickDirective,I.A11yTitleDirective],pipes:[E.I18nPipe,P.SearchPipe],encapsulation:2}),e}();t.CollectionsComponent=V},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&r.groups.forEach((function(e){var t=s.groups.filter((function(t){return!t.accessAll&&t.id===e.id}));null!=t&&t.length>0&&(t[0].checked=!0,t[0].readOnly=e.readOnly,t[0].hidePasswords=e.hidePasswords)})),[3,9];case 8:return i.sent(),[3,9];case 9:return[3,11];case 10:this.title=this.i18nService.t("addCollection"),i.label=11;case 11:return this.groups.forEach((function(e){e.accessAll&&(e.checked=!0)})),this.loading=!1,[2]}}))}))},e.prototype.check=function(e,t){e.accessAll||(e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1,e.hidePasswords=!1))},e.prototype.selectAll=function(e){var t=this;this.groups.forEach((function(n){return t.check(n,e)}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:if(null==this.orgKey)throw new Error("No encryption key for this organization.");return e=new s.CollectionRequest,t=e,[4,this.cryptoService.encrypt(this.name,this.orgKey)];case 1:t.name=n.sent().encryptedString,e.externalId=this.externalId,e.groups=this.groups.filter((function(e){return e.checked&&!e.accessAll})).map((function(e){return new l.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)})),n.label=2;case 2:return n.trys.push([2,4,,5]),this.editMode?this.formPromise=this.apiService.putCollection(this.organizationId,this.collectionId,e):this.formPromise=this.apiService.postCollection(this.organizationId,e),[4,this.formPromise];case 3:return n.sent(),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedCollectionId":"createdCollectionId",this.name)),this.onSavedCollection.emit(),[3,5];case 4:return n.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteCollectionConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteCollection(this.organizationId,this.collectionId),[4,this.deletePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("deletedCollectionId",this.name)),this.onDeletedCollection.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.ToasterService),p.ɵɵdirectiveInject(h.PlatformUtilsService),p.ɵɵdirectiveInject(f.CryptoService),p.ɵɵdirectiveInject(v.UserService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-collection-add-edit"]],inputs:{collectionId:"collectionId",organizationId:"organizationId"},outputs:{onSavedCollection:"onSavedCollection",onDeletedCollection:"onDeletedCollection"},decls:49,vars:18,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","collectionAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","collectionAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"form-group"],["for","name"],["id","name","type","text","name","Name","required","","appAutofocus","",1,"form-control",3,"ngModel","ngModelChange"],["for","externalId"],["id","externalId","type","text","name","ExternalId",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-muted"],[4,"ngIf"],[1,"mt-4","d-flex","mb-0"],["class","ml-auto",4,"ngIf"],["class","table table-hover table-list mb-0",4,"ngIf"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","disabled","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["aria-hidden","true",1,"fa","fa-th","text-muted","fa-fw",3,"title"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",(function(){return t.submit()})),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,I,9,6,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵtemplate(22,T,26,12,"div",8),p.ɵɵtext(23,"\n "),p.ɵɵelementStart(24,"div",9),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",10),p.ɵɵtext(27,"\n "),p.ɵɵelement(28,"i",11),p.ɵɵpipe(29,"i18n"),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"span"),p.ɵɵtext(32),p.ɵɵpipe(33,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"button",12),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementStart(40,"div",13),p.ɵɵtext(41,"\n "),p.ɵɵtemplate(42,M,9,10,"button",14),p.ɵɵtext(43,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,10,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading),p.ɵɵadvance(4),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(29,12,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(33,14,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,16,"cancel")),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.editMode)}},directives:[y.NgControlStatusGroup,y.NgForm,g.ApiActionDirective,x.A11yTitleDirective,b.NgIf,y.DefaultValueAccessor,y.RequiredValidator,S.AutofocusDirective,y.NgControlStatus,y.NgModel,b.NgForOf,y.CheckboxControlValueAccessor,w.StopPropDirective],pipes:[C.I18nPipe],encapsulation:2}),e}();t.CollectionAddEditComponent=B},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.groups=[],null!=e&&(this.name=e.name?e.name.encryptedString:null,this.externalId=e.externalId)};t.CollectionRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?this.events=this.events.concat(o):this.events=o,this.loading=!1,this.morePromise=null,this.refreshPromise=null,[2]}}))}))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ApiService),o.ɵɵdirectiveInject(s.ActivatedRoute),o.ɵɵdirectiveInject(l.EventService),o.ɵɵdirectiveInject(c.I18nService),o.ɵɵdirectiveInject(p.ToasterService),o.ɵɵdirectiveInject(u.UserService),o.ɵɵdirectiveInject(s.Router))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["app-org-events"]],decls:41,vars:27,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],[1,"form-inline"],["for","start",1,"sr-only"],["type","datetime-local","id","start","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],[1,"mx-2"],["for","end",1,"sr-only"],["type","datetime-local","id","end","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"appApiAction","disabled","click"],["refreshBtn",""],["aria-hidden","true",1,"fa","fa-refresh","fa-fw",3,"ngClass"],[4,"ngIf"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover",4,"ngIf"],["type","button","class","btn btn-block btn-link btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],[1,"table","table-hover"],["width","210",1,"border-top-0"],["width","40",1,"border-top-0"],["width","150",1,"border-top-0"],[1,"border-top-0"],[4,"ngFor","ngForOf"],["aria-hidden","true",3,"title"],[3,"title"],[3,"innerHTML"],["type","button",1,"btn","btn-block","btn-link","btn-submit",3,"appApiAction","disabled","click"],["moreBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"]],template:function(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"h1"),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"div",1),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"div",2),o.ɵɵtext(9,"\n "),o.ɵɵelementStart(10,"label",3),o.ɵɵtext(11),o.ɵɵpipe(12,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementStart(14,"input",4),o.ɵɵlistener("ngModelChange",(function(e){return t.start=e})),o.ɵɵpipe(15,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(16,"\n "),o.ɵɵelementStart(17,"span",5),o.ɵɵtext(18,"-"),o.ɵɵelementEnd(),o.ɵɵtext(19,"\n "),o.ɵɵelementStart(20,"label",6),o.ɵɵtext(21),o.ɵɵpipe(22,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(23,"\n "),o.ɵɵelementStart(24,"input",7),o.ɵɵlistener("ngModelChange",(function(e){return t.end=e})),o.ɵɵpipe(25,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(26,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(27,"\n "),o.ɵɵelementStart(28,"button",8,9),o.ɵɵlistener("click",(function(){return t.loadEvents(!0)})),o.ɵɵtext(30,"\n "),o.ɵɵelement(31,"i",10),o.ɵɵtext(32),o.ɵɵpipe(33,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(34,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(35,"\n"),o.ɵɵelementEnd(),o.ɵɵtext(36,"\n"),o.ɵɵtemplate(37,v,9,6,"ng-container",11),o.ɵɵtext(38,"\n"),o.ɵɵtemplate(39,S,8,3,"ng-container",11),o.ɵɵtext(40,"\n")),2&e){var n=o.ɵɵreference(29);o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(4,13,"eventLogs")),o.ɵɵadvance(8),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(12,15,"startDate")),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("placeholder",o.ɵɵpipeBind1(15,17,"startDate")),o.ɵɵproperty("ngModel",t.start),o.ɵɵadvance(7),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(22,19,"endDate")),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("placeholder",o.ɵɵpipeBind1(25,21,"endDate")),o.ɵɵproperty("ngModel",t.end),o.ɵɵadvance(4),o.ɵɵproperty("appApiAction",t.refreshPromise)("disabled",t.loaded&&n.loading),o.ɵɵadvance(3),o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(25,w,t.loaded&&n.loading)),o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(33,23,"refresh"),"\n "),o.ɵɵadvance(5),o.ɵɵproperty("ngIf",!t.loaded),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.loaded)}},directives:[d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,m.ApiActionDirective,h.NgClass,h.NgIf,h.NgForOf],pipes:[f.I18nPipe,h.DatePipe],encapsulation:2}),e}();t.EventsComponent=C},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?e.data:[]).sort(a.Utils.getSortFunction(this.i18nService,"name")),this.groups=t,this.resetPaging(),this.loading=!1,[2]}}))}))},e.prototype.loadMore=function(){if(this.groups&&!(this.groups.length<=this.pageSize)){var e=this.pagedGroups.length,t=this.pageSize;0===e&&this.pagedGroupsCount>this.pageSize&&(t=this.pagedGroupsCount),this.groups.length>e&&(this.pagedGroups=this.pagedGroups.concat(this.groups.slice(e,e+t))),this.pagedGroupsCount=this.pagedGroups.length,this.didScroll=this.pagedGroups.length>this.pageSize}},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(c.GroupAddEditComponent,this.addEditModalRef);r.organizationId=this.organizationId,r.groupId=null!=e?e.id:null,r.onSavedGroup.subscribe((function(){t.modal.close(),t.load()})),r.onDeletedGroup.subscribe((function(){t.modal.close(),t.removeGroup(e)})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.add=function(){this.edit(null)},e.prototype.delete=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteGroupConfirmation"),e.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteGroup(this.organizationId,e.id)];case 3:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("deletedGroupId",e.name)),this.removeGroup(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.users=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.usersModalRef.createComponent(n).instance;var r=this.modal.show(l.EntityUsersComponent,this.usersModalRef);r.organizationId=this.organizationId,r.entity="group",r.entityId=e.id,r.entityName=e.name,r.onEditedUsers.subscribe((function(){t.modal.close()})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.resetPaging=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return this.pagedGroups=[],this.loadMore(),[2]}))}))},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.groups&&this.groups.length>this.pageSize},e.prototype.removeGroup=function(e){var t=this.groups.indexOf(e);t>-1&&(this.groups.splice(t,1),this.resetPaging())},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.ActivatedRoute),p.ɵɵdirectiveInject(m.I18nService),p.ɵɵdirectiveInject(p.ComponentFactoryResolver),p.ɵɵdirectiveInject(h.ToasterService),p.ɵɵdirectiveInject(f.PlatformUtilsService),p.ɵɵdirectiveInject(v.UserService),p.ɵɵdirectiveInject(d.Router),p.ɵɵdirectiveInject(y.SearchService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-org-groups"]],viewQuery:function(e,t){var n;(1&e&&(p.ɵɵstaticViewQuery(E,!0,o.ViewContainerRef),p.ɵɵstaticViewQuery(P,!0,o.ViewContainerRef)),2&e)&&(p.ɵɵqueryRefresh(n=p.ɵɵloadQuery())&&(t.addEditModalRef=n.first),p.ɵɵqueryRefresh(n=p.ɵɵloadQuery())&&(t.usersModalRef=n.first))},decls:37,vars:20,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["usersTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover table-list","infiniteScroll","",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-users"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-trash-o"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"h1"),p.ɵɵtext(3),p.ɵɵpipe(4,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(5,"\n "),p.ɵɵelementStart(6,"div",1),p.ɵɵtext(7,"\n "),p.ɵɵelementStart(8,"div"),p.ɵɵtext(9,"\n "),p.ɵɵelementStart(10,"label",2),p.ɵɵtext(11),p.ɵɵpipe(12,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(13,"\n "),p.ɵɵelementStart(14,"input",3),p.ɵɵlistener("ngModelChange",(function(e){return t.searchText=e})),p.ɵɵpipe(15,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(16,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementStart(18,"button",4),p.ɵɵlistener("click",(function(){return t.add()})),p.ɵɵtext(19,"\n "),p.ɵɵelement(20,"i",5),p.ɵɵtext(21),p.ɵɵpipe(22,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(23,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(24,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(25,"\n"),p.ɵɵtemplate(26,k,9,6,"ng-container",6),p.ɵɵtext(27,"\n"),p.ɵɵtemplate(28,T,6,2,"ng-container",6),p.ɵɵpipe(29,"search"),p.ɵɵtext(30,"\n"),p.ɵɵtemplate(31,M,0,0,"ng-template",null,7,p.ɵɵtemplateRefExtractor),p.ɵɵtext(33,"\n"),p.ɵɵtemplate(34,B,0,0,"ng-template",null,8,p.ɵɵtemplateRefExtractor),p.ɵɵtext(36,"\n")),2&e&&(p.ɵɵadvance(3),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(4,7,"groups")),p.ɵɵadvance(8),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(12,9,"search")),p.ɵɵadvance(3),p.ɵɵpropertyInterpolate("placeholder",p.ɵɵpipeBind1(15,11,"search")),p.ɵɵproperty("ngModel",t.searchText),p.ɵɵadvance(7),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(22,13,"newGroup"),"\n "),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedGroups:p.ɵɵpipeBind4(29,15,t.groups,t.searchText,"name","id"))))},directives:[g.DefaultValueAccessor,g.NgControlStatus,g.NgModel,x.NgIf,b.InfiniteScrollDirective,x.NgForOf,S.StopClickDirective,w.A11yTitleDirective],pipes:[C.I18nPipe,I.SearchPipe],encapsulation:2}),e}();t.GroupsComponent=D},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(n[0].checked=!0,n[0].readOnly=e.readOnly,n[0].hidePasswords=e.hidePasswords)})),[3,5];case 4:return n.sent(),[3,5];case 5:return[3,7];case 6:this.title=this.i18nService.t("addGroup"),n.label=7;case 7:return this.loading=!1,[2]}}))}))},e.prototype.loadCollections=function(){return r(this,void 0,void 0,(function(){var e,t,n;return i(this,(function(r){switch(r.label){case 0:return[4,this.apiService.getCollections(this.organizationId)];case 1:return e=r.sent(),t=e.data.map((function(e){return new s.Collection(new a.CollectionData(e))})),n=this,[4,this.collectionService.decryptMany(t)];case 2:return n.collections=r.sent(),[2]}}))}))},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.collections.forEach((function(n){return t.check(n,e)}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:(e=new l.GroupRequest).name=this.name,e.externalId=this.externalId,e.accessAll="all"===this.access,e.accessAll||(e.collections=this.collections.filter((function(e){return e.checked})).map((function(e){return new c.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)}))),t.label=1;case 1:return t.trys.push([1,3,,4]),this.editMode?this.formPromise=this.apiService.putGroup(this.organizationId,this.groupId,e):this.formPromise=this.apiService.postGroup(this.organizationId,e),[4,this.formPromise];case 2:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedGroupId":"createdGroupId",this.name)),this.onSavedGroup.emit(),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteGroupConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteGroup(this.organizationId,this.groupId),[4,this.deletePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("deletedGroupId",this.name)),this.onDeletedGroup.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.ToasterService),p.ɵɵdirectiveInject(h.CollectionService),p.ɵɵdirectiveInject(f.PlatformUtilsService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-group-add-edit"]],inputs:{groupId:"groupId",organizationId:"organizationId"},outputs:{onSavedGroup:"onSavedGroup",onDeletedGroup:"onDeletedGroup"},decls:49,vars:18,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","groupAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","groupAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","externalId"],["id","externalId","type","text","name","ExternalId",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-muted"],[1,"mt-4","d-flex"],[1,"mb-2"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#access-control",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],["class","ml-auto",4,"ngIf"],[1,"form-group",3,"ngClass"],[1,"form-check"],["type","radio","name","access","id","accessAll","value","all",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessAll",1,"form-check-label"],["type","radio","name","access","id","accessSelected","value","selected",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessSelected",1,"form-check-label"],[4,"ngIf"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",(function(){return t.submit()})),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,w,9,6,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵtemplate(22,A,62,30,"div",8),p.ɵɵtext(23,"\n "),p.ɵɵelementStart(24,"div",9),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",10),p.ɵɵtext(27,"\n "),p.ɵɵelement(28,"i",11),p.ɵɵpipe(29,"i18n"),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"span"),p.ɵɵtext(32),p.ɵɵpipe(33,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"button",12),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementStart(40,"div",13),p.ɵɵtext(41,"\n "),p.ɵɵtemplate(42,O,9,10,"button",14),p.ɵɵtext(43,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,10,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading),p.ɵɵadvance(4),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(29,12,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(33,14,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,16,"cancel")),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.editMode)}},directives:[v.NgControlStatusGroup,v.NgForm,y.ApiActionDirective,g.A11yTitleDirective,x.NgIf,v.DefaultValueAccessor,v.RequiredValidator,v.NgControlStatus,v.NgModel,x.NgClass,v.RadioControlValueAccessor,x.NgForOf,v.CheckboxControlValueAccessor,b.StopPropDirective],pipes:[S.I18nPipe],encapsulation:2}),e}();t.GroupAddEditComponent=T},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&t[0].status===l.OrganizationUserStatusType.Confirmed&&this.events(t[0]),null!=n&&n.unsubscribe(),[2]}))}))})),[2]}}))}))})),[2]}))}))},e.prototype.load=function(){return r(this,void 0,void 0,(function(){var e,t=this;return i(this,(function(n){switch(n.label){case 0:return[4,this.apiService.getOrganizationUsers(this.organizationId)];case 1:return e=n.sent(),this.statusMap.clear(),this.allUsers=null!=e.data&&e.data.length>0?e.data:[],this.allUsers.sort(p.Utils.getSortFunction(this.i18nService,"email")),this.allUsers.forEach((function(e){t.statusMap.has(e.status)?t.statusMap.get(e.status).push(e):t.statusMap.set(e.status,[e])})),this.filter(this.status),this.loading=!1,[2]}}))}))},e.prototype.filter=function(e){this.status=e,null!=this.status?this.users=this.statusMap.get(this.status):this.users=this.allUsers,this.resetPaging()},e.prototype.loadMore=function(){if(this.users&&!(this.users.length<=this.pageSize)){var e=this.pagedUsers.length,t=this.pageSize;0===e&&this.pagedUsersCount>this.pageSize&&(t=this.pagedUsersCount),this.users.length>e&&(this.pagedUsers=this.pagedUsers.concat(this.users.slice(e,e+t))),this.pagedUsersCount=this.pagedUsers.length,this.didScroll=this.pagedUsers.length>this.pageSize}},Object.defineProperty(e.prototype,"allCount",{get:function(){return null!=this.allUsers?this.allUsers.length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"invitedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Invited)?this.statusMap.get(l.OrganizationUserStatusType.Invited).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"acceptedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Accepted)?this.statusMap.get(l.OrganizationUserStatusType.Accepted).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"confirmedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Confirmed)?this.statusMap.get(l.OrganizationUserStatusType.Confirmed).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showConfirmUsers",{get:function(){return null!=this.allUsers&&null!=this.statusMap&&this.allUsers.length>1&&this.confirmedCount>0&&this.confirmedCount<3&&this.acceptedCount>0},enumerable:!0,configurable:!0}),e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(m.UserAddEditComponent,this.addEditModalRef);r.name=null!=e?e.name||e.email:null,r.organizationId=this.organizationId,r.organizationUserId=null!=e?e.id:null,r.onSavedUser.subscribe((function(){t.modal.close(),t.load()})),r.onDeletedUser.subscribe((function(){t.modal.close(),t.removeUser(e)})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.invite=function(){this.edit(null)},e.prototype.groups=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent);this.modal=this.groupsModalRef.createComponent(n).instance;var r=this.modal.show(f.UserGroupsComponent,this.groupsModalRef);r.name=null!=e?e.name||e.email:null,r.organizationId=this.organizationId,r.organizationUserId=null!=e?e.id:null,r.onSavedUser.subscribe((function(){t.modal.close()})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.remove=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("removeUserConfirmation"),e.name||e.email,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteOrganizationUser(this.organizationId,e.id)];case 3:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("removedUserId",e.name||e.email)),this.removeUser(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.reinvite=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return null!=this.actionPromise?[2]:(this.actionPromise=this.apiService.postOrganizationUserReinvite(this.organizationId,e.id),[4,this.actionPromise]);case 1:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("hasBeenReinvited",e.name||e.email)),this.actionPromise=null,[2]}}))}))},e.prototype.confirm=function(e){return r(this,void 0,void 0,(function(){var t,n,o,s,c,d,m,f,v,y,g=this;return i(this,(function(x){switch(x.label){case 0:return t=function(t){return r(g,void 0,void 0,(function(){var n;return i(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,3,4]),this.actionPromise=this.doConfirmation(e,t),[4,this.actionPromise];case 1:return r.sent(),function(t){e.status=l.OrganizationUserStatusType.Confirmed;var n=t.statusMap.get(l.OrganizationUserStatusType.Accepted).indexOf(e);n>-1&&(t.statusMap.get(l.OrganizationUserStatusType.Accepted).splice(n,1),t.statusMap.get(l.OrganizationUserStatusType.Confirmed).push(e))}(this),this.toasterService.popAsync("success",null,this.i18nService.t("hasBeenConfirmed",e.name||e.email)),[3,4];case 2:throw n=r.sent(),this.validationService.showError(n),n;case 3:return this.actionPromise=null,[7];case 4:return[2]}}))}))},null!=this.actionPromise?[2]:[4,this.storageService.get(a.ConstantsService.autoConfirmFingerprints)];case 1:if(null==(n=x.sent())||!n)return null!=this.modal&&this.modal.close(),o=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent),this.modal=this.confirmModalRef.createComponent(o).instance,(s=this.modal.show(h.UserConfirmComponent,this.confirmModalRef)).name=null!=e?e.name||e.email:null,s.organizationId=this.organizationId,s.organizationUserId=null!=e?e.id:null,s.userId=null!=e?e.userId:null,s.onConfirmedUser.subscribe((function(e){return r(g,void 0,void 0,(function(){var n;return i(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,t(e)];case 1:return r.sent(),this.modal.close(),[3,3];case 2:return n=r.sent(),console.error("Handled exception:",n),[3,3];case 3:return[2]}}))}))})),this.modal.onClosed.subscribe((function(){g.modal=null})),[2];x.label=2;case 2:return x.trys.push([2,9,,10]),[4,this.apiService.getUserPublicKey(e.userId)];case 3:c=x.sent(),d=p.Utils.fromB64ToArray(c.publicKey),x.label=4;case 4:return x.trys.push([4,6,,7]),f=(m=console).log,v="User's fingerprint: ",[4,this.cryptoService.getFingerprint(e.userId,d.buffer)];case 5:return f.apply(m,[v+x.sent().join("-")]),[3,7];case 6:return x.sent(),[3,7];case 7:return[4,t(d)];case 8:return x.sent(),[3,10];case 9:return y=x.sent(),console.error("Handled exception:",y),[3,10];case 10:return[2]}}))}))},e.prototype.events=function(e){return r(this,void 0,void 0,(function(){var t,n,r=this;return i(this,(function(i){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent),this.modal=this.eventsModalRef.createComponent(t).instance,(n=this.modal.show(d.EntityEventsComponent,this.eventsModalRef)).name=e.name||e.email,n.organizationId=this.organizationId,n.entityId=e.id,n.showUser=!1,n.entity="user",this.modal.onClosed.subscribe((function(){r.modal=null})),[2]}))}))},e.prototype.resetPaging=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return this.pagedUsers=[],this.loadMore(),[2]}))}))},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.users&&this.users.length>this.pageSize},e.prototype.doConfirmation=function(e,t){return r(this,void 0,void 0,(function(){var n,r,o;return i(this,(function(i){switch(i.label){case 0:return[4,this.cryptoService.getOrgKey(this.organizationId)];case 1:return n=i.sent(),[4,this.cryptoService.rsaEncrypt(n.key,t.buffer)];case 2:return r=i.sent(),(o=new s.OrganizationUserConfirmRequest).key=r.encryptedString,[4,this.apiService.postOrganizationUserConfirm(this.organizationId,e.id,o)];case 3:return i.sent(),[2]}}))}))},e.prototype.removeUser=function(e){var t=this.users.indexOf(e);t>-1&&(this.users.splice(t,1),this.resetPaging()),this.statusMap.has(l.OrganizationUserStatusType.Accepted)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Accepted).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Accepted).splice(t,1),this.statusMap.has(l.OrganizationUserStatusType.Invited)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Invited).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Invited).splice(t,1),this.statusMap.has(l.OrganizationUserStatusType.Confirmed)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Confirmed).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Confirmed).splice(t,1)},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.ApiService),v.ɵɵdirectiveInject(g.ActivatedRoute),v.ɵɵdirectiveInject(x.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(b.PlatformUtilsService),v.ɵɵdirectiveInject(S.ToasterService),v.ɵɵdirectiveInject(w.CryptoService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(g.Router),v.ɵɵdirectiveInject(I.StorageService),v.ɵɵdirectiveInject(E.SearchService),v.ɵɵdirectiveInject(P.ValidationService))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["app-org-people"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(V,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(j,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(F,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(U,!0,o.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.addEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.groupsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.eventsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.confirmModalRef=n.first))},decls:64,vars:45,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["role","group",1,"btn-group","btn-group-sm"],["type","button",1,"btn","btn-outline-secondary",3,"ngClass","click"],["class","badge badge-pill badge-info",4,"ngIf"],["class","badge badge-pill badge-warning",4,"ngIf"],[1,"ml-3"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["groupsTemplate",""],["eventsTemplate",""],["confirmTemplate",""],[1,"badge","badge-pill","badge-info"],[1,"badge","badge-pill","badge-warning"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","info","icon","fa-check-circle",3,"title",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["type","info","icon","fa-check-circle",3,"title"],["width","30"],["size","25",3,"data","email","circle","fontSize"],["href","#","appStopClick","",3,"click"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["class","dropdown-item","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-success","href","#","appStopClick","",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-remove"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-lock",3,"title"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-envelope-o"],["href","#","appStopClick","",1,"dropdown-item","text-success",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-check"],["aria-hidden","true",1,"fa","fa-fw","fa-sitemap"],["aria-hidden","true",1,"fa","fa-fw","fa-file-text-o"]],template:function(e,t){1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"h1"),v.ɵɵtext(3),v.ɵɵpipe(4,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(5,"\n "),v.ɵɵelementStart(6,"div",1),v.ɵɵtext(7,"\n "),v.ɵɵelementStart(8,"div",2),v.ɵɵtext(9,"\n "),v.ɵɵelementStart(10,"button",3),v.ɵɵlistener("click",(function(){return t.filter(null)})),v.ɵɵtext(11),v.ɵɵpipe(12,"i18n"),v.ɵɵtemplate(13,N,2,1,"span",4),v.ɵɵtext(14,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(15,"\n "),v.ɵɵelementStart(16,"button",3),v.ɵɵlistener("click",(function(){return t.filter(t.organizationUserStatusType.Invited)})),v.ɵɵtext(17),v.ɵɵpipe(18,"i18n"),v.ɵɵtemplate(19,z,2,1,"span",4),v.ɵɵtext(20,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(21,"\n "),v.ɵɵelementStart(22,"button",3),v.ɵɵlistener("click",(function(){return t.filter(t.organizationUserStatusType.Accepted)})),v.ɵɵtext(23),v.ɵɵpipe(24,"i18n"),v.ɵɵtemplate(25,L,2,1,"span",5),v.ɵɵtext(26,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(27,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(28,"\n "),v.ɵɵelementStart(29,"div",6),v.ɵɵtext(30,"\n "),v.ɵɵelementStart(31,"label",7),v.ɵɵtext(32),v.ɵɵpipe(33,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(34,"\n "),v.ɵɵelementStart(35,"input",8),v.ɵɵlistener("ngModelChange",(function(e){return t.searchText=e})),v.ɵɵpipe(36,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(37,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(38,"\n "),v.ɵɵelementStart(39,"button",9),v.ɵɵlistener("click",(function(){return t.invite()})),v.ɵɵtext(40,"\n "),v.ɵɵelement(41,"i",10),v.ɵɵtext(42),v.ɵɵpipe(43,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(44,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(45,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(46,"\n"),v.ɵɵtemplate(47,G,9,6,"ng-container",11),v.ɵɵtext(48,"\n"),v.ɵɵtemplate(49,se,6,2,"ng-container",11),v.ɵɵpipe(50,"search"),v.ɵɵtext(51,"\n"),v.ɵɵtemplate(52,le,0,0,"ng-template",null,12,v.ɵɵtemplateRefExtractor),v.ɵɵtext(54,"\n"),v.ɵɵtemplate(55,ce,0,0,"ng-template",null,13,v.ɵɵtemplateRefExtractor),v.ɵɵtext(57,"\n"),v.ɵɵtemplate(58,pe,0,0,"ng-template",null,14,v.ɵɵtemplateRefExtractor),v.ɵɵtext(60,"\n"),v.ɵɵtemplate(61,ue,0,0,"ng-template",null,15,v.ɵɵtemplateRefExtractor),v.ɵɵtext(63,"\n")),2&e&&(v.ɵɵadvance(3),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(4,16,"people")),v.ɵɵadvance(7),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(36,de,null==t.status)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(12,18,"all"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.allCount),v.ɵɵadvance(3),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(38,de,t.status==t.organizationUserStatusType.Invited)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(18,20,"invited"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.invitedCount),v.ɵɵadvance(3),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(40,de,t.status==t.organizationUserStatusType.Accepted)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(24,22,"accepted"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.acceptedCount),v.ɵɵadvance(7),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(33,24,"search")),v.ɵɵadvance(3),v.ɵɵpropertyInterpolate("placeholder",v.ɵɵpipeBind1(36,26,"search")),v.ɵɵproperty("ngModel",t.searchText),v.ɵɵadvance(7),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(43,28,"inviteUser"),"\n "),v.ɵɵadvance(5),v.ɵɵproperty("ngIf",t.loading),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedUsers:v.ɵɵpipeBindV(50,30,v.ɵɵpureFunction2(42,me,t.users,t.searchText)))))},directives:[k.NgClass,k.NgIf,_.DefaultValueAccessor,_.NgControlStatus,_.NgModel,A.InfiniteScrollDirective,k.NgForOf,O.CalloutComponent,T.AvatarComponent,M.StopClickDirective,B.A11yTitleDirective],pipes:[D.I18nPipe,R.SearchPipe],encapsulation:2}),e}();t.PeopleComponent=he},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(n[0].checked=!0,n[0].readOnly=e.readOnly,n[0].hidePasswords=e.hidePasswords)})),[3,5];case 4:return n.sent(),[3,5];case 5:return[3,7];case 6:this.title=this.i18nService.t("inviteUser"),n.label=7;case 7:return this.loading=!1,[2]}}))}))},e.prototype.loadCollections=function(){return r(this,void 0,void 0,(function(){var e,t,n;return i(this,(function(r){switch(r.label){case 0:return[4,this.apiService.getCollections(this.organizationId)];case 1:return e=r.sent(),t=e.data.map((function(e){return new s.Collection(new a.CollectionData(e))})),n=this,[4,this.collectionService.decryptMany(t)];case 2:return n.collections=r.sent(),[2]}}))}))},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.collections.forEach((function(n){return t.check(n,e)}))},e.prototype.setRequestPermissions=function(e,t){return e.accessBusinessPortal=!t&&this.permissions.accessBusinessPortal,e.accessEventLogs=this.permissions.accessEventLogs=!t&&this.permissions.accessEventLogs,e.accessImportExport=!t&&this.permissions.accessImportExport,e.accessReports=!t&&this.permissions.accessReports,e.manageAllCollections=!t&&this.permissions.manageAllCollections,e.manageAssignedCollections=!t&&this.permissions.manageAssignedCollections,e.manageGroups=!t&&this.permissions.manageGroups,e.manageSso=!t&&this.permissions.manageSso,e.managePolicies=!t&&this.permissions.managePolicies,e.manageUsers=!t&&this.permissions.manageUsers,e.manageResetPassword=!t&&this.permissions.manageResetPassword,e},e.prototype.submit=function(){var e,t;return r(this,void 0,void 0,(function(){var n,r;return i(this,(function(i){switch(i.label){case 0:n=null,"all"!==this.access&&(n=this.collections.filter((function(e){return e.checked})).map((function(e){return new p.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)}))),i.label=1;case 1:return i.trys.push([1,3,,4]),this.editMode?((r=new c.OrganizationUserUpdateRequest).accessAll="all"===this.access,r.type=this.type,r.collections=n,r.permissions=this.setRequestPermissions(null!==(e=r.permissions)&&void 0!==e?e:new d.PermissionsApi,r.type!==u.OrganizationUserType.Custom),this.formPromise=this.apiService.putOrganizationUser(this.organizationId,this.organizationUserId,r)):((r=new l.OrganizationUserInviteRequest).emails=this.emails.trim().split(/\s*,\s*/),r.accessAll="all"===this.access,r.type=this.type,r.permissions=this.setRequestPermissions(null!==(t=r.permissions)&&void 0!==t?t:new d.PermissionsApi,r.type!==u.OrganizationUserType.Custom),r.collections=n,this.formPromise=this.apiService.postOrganizationUserInvite(this.organizationId,r)),[4,this.formPromise];case 2:return i.sent(),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedUserId":"invitedUsers",this.name)),this.onSavedUser.emit(),[3,4];case 3:return i.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("removeUserConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteOrganizationUser(this.organizationId,this.organizationUserId),[4,this.deletePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("removedUserId",this.name)),this.onDeletedUser.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(m.ɵɵdirectiveInject(h.ApiService),m.ɵɵdirectiveInject(f.I18nService),m.ɵɵdirectiveInject(v.ToasterService),m.ɵɵdirectiveInject(y.CollectionService),m.ɵɵdirectiveInject(g.PlatformUtilsService))},e.ɵcmp=m.ɵɵdefineComponent({type:e,selectors:[["app-user-add-edit"]],inputs:{name:"name",organizationUserId:"organizationUserId",organizationId:"organizationId"},outputs:{onSavedUser:"onSavedUser",onDeletedUser:"onDeletedUser"},decls:51,vars:19,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAddEditTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[4,"ngIf"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#user-types",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-check","mt-2","form-check-block"],["type","radio","name","userType","id","userTypeUser",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeUser",1,"form-check-label"],["type","radio","name","userType","id","userTypeManager",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeManager",1,"form-check-label"],["type","radio","name","userType","id","userTypeAdmin",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeAdmin",1,"form-check-label"],["type","radio","name","userType","id","userTypeOwner",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeOwner",1,"form-check-label"],["type","radio","name","userType","id","userTypeCustom",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeCustom",1,"form-check-label"],[1,"mt-4","d-flex"],[1,"mb-3"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#access-control",3,"appA11yTitle"],["class","ml-auto",4,"ngIf"],[1,"form-group",3,"ngClass"],[1,"form-check"],["type","radio","name","access","id","accessAll","value","all",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessAll",1,"form-check-label"],["type","radio","name","access","id","accessSelected","value","selected",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessSelected",1,"form-check-label"],[1,"form-group","mb-4"],["for","emails"],["id","emails","type","text","name","Emails","required","","appAutoFocus","",1,"form-control",3,"ngModel","ngModelChange"],[1,"row"],[1,"col-6"],[1,"font-weight-bold","mb-0"],[1,"my-0","mr-2"],[1,"form-group","mb-0"],[1,"form-check","mt-1","form-check-block"],["type","checkbox","name","manageAssignedCollections","id","manageAssignedCollections",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageAssignedCollections",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessBusinessPortal","id","accessBusinessPortal",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessBusinessPortal",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessEventLogs","id","accessEventLogs",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessEventLogs",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessImportExport","id","accessImportExport",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessImportExport",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessReports","id","accessReports",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessReports",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageAllCollections","id","manageAllCollections",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageAllCollections",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageGroups","id","manageGroups",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageGroups",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageSso","id","managePolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageSso",1,"form-check-label","font-weight-normal"],["type","checkbox","name","managePolicies","id","managePolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","managePolicies",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageUsers","id","manageUsers",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageUsers",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageResetPassword","id","manageResetPassword",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageResetPassword",1,"form-check-label","font-weight-normal"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"form",2,3),m.ɵɵlistener("ngSubmit",(function(){return t.submit()})),m.ɵɵtext(6,"\n "),m.ɵɵelementStart(7,"div",4),m.ɵɵtext(8,"\n "),m.ɵɵelementStart(9,"h2",5),m.ɵɵtext(10),m.ɵɵtemplate(11,E,2,1,"small",6),m.ɵɵtext(12,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(13,"\n "),m.ɵɵelementStart(14,"button",7),m.ɵɵpipe(15,"i18n"),m.ɵɵtext(16,"\n "),m.ɵɵelementStart(17,"span",8),m.ɵɵtext(18,"×"),m.ɵɵelementEnd(),m.ɵɵtext(19,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(20,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(21,"\n "),m.ɵɵtemplate(22,P,9,6,"div",9),m.ɵɵtext(23,"\n "),m.ɵɵtemplate(24,R,119,67,"div",9),m.ɵɵtext(25,"\n "),m.ɵɵelementStart(26,"div",10),m.ɵɵtext(27,"\n "),m.ɵɵelementStart(28,"button",11),m.ɵɵtext(29,"\n "),m.ɵɵelement(30,"i",12),m.ɵɵpipe(31,"i18n"),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"span"),m.ɵɵtext(34),m.ɵɵpipe(35,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(36,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(37,"\n "),m.ɵɵelementStart(38,"button",13),m.ɵɵtext(39),m.ɵɵpipe(40,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(41,"\n "),m.ɵɵelementStart(42,"div",14),m.ɵɵtext(43,"\n "),m.ɵɵtemplate(44,V,9,10,"button",15),m.ɵɵtext(45,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(46,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(47,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(48,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(49,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(50,"\n")),2&e){var n=m.ɵɵreference(5);m.ɵɵadvance(4),m.ɵɵproperty("appApiAction",t.formPromise),m.ɵɵadvance(6),m.ɵɵtextInterpolate1("\n ",t.title,"\n "),m.ɵɵadvance(1),m.ɵɵproperty("ngIf",t.name),m.ɵɵadvance(3),m.ɵɵpropertyInterpolate("appA11yTitle",m.ɵɵpipeBind1(15,11,"close")),m.ɵɵadvance(8),m.ɵɵproperty("ngIf",t.loading),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",!t.loading),m.ɵɵadvance(4),m.ɵɵproperty("disabled",n.loading),m.ɵɵadvance(2),m.ɵɵpropertyInterpolate("title",m.ɵɵpipeBind1(31,13,"loading")),m.ɵɵadvance(4),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(35,15,"save")),m.ɵɵadvance(5),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(40,17,"cancel"),"\n "),m.ɵɵadvance(5),m.ɵɵproperty("ngIf",t.editMode)}},directives:[x.NgControlStatusGroup,x.NgForm,b.ApiActionDirective,S.NgIf,w.A11yTitleDirective,x.RadioControlValueAccessor,x.DefaultValueAccessor,x.NgControlStatus,x.NgModel,S.NgClass,x.RequiredValidator,x.CheckboxControlValueAccessor,S.NgForOf,C.StopPropDirective],pipes:[I.I18nPipe],encapsulation:2}),e}();t.UserAddEditComponent=j},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t[0].checked=!0)})),[3,5];case 4:return i.sent(),[3,5];case 5:return this.loading=!1,[2]}}))}))},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.groups.forEach((function(n){return t.check(n,e)}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:(e=new a.OrganizationUserUpdateGroupsRequest).groupIds=this.groups.filter((function(e){return e.checked})).map((function(e){return e.id})),t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.apiService.putOrganizationUserGroups(this.organizationId,this.organizationUserId,e),[4,this.formPromise];case 2:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("editedGroupsForUser",this.name)),this.onSavedUser.emit(),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(c.ApiService),l.ɵɵdirectiveInject(p.I18nService),l.ɵɵdirectiveInject(u.ToasterService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["app-user-groups"]],inputs:{name:"name",organizationUserId:"organizationUserId",organizationId:"organizationId"},outputs:{onSavedUser:"onSavedUser"},decls:47,vars:20,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","groupAccessTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","groupAccessTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[4,"ngIf"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"]],template:function(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtext(1,"\n "),l.ɵɵelementStart(2,"div",1),l.ɵɵtext(3,"\n "),l.ɵɵelementStart(4,"form",2,3),l.ɵɵlistener("ngSubmit",(function(){return t.submit()})),l.ɵɵtext(6,"\n "),l.ɵɵelementStart(7,"div",4),l.ɵɵtext(8,"\n "),l.ɵɵelementStart(9,"h2",5),l.ɵɵtext(10),l.ɵɵpipe(11,"i18n"),l.ɵɵtemplate(12,g,2,1,"small",6),l.ɵɵtext(13,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(14,"\n "),l.ɵɵelementStart(15,"button",7),l.ɵɵpipe(16,"i18n"),l.ɵɵtext(17,"\n "),l.ɵɵelementStart(18,"span",8),l.ɵɵtext(19,"×"),l.ɵɵelementEnd(),l.ɵɵtext(20,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(21,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(22,"\n "),l.ɵɵtemplate(23,x,9,6,"div",9),l.ɵɵtext(24,"\n "),l.ɵɵtemplate(25,C,10,5,"div",9),l.ɵɵtext(26,"\n "),l.ɵɵelementStart(27,"div",10),l.ɵɵtext(28,"\n "),l.ɵɵelementStart(29,"button",11),l.ɵɵtext(30,"\n "),l.ɵɵelement(31,"i",12),l.ɵɵpipe(32,"i18n"),l.ɵɵtext(33,"\n "),l.ɵɵelementStart(34,"span"),l.ɵɵtext(35),l.ɵɵpipe(36,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(37,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(38,"\n "),l.ɵɵelementStart(39,"button",13),l.ɵɵtext(40),l.ɵɵpipe(41,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(42,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(43,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(44,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(45,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(46,"\n")),2&e){var n=l.ɵɵreference(5);l.ɵɵadvance(4),l.ɵɵproperty("appApiAction",t.formPromise),l.ɵɵadvance(6),l.ɵɵtextInterpolate1("\n ",l.ɵɵpipeBind1(11,10,"groupAccess"),"\n "),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.name),l.ɵɵadvance(3),l.ɵɵpropertyInterpolate("appA11yTitle",l.ɵɵpipeBind1(16,12,"close")),l.ɵɵadvance(8),l.ɵɵproperty("ngIf",t.loading),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",!t.loading),l.ɵɵadvance(4),l.ɵɵproperty("disabled",n.loading),l.ɵɵadvance(2),l.ɵɵpropertyInterpolate("title",l.ɵɵpipeBind1(32,14,"loading")),l.ɵɵadvance(4),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(36,16,"save")),l.ɵɵadvance(5),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(41,18,"cancel"))}},directives:[d.ɵangular_packages_forms_forms_y,d.NgControlStatusGroup,d.NgForm,m.ApiActionDirective,h.NgIf,f.A11yTitleDirective,h.NgForOf,d.CheckboxControlValueAccessor,v.StopPropDirective,d.NgControlStatus,d.NgModel],pipes:[y.I18nPipe],encapsulation:2}),e}();t.UserGroupsComponent=I},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?e.data:[],this.orgPolicies.forEach((function(e){t.policiesEnabledMap.set(e.type,e.enabled)})),this.policies.forEach((function(e){e.enabled=t.policiesEnabledMap.has(e.type)&&t.policiesEnabledMap.get(e.type)})),this.loading=!1,[2]}}))}))},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.editModalRef.createComponent(n).instance;var r=this.modal.show(l.PolicyEditComponent,this.editModalRef);r.name=e.name,r.description=e.description,r.type=e.type,r.organizationId=this.organizationId,r.policiesEnabledMap=this.policiesEnabledMap,r.onSavedPolicy.subscribe((function(){t.modal.close(),t.load()})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.goToEnterprisePortal=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:if(null!=this.enterpriseTokenPromise)return[2];n.label=1;case 1:return n.trys.push([1,5,,6]),this.enterpriseTokenPromise=this.apiService.getEnterprisePortalSignInToken(),[4,this.enterpriseTokenPromise];case 2:return null==(e=n.sent())?[3,4]:[4,this.userService.getUserId()];case 3:t=n.sent(),this.platformUtilsService.launchUri(this.enterpriseUrl+"/login?userId="+t+"&token="+window.encodeURIComponent(e)+"&organizationId="+this.organizationId),n.label=4;case 4:return[3,6];case 5:return n.sent(),[3,6];case 6:return this.enterpriseTokenPromise=null,[2]}}))}))},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.ApiService),c.ɵɵdirectiveInject(u.ActivatedRoute),c.ɵɵdirectiveInject(d.I18nService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(m.PlatformUtilsService),c.ɵɵdirectiveInject(h.UserService),c.ɵɵdirectiveInject(u.Router),c.ɵɵdirectiveInject(f.EnvironmentService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["app-org-policies"]],viewQuery:function(e,t){var n;(1&e&&c.ɵɵstaticViewQuery(b,!0,o.ViewContainerRef),2&e)&&(c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.editModalRef=n.first))},decls:16,vars:6,consts:[[3,"type",4,"ngIf"],[1,"page-header","d-flex"],[4,"ngIf"],["class","table table-hover table-list",4,"ngIf"],["editTemplate",""],[3,"type"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"table","table-hover","table-list"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],["class","badge badge-success",4,"ngIf"],[1,"text-muted","d-block"],[1,"badge","badge-success"]],template:function(e,t){1&e&&(c.ɵɵtemplate(0,S,10,7,"app-callout",0),c.ɵɵtext(1,"\n"),c.ɵɵelementStart(2,"div",1),c.ɵɵtext(3,"\n "),c.ɵɵelementStart(4,"h1"),c.ɵɵtext(5),c.ɵɵpipe(6,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵtemplate(9,w,9,6,"ng-container",2),c.ɵɵtext(10,"\n"),c.ɵɵtemplate(11,P,7,1,"table",3),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,k,0,0,"ng-template",null,4,c.ɵɵtemplateRefExtractor),c.ɵɵtext(15,"\n")),2&e&&(c.ɵɵproperty("ngIf",t.userCanAccessBusinessPortal),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(6,4,"policies")),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",!t.loading))},directives:[v.NgIf,y.CalloutComponent,v.NgForOf,g.StopClickDirective],pipes:[x.I18nPipe],encapsulation:2}),e}();t.PoliciesComponent=_},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(6);t.ApiService=r.ApiService;var i=n(860);t.AppIdService=i.AppIdService;var o=n(87);t.AuditService=o.AuditService;var a=n(58);t.AuthService=a.AuthService;var s=n(19);t.CipherService=s.CipherService;var l=n(40);t.CollectionService=l.CollectionService;var c=n(18);t.CryptoService=c.CryptoService;var p=n(64);t.EnvironmentService=p.EnvironmentService;var u=n(48);t.FolderService=u.FolderService;var d=n(3);t.I18nService=d.I18nService;var m=n(861);t.LogService=m.LogService;var h=n(14);t.MessagingService=h.MessagingService;var f=n(36);t.PasswordGenerationService=f.PasswordGenerationService;var v=n(5);t.PlatformUtilsService=v.PlatformUtilsService;var y=n(80);t.SearchService=y.SearchService;var g=n(281);t.SettingsService=g.SettingsService;var x=n(41);t.StorageService=x.StorageService;var b=n(38);t.StateService=b.StateService;var S=n(61);t.SyncService=S.SyncService;var w=n(103);t.TokenService=w.TokenService;var C=n(114);t.TotpService=C.TotpService;var I=n(7);t.UserService=I.UserService;var E=n(93);t.VaultTimeoutService=E.VaultTimeoutService},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1?"×"+n.quantity:""," @ ",a.ɵɵpipeBind2(4,5,n.amount,"$"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate2("\n ",a.ɵɵpipeBind2(8,8,n.quantity*n.amount,"$")," /",a.ɵɵpipeBind1(9,11,n.interval),"\n ")}}function D(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",20),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"strong",21),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"table",22),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"tbody"),a.ɵɵtext(9,"\n "),a.ɵɵtemplate(10,B,11,13,"tr",23),a.ɵɵtext(11,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(4,2,"details")),a.ɵɵadvance(7),a.ɵɵproperty("ngForOf",n.subscription.items)}}function R(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",14),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",15),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"dl"),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"dt"),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementStart(10,"dd"),a.ɵɵtext(11),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,M,23,15,"ng-container",1),a.ɵɵtext(14,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(15,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(16,"\n "),a.ɵɵtemplate(17,D,14,4,"div",16),a.ɵɵtext(18,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(7),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(8,4,"billingPlan")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(n.sub.plan.name),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",n.subscription)}}function V(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",27),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",28),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"button",29),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!1)})),a.ɵɵpipe(5,"i18n"),a.ɵɵelementStart(6,"span",30),a.ɵɵtext(7,"×"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementStart(9,"h3",31),a.ɵɵtext(10),a.ɵɵpipe(11,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementStart(13,"app-update-license",32),a.ɵɵlistener("onUpdated",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!0)}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!1)})),a.ɵɵelementEnd(),a.ɵɵtext(14,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(15,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(3);a.ɵɵadvance(4),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(5,3,"cancel")),a.ɵɵadvance(6),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(11,5,"updateLicense")),a.ɵɵadvance(3),a.ɵɵproperty("organizationId",r.organizationId)}}function j(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div"),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"button",24),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).updateLicense()})),a.ɵɵtext(5),a.ɵɵpipe(6,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"a",25),a.ɵɵtext(9),a.ɵɵpipe(10,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(11,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,V,16,7,"div",26),a.ɵɵtext(14,"\n "),a.ɵɵelementContainerEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵadvance(5),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(6,3,"updateLicense"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(10,5,"manageSubscription"),"\n "),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",r.showUpdateLicense)}}function F(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",24),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).changePlan()})),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"changeBillingPlan"),"\n "))}function U(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",42),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).downloadLicense()})),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(3);a.ɵɵproperty("disabled",r.showDownloadLicense),a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,2,"downloadLicense"),"\n ")}}function N(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",43,44),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).cancel()})),a.ɵɵtext(2,"\n "),a.ɵɵelement(3,"i",10),a.ɵɵpipe(4,"i18n"),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"span"),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵreference(1),i=a.ɵɵnextContext(3);a.ɵɵproperty("appApiAction",i.cancelPromise)("disabled",r.loading),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(4,4,"loading")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(8,6,"cancelSubscription"))}}function z(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"app-change-plan",45),a.ɵɵlistener("onChanged",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeChangePlan(!0)}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeChangePlan(!1)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(3);a.ɵɵproperty("organizationId",r.organizationId)}}function L(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",46),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"app-download-license",47),a.ɵɵlistener("onDownloaded",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeDownloadLicense()}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeDownloadLicense()})),a.ɵɵelementEnd(),a.ɵɵtext(3,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(3);a.ɵɵadvance(2),a.ɵɵproperty("organizationId",r.organizationId)}}function G(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",33),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"button",24),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustSeats(!0)})),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"button",50),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustSeats(!1)})),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(3),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(4,2,"addSeats"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(8,4,"removeSeats"),"\n "))}function K(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"app-adjust-seats",51),a.ɵɵlistener("onAdjusted",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeSeats(!0)}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeSeats(!1)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(4);a.ɵɵproperty("seatPrice",r.seatPrice)("add",r.adjustSeatsAdd)("organizationId",r.organizationId)("interval",r.billingInterval)}}function q(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",46),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,G,10,6,"div",48),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,K,1,4,"app-adjust-seats",49),a.ɵɵtext(7,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.showAdjustSeats),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.showAdjustSeats)}}function W(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",33),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"button",24),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustStorage(!0)})),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"button",50),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustStorage(!1)})),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(3),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(4,2,"addStorage"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(8,4,"removeStorage"),"\n "))}function H(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"app-adjust-storage",53),a.ɵɵlistener("onAdjusted",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeStorage(!0)}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeStorage(!1)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(4);a.ɵɵproperty("storageGbPrice",r.storageGbPrice)("add",r.adjustStorageAdd)("organizationId",r.organizationId)("interval",r.billingInterval)}}function $(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",46),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,W,10,6,"div",48),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,H,1,4,"app-adjust-storage",52),a.ɵɵtext(7,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.showAdjustStorage),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.showAdjustStorage)}}var Y=function(e){return{width:e}};function Q(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",33),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,F,3,3,"button",34),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,U,3,4,"button",35),a.ɵɵtext(7,"\n "),a.ɵɵtemplate(8,N,10,8,"button",36),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(10,"\n "),a.ɵɵtemplate(11,z,1,1,"app-change-plan",37),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,L,4,1,"div",38),a.ɵɵtext(14,"\n "),a.ɵɵelementStart(15,"h2",39),a.ɵɵtext(16),a.ɵɵpipe(17,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(18,"\n "),a.ɵɵelementStart(19,"p"),a.ɵɵtext(20),a.ɵɵpipe(21,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(22,"\n "),a.ɵɵtemplate(23,q,9,2,"ng-container",1),a.ɵɵtext(24,"\n "),a.ɵɵelementStart(25,"h2",39),a.ɵɵtext(26),a.ɵɵpipe(27,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(28,"\n "),a.ɵɵelementStart(29,"p"),a.ɵɵtext(30),a.ɵɵpipe(31,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(32,"\n "),a.ɵɵelementStart(33,"div",40),a.ɵɵtext(34,"\n "),a.ɵɵelementStart(35,"div",41),a.ɵɵtext(36),a.ɵɵpipe(37,"percent"),a.ɵɵelementEnd(),a.ɵɵtext(38,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(39,"\n "),a.ɵɵtemplate(40,$,9,2,"ng-container",1),a.ɵɵtext(41,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.showChangePlan),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.canDownloadLicense),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",n.showChangePlan),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.showDownloadLicense),a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(17,14,"userSeats")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind2(21,16,"subscriptionUserSeats",n.sub.seats)),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",n.subscription&&n.canAdjustSeats&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(27,19,"storage")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind3(31,21,"subscriptionStorage",n.sub.maxStorageGb||0,n.sub.storageName||"0 MB")),a.ɵɵadvance(5),a.ɵɵproperty("ngStyle",a.ɵɵpureFunction1(27,Y,n.storageProgressWidth+"%")),a.ɵɵattribute("aria-valuenow",n.storagePercentage),a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(37,25,n.storagePercentage/100),""),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel)}}function J(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵtemplate(2,E,4,6,"app-callout",5),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,P,18,14,"app-callout",5),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,O,17,9,"dl",1),a.ɵɵtext(7,"\n "),a.ɵɵtemplate(8,R,19,6,"div",6),a.ɵɵtext(9,"\n "),a.ɵɵtemplate(10,j,15,7,"ng-container",1),a.ɵɵtext(11,"\n "),a.ɵɵtemplate(12,Q,42,29,"ng-container",1),a.ɵɵtext(13,"\n"),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription&&n.subscription.cancelled),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.selfHosted)}}var X=function(){function e(e,t,n,r,i,o){this.apiService=e,this.platformUtilsService=t,this.i18nService=n,this.toasterService=r,this.messagingService=i,this.route=o,this.loading=!1,this.firstLoaded=!1,this.adjustSeatsAdd=!0,this.showAdjustSeats=!1,this.adjustStorageAdd=!0,this.showAdjustStorage=!1,this.showUpdateLicense=!1,this.showDownloadLicense=!1,this.showChangePlan=!1,this.selfHosted=!1,this.selfHosted=t.isSelfHost()}return e.prototype.ngOnInit=function(){return r(this,void 0,void 0,(function(){var e=this;return i(this,(function(t){return this.route.parent.parent.params.subscribe((function(t){return r(e,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.organizationId=t.organizationId,[4,this.load()];case 1:return e.sent(),this.firstLoaded=!0,[2]}}))}))})),[2]}))}))},e.prototype.load=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return this.loading?[2]:(this.loading=!0,e=this,[4,this.apiService.getOrganizationSubscription(this.organizationId)]);case 1:return e.sub=t.sent(),this.loading=!1,[2]}}))}))},e.prototype.reinstate=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.loading?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("reinstateConfirmation"),this.i18nService.t("reinstateSubscription"),this.i18nService.t("yes"),this.i18nService.t("cancel"))];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.reinstatePromise=this.apiService.postOrganizationReinstate(this.organizationId),[4,this.reinstatePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("reinstated")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.cancel=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.loading?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("cancelConfirmation"),this.i18nService.t("cancelSubscription"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.cancelPromise=this.apiService.postOrganizationCancel(this.organizationId),[4,this.cancelPromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("canceledSubscription")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.changePlan=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return null==this.subscription&&this.sub.planType===o.PlanType.Free?(this.showChangePlan=!this.showChangePlan,[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("changeBillingPlanDesc"),this.i18nService.t("changeBillingPlan"),this.i18nService.t("contactSupport"),this.i18nService.t("close"))];case 1:return e.sent()&&this.platformUtilsService.launchUri("https://bitwarden.com/contact"),[2]}}))}))},e.prototype.closeChangePlan=function(e){this.showChangePlan=!1},e.prototype.downloadLicense=function(){this.showDownloadLicense=!this.showDownloadLicense},e.prototype.closeDownloadLicense=function(){this.showDownloadLicense=!1},e.prototype.updateLicense=function(){this.loading||(this.showUpdateLicense=!0)},e.prototype.closeUpdateLicense=function(e){this.showUpdateLicense=!1,e&&(this.load(),this.messagingService.send("updatedOrgLicense"))},e.prototype.adjustSeats=function(e){this.adjustSeatsAdd=e,this.showAdjustSeats=!0},e.prototype.closeSeats=function(e){this.showAdjustSeats=!1,e&&this.load()},e.prototype.adjustStorage=function(e){this.adjustStorageAdd=e,this.showAdjustStorage=!0},e.prototype.closeStorage=function(e){this.showAdjustStorage=!1,e&&this.load()},Object.defineProperty(e.prototype,"isExpired",{get:function(){return null!=this.sub&&null!=this.sub.expiration&&new Date(this.sub.expiration)0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]

'+this.i18nService.t("twoFactorRecoveryYourCode")+":

"+this.code+'

'+new Date+"

"),e.onafterprint=function(){return e.close()},e.print()},e.prototype.formatString=function(e){return null==e?null:e.replace(/(.{4})/g,"$1 ").trim().toUpperCase()},e.prototype.processResponse=function(e){this.code=this.formatString(e.code)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(o.I18nService))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["app-two-factor-recovery"]],decls:31,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","2faRecoveryTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content"],[1,"modal-header"],["id","2faRecoveryTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[3,"organizationId","type","onAuthed",4,"ngIf"],[4,"ngIf"],[3,"organizationId","type","onAuthed"],[1,"modal-body","text-center"],[1,"modal-footer"],["type","button","class","btn btn-primary",3,"click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-lg"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵtext(1,"\n "),i.ɵɵelementStart(2,"div",1),i.ɵɵtext(3,"\n "),i.ɵɵelementStart(4,"div",2),i.ɵɵtext(5,"\n "),i.ɵɵelementStart(6,"div",3),i.ɵɵtext(7,"\n "),i.ɵɵelementStart(8,"h2",4),i.ɵɵtext(9),i.ɵɵpipe(10,"i18n"),i.ɵɵelementStart(11,"small"),i.ɵɵtext(12),i.ɵɵpipe(13,"i18n"),i.ɵɵelementEnd(),i.ɵɵtext(14,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(15,"\n "),i.ɵɵelementStart(16,"button",5),i.ɵɵpipe(17,"i18n"),i.ɵɵtext(18,"\n "),i.ɵɵelementStart(19,"span",6),i.ɵɵtext(20,"×"),i.ɵɵelementEnd(),i.ɵɵtext(21,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(22,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(23,"\n "),i.ɵɵtemplate(24,p,2,2,"app-two-factor-verify",7),i.ɵɵtext(25,"\n "),i.ɵɵtemplate(26,h,18,6,"ng-container",8),i.ɵɵtext(27,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(28,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(29,"\n"),i.ɵɵelementEnd(),i.ɵɵtext(30,"\n")),2&e&&(i.ɵɵadvance(9),i.ɵɵtextInterpolate1("\n ",i.ɵɵpipeBind1(10,5,"twoStepLogin"),"\n "),i.ɵɵadvance(3),i.ɵɵtextInterpolate(i.ɵɵpipeBind1(13,7,"recoveryCodeTitle")),i.ɵɵadvance(4),i.ɵɵpropertyInterpolate("appA11yTitle",i.ɵɵpipeBind1(17,9,"close")),i.ɵɵadvance(8),i.ɵɵproperty("ngIf",!t.authed),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.authed))},directives:[a.A11yTitleDirective,s.NgIf,l.TwoFactorVerifyComponent],pipes:[c.I18nPipe],encapsulation:2}),e}();t.TwoFactorRecoveryComponent=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1&&n.configured)}}function D(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",38),d.ɵɵtext(3,"\n "),d.ɵɵelementContainerEnd())}function R(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",38),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fWaiting"),"...\n "))}function V(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",39),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fClickSave"),"\n "))}function j(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",40),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fProblemReadingTryAgain"),"\n "))}function F(e,t){if(1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵtemplate(2,R,5,3,"ng-container",25),d.ɵɵtext(3,"\n "),d.ɵɵtemplate(4,V,5,3,"ng-container",25),d.ɵɵtext(5,"\n "),d.ɵɵtemplate(6,j,5,3,"ng-container",25),d.ɵɵtext(7,"\n "),d.ɵɵelementContainerEnd()),2&e){var n=d.ɵɵnextContext(2);d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.webAuthnListening),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.webAuthnResponse),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.webAuthnError)}}function U(e,t){1&e&&(d.ɵɵelement(0,"i",41),d.ɵɵpipe(1,"i18n")),2&e&&d.ɵɵpropertyInterpolate("title",d.ɵɵpipeBind1(1,1,"loading"))}function N(e,t){1&e&&(d.ɵɵelementStart(0,"span"),d.ɵɵtext(1),d.ɵɵpipe(2,"i18n"),d.ɵɵelementEnd()),2&e&&(d.ɵɵadvance(1),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(2,1,"save")))}function z(e,t){if(1&e){var n=d.ɵɵgetCurrentView();d.ɵɵelementStart(0,"button",42,43),d.ɵɵlistener("click",(function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext(2).disable()})),d.ɵɵtext(2,"\n "),d.ɵɵelement(3,"i",41),d.ɵɵpipe(4,"i18n"),d.ɵɵtext(5,"\n "),d.ɵɵelementStart(6,"span"),d.ɵɵtext(7),d.ɵɵpipe(8,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(9,"\n "),d.ɵɵelementEnd()}if(2&e){var r=d.ɵɵreference(1),i=d.ɵɵnextContext(2);d.ɵɵproperty("appApiAction",i.disablePromise)("disabled",r.loading),d.ɵɵadvance(3),d.ɵɵpropertyInterpolate("title",d.ɵɵpipeBind1(4,4,"loading")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(8,6,"disableAllKeys"))}}function L(e,t){if(1&e){var n=d.ɵɵgetCurrentView();d.ɵɵelementStart(0,"form",10,11),d.ɵɵlistener("ngSubmit",(function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext().submit()})),d.ɵɵtext(2,"\n "),d.ɵɵelementStart(3,"div",12),d.ɵɵtext(4,"\n "),d.ɵɵtemplate(5,P,4,6,"app-callout",13),d.ɵɵtext(6,"\n "),d.ɵɵelementStart(7,"app-callout",14),d.ɵɵtext(8,"\n "),d.ɵɵelementStart(9,"p"),d.ɵɵtext(10),d.ɵɵpipe(11,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(12,"\n "),d.ɵɵelementStart(13,"ul",15),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"li"),d.ɵɵtext(16),d.ɵɵpipe(17,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(18,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(19,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(20,"\n "),d.ɵɵelement(21,"img",16),d.ɵɵtext(22,"\n "),d.ɵɵelementStart(23,"ul",17),d.ɵɵtext(24,"\n "),d.ɵɵtemplate(25,B,13,5,"li",18),d.ɵɵtext(26,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(27,"\n "),d.ɵɵelement(28,"hr"),d.ɵɵtext(29,"\n "),d.ɵɵelementStart(30,"p"),d.ɵɵtext(31),d.ɵɵpipe(32,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(33,"\n "),d.ɵɵelementStart(34,"ol"),d.ɵɵtext(35,"\n "),d.ɵɵelementStart(36,"li"),d.ɵɵtext(37),d.ɵɵpipe(38,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(39,"\n "),d.ɵɵelementStart(40,"li"),d.ɵɵtext(41),d.ɵɵpipe(42,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(43,"\n "),d.ɵɵelementStart(44,"li"),d.ɵɵtext(45),d.ɵɵpipe(46,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(47,"\n "),d.ɵɵelementStart(48,"li"),d.ɵɵtext(49),d.ɵɵpipe(50,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(51,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(52,"\n "),d.ɵɵelementStart(53,"div",19),d.ɵɵtext(54,"\n "),d.ɵɵelementStart(55,"div",20),d.ɵɵtext(56,"\n "),d.ɵɵelementStart(57,"label",21),d.ɵɵtext(58),d.ɵɵpipe(59,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(60,"\n "),d.ɵɵelementStart(61,"input",22),d.ɵɵlistener("ngModelChange",(function(e){return d.ɵɵrestoreView(n),d.ɵɵnextContext().name=e})),d.ɵɵelementEnd(),d.ɵɵtext(62,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(63,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(64,"\n "),d.ɵɵelementStart(65,"button",23,24),d.ɵɵlistener("click",(function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext().readKey()})),d.ɵɵtext(67),d.ɵɵpipe(68,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(69,"\n "),d.ɵɵtemplate(70,D,4,0,"ng-container",25),d.ɵɵtext(71,"\n "),d.ɵɵtemplate(72,F,8,3,"ng-container",25),d.ɵɵtext(73,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(74,"\n "),d.ɵɵelementStart(75,"div",26),d.ɵɵtext(76,"\n "),d.ɵɵelementStart(77,"button",27),d.ɵɵtext(78,"\n "),d.ɵɵtemplate(79,U,2,3,"i",28),d.ɵɵtext(80,"\n "),d.ɵɵtemplate(81,N,3,3,"span",25),d.ɵɵtext(82,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(83,"\n "),d.ɵɵtemplate(84,z,10,8,"button",29),d.ɵɵtext(85,"\n "),d.ɵɵelementStart(86,"button",30),d.ɵɵtext(87),d.ɵɵpipe(88,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(89,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(90,"\n "),d.ɵɵelementEnd()}if(2&e){var r=d.ɵɵreference(1),i=d.ɵɵreference(66),o=d.ɵɵnextContext();d.ɵɵproperty("appApiAction",o.formPromise),d.ɵɵadvance(5),d.ɵɵproperty("ngIf",o.enabled),d.ɵɵadvance(5),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(11,23,"twoFactorWebAuthnWarning")),d.ɵɵadvance(6),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(17,25,"twoFactorWebAuthnSupportWeb")),d.ɵɵadvance(9),d.ɵɵproperty("ngForOf",o.keys),d.ɵɵadvance(6),d.ɵɵtextInterpolate1("",d.ɵɵpipeBind1(32,27,"twoFactorWebAuthnAdd"),":"),d.ɵɵadvance(6),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(38,29,"twoFactorU2fGiveName")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(42,31,"twoFactorU2fPlugInReadKey")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(46,33,"twoFactorU2fTouchButton")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(50,35,"twoFactorU2fSaveForm")),d.ɵɵadvance(9),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(59,37,"name")),d.ɵɵadvance(3),d.ɵɵproperty("ngModel",o.name)("disabled",!o.keyIdAvailable),d.ɵɵadvance(4),d.ɵɵproperty("disabled",i.loading||o.webAuthnListening||!o.keyIdAvailable)("appApiAction",o.challengePromise),d.ɵɵadvance(2),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(68,39,"readKey"),"\n "),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",i.loading),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",!i.loading),d.ɵɵadvance(5),d.ɵɵproperty("disabled",r.loading||!o.webAuthnResponse),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",r.loading),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",!r.loading),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",o.enabled),d.ɵɵadvance(3),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(88,41,"close"))}}var G=function(e){function t(t,n,r,i,o){var a=e.call(this,t,n,r,i)||this;return a.ngZone=o,a.type=s.TwoFactorProviderType.WebAuthn,a.keyIdAvailable=null,a.keysConfiguredCount=0,a}return i(t,e),t.prototype.auth=function(t){e.prototype.auth.call(this,t),this.processResponse(t.response)},t.prototype.submit=function(){var t=this;if(null==this.webAuthnResponse||null==this.keyIdAvailable)return Promise.reject();var n=new p.UpdateTwoFactorWebAuthnRequest;return n.masterPasswordHash=this.masterPasswordHash,n.deviceResponse=this.webAuthnResponse,n.id=this.keyIdAvailable,n.name=this.name,e.prototype.enable.call(this,(function(){return o(t,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:return this.formPromise=this.apiService.putTwoFactorWebAuthn(n),[4,this.formPromise];case 1:return e=t.sent(),[4,this.processResponse(e)];case 2:return t.sent(),[2]}}))}))}))},t.prototype.disable=function(){return e.prototype.disable.call(this,this.formPromise)},t.prototype.remove=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return this.keysConfiguredCount<=1||null!=e.removePromise?[2]:(t=null!=e.name?e.name:this.i18nService.t("webAuthnkeyX",e.id),[4,this.platformUtilsService.showDialog(this.i18nService.t("removeU2fConfirmation"),t,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]);case 1:if(!i.sent())return[2];(n=new c.UpdateTwoFactorWebAuthnDeleteRequest).id=e.id,n.masterPasswordHash=this.masterPasswordHash,i.label=2;case 2:return i.trys.push([2,5,,6]),e.removePromise=this.apiService.deleteTwoFactorWebAuthn(n),[4,e.removePromise];case 3:return r=i.sent(),e.removePromise=null,[4,this.processResponse(r)];case 4:return i.sent(),[3,6];case 5:return i.sent(),[3,6];case 6:return[2]}}))}))},t.prototype.readKey=function(){return o(this,void 0,void 0,(function(){var e,t;return a(this,(function(n){switch(n.label){case 0:if(null==this.keyIdAvailable)return[2];(e=new l.PasswordVerificationRequest).masterPasswordHash=this.masterPasswordHash,n.label=1;case 1:return n.trys.push([1,3,,4]),this.challengePromise=this.apiService.getTwoFactorWebAuthnChallenge(e),[4,this.challengePromise];case 2:return t=n.sent(),this.readDevice(t),[3,4];case 3:return n.sent(),[3,4];case 4:return[2]}}))}))},t.prototype.readDevice=function(e){var t=this;console.log("listening for key..."),this.resetWebAuthn(!0),navigator.credentials.create({publicKey:e}).then((function(e){t.ngZone.run((function(){t.webAuthnListening=!1,t.webAuthnResponse=e}))})).catch((function(e){console.error(e),t.resetWebAuthn(!1),t.webAuthnError=!0}))},t.prototype.resetWebAuthn=function(e){void 0===e&&(e=!1),this.webAuthnResponse=null,this.webAuthnError=!1,this.webAuthnListening=e},t.prototype.processResponse=function(e){this.resetWebAuthn(),this.keys=[],this.keyIdAvailable=null,this.name=null,this.keysConfiguredCount=0;for(var t=function(t){if(null!=e.keys){var r=e.keys.filter((function(e){return e.id===t}));if(r.length>0)return n.keysConfiguredCount++,n.keys.push({id:t,name:r[0].name,configured:!0,migrated:r[0].migrated,removePromise:null}),"continue"}n.keys.push({id:t,name:null,configured:!1,removePromise:null}),null==n.keyIdAvailable&&(n.keyIdAvailable=t)},n=this,r=1;r<=5;r++)t(r);this.enabled=e.enabled},t.ɵfac=function(e){return new(e||t)(d.ɵɵdirectiveInject(m.ApiService),d.ɵɵdirectiveInject(h.I18nService),d.ɵɵdirectiveInject(f.ToasterService),d.ɵɵdirectiveInject(v.PlatformUtilsService),d.ɵɵdirectiveInject(d.NgZone))},t.ɵcmp=d.ɵɵdefineComponent({type:t,selectors:[["app-two-factor-webauthn"]],features:[d.ɵɵInheritDefinitionFeature],decls:31,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","2faU2fTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],[1,"modal-content"],[1,"modal-header"],["id","2faU2fTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[3,"organizationId","type","onAuthed",4,"ngIf"],["ngNativeValidate","",3,"appApiAction","ngSubmit",4,"ngIf"],[3,"organizationId","type","onAuthed"],["ngNativeValidate","",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-body"],["type","success","icon","fa-check-circle",3,"title",4,"ngIf"],["type","warning"],[1,"mb-0"],["src","images/7.png","alt","",1,"float-right","ml-5"],[1,"fa-ul"],[3,"appApiAction",4,"ngFor","ngForOf"],[1,"row"],[1,"form-group","col-6"],["for","name"],["id","name","type","text","name","Name",1,"form-control",3,"ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-secondary","mr-2",3,"disabled","appApiAction","click"],["readKeyBtn",""],[4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary",3,"disabled"],["class","fa fa-spinner fa-spin","aria-hidden","true",3,"title",4,"ngIf"],["type","button","class","btn btn-outline-secondary btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["type","success","icon","fa-check-circle",3,"title"],[3,"appApiAction"],["removeKeyBtn",""],[1,"fa-li","fa","fa-key"],["class","fa fa-spin fa-spinner text-muted fa-fw","aria-hidden","true",3,"title",4,"ngIf"],["href","#","appStopClick","",3,"click"],["aria-hidden","true",1,"fa","fa-spin","fa-spinner","text-muted","fa-fw",3,"title"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted"],["aria-hidden","true",1,"fa","fa-check-circle","text-success"],["aria-hidden","true",1,"fa","fa-warning","text-danger"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button",1,"btn","btn-outline-secondary","btn-submit",3,"appApiAction","disabled","click"],["disableBtn",""]],template:function(e,t){1&e&&(d.ɵɵelementStart(0,"div",0),d.ɵɵtext(1,"\n "),d.ɵɵelementStart(2,"div",1),d.ɵɵtext(3,"\n "),d.ɵɵelementStart(4,"div",2),d.ɵɵtext(5,"\n "),d.ɵɵelementStart(6,"div",3),d.ɵɵtext(7,"\n "),d.ɵɵelementStart(8,"h2",4),d.ɵɵtext(9),d.ɵɵpipe(10,"i18n"),d.ɵɵelementStart(11,"small"),d.ɵɵtext(12),d.ɵɵpipe(13,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(14,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(15,"\n "),d.ɵɵelementStart(16,"button",5),d.ɵɵpipe(17,"i18n"),d.ɵɵtext(18,"\n "),d.ɵɵelementStart(19,"span",6),d.ɵɵtext(20,"×"),d.ɵɵelementEnd(),d.ɵɵtext(21,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(22,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(23,"\n "),d.ɵɵtemplate(24,E,2,2,"app-two-factor-verify",7),d.ɵɵtext(25,"\n "),d.ɵɵtemplate(26,L,91,43,"form",8),d.ɵɵtext(27,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(28,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(29,"\n"),d.ɵɵelementEnd(),d.ɵɵtext(30,"\n")),2&e&&(d.ɵɵadvance(9),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(10,5,"twoStepLogin"),"\n "),d.ɵɵadvance(3),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(13,7,"webAuthnTitle")),d.ɵɵadvance(4),d.ɵɵpropertyInterpolate("appA11yTitle",d.ɵɵpipeBind1(17,9,"close")),d.ɵɵadvance(8),d.ɵɵproperty("ngIf",!t.authed),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",t.authed))},directives:[y.A11yTitleDirective,g.NgIf,x.TwoFactorVerifyComponent,b.NgControlStatusGroup,b.NgForm,S.ApiActionDirective,w.CalloutComponent,g.NgForOf,b.DefaultValueAccessor,b.NgControlStatus,b.NgModel,C.StopClickDirective],pipes:[I.I18nPipe],encapsulation:2}),t}(u.TwoFactorBaseComponent);t.TwoFactorWebAuthnComponent=G},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?this.keys[0].key:null,n.key2=null!=this.keys&&this.keys.length>1?this.keys[1].key:null,n.key3=null!=this.keys&&this.keys.length>2?this.keys[2].key:null,n.key4=null!=this.keys&&this.keys.length>3?this.keys[3].key:null,n.key5=null!=this.keys&&this.keys.length>4?this.keys[4].key:null,n.nfc=this.nfc,e.prototype.enable.call(this,(function(){return o(t,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:return this.formPromise=this.apiService.putTwoFactorYubiKey(n),[4,this.formPromise];case 1:return e=t.sent(),[4,this.processResponse(e)];case 2:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("yubikeysUpdated")),[2]}}))}))}))},t.prototype.disable=function(){return e.prototype.disable.call(this,this.disablePromise)},t.prototype.remove=function(e){e.existingKey=null,e.key=null},t.prototype.processResponse=function(e){this.enabled=e.enabled,this.keys=[{key:e.key1,existingKey:this.padRight(e.key1)},{key:e.key2,existingKey:this.padRight(e.key2)},{key:e.key3,existingKey:this.padRight(e.key3)},{key:e.key4,existingKey:this.padRight(e.key4)},{key:e.key5,existingKey:this.padRight(e.key5)}],this.nfc=e.nfc||!e.enabled},t.prototype.padRight=function(e,t,n){if(void 0===t&&(t="•"),void 0===n&&(n=44),null==e||null==t||e.length>=n)return e;for(var r=(n-e.length)/t.length,i=0;i0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&this.viewEvents(n[0]),null!=o&&o.unsubscribe(),[2]}}))}))})),null!=t&&t.unsubscribe(),[2]}}))}))}))},e.prototype.ngOnDestroy=function(){this.broadcasterService.unsubscribe("OrgVaultComponent")},e.prototype.clearGroupingFilters=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchVault"),[4,this.ciphersComponent.applyFilter()];case 1:return e.sent(),this.clearFilters(),this.go(),[2]}}))}))},e.prototype.filterCipherType=function(e,t){return void 0===t&&(t=!1),r(this,void 0,void 0,(function(){var n;return i(this,(function(r){switch(r.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchType"),n=function(t){return t.type===e},t?[4,this.ciphersComponent.reload(n)]:[3,2];case 1:return r.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(n)];case 3:r.sent(),r.label=4;case 4:return this.clearFilters(),this.type=e,this.go(),[2]}}))}))},e.prototype.filterCollection=function(e,t){return void 0===t&&(t=!1),r(this,void 0,void 0,(function(){var n;return i(this,(function(r){switch(r.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchCollection"),n=function(t){return"unassigned"===e?null==t.collectionIds||0===t.collectionIds.length:null!=t.collectionIds&&t.collectionIds.indexOf(e)>-1},t?[4,this.ciphersComponent.reload(n)]:[3,2];case 1:return r.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(n)];case 3:r.sent(),r.label=4;case 4:return this.clearFilters(),this.collectionId=e,this.go(),[2]}}))}))},e.prototype.filterDeleted=function(e){return void 0===e&&(e=!1),r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return this.ciphersComponent.showAddNew=!1,this.ciphersComponent.deleted=!0,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchTrash"),e?[4,this.ciphersComponent.reload(null,!0)]:[3,2];case 1:return t.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(null)];case 3:t.sent(),t.label=4;case 4:return this.clearFilters(),this.deleted=!0,this.go(),[2]}}))}))},e.prototype.filterSearchText=function(e){this.ciphersComponent.searchText=e,this.ciphersComponent.search(200)},e.prototype.editCipherAttachments=function(e){var t=this;if(null!=this.organization.maxStorageGb&&0!==this.organization.maxStorageGb){null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.attachmentsModalRef.createComponent(n).instance;var o=this.modal.show(c.AttachmentsComponent,this.attachmentsModalRef);o.organization=this.organization,o.cipherId=e.id;var s=!1;o.onUploadedAttachment.subscribe((function(){return s=!0})),o.onDeletedAttachment.subscribe((function(){return s=!0})),this.modal.onClosed.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal=null,s?[4,this.ciphersComponent.refresh()]:[3,2];case 1:e.sent(),e.label=2;case 2:return s=!1,[2]}}))}))}))}else this.messagingService.send("upgradeOrganization",{organizationId:e.organizationId})},e.prototype.editCipherCollections=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.collectionsModalRef.createComponent(n).instance;var o=this.modal.show(u.CollectionsComponent,this.collectionsModalRef);this.organization.canManageAllCollections&&(o.collectionIds=e.collectionIds,o.collections=this.groupingsComponent.collections.filter((function(e){return!e.readOnly}))),o.organization=this.organization,o.cipherId=e.id,o.onSavedCollections.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){return this.modal=null,[2]}))}))}))},e.prototype.addCipher=function(){var e=this.editCipher(null);e.organizationId=this.organization.id,e.type=this.type,this.organization.canManageAllCollections&&(e.collections=this.groupingsComponent.collections.filter((function(e){return!e.readOnly}))),null!=this.collectionId&&(e.collectionIds=[this.collectionId])},e.prototype.editCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.cipherAddEditModalRef.createComponent(n).instance;var o=this.modal.show(l.AddEditComponent,this.cipherAddEditModalRef);return o.organization=this.organization,o.cipherId=null==e?null:e.id,o.onSavedCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),o.onDeletedCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),o.onRestoredCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){t.modal=null})),o},e.prototype.cloneCipher=function(e){var t=this.editCipher(e);t.cloneMode=!0,t.organizationId=this.organization.id,this.organization.canManageAllCollections&&(t.collections=this.groupingsComponent.collections.filter((function(e){return!e.readOnly}))),t.collectionIds=e.collectionIds},e.prototype.viewEvents=function(e){return r(this,void 0,void 0,(function(){var t,n,r=this;return i(this,(function(i){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent),this.modal=this.eventsModalRef.createComponent(t).instance,(n=this.modal.show(s.EntityEventsComponent,this.eventsModalRef)).name=e.name,n.organizationId=this.organization.id,n.entityId=e.id,n.showUser=!0,n.entity="cipher",this.modal.onClosed.subscribe((function(){r.modal=null})),[2]}))}))},e.prototype.clearFilters=function(){this.collectionId=null,this.type=null,this.deleted=!1},e.prototype.go=function(e){void 0===e&&(e=null),null==e&&(e={type:this.type,collectionId:this.collectionId,deleted:!!this.deleted||null}),this.router.navigate([],{relativeTo:this.route,queryParams:e,replaceUrl:!0})},e.ɵfac=function(t){return new(t||e)(m.ɵɵdirectiveInject(h.ActivatedRoute),m.ɵɵdirectiveInject(f.UserService),m.ɵɵdirectiveInject(h.Router),m.ɵɵdirectiveInject(m.ChangeDetectorRef),m.ɵɵdirectiveInject(v.SyncService),m.ɵɵdirectiveInject(y.I18nService),m.ɵɵdirectiveInject(m.ComponentFactoryResolver),m.ɵɵdirectiveInject(g.MessagingService),m.ɵɵdirectiveInject(x.BroadcasterService),m.ɵɵdirectiveInject(m.NgZone),m.ɵɵdirectiveInject(b.PlatformUtilsService))},e.ɵcmp=m.ɵɵdefineComponent({type:e,selectors:[["app-org-vault"]],viewQuery:function(e,t){var n;(1&e&&(m.ɵɵstaticViewQuery(d.GroupingsComponent,!0),m.ɵɵstaticViewQuery(p.CiphersComponent,!0),m.ɵɵstaticViewQuery(_,!0,o.ViewContainerRef),m.ɵɵstaticViewQuery(A,!0,o.ViewContainerRef),m.ɵɵstaticViewQuery(O,!0,o.ViewContainerRef),m.ɵɵstaticViewQuery(T,!0,o.ViewContainerRef)),2&e)&&(m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.groupingsComponent=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.ciphersComponent=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.attachmentsModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.cipherAddEditModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.collectionsModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.eventsModalRef=n.first))},decls:53,vars:14,consts:[[1,"container","page-content"],[1,"row"],[1,"col-3"],[3,"showFolders","showFavorites","showTrash","onAllClicked","onCipherTypeClicked","onCollectionClicked","onSearchTextChanged","onTrashClicked"],[1,"col-9"],[1,"page-header","d-flex"],[3,"appApiAction"],["actionSpinner",""],[4,"ngIf"],[1,"ml-auto","d-flex"],[3,"ciphersComponent","modal","deleted","organization"],["type","button","class","btn btn-outline-primary btn-sm ml-auto",3,"click",4,"ngIf"],["type","warning","icon","fa-warning",4,"ngIf"],[3,"onCipherClicked","onAttachmentsClicked","onAddCipher","onCollectionsClicked","onEventsClicked","onCloneClicked"],["attachments",""],["cipherAddEdit",""],["collections",""],["eventsTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","button",1,"btn","btn-outline-primary","btn-sm","ml-auto",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["type","warning","icon","fa-warning"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"div",2),m.ɵɵtext(5,"\n "),m.ɵɵelementStart(6,"app-org-vault-groupings",3),m.ɵɵlistener("onAllClicked",(function(){return t.clearGroupingFilters()}))("onCipherTypeClicked",(function(e){return t.filterCipherType(e)}))("onCollectionClicked",(function(e){return t.filterCollection(e.id)}))("onSearchTextChanged",(function(e){return t.filterSearchText(e)}))("onTrashClicked",(function(){return t.filterDeleted()})),m.ɵɵtext(7,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(8,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(9,"\n "),m.ɵɵelementStart(10,"div",4),m.ɵɵtext(11,"\n "),m.ɵɵelementStart(12,"div",5),m.ɵɵtext(13,"\n "),m.ɵɵelementStart(14,"h1"),m.ɵɵtext(15),m.ɵɵpipe(16,"i18n"),m.ɵɵelementStart(17,"small",6,7),m.ɵɵtext(19,"\n "),m.ɵɵtemplate(20,M,9,6,"ng-container",8),m.ɵɵtext(21,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(22,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(23,"\n "),m.ɵɵelementStart(24,"div",9),m.ɵɵtext(25,"\n "),m.ɵɵelementStart(26,"app-vault-bulk-actions",10),m.ɵɵtext(27,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(28,"\n "),m.ɵɵtemplate(29,B,5,3,"button",11),m.ɵɵtext(30,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(31,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(32,"\n "),m.ɵɵtemplate(33,D,2,1,"app-callout",12),m.ɵɵtext(34,"\n "),m.ɵɵelementStart(35,"app-org-vault-ciphers",13),m.ɵɵlistener("onCipherClicked",(function(e){return t.editCipher(e)}))("onAttachmentsClicked",(function(e){return t.editCipherAttachments(e)}))("onAddCipher",(function(){return t.addCipher()}))("onCollectionsClicked",(function(e){return t.editCipherCollections(e)}))("onEventsClicked",(function(e){return t.viewEvents(e)}))("onCloneClicked",(function(e){return t.cloneCipher(e)})),m.ɵɵtext(36,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(37,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(38,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(39,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(40,"\n"),m.ɵɵtemplate(41,R,0,0,"ng-template",null,14,m.ɵɵtemplateRefExtractor),m.ɵɵtext(43,"\n"),m.ɵɵtemplate(44,V,0,0,"ng-template",null,15,m.ɵɵtemplateRefExtractor),m.ɵɵtext(46,"\n"),m.ɵɵtemplate(47,j,0,0,"ng-template",null,16,m.ɵɵtemplateRefExtractor),m.ɵɵtext(49,"\n"),m.ɵɵtemplate(50,F,0,0,"ng-template",null,17,m.ɵɵtemplateRefExtractor),m.ɵɵtext(52,"\n")),2&e){var n=m.ɵɵreference(18);m.ɵɵadvance(6),m.ɵɵproperty("showFolders",!1)("showFavorites",!1)("showTrash",!0),m.ɵɵadvance(9),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(16,12,"vault"),"\n "),m.ɵɵadvance(2),m.ɵɵproperty("appApiAction",t.ciphersComponent.actionPromise),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",n.loading),m.ɵɵadvance(6),m.ɵɵproperty("ciphersComponent",t.ciphersComponent)("modal",t.modal)("deleted",t.deleted)("organization",t.organization),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",!t.deleted),m.ɵɵadvance(4),m.ɵɵproperty("ngIf",t.deleted)}},directives:[S.GroupingsComponent,w.ApiActionDirective,C.NgIf,I.BulkActionsComponent,E.CiphersComponent,P.CalloutComponent],pipes:[k.I18nPipe],encapsulation:2}),e}();t.VaultComponent=U},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]524288e3)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("maxFileSize")),[2];i.label=1;case 1:return i.trys.push([1,4,,5]),this.formPromise=this.saveCipherAttachment(t[0]),n=this,[4,this.formPromise];case 2:return n.cipherDomain=i.sent(),r=this,[4,this.cipherDomain.decrypt()];case 3:return r.cipher=i.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("attachmentSaved")),this.onUploadedAttachment.emit(),[3,5];case 4:return i.sent(),[3,5];case 5:return e.type="",e.type="file",e.value="",[2]}}))}))},e.prototype.delete=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return null!=this.deletePromises[e.id]?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteAttachmentConfirmation"),this.i18nService.t("deleteAttachment"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!n.sent())return[2];n.label=2;case 2:return n.trys.push([2,4,,5]),this.deletePromises[e.id]=this.deleteCipherAttachment(e.id),[4,this.deletePromises[e.id]];case 3:return n.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("deletedAttachment")),(t=this.cipher.attachments.indexOf(e))>-1&&this.cipher.attachments.splice(t,1),[3,5];case 4:return n.sent(),[3,5];case 5:return this.deletePromises[e.id]=null,this.onDeletedAttachment.emit(),[2]}}))}))},e.prototype.download=function(e){return r(this,void 0,void 0,(function(){var t,n,r,o,s,l,c,p,u;return i(this,(function(i){switch(i.label){case 0:if((t=e).downloading)return[2];if(!this.canAccessAttachments)return this.platformUtilsService.showToast("error",this.i18nService.t("premiumRequired"),this.i18nService.t("premiumRequiredDesc")),[2];i.label=1;case 1:return i.trys.push([1,3,,4]),[4,this.apiService.getAttachmentData(this.cipher.id,e.id,this.emergencyAccessId)];case 2:return r=i.sent(),n=r.url,[3,4];case 3:if(!((o=i.sent())instanceof a.ErrorResponse&&404===o.statusCode))throw o instanceof a.ErrorResponse?new Error(o.getSingleMessage()):o;return n=e.url,[3,4];case 4:return t.downloading=!0,[4,fetch(new Request(n,{cache:"no-store"}))];case 5:if(200!==(s=i.sent()).status)return this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),t.downloading=!1,[2];i.label=6;case 6:return i.trys.push([6,12,,13]),[4,s.arrayBuffer()];case 7:return l=i.sent(),null==e.key?[3,8]:(p=e.key,[3,10]);case 8:return[4,this.cryptoService.getOrgKey(this.cipher.organizationId)];case 9:p=i.sent(),i.label=10;case 10:return c=p,[4,this.cryptoService.decryptFromBytes(l,c)];case 11:return u=i.sent(),this.platformUtilsService.saveFile(this.win,u,null,e.fileName),[3,13];case 12:return i.sent(),this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),[3,13];case 13:return t.downloading=!1,[2]}}))}))},e.prototype.init=function(){return r(this,void 0,void 0,(function(){var e,t,n,r;return i(this,(function(i){switch(i.label){case 0:return e=this,[4,this.loadCipher()];case 1:return e.cipherDomain=i.sent(),t=this,[4,this.cipherDomain.decrypt()];case 2:return t.cipher=i.sent(),n=this,[4,this.cryptoService.hasEncKey()];case 3:return n.hasUpdatedKey=i.sent(),[4,this.userService.canAccessPremium()];case 4:return r=i.sent(),this.canAccessAttachments=r||null!=this.cipher.organizationId,this.canAccessAttachments?[3,6]:[4,this.platformUtilsService.showDialog(this.i18nService.t("premiumRequiredDesc"),this.i18nService.t("premiumRequired"),this.i18nService.t("learnMore"),this.i18nService.t("cancel"))];case 5:return i.sent()&&this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/?premium=purchase"),[3,8];case 6:return this.hasUpdatedKey?[3,8]:[4,this.platformUtilsService.showDialog(this.i18nService.t("updateKey"),this.i18nService.t("featureUnavailable"),this.i18nService.t("learnMore"),this.i18nService.t("cancel"),"warning")];case 7:i.sent()&&this.platformUtilsService.launchUri("https://help.bitwarden.com/article/update-encryption-key/"),i.label=8;case 8:return[2]}}))}))},e.prototype.reuploadCipherAttachment=function(e,t){return r(this,void 0,void 0,(function(){var n,o=this;return i(this,(function(a){switch(a.label){case 0:if(n=e,null!=e.key||n.downloading||null!=this.reuploadPromises[e.id])return[2];a.label=1;case 1:return a.trys.push([1,3,,4]),this.reuploadPromises[e.id]=Promise.resolve().then((function(){return r(o,void 0,void 0,(function(){var r,o,a,s,l,c,p,u,d;return i(this,(function(i){switch(i.label){case 0:return n.downloading=!0,[4,fetch(new Request(e.url,{cache:"no-store"}))];case 1:if(200!==(r=i.sent()).status)return this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),n.downloading=!1,[2];i.label=2;case 2:return i.trys.push([2,11,,12]),[4,r.arrayBuffer()];case 3:return o=i.sent(),null==e.key?[3,4]:(s=e.key,[3,6]);case 4:return[4,this.cryptoService.getOrgKey(this.cipher.organizationId)];case 5:s=i.sent(),i.label=6;case 6:return a=s,[4,this.cryptoService.decryptFromBytes(o,a)];case 7:return l=i.sent(),c=this,[4,this.cipherService.saveAttachmentRawWithServer(this.cipherDomain,e.fileName,l,t)];case 8:return c.cipherDomain=i.sent(),p=this,[4,this.cipherDomain.decrypt()];case 9:return p.cipher=i.sent(),this.deletePromises[e.id]=this.deleteCipherAttachment(e.id),[4,this.deletePromises[e.id]];case 10:return i.sent(),(u=this.cipher.attachments.filter((function(t){return t.id===e.id}))).length>0&&(d=this.cipher.attachments.indexOf(u[0]))>-1&&this.cipher.attachments.splice(d,1),this.platformUtilsService.showToast("success",null,this.i18nService.t("attachmentSaved")),this.onReuploadedAttachment.emit(),[3,12];case 11:return i.sent(),this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),[3,12];case 12:return n.downloading=!1,[2]}}))}))})),[4,this.reuploadPromises[e.id]];case 2:return a.sent(),[3,4];case 3:return a.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.saveCipherAttachment=function(e){return this.cipherService.saveAttachmentWithServer(this.cipherDomain,e)},e.prototype.deleteCipherAttachment=function(e){return this.cipherService.deleteAttachmentWithServer(this.cipher.id,e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.CipherService),s.ɵɵdirectiveInject(c.I18nService),s.ɵɵdirectiveInject(p.CryptoService),s.ɵɵdirectiveInject(u.UserService),s.ɵɵdirectiveInject(d.PlatformUtilsService),s.ɵɵdirectiveInject(m.ApiService),s.ɵɵdirectiveInject(Window))},e.ɵdir=s.ɵɵdefineDirective({type:e,inputs:{cipherId:"cipherId"},outputs:{onUploadedAttachment:"onUploadedAttachment",onDeletedAttachment:"onDeletedAttachment",onReuploadedAttachment:"onReuploadedAttachment"}}),e}();t.AttachmentsComponent=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.type=n.getResponseProperty("Type"),n.domains=n.getResponseProperty("Domains"),n.excluded=n.getResponseProperty("Excluded"),n}return i(t,e),t}(n(23).BaseResponse);t.GlobalDomainResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.accessToken=t.access_token,n.expiresIn=t.expires_in,n.refreshToken=t.refresh_token,n.tokenType=t.token_type,n.resetMasterPassword=n.getResponseProperty("ResetMasterPassword"),n.privateKey=n.getResponseProperty("PrivateKey"),n.key=n.getResponseProperty("Key"),n.twoFactorToken=n.getResponseProperty("TwoFactorToken"),n.kdf=n.getResponseProperty("Kdf"),n.kdfIterations=n.getResponseProperty("KdfIterations"),n}return i(t,e),t}(n(23).BaseResponse);t.IdentityTokenResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;n.twoFactorProviders2=new Map,n.twoFactorProviders=n.getResponseProperty("TwoFactorProviders");var r=n.getResponseProperty("TwoFactorProviders2");if(null!=r)for(var i in r)r.hasOwnProperty(i)&&n.twoFactorProviders2.set(parseInt(i,null),r[i]);return n}return i(t,e),t}(n(23).BaseResponse);t.IdentityTwoFactorResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t,n){var r=e.call(this,t)||this,i=r.getResponseProperty("Data");return r.data=null==i?[]:i.map((function(e){return new n(e)})),r.continuationToken=r.getResponseProperty("ContinuationToken"),r}return i(t,e),t}(n(23).BaseResponse);t.ListResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(468),s=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.usePolicies=n.getResponseProperty("UsePolicies"),n.useGroups=n.getResponseProperty("UseGroups"),n.useDirectory=n.getResponseProperty("UseDirectory"),n.useEvents=n.getResponseProperty("UseEvents"),n.useTotp=n.getResponseProperty("UseTotp"),n.use2fa=n.getResponseProperty("Use2fa"),n.useApi=n.getResponseProperty("UseApi"),n.useBusinessPortal=n.getResponseProperty("UseBusinessPortal"),n.useSso=n.getResponseProperty("UseSso"),n.selfHost=n.getResponseProperty("SelfHost"),n.usersGetPremium=n.getResponseProperty("UsersGetPremium"),n.seats=n.getResponseProperty("Seats"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.key=n.getResponseProperty("Key"),n.status=n.getResponseProperty("Status"),n.type=n.getResponseProperty("Type"),n.enabled=n.getResponseProperty("Enabled"),n.ssoBound=n.getResponseProperty("SsoBound"),n.identifier=n.getResponseProperty("Identifier"),n.permissions=new a.PermissionsApi(n.getResponseProperty("permissions")),n.resetPasswordKey=n.getResponseProperty("ResetPasswordKey"),n.userId=n.getResponseProperty("UserId"),n}return i(t,e),t}(o.BaseResponse);t.ProfileOrganizationResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(262),s=n(499),l=n(500),c=n(501),p=n(621),u=n(293),d=n(502),m=function(e){function t(t){var n=e.call(this,t)||this;n.folders=[],n.collections=[],n.ciphers=[],n.policies=[],n.sends=[];var r=n.getResponseProperty("Profile");null!=r&&(n.profile=new u.ProfileResponse(r));var i=n.getResponseProperty("Folders");null!=i&&(n.folders=i.map((function(e){return new c.FolderResponse(e)})));var o=n.getResponseProperty("Collections");null!=o&&(n.collections=o.map((function(e){return new s.CollectionDetailsResponse(e)})));var m=n.getResponseProperty("Ciphers");null!=m&&(n.ciphers=m.map((function(e){return new a.CipherResponse(e)})));var h=n.getResponseProperty("Domains");null!=h&&(n.domains=new l.DomainsResponse(h));var f=n.getResponseProperty("Policies");null!=f&&(n.policies=f.map((function(e){return new p.PolicyResponse(e)})));var v=n.getResponseProperty("Sends");return null!=v&&(n.sends=v.map((function(e){return new d.SendResponse(e)}))),n}return i(t,e),t}(o.BaseResponse);t.SyncResponse=m},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.type=n.getResponseProperty("Type"),n.data=n.getResponseProperty("Data"),n.enabled=n.getResponseProperty("Enabled"),n}return i(t,e),t}(n(23).BaseResponse);t.PolicyResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(this.organizationId=this.organizations[0].id),this.filterCollections(),[2]}}))}))},e.prototype.ngOnDestroy=function(){this.selectAll(!1)},e.prototype.filterCollections=function(){var e=this;this.selectAll(!1),null==this.organizationId||0===this.writeableCollections.length?this.collections=[]:this.collections=this.writeableCollections.filter((function(t){return t.organizationId===e.organizationId}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:e=this.collections.filter((function(e){return e.checked})).map((function(e){return e.id})),t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.cipherService.shareManyWithServer(this.shareableCiphers,this.organizationId,e),[4,this.formPromise];case 2:return t.sent(),this.onShared.emit(),this.toasterService.popAsync("success",null,this.i18nService.t("sharedItems")),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t},e.prototype.selectAll=function(e){var t=this;(e?this.collections:this.writeableCollections).forEach((function(n){return t.check(n,e)}))},Object.defineProperty(e.prototype,"canSave",{get:function(){if(null!=this.shareableCiphers&&this.shareableCiphers.length>0&&null!=this.collections)for(var e=0;e0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=this.maxAccessCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expired",{get:function(){return null!=this.expirationDate&&this.expirationDate<=new Date},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pendingDelete",{get:function(){return this.deletionDate<=new Date},enumerable:!0,configurable:!0}),e}();t.SendView=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var G=function(e){function t(t,n,r,i,o,a,s,l,c,p,u){var d=e.call(this,t,n,r,i,o,a,s)||this;return d.folderService=l,d.cipherService=c,d.syncService=p,d.apiService=u,d.rotateEncKey=!1,d}return i(t,e),t.prototype.rotateEncKeyClicked=function(){return o(this,void 0,void 0,(function(){var e,t,n;return a(this,(function(r){switch(r.label){case 0:return this.rotateEncKey?[4,this.cipherService.getAllDecrypted()]:[3,5];case 1:if(e=r.sent(),t=!1,null!=e)for(n=0;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0),a.ɵɵadvance(2),a.ɵɵproperty("disabled",n.loading),a.ɵɵadvance(2),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(43,27,"loading")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(47,29,"save"))}},directives:[p.NgControlStatusGroup,p.NgForm,u.ApiActionDirective,d.NgIf,d.NgForOf,p.DefaultValueAccessor,p.RequiredValidator,p.NgControlStatus,p.NgModel,m.A11yTitleDirective,d.NgClass,h.StopClickDirective],pipes:[f.I18nPipe],encapsulation:2}),e}();t.DomainRulesComponent=E},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1?"×"+n.quantity:""," @ ",o.ɵɵpipeBind2(4,5,n.amount,"$"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate2("\n ",o.ɵɵpipeBind2(8,8,n.quantity*n.amount,"$")," /",o.ɵɵpipeBind1(9,11,n.interval),"\n ")}}function _(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",16),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"strong",17),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"table",18),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"tbody"),o.ɵɵtext(9,"\n "),o.ɵɵtemplate(10,k,11,13,"tr",19),o.ɵɵtext(11,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(4,2,"details")),o.ɵɵadvance(7),o.ɵɵproperty("ngForOf",n.subscription.items)}}function A(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",10),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",11),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"dl"),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"dt"),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementStart(10,"dd"),o.ɵɵtext(11,"\n "),o.ɵɵelementStart(12,"span",12),o.ɵɵtext(13),o.ɵɵelementEnd(),o.ɵɵtext(14,"\n "),o.ɵɵtemplate(15,P,3,3,"span",13),o.ɵɵtext(16,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(17,"\n "),o.ɵɵelementStart(18,"dt"),o.ɵɵtext(19),o.ɵɵpipe(20,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(21,"\n "),o.ɵɵelementStart(22,"dd"),o.ɵɵtext(23),o.ɵɵpipe(24,"date"),o.ɵɵpipe(25,"currency"),o.ɵɵelementEnd(),o.ɵɵtext(26,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(27,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(28,"\n "),o.ɵɵtemplate(29,_,14,4,"div",14),o.ɵɵtext(30,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(7),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(8,6,"status")),o.ɵɵadvance(6),o.ɵɵtextInterpolate(n.subscription&&n.subscription.status||"-"),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(20,8,"nextCharge")),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("",n.nextInvoice?o.ɵɵpipeBind2(24,10,n.nextInvoice.date,"mediumDate")+", "+o.ɵɵpipeBind2(25,13,n.nextInvoice.amount,"$"):"-","\n "),o.ɵɵadvance(6),o.ɵɵproperty("ngIf",n.subscription)}}function O(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",23),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",24),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"button",25),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!1)})),o.ɵɵpipe(5,"i18n"),o.ɵɵelementStart(6,"span",26),o.ɵɵtext(7,"×"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementStart(9,"h3",27),o.ɵɵtext(10),o.ɵɵpipe(11,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementStart(13,"app-update-license",28),o.ɵɵlistener("onUpdated",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!0)}))("onCanceled",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!1)})),o.ɵɵtext(14,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(15,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(16,"\n "),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(4),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(5,2,"cancel")),o.ɵɵadvance(6),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(11,4,"updateLicense")))}function T(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div"),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"button",20),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).updateLicense()})),o.ɵɵtext(5),o.ɵɵpipe(6,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"a",21),o.ɵɵtext(9),o.ɵɵpipe(10,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(11,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,O,17,6,"div",22),o.ɵɵtext(14,"\n "),o.ɵɵelementContainerEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(5),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(6,3,"updateLicense"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(10,5,"manageSubscription"),"\n "),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",r.showUpdateLicense)}}function M(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",20),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).downloadLicense()})),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"downloadLicense"),"\n "))}function B(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",35,36),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).cancel()})),o.ɵɵtext(2,"\n "),o.ɵɵelement(3,"i",9),o.ɵɵpipe(4,"i18n"),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"span"),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵreference(1),i=o.ɵɵnextContext(3);o.ɵɵproperty("appApiAction",i.cancelPromise)("disabled",r.loading),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(4,4,"loading")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(8,6,"cancelSubscription"))}}function D(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",29),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"button",20),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustStorage(!0)})),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"button",40),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustStorage(!1)})),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(4,2,"addStorage"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(8,4,"removeStorage"),"\n "))}function R(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"app-adjust-storage",41),o.ɵɵlistener("onAdjusted",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeStorage(!0)}))("onCanceled",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeStorage(!1)})),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(4);o.ɵɵproperty("storageGbPrice",4)("add",r.adjustStorageAdd)}}function V(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",37),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,D,10,6,"div",38),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,R,1,2,"app-adjust-storage",39),o.ɵɵtext(7,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.showAdjustStorage),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.showAdjustStorage)}}var j=function(e){return{width:e}};function F(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",29),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,M,3,3,"button",30),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,B,10,8,"button",31),o.ɵɵtext(7,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementStart(9,"h2",32),o.ɵɵtext(10),o.ɵɵpipe(11,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementStart(13,"p"),o.ɵɵtext(14),o.ɵɵpipe(15,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(16,"\n "),o.ɵɵelementStart(17,"div",33),o.ɵɵtext(18,"\n "),o.ɵɵelementStart(19,"div",34),o.ɵɵtext(20),o.ɵɵpipe(21,"percent"),o.ɵɵelementEnd(),o.ɵɵtext(22,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(23,"\n "),o.ɵɵtemplate(24,V,9,2,"ng-container",1),o.ɵɵtext(25,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.subscription||!n.subscription.cancelled),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(11,8,"storage")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind3(15,10,"subscriptionStorage",n.sub.maxStorageGb||0,n.sub.storageName||"0 MB")),o.ɵɵadvance(5),o.ɵɵproperty("ngStyle",o.ɵɵpureFunction1(16,j,n.storageProgressWidth+"%")),o.ɵɵattribute("aria-valuenow",n.storagePercentage),o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(21,14,n.storagePercentage/100),""),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel)}}function U(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵtemplate(2,S,4,6,"app-callout",4),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,w,18,14,"app-callout",4),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,E,10,5,"dl",1),o.ɵɵtext(7,"\n "),o.ɵɵtemplate(8,A,31,16,"div",5),o.ɵɵtext(9,"\n "),o.ɵɵtemplate(10,T,15,7,"ng-container",1),o.ɵɵtext(11,"\n "),o.ɵɵtemplate(12,F,26,18,"ng-container",1),o.ɵɵtext(13,"\n"),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription&&n.subscription.cancelled),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!n.selfHosted)}}var N=function(){function e(e,t,n,r,i,o){this.tokenService=e,this.apiService=t,this.platformUtilsService=n,this.i18nService=r,this.toasterService=i,this.router=o,this.loading=!1,this.firstLoaded=!1,this.adjustStorageAdd=!0,this.showAdjustStorage=!1,this.showUpdateLicense=!1,this.selfHosted=!1,this.selfHosted=n.isSelfHost()}return e.prototype.ngOnInit=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.load()];case 1:return e.sent(),this.firstLoaded=!0,[2]}}))}))},e.prototype.load=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return this.loading?[2]:this.tokenService.getPremium()?(this.loading=!0,e=this,[4,this.apiService.getUserSubscription()]):[3,2];case 1:return e.sub=t.sent(),[3,3];case 2:return this.router.navigate(["/settings/premium"]),[2];case 3:return this.loading=!1,[2]}}))}))},e.prototype.reinstate=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.loading?[2]:this.usingInAppPurchase?(this.platformUtilsService.showDialog(this.i18nService.t("manageSubscriptionFromStore"),this.i18nService.t("cancelSubscription"),null,null,"warning"),[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("reinstateConfirmation"),this.i18nService.t("reinstateSubscription"),this.i18nService.t("yes"),this.i18nService.t("cancel"))];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.reinstatePromise=this.apiService.postReinstatePremium(),[4,this.reinstatePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("reinstated")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.cancel=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.loading?[2]:this.usingInAppPurchase?(this.platformUtilsService.showDialog(this.i18nService.t("manageSubscriptionFromStore"),this.i18nService.t("cancelSubscription"),null,null,"warning"),[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("cancelConfirmation"),this.i18nService.t("cancelSubscription"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.cancelPromise=this.apiService.postCancelPremium(),[4,this.cancelPromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("canceledSubscription")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.downloadLicense=function(){if(!this.loading){var e=JSON.stringify(this.sub.license,null,2);this.platformUtilsService.saveFile(window,e,null,"bitwarden_premium_license.json")}},e.prototype.updateLicense=function(){this.loading||(this.showUpdateLicense=!0)},e.prototype.closeUpdateLicense=function(e){this.showUpdateLicense=!1,e&&this.load()},e.prototype.adjustStorage=function(e){this.usingInAppPurchase?this.platformUtilsService.showDialog(this.i18nService.t("cannotPerformInAppPurchase"),this.i18nService.t(e?"addStorage":"removeStorage"),null,null,"warning"):(this.adjustStorageAdd=e,this.showAdjustStorage=!0)},e.prototype.closeStorage=function(e){this.showAdjustStorage=!1,e&&this.load()},Object.defineProperty(e.prototype,"subscriptionMarkedForCancel",{get:function(){return null!=this.subscription&&!this.subscription.cancelled&&this.subscription.cancelAtEndDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subscription",{get:function(){return null!=this.sub?this.sub.subscription:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nextInvoice",{get:function(){return null!=this.sub?this.sub.upcomingInvoice:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storagePercentage",{get:function(){return null!=this.sub&&this.sub.maxStorageGb?+(this.sub.storageGb/this.sub.maxStorageGb*100).toFixed(2):0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storageProgressWidth",{get:function(){return this.storagePercentage<5?5:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usingInAppPurchase",{get:function(){return null!=this.sub&&this.sub.usingInAppPurchase},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.TokenService),o.ɵɵdirectiveInject(s.ApiService),o.ɵɵdirectiveInject(l.PlatformUtilsService),o.ɵɵdirectiveInject(c.I18nService),o.ɵɵdirectiveInject(p.ToasterService),o.ɵɵdirectiveInject(u.Router))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["app-user-subscription"]],decls:13,vars:6,consts:[[1,"page-header"],[4,"ngIf"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","warning",3,"title",4,"ngIf"],["class","row",4,"ngIf"],["type","warning",3,"title"],["type","button",1,"btn","btn-outline-secondary","btn-submit",3,"appApiAction","disabled","click"],["reinstateBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"row"],[1,"col-4"],[1,"text-capitalize"],["class","badge badge-warning",4,"ngIf"],["class","col-8",4,"ngIf"],[1,"badge","badge-warning"],[1,"col-8"],[1,"d-block","mb-1"],[1,"table"],[4,"ngFor","ngForOf"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["href","https://vault.bitwarden.com/#/settings/subscription","target","_blank","rel","noopener",1,"btn","btn-outline-secondary"],["class","card mt-3",4,"ngIf"],[1,"card","mt-3"],[1,"card-body"],["type","button",1,"close",3,"appA11yTitle","click"],["aria-hidden","true"],[1,"card-body-header"],[3,"onUpdated","onCanceled"],[1,"d-flex"],["type","button","class","btn btn-outline-secondary",3,"click",4,"ngIf"],["type","button","class","btn btn-outline-danger btn-submit ml-auto",3,"appApiAction","disabled","click",4,"ngIf"],[1,"spaced-header"],[1,"progress"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",1,"progress-bar","bg-success",3,"ngStyle"],["type","button",1,"btn","btn-outline-danger","btn-submit","ml-auto",3,"appApiAction","disabled","click"],["cancelBtn",""],[1,"mt-3"],["class","d-flex",4,"ngIf"],[3,"storageGbPrice","add","onAdjusted","onCanceled",4,"ngIf"],["type","button",1,"ml-1","btn","btn-outline-secondary",3,"click"],[3,"storageGbPrice","add","onAdjusted","onCanceled"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"h1"),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵtemplate(5,x,9,6,"small",1),o.ɵɵtext(6,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(7,"\n"),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n"),o.ɵɵtemplate(9,b,9,6,"ng-container",1),o.ɵɵtext(10,"\n"),o.ɵɵtemplate(11,U,14,6,"ng-container",1),o.ɵɵtext(12,"\n")),2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(4,4,"premiumMembership"),"\n "),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.firstLoaded&&t.loading),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!t.firstLoaded&&t.loading),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.sub))},directives:[d.NgIf,m.CalloutComponent,h.ApiActionDirective,d.NgForOf,f.A11yTitleDirective,v.UpdateLicenseComponent,d.NgStyle,y.AdjustStorageComponent],pipes:[g.I18nPipe,d.DatePipe,d.CurrencyPipe,d.PercentPipe],encapsulation:2}),e}();t.UserSubscriptionComponent=N},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1}))];case 1:return t.sent(),this.clearFilters(),this.collectionId=e,this.go(),[2]}}))}))},e.prototype.filterSearchText=function(e){this.ciphersComponent.searchText=e,this.ciphersComponent.search(200)},e.prototype.editCipherAttachments=function(e){return r(this,void 0,void 0,(function(){var t,n,o,s,l,c=this;return i(this,(function(u){switch(u.label){case 0:return[4,this.userService.canAccessPremium()];case 1:return t=u.sent(),null!=e.organizationId||t?[3,2]:(this.messagingService.send("premiumRequired"),[2]);case 2:return null==e.organizationId?[3,4]:[4,this.userService.getOrganization(e.organizationId)];case 3:if(null!=(n=u.sent())&&(null==n.maxStorageGb||0===n.maxStorageGb))return this.messagingService.send("upgradeOrganization",{organizationId:e.organizationId}),[2];u.label=4;case 4:return null!=this.modal&&this.modal.close(),o=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent),this.modal=this.attachmentsModalRef.createComponent(o).instance,(s=this.modal.show(p.AttachmentsComponent,this.attachmentsModalRef)).cipherId=e.id,l=!1,s.onUploadedAttachment.subscribe((function(){return l=!0})),s.onDeletedAttachment.subscribe((function(){return l=!0})),s.onReuploadedAttachment.subscribe((function(){return l=!0})),this.modal.onClosed.subscribe((function(){return r(c,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal=null,l?[4,this.ciphersComponent.refresh()]:[3,2];case 1:e.sent(),e.label=2;case 2:return l=!1,[2]}}))}))})),[2]}}))}))},e.prototype.shareCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.shareModalRef.createComponent(n).instance;var o=this.modal.show(f.ShareComponent,this.shareModalRef);o.cipherId=e.id,o.onSharedCipher.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){return this.modal=null,[2]}))}))}))},e.prototype.editCipherCollections=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.collectionsModalRef.createComponent(n).instance;var o=this.modal.show(d.CollectionsComponent,this.collectionsModalRef);o.cipherId=e.id,o.onSavedCollections.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){return this.modal=null,[2]}))}))}))},e.prototype.addFolder=function(){return r(this,void 0,void 0,(function(){var e,t,n=this;return i(this,(function(o){return null!=this.modal&&this.modal.close(),e=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent),this.modal=this.folderAddEditModalRef.createComponent(e).instance,(t=this.modal.show(m.FolderAddEditComponent,this.folderAddEditModalRef)).folderId=null,t.onSavedFolder.subscribe((function(){return r(n,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){n.modal=null})),[2]}))}))},e.prototype.editFolder=function(e){return r(this,void 0,void 0,(function(){var t,n,o=this;return i(this,(function(s){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent),this.modal=this.folderAddEditModalRef.createComponent(t).instance,(n=this.modal.show(m.FolderAddEditComponent,this.folderAddEditModalRef)).folderId=e,n.onSavedFolder.subscribe((function(){return r(o,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[2]}}))}))})),n.onDeletedFolder.subscribe((function(){return r(o,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[4,this.filterFolder("none")];case 2:return e.sent(),this.groupingsComponent.selectedFolderId=null,[2]}}))}))})),this.modal.onClosed.subscribe((function(){o.modal=null})),[2]}))}))},e.prototype.addCipher=function(){var e=this,t=this.editCipher(null);if(t.type=this.type,t.folderId="none"===this.folderId?null:this.folderId,null!=this.collectionId){var n=this.groupingsComponent.collections.filter((function(t){return t.id===e.collectionId}));n.length>0&&(t.organizationId=n[0].organizationId,t.collectionIds=[this.collectionId])}},e.prototype.editCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.cipherAddEditModalRef.createComponent(n).instance;var o=this.modal.show(c.AddEditComponent,this.cipherAddEditModalRef);return o.cipherId=null==e?null:e.id,o.onSavedCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),o.onDeletedCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),o.onRestoredCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){t.modal=null})),o},e.prototype.cloneCipher=function(e){this.editCipher(e).cloneMode=!0},e.prototype.updateKey=function(){var e=this;null!=this.modal&&this.modal.close();var t=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.updateKeyModalRef.createComponent(t).instance,this.modal.show(l.UpdateKeyComponent,this.updateKeyModalRef),this.modal.onClosed.subscribe((function(){e.modal=null}))},e.prototype.clearFilters=function(){this.folderId=null,this.collectionId=null,this.favorites=!1,this.type=null,this.deleted=!1},e.prototype.go=function(e){void 0===e&&(e=null),null==e&&(e={favorites:!!this.favorites||null,type:this.type,folderId:this.folderId,collectionId:this.collectionId,deleted:!!this.deleted||null}),this.router.navigate([],{relativeTo:this.route,queryParams:e,replaceUrl:!0})},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.SyncService),v.ɵɵdirectiveInject(g.ActivatedRoute),v.ɵɵdirectiveInject(g.Router),v.ɵɵdirectiveInject(v.ChangeDetectorRef),v.ɵɵdirectiveInject(x.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(b.TokenService),v.ɵɵdirectiveInject(S.CryptoService),v.ɵɵdirectiveInject(w.MessagingService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(I.PlatformUtilsService),v.ɵɵdirectiveInject(E.BroadcasterService),v.ɵɵdirectiveInject(v.NgZone))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["app-vault"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(h.GroupingsComponent,!0),v.ɵɵstaticViewQuery(u.CiphersComponent,!0),v.ɵɵstaticViewQuery(s.OrganizationsComponent,!0),v.ɵɵstaticViewQuery(j,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(F,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(U,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(N,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(z,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(L,!0,o.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.groupingsComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.ciphersComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.organizationsComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.attachmentsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.folderAddEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.cipherAddEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.shareModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.collectionsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.updateKeyModalRef=n.first))},decls:90,vars:21,consts:[[1,"container","page-content"],[1,"row"],[1,"col-3"],[3,"onAllClicked","onFavoritesClicked","onCipherTypeClicked","onFolderClicked","onAddFolder","onEditFolder","onCollectionClicked","onSearchTextChanged","onTrashClicked"],[1,"col-6"],[1,"page-header","d-flex"],[3,"appApiAction"],["actionSpinner",""],[4,"ngIf"],[1,"ml-auto","d-flex"],[3,"ciphersComponent","modal","deleted"],["type","button","class","btn btn-outline-primary btn-sm",3,"click",4,"ngIf"],["type","warning","icon","fa-warning",4,"ngIf"],[3,"onCipherClicked","onAttachmentsClicked","onAddCipher","onShareClicked","onCollectionsClicked","onCloneClicked"],["class","card border-warning mb-4",4,"ngIf"],["class","d-block mb-4",4,"ngIf"],[1,"d-block","mb-4"],["class","card border-success mb-4",4,"ngIf"],[1,"card"],[1,"card-header","d-flex"],["href","https://help.bitwarden.com/article/what-is-an-organization/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"card-body"],[3,"vault"],["attachments",""],["folderAddEdit",""],["cipherAddEdit",""],["share",""],["collections",""],["updateKeyTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","button",1,"btn","btn-outline-primary","btn-sm",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["type","warning","icon","fa-warning"],[1,"card","border-warning","mb-4"],[1,"card-header","bg-warning","text-white"],["aria-hidden","true",1,"fa","fa-warning","fa-fw"],["type","button",1,"btn","btn-block","btn-outline-secondary",3,"click"],["target","_blank","href","https://browser-update.org/update-browser.html","rel","noopener",1,"btn","btn-block","btn-outline-secondary"],[1,"card","border-success","mb-4"],[1,"card-header","bg-success","text-white"],["aria-hidden","true",1,"fa","fa-star","fa-fw"],["routerLink","/settings/premium",1,"btn","btn-block","btn-outline-secondary"]],template:function(e,t){if(1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"div",1),v.ɵɵtext(3,"\n "),v.ɵɵelementStart(4,"div",2),v.ɵɵtext(5,"\n "),v.ɵɵelementStart(6,"app-vault-groupings",3),v.ɵɵlistener("onAllClicked",(function(){return t.clearGroupingFilters()}))("onFavoritesClicked",(function(){return t.filterFavorites()}))("onCipherTypeClicked",(function(e){return t.filterCipherType(e)}))("onFolderClicked",(function(e){return t.filterFolder(e.id)}))("onAddFolder",(function(){return t.addFolder()}))("onEditFolder",(function(e){return t.editFolder(e.id)}))("onCollectionClicked",(function(e){return t.filterCollection(e.id)}))("onSearchTextChanged",(function(e){return t.filterSearchText(e)}))("onTrashClicked",(function(){return t.filterDeleted()})),v.ɵɵtext(7,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(8,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(9,"\n "),v.ɵɵelementStart(10,"div",4),v.ɵɵtext(11,"\n "),v.ɵɵelementStart(12,"div",5),v.ɵɵtext(13,"\n "),v.ɵɵelementStart(14,"h1"),v.ɵɵtext(15),v.ɵɵpipe(16,"i18n"),v.ɵɵelementStart(17,"small",6,7),v.ɵɵtext(19,"\n "),v.ɵɵtemplate(20,G,9,6,"ng-container",8),v.ɵɵtext(21,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(22,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(23,"\n "),v.ɵɵelementStart(24,"div",9),v.ɵɵtext(25,"\n "),v.ɵɵelementStart(26,"app-vault-bulk-actions",10),v.ɵɵtext(27,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(28,"\n "),v.ɵɵtemplate(29,K,5,3,"button",11),v.ɵɵtext(30,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(31,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(32,"\n "),v.ɵɵtemplate(33,q,2,1,"app-callout",12),v.ɵɵtext(34,"\n "),v.ɵɵelementStart(35,"app-vault-ciphers",13),v.ɵɵlistener("onCipherClicked",(function(e){return t.editCipher(e)}))("onAttachmentsClicked",(function(e){return t.editCipherAttachments(e)}))("onAddCipher",(function(){return t.addCipher()}))("onShareClicked",(function(e){return t.shareCipher(e)}))("onCollectionsClicked",(function(e){return t.editCipherCollections(e)}))("onCloneClicked",(function(e){return t.cloneCipher(e)})),v.ɵɵtext(36,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(37,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(38,"\n "),v.ɵɵelementStart(39,"div",2),v.ɵɵtext(40,"\n "),v.ɵɵtemplate(41,W,19,9,"div",14),v.ɵɵtext(42,"\n "),v.ɵɵtemplate(43,H,1,0,"app-verify-email",15),v.ɵɵtext(44,"\n "),v.ɵɵelement(45,"app-send-info",16),v.ɵɵtext(46,"\n "),v.ɵɵtemplate(47,$,19,9,"div",14),v.ɵɵtext(48,"\n "),v.ɵɵtemplate(49,Y,19,9,"div",17),v.ɵɵtext(50,"\n "),v.ɵɵelementStart(51,"div",18),v.ɵɵtext(52,"\n "),v.ɵɵelementStart(53,"div",19),v.ɵɵtext(54),v.ɵɵpipe(55,"i18n"),v.ɵɵelementStart(56,"a",20),v.ɵɵpipe(57,"i18n"),v.ɵɵtext(58,"\n "),v.ɵɵelement(59,"i",21),v.ɵɵtext(60,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(61,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(62,"\n "),v.ɵɵelementStart(63,"div",22),v.ɵɵtext(64,"\n "),v.ɵɵelement(65,"app-organizations",23),v.ɵɵtext(66,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(67,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(68,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(69,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(70,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(71,"\n"),v.ɵɵtemplate(72,Q,0,0,"ng-template",null,24,v.ɵɵtemplateRefExtractor),v.ɵɵtext(74,"\n"),v.ɵɵtemplate(75,J,0,0,"ng-template",null,25,v.ɵɵtemplateRefExtractor),v.ɵɵtext(77,"\n"),v.ɵɵtemplate(78,X,0,0,"ng-template",null,26,v.ɵɵtemplateRefExtractor),v.ɵɵtext(80,"\n"),v.ɵɵtemplate(81,Z,0,0,"ng-template",null,27,v.ɵɵtemplateRefExtractor),v.ɵɵtext(83,"\n"),v.ɵɵtemplate(84,ee,0,0,"ng-template",null,28,v.ɵɵtemplateRefExtractor),v.ɵɵtext(86,"\n"),v.ɵɵtemplate(87,te,0,0,"ng-template",null,29,v.ɵɵtemplateRefExtractor),v.ɵɵtext(89,"\n")),2&e){var n=v.ɵɵreference(18);v.ɵɵadvance(15),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(16,15,"myVault"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("appApiAction",t.ciphersComponent.actionPromise),v.ɵɵadvance(3),v.ɵɵproperty("ngIf",n.loading),v.ɵɵadvance(6),v.ɵɵproperty("ciphersComponent",t.ciphersComponent)("modal",t.modal)("deleted",t.deleted),v.ɵɵadvance(3),v.ɵɵproperty("ngIf",!t.deleted),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.deleted),v.ɵɵadvance(8),v.ɵɵproperty("ngIf",t.showUpdateKey),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.showVerifyEmail),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.showBrowserOutdated),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.showPremiumCallout),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(55,17,"organizations"),"\n "),v.ɵɵadvance(2),v.ɵɵpropertyInterpolate("appA11yTitle",v.ɵɵpipeBind1(57,19,"learnMore")),v.ɵɵadvance(9),v.ɵɵproperty("vault",!0)}},directives:[P.GroupingsComponent,k.ApiActionDirective,_.NgIf,A.BulkActionsComponent,O.CiphersComponent,T.SendInfoComponent,M.A11yTitleDirective,B.OrganizationsComponent,D.CalloutComponent,R.VerifyEmailComponent,g.RouterLinkWithHref],pipes:[V.I18nPipe],encapsulation:2}),e}();t.VaultComponent=ne},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1&&this.trustedContacts.splice(t,1)},e.prototype.removeGrantor=function(e){var t=this.grantedContacts.indexOf(e);t>-1&&this.grantedContacts.splice(t,1)},e.prototype.doConfirmation=function(e){return r(this,void 0,void 0,(function(){var t,n,r,o,a,s,p,u;return i(this,(function(i){switch(i.label){case 0:return[4,this.cryptoService.getEncKey()];case 1:return t=i.sent(),[4,this.apiService.getUserPublicKey(e.granteeId)];case 2:n=i.sent(),r=l.Utils.fromB64ToArray(n.publicKey),i.label=3;case 3:return i.trys.push([3,5,,6]),a=(o=console).log,s="User's fingerprint: ",[4,this.cryptoService.getFingerprint(e.granteeId,r.buffer)];case 4:return a.apply(o,[s+i.sent().join("-")]),[3,6];case 5:return i.sent(),[3,6];case 6:return[4,this.cryptoService.rsaEncrypt(t.key,r.buffer)];case 7:return p=i.sent(),(u=new c.EmergencyAccessConfirmRequest).key=p.encryptedString,[4,this.apiService.postEmergencyAccessConfirm(e.id,u)];case 8:return i.sent(),[2]}}))}))},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.ApiService),v.ɵɵdirectiveInject(g.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(x.PlatformUtilsService),v.ɵɵdirectiveInject(b.ToasterService),v.ɵɵdirectiveInject(S.CryptoService),v.ɵɵdirectiveInject(w.StorageService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(I.MessagingService))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["emergency-access"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(T,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(M,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(B,!0,o.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.addEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.takeoverModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.confirmModalRef=n.first))},decls:59,vars:25,consts:[[1,"page-header"],["href","https://bitwarden.com/help/article/emergency-access/","target","_blank","rel","noopener"],[4,"ngIf"],[1,"page-header","d-flex"],["href","#","appStopClick","","class","badge badge-primary",3,"click",4,"ngIf"],[1,"ml-auto","d-flex"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"disabled","click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"page-header","spaced-header"],["addEdit",""],["takeoverTemplate",""],["confirmTemplate",""],["href","#","appStopClick","",1,"badge","badge-primary",3,"click"],[1,"table","table-hover","table-list","mb-0"],[4,"ngFor","ngForOf"],["width","30"],["size","25",3,"data","email","circle","fontSize"],["href","#","appStopClick","",3,"click"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","badge badge-success",4,"ngIf"],["class","badge badge-primary",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["class","dropdown-item","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-success","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-warning","href","#","appStopClick","",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-remove"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"badge","badge-success"],[1,"badge","badge-primary"],[1,"text-muted","d-block"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-envelope-o"],["href","#","appStopClick","",1,"dropdown-item","text-success",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-check"],["href","#","appStopClick","",1,"dropdown-item","text-warning",3,"click"],["class","dropdown-item",3,"routerLink",4,"ngIf"],["aria-hidden","true",1,"fa","fa-fw","fa-key"],[1,"dropdown-item",3,"routerLink"],["aria-hidden","true",1,"fa","fa-fw","fa-eye"]],template:function(e,t){1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"h1"),v.ɵɵtext(3),v.ɵɵpipe(4,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(5,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(6,"\n"),v.ɵɵelementStart(7,"p"),v.ɵɵtext(8),v.ɵɵpipe(9,"i18n"),v.ɵɵelementStart(10,"a",1),v.ɵɵtext(11),v.ɵɵpipe(12,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(13,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(14,"\n\n"),v.ɵɵtemplate(15,D,7,6,"p",2),v.ɵɵtext(16,"\n\n"),v.ɵɵelementStart(17,"div",3),v.ɵɵtext(18,"\n "),v.ɵɵelementStart(19,"h2"),v.ɵɵtext(20),v.ɵɵpipe(21,"i18n"),v.ɵɵtemplate(22,R,3,3,"a",4),v.ɵɵtext(23,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(24,"\n "),v.ɵɵelementStart(25,"div",5),v.ɵɵtext(26,"\n "),v.ɵɵelementStart(27,"button",6),v.ɵɵlistener("click",(function(){return t.invite()})),v.ɵɵtext(28,"\n "),v.ɵɵelement(29,"i",7),v.ɵɵtext(30),v.ɵɵpipe(31,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(32,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(33,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(34,"\n\n"),v.ɵɵtemplate(35,$,7,1,"table",8),v.ɵɵtext(36,"\n\n"),v.ɵɵtemplate(37,Y,3,3,"p",2),v.ɵɵtext(38,"\n\n"),v.ɵɵelementStart(39,"div",9),v.ɵɵtext(40,"\n "),v.ɵɵelementStart(41,"h2"),v.ɵɵtext(42),v.ɵɵpipe(43,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(44,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(45,"\n\n"),v.ɵɵtemplate(46,se,7,1,"table",8),v.ɵɵtext(47,"\n\n"),v.ɵɵtemplate(48,le,3,3,"p",2),v.ɵɵtext(49,"\n\n"),v.ɵɵtemplate(50,ce,0,0,"ng-template",null,10,v.ɵɵtemplateRefExtractor),v.ɵɵtext(52,"\n"),v.ɵɵtemplate(53,pe,0,0,"ng-template",null,11,v.ɵɵtemplateRefExtractor),v.ɵɵtext(55,"\n"),v.ɵɵtemplate(56,ue,0,0,"ng-template",null,12,v.ɵɵtemplateRefExtractor),v.ɵɵtext(58,"\n")),2&e&&(v.ɵɵadvance(3),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(4,13,"emergencyAccess")),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(9,15,"emergencyAccessDesc"),"\n "),v.ɵɵadvance(3),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(12,17,"learnMore"),".\n "),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.isOrganizationOwner),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(21,19,"trustedEmergencyContacts"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.canAccessPremium),v.ɵɵadvance(5),v.ɵɵproperty("disabled",!t.canAccessPremium),v.ɵɵadvance(3),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(31,21,"addEmergencyContact"),"\n "),v.ɵɵadvance(5),v.ɵɵproperty("ngIf",t.trustedContacts&&t.trustedContacts.length),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.trustedContacts||!t.trustedContacts.length),v.ɵɵadvance(5),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(43,23,"designatedEmergencyContacts")),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.grantedContacts&&t.grantedContacts.length),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.grantedContacts||!t.grantedContacts.length))},directives:[E.NgIf,P.StopClickDirective,E.NgForOf,k.AvatarComponent,_.A11yTitleDirective,A.RouterLinkWithHref],pipes:[O.I18nPipe],encapsulation:2}),e}();t.EmergencyAccessComponent=de},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.View=0]="View",e[e.Takeover=1]="Takeover"}(t.EmergencyAccessType||(t.EmergencyAccessType={}))},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(262),s=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.granteeId=n.getResponseProperty("GranteeId"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.type=n.getResponseProperty("Type"),n.status=n.getResponseProperty("Status"),n.waitTimeDays=n.getResponseProperty("WaitTimeDays"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(o.BaseResponse);t.EmergencyAccessGranteeDetailsResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.grantorId=n.getResponseProperty("GrantorId"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.type=n.getResponseProperty("Type"),n.status=n.getResponseProperty("Status"),n.waitTimeDays=n.getResponseProperty("WaitTimeDays"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(o.BaseResponse);t.EmergencyAccessGrantorDetailsResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;return n.keyEncrypted=n.getResponseProperty("KeyEncrypted"),n.kdf=n.getResponseProperty("Kdf"),n.kdfIterations=n.getResponseProperty("KdfIterations"),n}return i(t,e),t}(o.BaseResponse);t.EmergencyAccessTakeoverResponse=c;var p=function(e){function t(t){var n=e.call(this,t)||this;n.ciphers=[],n.keyEncrypted=n.getResponseProperty("KeyEncrypted");var r=n.getResponseProperty("Ciphers");return null!=r&&(n.ciphers=r.map((function(e){return new a.CipherResponse(e)}))),n}return i(t,e),t}(o.BaseResponse);t.EmergencyAccessViewResponse=p},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var U=function(e){function t(t,n,r,i,o,a,l,c,p){var u=e.call(this,t,n,r,i,o,a,l)||this;return u.apiService=c,u.toasterService=p,u.onDone=new s.EventEmitter,u}return i(t,e),t.prototype.ngOnInit=function(){return o(this,void 0,void 0,(function(){var e,t,n;return a(this,(function(r){switch(r.label){case 0:return[4,this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId)];case 1:return null!=(e=r.sent()).data&&e.data.length>0?(t=e.data.map((function(e){return new p.Policy(new c.PolicyData(e))})),n=this,[4,this.policyService.getMasterPasswordPolicyOptions(t)]):[3,3];case 2:n.enforcedPolicyOptions=r.sent(),r.label=3;case 3:return[2]}}))}))},t.prototype.submit=function(){return o(this,void 0,void 0,(function(){var e,t,n,r,i,o,s;return a(this,(function(a){switch(a.label){case 0:return[4,this.strongPassword()];case 1:return a.sent()?[4,this.apiService.postEmergencyAccessTakeover(this.emergencyAccessId)]:[2];case 2:return e=a.sent(),[4,this.cryptoService.rsaDecrypt(e.keyEncrypted)];case 3:return t=a.sent(),null==(n=new u.SymmetricCryptoKey(t))?(this.toasterService.popAsync("error",this.i18nService.t("errorOccurred"),this.i18nService.t("unexpectedError")),[2]):[4,this.cryptoService.makeKey(this.masterPassword,this.email,e.kdf,e.kdfIterations)];case 4:return r=a.sent(),[4,this.cryptoService.hashPassword(this.masterPassword,r)];case 5:return i=a.sent(),[4,this.cryptoService.remakeEncKey(r,n)];case 6:o=a.sent(),(s=new d.EmergencyAccessPasswordRequest).newMasterPasswordHash=i,s.key=o[1].encryptedString,this.apiService.postEmergencyAccessPassword(this.emergencyAccessId,s);try{this.onDone.emit()}catch(l){}return[2]}}))}))},t.ɵfac=function(e){return new(e||t)(m.ɵɵdirectiveInject(h.I18nService),m.ɵɵdirectiveInject(f.CryptoService),m.ɵɵdirectiveInject(v.MessagingService),m.ɵɵdirectiveInject(y.UserService),m.ɵɵdirectiveInject(g.PasswordGenerationService),m.ɵɵdirectiveInject(x.PlatformUtilsService),m.ɵɵdirectiveInject(b.PolicyService),m.ɵɵdirectiveInject(S.ApiService),m.ɵɵdirectiveInject(w.ToasterService))},t.ɵcmp=m.ɵɵdefineComponent({type:t,selectors:[["emergency-access-takeover"]],inputs:{emergencyAccessId:"emergencyAccessId",name:"name",email:"email",kdf:"kdf",kdfIterations:"kdfIterations"},outputs:{onDone:"onDone"},features:[m.ɵɵInheritDefinitionFeature],decls:81,vars:32,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAddEditTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[1,"modal-body"],["type","warning"],["type","info",4,"ngIf"],[1,"row"],[1,"col-6"],[1,"form-group"],["for","masterPassword"],["id","masterPassword","type","password","name","NewMasterPasswordHash","required","","appInputVerbatim","","autocomplete","new-password",1,"form-control","mb-1",3,"ngModel","ngModelChange","input"],[3,"score","showText"],["for","masterPasswordRetype"],["id","masterPasswordRetype","type","password","name","MasterPasswordRetype","required","","appInputVerbatim","","autocomplete","new-password",1,"form-control",3,"ngModel","ngModelChange"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],["type","info"],[1,"mb-0"],[4,"ngIf"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"form",2,3),m.ɵɵlistener("ngSubmit",(function(){return t.submit()})),m.ɵɵtext(6,"\n "),m.ɵɵelementStart(7,"div",4),m.ɵɵtext(8,"\n "),m.ɵɵelementStart(9,"h2",5),m.ɵɵtext(10),m.ɵɵpipe(11,"i18n"),m.ɵɵtemplate(12,T,2,1,"small",6),m.ɵɵtext(13,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(14,"\n "),m.ɵɵelementStart(15,"button",7),m.ɵɵpipe(16,"i18n"),m.ɵɵtext(17,"\n "),m.ɵɵelementStart(18,"span",8),m.ɵɵtext(19,"×"),m.ɵɵelementEnd(),m.ɵɵtext(20,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(21,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(22,"\n "),m.ɵɵelementStart(23,"div",9),m.ɵɵtext(24,"\n "),m.ɵɵelementStart(25,"app-callout",10),m.ɵɵtext(26),m.ɵɵpipe(27,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(28,"\n "),m.ɵɵtemplate(29,F,18,9,"app-callout",11),m.ɵɵtext(30,"\n "),m.ɵɵelementStart(31,"div",12),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"div",13),m.ɵɵtext(34,"\n "),m.ɵɵelementStart(35,"div",14),m.ɵɵtext(36,"\n "),m.ɵɵelementStart(37,"label",15),m.ɵɵtext(38),m.ɵɵpipe(39,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(40,"\n "),m.ɵɵelementStart(41,"input",16),m.ɵɵlistener("ngModelChange",(function(e){return t.masterPassword=e}))("input",(function(){return t.updatePasswordStrength()})),m.ɵɵelementEnd(),m.ɵɵtext(42,"\n "),m.ɵɵelement(43,"app-password-strength",17),m.ɵɵtext(44,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(45,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(46,"\n "),m.ɵɵelementStart(47,"div",13),m.ɵɵtext(48,"\n "),m.ɵɵelementStart(49,"div",14),m.ɵɵtext(50,"\n "),m.ɵɵelementStart(51,"label",18),m.ɵɵtext(52),m.ɵɵpipe(53,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(54,"\n "),m.ɵɵelementStart(55,"input",19),m.ɵɵlistener("ngModelChange",(function(e){return t.masterPasswordRetype=e})),m.ɵɵelementEnd(),m.ɵɵtext(56,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(57,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(58,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(59,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(60,"\n "),m.ɵɵelementStart(61,"div",20),m.ɵɵtext(62,"\n "),m.ɵɵelementStart(63,"button",21),m.ɵɵtext(64,"\n "),m.ɵɵelement(65,"i",22),m.ɵɵpipe(66,"i18n"),m.ɵɵtext(67,"\n "),m.ɵɵelementStart(68,"span"),m.ɵɵtext(69),m.ɵɵpipe(70,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(71,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(72,"\n "),m.ɵɵelementStart(73,"button",23),m.ɵɵtext(74),m.ɵɵpipe(75,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(76,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(77,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(78,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(79,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(80,"\n")),2&e){var n=m.ɵɵreference(5);m.ɵɵadvance(4),m.ɵɵproperty("appApiAction",t.formPromise),m.ɵɵadvance(6),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(11,16,"takeover"),"\n "),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",t.name),m.ɵɵadvance(3),m.ɵɵpropertyInterpolate("appA11yTitle",m.ɵɵpipeBind1(16,18,"close")),m.ɵɵadvance(11),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(27,20,"loggedOutWarning")),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",t.enforcedPolicyOptions),m.ɵɵadvance(9),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(39,22,"newMasterPass")),m.ɵɵadvance(3),m.ɵɵproperty("ngModel",t.masterPassword),m.ɵɵadvance(2),m.ɵɵproperty("score",t.masterPasswordScore)("showText",!0),m.ɵɵadvance(9),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(53,24,"confirmNewMasterPass")),m.ɵɵadvance(3),m.ɵɵproperty("ngModel",t.masterPasswordRetype),m.ɵɵadvance(8),m.ɵɵproperty("disabled",n.loading),m.ɵɵadvance(2),m.ɵɵpropertyInterpolate("title",m.ɵɵpipeBind1(66,26,"loading")),m.ɵɵadvance(4),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(70,28,"save")),m.ɵɵadvance(5),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(75,30,"cancel"))}},directives:[C.NgControlStatusGroup,C.NgForm,I.ApiActionDirective,E.NgIf,P.A11yTitleDirective,k.CalloutComponent,C.DefaultValueAccessor,C.RequiredValidator,_.InputVerbatimDirective,C.NgControlStatus,C.NgModel,A.PasswordStrengthComponent],pipes:[O.I18nPipe],encapsulation:2}),t}(l.ChangePasswordComponent);t.EmergencyAccessTakeoverComponent=U},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1?"&":"?",e+="end="+n),null!=r&&(e+=e.indexOf("?")>-1?"&":"?",e+="continuationToken="+r),e},e.prototype.isJsonResponse=function(e){var t=e.headers.get("content-type");return null!=t&&t.indexOf("application/json")>-1},e.prototype.isTextResponse=function(e){var t=e.headers.get("content-type");return null!=t&&t.indexOf("text")>-1},e}();t.ApiService=Y},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(684),s=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.identifier=n.getResponseProperty("Identifier"),n.name=n.getResponseProperty("Name"),n.businessName=n.getResponseProperty("BusinessName"),n.businessAddress1=n.getResponseProperty("BusinessAddress1"),n.businessAddress2=n.getResponseProperty("BusinessAddress2"),n.businessAddress3=n.getResponseProperty("BusinessAddress3"),n.businessCountry=n.getResponseProperty("BusinessCountry"),n.businessTaxNumber=n.getResponseProperty("BusinessTaxNumber"),n.billingEmail=n.getResponseProperty("BillingEmail");var r=n.getResponseProperty("Plan");return n.plan=null==r?null:new a.PlanResponse(r),n.planType=n.getResponseProperty("PlanType"),n.seats=n.getResponseProperty("Seats"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.useGroups=n.getResponseProperty("UseGroups"),n.useDirectory=n.getResponseProperty("UseDirectory"),n.useEvents=n.getResponseProperty("UseEvents"),n.useTotp=n.getResponseProperty("UseTotp"),n.use2fa=n.getResponseProperty("Use2fa"),n.useApi=n.getResponseProperty("UseApi"),n}return i(t,e),t}(o.BaseResponse);t.OrganizationResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.type=n.getResponseProperty("Type"),n.product=n.getResponseProperty("Product"),n.name=n.getResponseProperty("Name"),n.isAnnual=n.getResponseProperty("IsAnnual"),n.nameLocalizationKey=n.getResponseProperty("NameLocalizationKey"),n.descriptionLocalizationKey=n.getResponseProperty("DescriptionLocalizationKey"),n.canBeUsedByBusiness=n.getResponseProperty("CanBeUsedByBusiness"),n.baseSeats=n.getResponseProperty("BaseSeats"),n.baseStorageGb=n.getResponseProperty("BaseStorageGb"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxUsers=n.getResponseProperty("MaxUsers"),n.hasAdditionalSeatsOption=n.getResponseProperty("HasAdditionalSeatsOption"),n.maxAdditionalSeats=n.getResponseProperty("MaxAdditionalSeats"),n.hasAdditionalStorageOption=n.getResponseProperty("HasAdditionalStorageOption"),n.maxAdditionalStorage=n.getResponseProperty("MaxAdditionalStorage"),n.hasPremiumAccessOption=n.getResponseProperty("HasPremiumAccessOption"),n.trialPeriodDays=n.getResponseProperty("TrialPeriodDays"),n.hasSelfHost=n.getResponseProperty("HasSelfHost"),n.hasPolicies=n.getResponseProperty("HasPolicies"),n.hasGroups=n.getResponseProperty("HasGroups"),n.hasDirectory=n.getResponseProperty("HasDirectory"),n.hasEvents=n.getResponseProperty("HasEvents"),n.hasTotp=n.getResponseProperty("HasTotp"),n.has2fa=n.getResponseProperty("Has2fa"),n.hasApi=n.getResponseProperty("HasApi"),n.hasSso=n.getResponseProperty("HasSso"),n.usersGetPremium=n.getResponseProperty("UsersGetPremium"),n.upgradeSortOrder=n.getResponseProperty("UpgradeSortOrder"),n.displaySortOrder=n.getResponseProperty("SortOrder"),n.legacyYear=n.getResponseProperty("LegacyYear"),n.disabled=n.getResponseProperty("Disabled"),n.stripePlanId=n.getResponseProperty("StripePlanId"),n.stripeSeatPlanId=n.getResponseProperty("StripeSeatPlanId"),n.stripeStoragePlanId=n.getResponseProperty("StripeStoragePlanId"),n.stripePremiumAccessPlanId=n.getResponseProperty("StripePremiumAccessPlanId"),n.basePrice=n.getResponseProperty("BasePrice"),n.seatPrice=n.getResponseProperty("SeatPrice"),n.additionalStoragePricePerGb=n.getResponseProperty("AdditionalStoragePricePerGb"),n.premiumAccessOptionPrice=n.getResponseProperty("PremiumAccessOptionPrice"),n}return i(t,e),t}(n(23).BaseResponse);t.PlanResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=function(e){function t(t){var n=e.call(this,t)||this;n.storageName=n.getResponseProperty("StorageName"),n.storageGb=n.getResponseProperty("StorageGb"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.license=n.getResponseProperty("License"),n.expiration=n.getResponseProperty("Expiration"),n.usingInAppPurchase=n.getResponseProperty("UsingInAppPurchase");var r=n.getResponseProperty("Subscription"),i=n.getResponseProperty("UpcomingInvoice");return n.subscription=null==r?null:new s(r),n.upcomingInvoice=null==i?null:new c(i),n}return i(t,e),t}(o.BaseResponse);t.SubscriptionResponse=a;var s=function(e){function t(t){var n=e.call(this,t)||this;n.items=[],n.trialEndDate=n.getResponseProperty("TrialStartDate"),n.trialEndDate=n.getResponseProperty("TrialEndDate"),n.periodStartDate=n.getResponseProperty("PeriodStartDate"),n.periodEndDate=n.getResponseProperty("PeriodEndDate"),n.cancelledDate=n.getResponseProperty("CancelledDate"),n.cancelAtEndDate=n.getResponseProperty("CancelAtEndDate"),n.status=n.getResponseProperty("Status"),n.cancelled=n.getResponseProperty("Cancelled");var r=n.getResponseProperty("Items");return null!=r&&(n.items=r.map((function(e){return new l(e)}))),n}return i(t,e),t}(o.BaseResponse);t.BillingSubscriptionResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.name=n.getResponseProperty("Name"),n.amount=n.getResponseProperty("Amount"),n.quantity=n.getResponseProperty("Quantity"),n.interval=n.getResponseProperty("Interval"),n}return i(t,e),t}(o.BaseResponse);t.BillingSubscriptionItemResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;return n.date=n.getResponseProperty("Date"),n.amount=n.getResponseProperty("Amount"),n}return i(t,e),t}(o.BaseResponse);t.BillingSubscriptionUpcomingInvoiceResponse=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(30),a=n(23),s=function(e){function t(t){var n=e.call(this,t)||this;n.enabled=n.getResponseProperty("Enabled");var r=n.getResponseProperty("Keys");return n.keys=null==r?null:r.map((function(e){return new l(e)})),n}return i(t,e),t}(a.BaseResponse);t.TwoFactorWebAuthnResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.name=n.getResponseProperty("Name"),n.id=n.getResponseProperty("Id"),n.migrated=n.getResponseProperty("Migrated"),n}return i(t,e),t}(a.BaseResponse);t.KeyResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;n.attestation=n.getResponseProperty("attestation"),n.authenticatorSelection=n.getResponseProperty("authenticatorSelection"),n.challenge=o.Utils.fromUrlB64ToArray(n.getResponseProperty("challenge")),n.excludeCredentials=n.getResponseProperty("excludeCredentials").map((function(e){return e.id=o.Utils.fromUrlB64ToArray(e.id).buffer,e})),n.extensions=n.getResponseProperty("extensions"),n.pubKeyCredParams=n.getResponseProperty("pubKeyCredParams"),n.rp=n.getResponseProperty("rp"),n.timeout=n.getResponseProperty("timeout");var r=n.getResponseProperty("user");return r.id=o.Utils.fromUrlB64ToArray(r.id),n.user=r,n}return i(t,e),t}(a.BaseResponse);t.ChallengeResponse=c},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]5&&(e.passwordHistory=e.passwordHistory.slice(0,5)),a.label=5;case 5:return(p=new m.Cipher).id=e.id,p.folderId=e.folderId,p.favorite=e.favorite,p.organizationId=e.organizationId,p.type=e.type,p.collectionIds=e.collectionIds,p.revisionDate=e.revisionDate,null!=t||null==p.organizationId?[3,7]:[4,this.cryptoService.getOrgKey(p.organizationId)];case 6:if(null==(t=a.sent()))throw new Error("Cannot encrypt cipher for organization. No key.");a.label=7;case 7:return[4,Promise.all([this.encryptObjProperty(e,p,{name:null,notes:null},t),this.encryptCipherData(p,e,t),this.encryptFields(e.fields,t).then((function(e){p.fields=e})),this.encryptPasswordHistories(e.passwordHistory,t).then((function(e){p.passwordHistory=e})),this.encryptAttachments(e.attachments,t).then((function(e){p.attachments=e}))])];case 8:return a.sent(),[2,p]}}))}))},t.prototype.encryptAttachments=function(e,t){return o(this,void 0,void 0,(function(){var n,r,i=this;return a(this,(function(s){switch(s.label){case 0:return null==e||0===e.length?[2,null]:(n=[],r=[],e.forEach((function(e){return o(i,void 0,void 0,(function(){var i,s,l=this;return a(this,(function(c){return(i=new u.Attachment).id=e.id,i.size=e.size,i.sizeName=e.sizeName,i.url=e.url,s=this.encryptObjProperty(e,i,{fileName:null},t).then((function(){return o(l,void 0,void 0,(function(){var n;return a(this,(function(o){switch(o.label){case 0:return null==e.key?[3,2]:(n=i,[4,this.cryptoService.encrypt(e.key.key,t)]);case 1:n.key=o.sent(),o.label=2;case 2:return r.push(i),[2]}}))}))})),n.push(s),[2]}))}))})),[4,Promise.all(n)]);case 1:return s.sent(),[2,r]}}))}))},t.prototype.encryptFields=function(e,t){return o(this,void 0,void 0,(function(){var n,r;return a(this,(function(i){switch(i.label){case 0:return e&&e.length?(n=this,r=[],[4,e.reduce((function(e,i){return e.then((function(){return n.encryptField(i,t)})).then((function(e){r.push(e)}))}),Promise.resolve())]):[2,null];case 1:return i.sent(),[2,r]}}))}))},t.prototype.encryptField=function(e,t){return o(this,void 0,void 0,(function(){var n;return a(this,(function(r){switch(r.label){case 0:return(n=new h.Field).type=e.type,e.type===l.FieldType.Boolean&&"true"!==e.value&&(e.value="false"),[4,this.encryptObjProperty(e,n,{name:null,value:null},t)];case 1:return r.sent(),[2,n]}}))}))},t.prototype.encryptPasswordHistories=function(e,t){return o(this,void 0,void 0,(function(){var n,r;return a(this,(function(i){switch(i.label){case 0:return e&&e.length?(n=this,r=[],[4,e.reduce((function(e,i){return e.then((function(){return n.encryptPasswordHistory(i,t)})).then((function(e){r.push(e)}))}),Promise.resolve())]):[2,null];case 1:return i.sent(),[2,r]}}))}))},t.prototype.encryptPasswordHistory=function(e,t){return o(this,void 0,void 0,(function(){var n;return a(this,(function(r){switch(r.label){case 0:return(n=new g.Password).lastUsedDate=e.lastUsedDate,[4,this.encryptObjProperty(e,n,{password:null},t)];case 1:return r.sent(),[2,n]}}))}))},t.prototype.get=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(R)];case 2:return n=i.sent(),[4,this.storageService.get(D+t)];case 3:return null!=(r=i.sent())&&r.hasOwnProperty(e)?[2,new m.Cipher(r[e],!1,n?n[e]:null)]:[2,null]}}))}))},t.prototype.getAll=function(){return o(this,void 0,void 0,(function(){var e,t,n,r,i;return a(this,(function(o){switch(o.label){case 0:return[4,this.userService.getUserId()];case 1:return e=o.sent(),[4,this.storageService.get(R)];case 2:return t=o.sent(),[4,this.storageService.get(D+e)];case 3:for(i in n=o.sent(),r=[],n)n.hasOwnProperty(i)&&r.push(new m.Cipher(n[i],!1,t?t[i]:null));return[2,r]}}))}))},t.prototype.getAllDecrypted=function(){var e;return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return null==this.decryptedCipherCache?[3,4]:[4,this.userService.getUserId()];case 1:return t=i.sent(),(null!==(e=this.searchService().indexedEntityId)&&void 0!==e?e:t)===t?[3,3]:[4,this.searchService().indexCiphers(t,this.decryptedCipherCache)];case 2:i.sent(),i.label=3;case 3:return[2,this.decryptedCipherCache];case 4:return n=[],[4,this.cryptoService.hasKey()];case 5:if(!i.sent())throw new Error("No key.");return r=[],[4,this.getAll()];case 6:return i.sent().forEach((function(e){r.push(e.decrypt().then((function(e){return n.push(e)})))})),[4,Promise.all(r)];case 7:return i.sent(),n.sort(this.getLocaleSortingFunction()),this.decryptedCipherCache=n,[2,this.decryptedCipherCache]}}))}))},t.prototype.getAllDecryptedForGrouping=function(e,t){return void 0===t&&(t=!0),o(this,void 0,void 0,(function(){return a(this,(function(n){switch(n.label){case 0:return[4,this.getAllDecrypted()];case 1:return[2,n.sent().filter((function(n){return!n.isDeleted&&(!(!t||n.folderId!==e)||!t&&null!=n.collectionIds&&n.collectionIds.indexOf(e)>-1)}))]}}))}))},t.prototype.getAllDecryptedForUrl=function(e,t,n){return void 0===n&&(n=null),o(this,void 0,void 0,(function(){var r,i,o,l,p;return a(this,(function(a){switch(a.label){case 0:return null==e&&null==t?[2,Promise.resolve([])]:(r=B.Utils.getDomain(e),i=null==r?Promise.resolve([]):this.settingsService.getEquivalentDomains().then((function(e){var t=[];return e.forEach((function(e){e.length&&e.indexOf(r)>=0&&(t=t.concat(e))})),t.length||t.push(r),t})),[4,Promise.all([i,this.getAllDecrypted()])]);case 1:return o=a.sent(),l=o[0],p=o[1],null!=n?[3,3]:[4,this.storageService.get(T.ConstantsService.defaultUriMatch)];case 2:null==(n=a.sent())&&(n=c.UriMatchType.Domain),a.label=3;case 3:return[2,p.filter((function(i){if(null!=i.deletedDate)return!1;if(null!=t&&t.indexOf(i.type)>-1)return!0;if(null!=e&&i.type===s.CipherType.Login&&null!=i.login.uris)for(var o=0;o-1){if(!j.has(p.domain))return!0;var u=B.Utils.getHost(e);if(!j.get(p.domain).has(u))return!0}break;case c.UriMatchType.Host:var d=B.Utils.getHost(e);if(null!=d&&d===B.Utils.getHost(p.uri))return!0;break;case c.UriMatchType.Exact:if(e===p.uri)return!0;break;case c.UriMatchType.StartsWith:if(e.startsWith(p.uri))return!0;break;case c.UriMatchType.RegularExpression:try{if(new RegExp(p.uri,"i").test(e))return!0}catch(a){}break;case c.UriMatchType.Never:}}return!1}))]}}))}))},t.prototype.getAllFromApiForOrganization=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.apiService.getCiphersOrganization(e)];case 1:return null!=(t=i.sent())&&null!=t.data&&t.data.length?(n=[],r=[],t.data.forEach((function(e){var t=new p.CipherData(e),i=new m.Cipher(t);r.push(i.decrypt().then((function(e){return n.push(e)})))})),[4,Promise.all(r)]):[3,3];case 2:return i.sent(),n.sort(this.getLocaleSortingFunction()),[2,n];case 3:return[2,[]]}}))}))},t.prototype.getLastUsedForUrl=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){return[2,this.getCipherForUrl(e,!0,!1)]}))}))},t.prototype.getLastLaunchedForUrl=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){return[2,this.getCipherForUrl(e,!1,!0)]}))}))},t.prototype.getNextCipherForUrl=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){return[2,this.getCipherForUrl(e,!1,!1)]}))}))},t.prototype.updateLastUsedIndexForUrl=function(e){this.sortedCiphersCache.updateLastUsedIndex(e)},t.prototype.updateLastUsedDate=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.storageService.get(R)];case 1:return(t=i.sent())||(t={}),t[e]?t[e].lastUsedDate=(new Date).getTime():t[e]={lastUsedDate:(new Date).getTime()},[4,this.storageService.save(R,t)];case 2:if(i.sent(),null==this.decryptedCipherCache)return[2];for(n=0;nr?-1:null!=r&&null==n?1:0},t.prototype.sortCiphersByLastUsedThenName=function(e,t){var n=this.sortCiphersByLastUsed(e,t);return 0!==n?n:this.getLocaleSortingFunction()(e,t)},t.prototype.getLocaleSortingFunction=function(){var e=this;return function(t,n){var r=t.name,i=n.name;if(null==r&&null!=i)return-1;if(null!=r&&null==i)return 1;if(null==r&&null==i)return 0;var o=e.i18nService.collator?e.i18nService.collator.compare(r,i):r.localeCompare(i);return 0!==o||t.type!==s.CipherType.Login||n.type!==s.CipherType.Login?o:(null!=t.login.username&&(r+=t.login.username),null!=n.login.username&&(i+=n.login.username),e.i18nService.collator?e.i18nService.collator.compare(r,i):r.localeCompare(i))}},t.prototype.softDelete=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(D+t)];case 2:return null==(n=i.sent())?[2]:(r=function(e){null!=n[e]&&(n[e].deletedDate=(new Date).toISOString())},"string"==typeof e?r(e):e.forEach(r),[4,this.storageService.save(D+t,n)]);case 3:return i.sent(),this.decryptedCipherCache=null,[2]}}))}))},t.prototype.softDeleteWithServer=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return[4,this.apiService.putDeleteCipher(e)];case 1:return t.sent(),[4,this.softDelete(e)];case 2:return t.sent(),[2]}}))}))},t.prototype.softDeleteManyWithServer=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return[4,this.apiService.putDeleteManyCiphers(new b.CipherBulkDeleteRequest(e))];case 1:return t.sent(),[4,this.softDelete(e)];case 2:return t.sent(),[2]}}))}))},t.prototype.restore=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(D+t)];case 2:return null==(n=i.sent())?[2]:(r=function(e){null!=n[e.id]&&(n[e.id].deletedDate=null,n[e.id].revisionDate=e.revisionDate)},"Array"===e.constructor.name?e.forEach(r):r(e),[4,this.storageService.save(D+t,n)]);case 3:return i.sent(),this.decryptedCipherCache=null,[2]}}))}))},t.prototype.restoreWithServer=function(e){return o(this,void 0,void 0,(function(){var t;return a(this,(function(n){switch(n.label){case 0:return[4,this.apiService.putRestoreCipher(e)];case 1:return t=n.sent(),[4,this.restore({id:e,revisionDate:t.revisionDate})];case 2:return n.sent(),[2]}}))}))},t.prototype.restoreManyWithServer=function(e){return o(this,void 0,void 0,(function(){var t,n,r,i,o;return a(this,(function(a){switch(a.label){case 0:return[4,this.apiService.putRestoreManyCiphers(new w.CipherBulkRestoreRequest(e))];case 1:for(t=a.sent(),n=[],r=0,i=t.data;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?[2,this.orgKeys]:[4,this.storageService.get(x)];case 1:if(null==(e=a.sent()))return[2,null];for(i in t=new Map,n=!1,r=[],e)r.push(i);o=0,a.label=2;case 2:return o53)throw new Error("We cannot generate numbers larger than 53 bits.");return o=Math.ceil(i/8),s=Math.pow(2,i)-1,c=Uint8Array.bind,[4,this.cryptoFunctionService.randomBytes(o)];case 1:for(l=new(c.apply(Uint8Array,[void 0,a.sent()])),p=8*(o-1),u=0;u=r?[2,this.randomNumber(e,t)]:[2,e+n]}}))}))},e.prototype.aesEncrypt=function(e,t){return o(this,void 0,void 0,(function(){var n,r,i,o,s,l;return a(this,(function(a){switch(a.label){case 0:return n=new u.EncryptedObject,r=n,[4,this.getKeyForEncryption(t)];case 1:return r.key=a.sent(),i=n,[4,this.cryptoFunctionService.randomBytes(16)];case 2:return i.iv=a.sent(),o=n,[4,this.cryptoFunctionService.aesEncrypt(e,n.iv,n.key.encKey)];case 3:return o.data=a.sent(),null==n.key.macKey?[3,5]:((s=new Uint8Array(n.iv.byteLength+n.data.byteLength)).set(new Uint8Array(n.iv),0),s.set(new Uint8Array(n.data),n.iv.byteLength),l=n,[4,this.cryptoFunctionService.hmac(s.buffer,n.key.macKey,"sha256")]);case 4:l.mac=a.sent(),a.label=5;case 5:return[2,n]}}))}))},e.prototype.aesDecryptToUtf8=function(e,t,n,r,i){return o(this,void 0,void 0,(function(){var o,s,l,c;return a(this,(function(a){switch(a.label){case 0:return[4,this.getKeyForEncryption(i)];case 1:return o=a.sent(),null!=(s=this.resolveLegacyKey(e,o)).macKey&&null==r?(this.logService.error("mac required."),[2,null]):s.encType!==e?(this.logService.error("encType unavailable."),[2,null]):null==(l=this.cryptoFunctionService.aesDecryptFastParameters(t,n,r,s)).macKey||null==l.mac?[3,4]:[4,this.cryptoFunctionService.hmacFast(l.macData,l.macKey,"sha256")];case 2:return c=a.sent(),[4,this.cryptoFunctionService.compareFast(l.mac,c)];case 3:if(!a.sent())return this.logService.error("mac failed."),[2,null];a.label=4;case 4:return[2,this.cryptoFunctionService.aesDecryptFast(l)]}}))}))},e.prototype.aesDecryptToBytes=function(e,t,n,r,i){return o(this,void 0,void 0,(function(){var o,s,l,c;return a(this,(function(a){switch(a.label){case 0:return[4,this.getKeyForEncryption(i)];case 1:return o=a.sent(),null!=(s=this.resolveLegacyKey(e,o)).macKey&&null==r?[2,null]:s.encType!==e?[2,null]:null==s.macKey||null==r?[3,4]:((l=new Uint8Array(n.byteLength+t.byteLength)).set(new Uint8Array(n),0),l.set(new Uint8Array(t),n.byteLength),[4,this.cryptoFunctionService.hmac(l.buffer,s.macKey,"sha256")]);case 2:return null===(c=a.sent())?[2,null]:[4,this.cryptoFunctionService.compare(r,c)];case 3:if(!a.sent())return this.logService.error("mac failed."),[2,null];a.label=4;case 4:return[4,this.cryptoFunctionService.aesDecrypt(t,n,s.encKey)];case 5:return[2,a.sent()]}}))}))},e.prototype.getKeyForEncryption=function(e){return o(this,void 0,void 0,(function(){var t;return a(this,(function(n){switch(n.label){case 0:return null!=e?[2,e]:[4,this.getEncKey()];case 1:return null!=(t=n.sent())?[2,t]:[4,this.getKey()];case 2:return[2,n.sent()]}}))}))},e.prototype.resolveLegacyKey=function(e,t){return e===l.EncryptionType.AesCbc128_HmacSha256_B64&&t.encType===l.EncryptionType.AesCbc256_B64?(null==this.legacyEtmKey&&(this.legacyEtmKey=new m.SymmetricCryptoKey(t.key,l.EncryptionType.AesCbc128_HmacSha256_B64)),this.legacyEtmKey):t},e.prototype.stretchKey=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return t=new Uint8Array(64),[4,this.cryptoFunctionService.hkdfExpand(e.key,"enc",32,"sha256")];case 1:return n=i.sent(),[4,this.cryptoFunctionService.hkdfExpand(e.key,"mac",32,"sha256")];case 2:return r=i.sent(),t.set(new Uint8Array(n)),t.set(new Uint8Array(r),32),[2,new m.SymmetricCryptoKey(t.buffer)]}}))}))},e.prototype.hashPhrase=function(e,t){return void 0===t&&(t=64),o(this,void 0,void 0,(function(){var n,r,i,o,l,c,p;return a(this,(function(a){if(n=Math.log(y.EEFLongWordList.length)/Math.log(2),r=Math.ceil(t/n),i=Array.from(new Uint8Array(e)),o=4*i.length,r*n>o)throw new Error("Output entropy of hash function is too small");for(l=[],c=s.fromArray(i,256);r--;)p=c.mod(y.EEFLongWordList.length),c=c.divide(y.EEFLongWordList.length),l.push(y.EEFLongWordList[p]);return[2,l]}))}))},e.prototype.buildEncKey=function(e,t){return o(this,void 0,void 0,(function(){var n,r;return a(this,(function(i){switch(i.label){case 0:return n=null,32!==e.key.byteLength?[3,3]:[4,this.stretchKey(e)];case 1:return r=i.sent(),[4,this.encrypt(t,r)];case 2:return n=i.sent(),[3,6];case 3:return 64!==e.key.byteLength?[3,5]:[4,this.encrypt(t,e)];case 4:return n=i.sent(),[3,6];case 5:throw new Error("Invalid key size.");case 6:return[2,[new m.SymmetricCryptoKey(t),n]]}}))}))},r([f.sequentialize((function(){return"getEncKey"})),i("design:type",Function),i("design:paramtypes",[m.SymmetricCryptoKey]),i("design:returntype",Promise)],e.prototype,"getEncKey",null),r([f.sequentialize((function(){return"getOrgKeys"})),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",Promise)],e.prototype,"getOrgKeys",null),e}();t.CryptoService=C},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EEFLongWordList=["abacus","abdomen","abdominal","abide","abiding","ability","ablaze","able","abnormal","abrasion","abrasive","abreast","abridge","abroad","abruptly","absence","absentee","absently","absinthe","absolute","absolve","abstain","abstract","absurd","accent","acclaim","acclimate","accompany","account","accuracy","accurate","accustom","acetone","achiness","aching","acid","acorn","acquaint","acquire","acre","acrobat","acronym","acting","action","activate","activator","active","activism","activist","activity","actress","acts","acutely","acuteness","aeration","aerobics","aerosol","aerospace","afar","affair","affected","affecting","affection","affidavit","affiliate","affirm","affix","afflicted","affluent","afford","affront","aflame","afloat","aflutter","afoot","afraid","afterglow","afterlife","aftermath","aftermost","afternoon","aged","ageless","agency","agenda","agent","aggregate","aghast","agile","agility","aging","agnostic","agonize","agonizing","agony","agreeable","agreeably","agreed","agreeing","agreement","aground","ahead","ahoy","aide","aids","aim","ajar","alabaster","alarm","albatross","album","alfalfa","algebra","algorithm","alias","alibi","alienable","alienate","aliens","alike","alive","alkaline","alkalize","almanac","almighty","almost","aloe","aloft","aloha","alone","alongside","aloof","alphabet","alright","although","altitude","alto","aluminum","alumni","always","amaretto","amaze","amazingly","amber","ambiance","ambiguity","ambiguous","ambition","ambitious","ambulance","ambush","amendable","amendment","amends","amenity","amiable","amicably","amid","amigo","amino","amiss","ammonia","ammonium","amnesty","amniotic","among","amount","amperage","ample","amplifier","amplify","amply","amuck","amulet","amusable","amused","amusement","amuser","amusing","anaconda","anaerobic","anagram","anatomist","anatomy","anchor","anchovy","ancient","android","anemia","anemic","aneurism","anew","angelfish","angelic","anger","angled","angler","angles","angling","angrily","angriness","anguished","angular","animal","animate","animating","animation","animator","anime","animosity","ankle","annex","annotate","announcer","annoying","annually","annuity","anointer","another","answering","antacid","antarctic","anteater","antelope","antennae","anthem","anthill","anthology","antibody","antics","antidote","antihero","antiquely","antiques","antiquity","antirust","antitoxic","antitrust","antiviral","antivirus","antler","antonym","antsy","anvil","anybody","anyhow","anymore","anyone","anyplace","anything","anytime","anyway","anywhere","aorta","apache","apostle","appealing","appear","appease","appeasing","appendage","appendix","appetite","appetizer","applaud","applause","apple","appliance","applicant","applied","apply","appointee","appraisal","appraiser","apprehend","approach","approval","approve","apricot","april","apron","aptitude","aptly","aqua","aqueduct","arbitrary","arbitrate","ardently","area","arena","arguable","arguably","argue","arise","armadillo","armband","armchair","armed","armful","armhole","arming","armless","armoire","armored","armory","armrest","army","aroma","arose","around","arousal","arrange","array","arrest","arrival","arrive","arrogance","arrogant","arson","art","ascend","ascension","ascent","ascertain","ashamed","ashen","ashes","ashy","aside","askew","asleep","asparagus","aspect","aspirate","aspire","aspirin","astonish","astound","astride","astrology","astronaut","astronomy","astute","atlantic","atlas","atom","atonable","atop","atrium","atrocious","atrophy","attach","attain","attempt","attendant","attendee","attention","attentive","attest","attic","attire","attitude","attractor","attribute","atypical","auction","audacious","audacity","audible","audibly","audience","audio","audition","augmented","august","authentic","author","autism","autistic","autograph","automaker","automated","automatic","autopilot","available","avalanche","avatar","avenge","avenging","avenue","average","aversion","avert","aviation","aviator","avid","avoid","await","awaken","award","aware","awhile","awkward","awning","awoke","awry","axis","babble","babbling","babied","baboon","backache","backboard","backboned","backdrop","backed","backer","backfield","backfire","backhand","backing","backlands","backlash","backless","backlight","backlit","backlog","backpack","backpedal","backrest","backroom","backshift","backside","backslid","backspace","backspin","backstab","backstage","backtalk","backtrack","backup","backward","backwash","backwater","backyard","bacon","bacteria","bacterium","badass","badge","badland","badly","badness","baffle","baffling","bagel","bagful","baggage","bagged","baggie","bagginess","bagging","baggy","bagpipe","baguette","baked","bakery","bakeshop","baking","balance","balancing","balcony","balmy","balsamic","bamboo","banana","banish","banister","banjo","bankable","bankbook","banked","banker","banking","banknote","bankroll","banner","bannister","banshee","banter","barbecue","barbed","barbell","barber","barcode","barge","bargraph","barista","baritone","barley","barmaid","barman","barn","barometer","barrack","barracuda","barrel","barrette","barricade","barrier","barstool","bartender","barterer","bash","basically","basics","basil","basin","basis","basket","batboy","batch","bath","baton","bats","battalion","battered","battering","battery","batting","battle","bauble","bazooka","blabber","bladder","blade","blah","blame","blaming","blanching","blandness","blank","blaspheme","blasphemy","blast","blatancy","blatantly","blazer","blazing","bleach","bleak","bleep","blemish","blend","bless","blighted","blimp","bling","blinked","blinker","blinking","blinks","blip","blissful","blitz","blizzard","bloated","bloating","blob","blog","bloomers","blooming","blooper","blot","blouse","blubber","bluff","bluish","blunderer","blunt","blurb","blurred","blurry","blurt","blush","blustery","boaster","boastful","boasting","boat","bobbed","bobbing","bobble","bobcat","bobsled","bobtail","bodacious","body","bogged","boggle","bogus","boil","bok","bolster","bolt","bonanza","bonded","bonding","bondless","boned","bonehead","boneless","bonelike","boney","bonfire","bonnet","bonsai","bonus","bony","boogeyman","boogieman","book","boondocks","booted","booth","bootie","booting","bootlace","bootleg","boots","boozy","borax","boring","borough","borrower","borrowing","boss","botanical","botanist","botany","botch","both","bottle","bottling","bottom","bounce","bouncing","bouncy","bounding","boundless","bountiful","bovine","boxcar","boxer","boxing","boxlike","boxy","breach","breath","breeches","breeching","breeder","breeding","breeze","breezy","brethren","brewery","brewing","briar","bribe","brick","bride","bridged","brigade","bright","brilliant","brim","bring","brink","brisket","briskly","briskness","bristle","brittle","broadband","broadcast","broaden","broadly","broadness","broadside","broadways","broiler","broiling","broken","broker","bronchial","bronco","bronze","bronzing","brook","broom","brought","browbeat","brownnose","browse","browsing","bruising","brunch","brunette","brunt","brush","brussels","brute","brutishly","bubble","bubbling","bubbly","buccaneer","bucked","bucket","buckle","buckshot","buckskin","bucktooth","buckwheat","buddhism","buddhist","budding","buddy","budget","buffalo","buffed","buffer","buffing","buffoon","buggy","bulb","bulge","bulginess","bulgur","bulk","bulldog","bulldozer","bullfight","bullfrog","bullhorn","bullion","bullish","bullpen","bullring","bullseye","bullwhip","bully","bunch","bundle","bungee","bunion","bunkbed","bunkhouse","bunkmate","bunny","bunt","busboy","bush","busily","busload","bust","busybody","buzz","cabana","cabbage","cabbie","cabdriver","cable","caboose","cache","cackle","cacti","cactus","caddie","caddy","cadet","cadillac","cadmium","cage","cahoots","cake","calamari","calamity","calcium","calculate","calculus","caliber","calibrate","calm","caloric","calorie","calzone","camcorder","cameo","camera","camisole","camper","campfire","camping","campsite","campus","canal","canary","cancel","candied","candle","candy","cane","canine","canister","cannabis","canned","canning","cannon","cannot","canola","canon","canopener","canopy","canteen","canyon","capable","capably","capacity","cape","capillary","capital","capitol","capped","capricorn","capsize","capsule","caption","captivate","captive","captivity","capture","caramel","carat","caravan","carbon","cardboard","carded","cardiac","cardigan","cardinal","cardstock","carefully","caregiver","careless","caress","caretaker","cargo","caring","carless","carload","carmaker","carnage","carnation","carnival","carnivore","carol","carpenter","carpentry","carpool","carport","carried","carrot","carrousel","carry","cartel","cartload","carton","cartoon","cartridge","cartwheel","carve","carving","carwash","cascade","case","cash","casing","casino","casket","cassette","casually","casualty","catacomb","catalog","catalyst","catalyze","catapult","cataract","catatonic","catcall","catchable","catcher","catching","catchy","caterer","catering","catfight","catfish","cathedral","cathouse","catlike","catnap","catnip","catsup","cattail","cattishly","cattle","catty","catwalk","caucasian","caucus","causal","causation","cause","causing","cauterize","caution","cautious","cavalier","cavalry","caviar","cavity","cedar","celery","celestial","celibacy","celibate","celtic","cement","census","ceramics","ceremony","certainly","certainty","certified","certify","cesarean","cesspool","chafe","chaffing","chain","chair","chalice","challenge","chamber","chamomile","champion","chance","change","channel","chant","chaos","chaperone","chaplain","chapped","chaps","chapter","character","charbroil","charcoal","charger","charging","chariot","charity","charm","charred","charter","charting","chase","chasing","chaste","chastise","chastity","chatroom","chatter","chatting","chatty","cheating","cheddar","cheek","cheer","cheese","cheesy","chef","chemicals","chemist","chemo","cherisher","cherub","chess","chest","chevron","chevy","chewable","chewer","chewing","chewy","chief","chihuahua","childcare","childhood","childish","childless","childlike","chili","chill","chimp","chip","chirping","chirpy","chitchat","chivalry","chive","chloride","chlorine","choice","chokehold","choking","chomp","chooser","choosing","choosy","chop","chosen","chowder","chowtime","chrome","chubby","chuck","chug","chummy","chump","chunk","churn","chute","cider","cilantro","cinch","cinema","cinnamon","circle","circling","circular","circulate","circus","citable","citadel","citation","citizen","citric","citrus","city","civic","civil","clad","claim","clambake","clammy","clamor","clamp","clamshell","clang","clanking","clapped","clapper","clapping","clarify","clarinet","clarity","clash","clasp","class","clatter","clause","clavicle","claw","clay","clean","clear","cleat","cleaver","cleft","clench","clergyman","clerical","clerk","clever","clicker","client","climate","climatic","cling","clinic","clinking","clip","clique","cloak","clobber","clock","clone","cloning","closable","closure","clothes","clothing","cloud","clover","clubbed","clubbing","clubhouse","clump","clumsily","clumsy","clunky","clustered","clutch","clutter","coach","coagulant","coastal","coaster","coasting","coastland","coastline","coat","coauthor","cobalt","cobbler","cobweb","cocoa","coconut","cod","coeditor","coerce","coexist","coffee","cofounder","cognition","cognitive","cogwheel","coherence","coherent","cohesive","coil","coke","cola","cold","coleslaw","coliseum","collage","collapse","collar","collected","collector","collide","collie","collision","colonial","colonist","colonize","colony","colossal","colt","coma","come","comfort","comfy","comic","coming","comma","commence","commend","comment","commerce","commode","commodity","commodore","common","commotion","commute","commuting","compacted","compacter","compactly","compactor","companion","company","compare","compel","compile","comply","component","composed","composer","composite","compost","composure","compound","compress","comprised","computer","computing","comrade","concave","conceal","conceded","concept","concerned","concert","conch","concierge","concise","conclude","concrete","concur","condense","condiment","condition","condone","conducive","conductor","conduit","cone","confess","confetti","confidant","confident","confider","confiding","configure","confined","confining","confirm","conflict","conform","confound","confront","confused","confusing","confusion","congenial","congested","congrats","congress","conical","conjoined","conjure","conjuror","connected","connector","consensus","consent","console","consoling","consonant","constable","constant","constrain","constrict","construct","consult","consumer","consuming","contact","container","contempt","contend","contented","contently","contents","contest","context","contort","contour","contrite","control","contusion","convene","convent","copartner","cope","copied","copier","copilot","coping","copious","copper","copy","coral","cork","cornball","cornbread","corncob","cornea","corned","corner","cornfield","cornflake","cornhusk","cornmeal","cornstalk","corny","coronary","coroner","corporal","corporate","corral","correct","corridor","corrode","corroding","corrosive","corsage","corset","cortex","cosigner","cosmetics","cosmic","cosmos","cosponsor","cost","cottage","cotton","couch","cough","could","countable","countdown","counting","countless","country","county","courier","covenant","cover","coveted","coveting","coyness","cozily","coziness","cozy","crabbing","crabgrass","crablike","crabmeat","cradle","cradling","crafter","craftily","craftsman","craftwork","crafty","cramp","cranberry","crane","cranial","cranium","crank","crate","crave","craving","crawfish","crawlers","crawling","crayfish","crayon","crazed","crazily","craziness","crazy","creamed","creamer","creamlike","crease","creasing","creatable","create","creation","creative","creature","credible","credibly","credit","creed","creme","creole","crepe","crept","crescent","crested","cresting","crestless","crevice","crewless","crewman","crewmate","crib","cricket","cried","crier","crimp","crimson","cringe","cringing","crinkle","crinkly","crisped","crisping","crisply","crispness","crispy","criteria","critter","croak","crock","crook","croon","crop","cross","crouch","crouton","crowbar","crowd","crown","crucial","crudely","crudeness","cruelly","cruelness","cruelty","crumb","crummiest","crummy","crumpet","crumpled","cruncher","crunching","crunchy","crusader","crushable","crushed","crusher","crushing","crust","crux","crying","cryptic","crystal","cubbyhole","cube","cubical","cubicle","cucumber","cuddle","cuddly","cufflink","culinary","culminate","culpable","culprit","cultivate","cultural","culture","cupbearer","cupcake","cupid","cupped","cupping","curable","curator","curdle","cure","curfew","curing","curled","curler","curliness","curling","curly","curry","curse","cursive","cursor","curtain","curtly","curtsy","curvature","curve","curvy","cushy","cusp","cussed","custard","custodian","custody","customary","customer","customize","customs","cut","cycle","cyclic","cycling","cyclist","cylinder","cymbal","cytoplasm","cytoplast","dab","dad","daffodil","dagger","daily","daintily","dainty","dairy","daisy","dallying","dance","dancing","dandelion","dander","dandruff","dandy","danger","dangle","dangling","daredevil","dares","daringly","darkened","darkening","darkish","darkness","darkroom","darling","darn","dart","darwinism","dash","dastardly","data","datebook","dating","daughter","daunting","dawdler","dawn","daybed","daybreak","daycare","daydream","daylight","daylong","dayroom","daytime","dazzler","dazzling","deacon","deafening","deafness","dealer","dealing","dealmaker","dealt","dean","debatable","debate","debating","debit","debrief","debtless","debtor","debug","debunk","decade","decaf","decal","decathlon","decay","deceased","deceit","deceiver","deceiving","december","decency","decent","deception","deceptive","decibel","decidable","decimal","decimeter","decipher","deck","declared","decline","decode","decompose","decorated","decorator","decoy","decrease","decree","dedicate","dedicator","deduce","deduct","deed","deem","deepen","deeply","deepness","deface","defacing","defame","default","defeat","defection","defective","defendant","defender","defense","defensive","deferral","deferred","defiance","defiant","defile","defiling","define","definite","deflate","deflation","deflator","deflected","deflector","defog","deforest","defraud","defrost","deftly","defuse","defy","degraded","degrading","degrease","degree","dehydrate","deity","dejected","delay","delegate","delegator","delete","deletion","delicacy","delicate","delicious","delighted","delirious","delirium","deliverer","delivery","delouse","delta","deluge","delusion","deluxe","demanding","demeaning","demeanor","demise","democracy","democrat","demote","demotion","demystify","denatured","deniable","denial","denim","denote","dense","density","dental","dentist","denture","deny","deodorant","deodorize","departed","departure","depict","deplete","depletion","deplored","deploy","deport","depose","depraved","depravity","deprecate","depress","deprive","depth","deputize","deputy","derail","deranged","derby","derived","desecrate","deserve","deserving","designate","designed","designer","designing","deskbound","desktop","deskwork","desolate","despair","despise","despite","destiny","destitute","destruct","detached","detail","detection","detective","detector","detention","detergent","detest","detonate","detonator","detoxify","detract","deuce","devalue","deviancy","deviant","deviate","deviation","deviator","device","devious","devotedly","devotee","devotion","devourer","devouring","devoutly","dexterity","dexterous","diabetes","diabetic","diabolic","diagnoses","diagnosis","diagram","dial","diameter","diaper","diaphragm","diary","dice","dicing","dictate","dictation","dictator","difficult","diffused","diffuser","diffusion","diffusive","dig","dilation","diligence","diligent","dill","dilute","dime","diminish","dimly","dimmed","dimmer","dimness","dimple","diner","dingbat","dinghy","dinginess","dingo","dingy","dining","dinner","diocese","dioxide","diploma","dipped","dipper","dipping","directed","direction","directive","directly","directory","direness","dirtiness","disabled","disagree","disallow","disarm","disarray","disaster","disband","disbelief","disburse","discard","discern","discharge","disclose","discolor","discount","discourse","discover","discuss","disdain","disengage","disfigure","disgrace","dish","disinfect","disjoin","disk","dislike","disliking","dislocate","dislodge","disloyal","dismantle","dismay","dismiss","dismount","disobey","disorder","disown","disparate","disparity","dispatch","dispense","dispersal","dispersed","disperser","displace","display","displease","disposal","dispose","disprove","dispute","disregard","disrupt","dissuade","distance","distant","distaste","distill","distinct","distort","distract","distress","district","distrust","ditch","ditto","ditzy","dividable","divided","dividend","dividers","dividing","divinely","diving","divinity","divisible","divisibly","division","divisive","divorcee","dizziness","dizzy","doable","docile","dock","doctrine","document","dodge","dodgy","doily","doing","dole","dollar","dollhouse","dollop","dolly","dolphin","domain","domelike","domestic","dominion","dominoes","donated","donation","donator","donor","donut","doodle","doorbell","doorframe","doorknob","doorman","doormat","doornail","doorpost","doorstep","doorstop","doorway","doozy","dork","dormitory","dorsal","dosage","dose","dotted","doubling","douche","dove","down","dowry","doze","drab","dragging","dragonfly","dragonish","dragster","drainable","drainage","drained","drainer","drainpipe","dramatic","dramatize","drank","drapery","drastic","draw","dreaded","dreadful","dreadlock","dreamboat","dreamily","dreamland","dreamless","dreamlike","dreamt","dreamy","drearily","dreary","drench","dress","drew","dribble","dried","drier","drift","driller","drilling","drinkable","drinking","dripping","drippy","drivable","driven","driver","driveway","driving","drizzle","drizzly","drone","drool","droop","drop-down","dropbox","dropkick","droplet","dropout","dropper","drove","drown","drowsily","drudge","drum","dry","dubbed","dubiously","duchess","duckbill","ducking","duckling","ducktail","ducky","duct","dude","duffel","dugout","duh","duke","duller","dullness","duly","dumping","dumpling","dumpster","duo","dupe","duplex","duplicate","duplicity","durable","durably","duration","duress","during","dusk","dust","dutiful","duty","duvet","dwarf","dweeb","dwelled","dweller","dwelling","dwindle","dwindling","dynamic","dynamite","dynasty","dyslexia","dyslexic","each","eagle","earache","eardrum","earflap","earful","earlobe","early","earmark","earmuff","earphone","earpiece","earplugs","earring","earshot","earthen","earthlike","earthling","earthly","earthworm","earthy","earwig","easeful","easel","easiest","easily","easiness","easing","eastbound","eastcoast","easter","eastward","eatable","eaten","eatery","eating","eats","ebay","ebony","ebook","ecard","eccentric","echo","eclair","eclipse","ecologist","ecology","economic","economist","economy","ecosphere","ecosystem","edge","edginess","edging","edgy","edition","editor","educated","education","educator","eel","effective","effects","efficient","effort","eggbeater","egging","eggnog","eggplant","eggshell","egomaniac","egotism","egotistic","either","eject","elaborate","elastic","elated","elbow","eldercare","elderly","eldest","electable","election","elective","elephant","elevate","elevating","elevation","elevator","eleven","elf","eligible","eligibly","eliminate","elite","elitism","elixir","elk","ellipse","elliptic","elm","elongated","elope","eloquence","eloquent","elsewhere","elude","elusive","elves","email","embargo","embark","embassy","embattled","embellish","ember","embezzle","emblaze","emblem","embody","embolism","emboss","embroider","emcee","emerald","emergency","emission","emit","emote","emoticon","emotion","empathic","empathy","emperor","emphases","emphasis","emphasize","emphatic","empirical","employed","employee","employer","emporium","empower","emptier","emptiness","empty","emu","enable","enactment","enamel","enchanted","enchilada","encircle","enclose","enclosure","encode","encore","encounter","encourage","encroach","encrust","encrypt","endanger","endeared","endearing","ended","ending","endless","endnote","endocrine","endorphin","endorse","endowment","endpoint","endurable","endurance","enduring","energetic","energize","energy","enforced","enforcer","engaged","engaging","engine","engorge","engraved","engraver","engraving","engross","engulf","enhance","enigmatic","enjoyable","enjoyably","enjoyer","enjoying","enjoyment","enlarged","enlarging","enlighten","enlisted","enquirer","enrage","enrich","enroll","enslave","ensnare","ensure","entail","entangled","entering","entertain","enticing","entire","entitle","entity","entomb","entourage","entrap","entree","entrench","entrust","entryway","entwine","enunciate","envelope","enviable","enviably","envious","envision","envoy","envy","enzyme","epic","epidemic","epidermal","epidermis","epidural","epilepsy","epileptic","epilogue","epiphany","episode","equal","equate","equation","equator","equinox","equipment","equity","equivocal","eradicate","erasable","erased","eraser","erasure","ergonomic","errand","errant","erratic","error","erupt","escalate","escalator","escapable","escapade","escapist","escargot","eskimo","esophagus","espionage","espresso","esquire","essay","essence","essential","establish","estate","esteemed","estimate","estimator","estranged","estrogen","etching","eternal","eternity","ethanol","ether","ethically","ethics","euphemism","evacuate","evacuee","evade","evaluate","evaluator","evaporate","evasion","evasive","even","everglade","evergreen","everybody","everyday","everyone","evict","evidence","evident","evil","evoke","evolution","evolve","exact","exalted","example","excavate","excavator","exceeding","exception","excess","exchange","excitable","exciting","exclaim","exclude","excluding","exclusion","exclusive","excretion","excretory","excursion","excusable","excusably","excuse","exemplary","exemplify","exemption","exerciser","exert","exes","exfoliate","exhale","exhaust","exhume","exile","existing","exit","exodus","exonerate","exorcism","exorcist","expand","expanse","expansion","expansive","expectant","expedited","expediter","expel","expend","expenses","expensive","expert","expire","expiring","explain","expletive","explicit","explode","exploit","explore","exploring","exponent","exporter","exposable","expose","exposure","express","expulsion","exquisite","extended","extending","extent","extenuate","exterior","external","extinct","extortion","extradite","extras","extrovert","extrude","extruding","exuberant","fable","fabric","fabulous","facebook","facecloth","facedown","faceless","facelift","faceplate","faceted","facial","facility","facing","facsimile","faction","factoid","factor","factsheet","factual","faculty","fade","fading","failing","falcon","fall","false","falsify","fame","familiar","family","famine","famished","fanatic","fancied","fanciness","fancy","fanfare","fang","fanning","fantasize","fantastic","fantasy","fascism","fastball","faster","fasting","fastness","faucet","favorable","favorably","favored","favoring","favorite","fax","feast","federal","fedora","feeble","feed","feel","feisty","feline","felt-tip","feminine","feminism","feminist","feminize","femur","fence","fencing","fender","ferment","fernlike","ferocious","ferocity","ferret","ferris","ferry","fervor","fester","festival","festive","festivity","fetal","fetch","fever","fiber","fiction","fiddle","fiddling","fidelity","fidgeting","fidgety","fifteen","fifth","fiftieth","fifty","figment","figure","figurine","filing","filled","filler","filling","film","filter","filth","filtrate","finale","finalist","finalize","finally","finance","financial","finch","fineness","finer","finicky","finished","finisher","finishing","finite","finless","finlike","fiscally","fit","five","flaccid","flagman","flagpole","flagship","flagstick","flagstone","flail","flakily","flaky","flame","flammable","flanked","flanking","flannels","flap","flaring","flashback","flashbulb","flashcard","flashily","flashing","flashy","flask","flatbed","flatfoot","flatly","flatness","flatten","flattered","flatterer","flattery","flattop","flatware","flatworm","flavored","flavorful","flavoring","flaxseed","fled","fleshed","fleshy","flick","flier","flight","flinch","fling","flint","flip","flirt","float","flock","flogging","flop","floral","florist","floss","flounder","flyable","flyaway","flyer","flying","flyover","flypaper","foam","foe","fog","foil","folic","folk","follicle","follow","fondling","fondly","fondness","fondue","font","food","fool","footage","football","footbath","footboard","footer","footgear","foothill","foothold","footing","footless","footman","footnote","footpad","footpath","footprint","footrest","footsie","footsore","footwear","footwork","fossil","foster","founder","founding","fountain","fox","foyer","fraction","fracture","fragile","fragility","fragment","fragrance","fragrant","frail","frame","framing","frantic","fraternal","frayed","fraying","frays","freckled","freckles","freebase","freebee","freebie","freedom","freefall","freehand","freeing","freeload","freely","freemason","freeness","freestyle","freeware","freeway","freewill","freezable","freezing","freight","french","frenzied","frenzy","frequency","frequent","fresh","fretful","fretted","friction","friday","fridge","fried","friend","frighten","frightful","frigidity","frigidly","frill","fringe","frisbee","frisk","fritter","frivolous","frolic","from","front","frostbite","frosted","frostily","frosting","frostlike","frosty","froth","frown","frozen","fructose","frugality","frugally","fruit","frustrate","frying","gab","gaffe","gag","gainfully","gaining","gains","gala","gallantly","galleria","gallery","galley","gallon","gallows","gallstone","galore","galvanize","gambling","game","gaming","gamma","gander","gangly","gangrene","gangway","gap","garage","garbage","garden","gargle","garland","garlic","garment","garnet","garnish","garter","gas","gatherer","gathering","gating","gauging","gauntlet","gauze","gave","gawk","gazing","gear","gecko","geek","geiger","gem","gender","generic","generous","genetics","genre","gentile","gentleman","gently","gents","geography","geologic","geologist","geology","geometric","geometry","geranium","gerbil","geriatric","germicide","germinate","germless","germproof","gestate","gestation","gesture","getaway","getting","getup","giant","gibberish","giblet","giddily","giddiness","giddy","gift","gigabyte","gigahertz","gigantic","giggle","giggling","giggly","gigolo","gilled","gills","gimmick","girdle","giveaway","given","giver","giving","gizmo","gizzard","glacial","glacier","glade","gladiator","gladly","glamorous","glamour","glance","glancing","glandular","glare","glaring","glass","glaucoma","glazing","gleaming","gleeful","glider","gliding","glimmer","glimpse","glisten","glitch","glitter","glitzy","gloater","gloating","gloomily","gloomy","glorified","glorifier","glorify","glorious","glory","gloss","glove","glowing","glowworm","glucose","glue","gluten","glutinous","glutton","gnarly","gnat","goal","goatskin","goes","goggles","going","goldfish","goldmine","goldsmith","golf","goliath","gonad","gondola","gone","gong","good","gooey","goofball","goofiness","goofy","google","goon","gopher","gore","gorged","gorgeous","gory","gosling","gossip","gothic","gotten","gout","gown","grab","graceful","graceless","gracious","gradation","graded","grader","gradient","grading","gradually","graduate","graffiti","grafted","grafting","grain","granddad","grandkid","grandly","grandma","grandpa","grandson","granite","granny","granola","grant","granular","grape","graph","grapple","grappling","grasp","grass","gratified","gratify","grating","gratitude","gratuity","gravel","graveness","graves","graveyard","gravitate","gravity","gravy","gray","grazing","greasily","greedily","greedless","greedy","green","greeter","greeting","grew","greyhound","grid","grief","grievance","grieving","grievous","grill","grimace","grimacing","grime","griminess","grimy","grinch","grinning","grip","gristle","grit","groggily","groggy","groin","groom","groove","grooving","groovy","grope","ground","grouped","grout","grove","grower","growing","growl","grub","grudge","grudging","grueling","gruffly","grumble","grumbling","grumbly","grumpily","grunge","grunt","guacamole","guidable","guidance","guide","guiding","guileless","guise","gulf","gullible","gully","gulp","gumball","gumdrop","gumminess","gumming","gummy","gurgle","gurgling","guru","gush","gusto","gusty","gutless","guts","gutter","guy","guzzler","gyration","habitable","habitant","habitat","habitual","hacked","hacker","hacking","hacksaw","had","haggler","haiku","half","halogen","halt","halved","halves","hamburger","hamlet","hammock","hamper","hamster","hamstring","handbag","handball","handbook","handbrake","handcart","handclap","handclasp","handcraft","handcuff","handed","handful","handgrip","handgun","handheld","handiness","handiwork","handlebar","handled","handler","handling","handmade","handoff","handpick","handprint","handrail","handsaw","handset","handsfree","handshake","handstand","handwash","handwork","handwoven","handwrite","handyman","hangnail","hangout","hangover","hangup","hankering","hankie","hanky","haphazard","happening","happier","happiest","happily","happiness","happy","harbor","hardcopy","hardcore","hardcover","harddisk","hardened","hardener","hardening","hardhat","hardhead","hardiness","hardly","hardness","hardship","hardware","hardwired","hardwood","hardy","harmful","harmless","harmonica","harmonics","harmonize","harmony","harness","harpist","harsh","harvest","hash","hassle","haste","hastily","hastiness","hasty","hatbox","hatchback","hatchery","hatchet","hatching","hatchling","hate","hatless","hatred","haunt","haven","hazard","hazelnut","hazily","haziness","hazing","hazy","headache","headband","headboard","headcount","headdress","headed","header","headfirst","headgear","heading","headlamp","headless","headlock","headphone","headpiece","headrest","headroom","headscarf","headset","headsman","headstand","headstone","headway","headwear","heap","heat","heave","heavily","heaviness","heaving","hedge","hedging","heftiness","hefty","helium","helmet","helper","helpful","helping","helpless","helpline","hemlock","hemstitch","hence","henchman","henna","herald","herbal","herbicide","herbs","heritage","hermit","heroics","heroism","herring","herself","hertz","hesitancy","hesitant","hesitate","hexagon","hexagram","hubcap","huddle","huddling","huff","hug","hula","hulk","hull","human","humble","humbling","humbly","humid","humiliate","humility","humming","hummus","humongous","humorist","humorless","humorous","humpback","humped","humvee","hunchback","hundredth","hunger","hungrily","hungry","hunk","hunter","hunting","huntress","huntsman","hurdle","hurled","hurler","hurling","hurray","hurricane","hurried","hurry","hurt","husband","hush","husked","huskiness","hut","hybrid","hydrant","hydrated","hydration","hydrogen","hydroxide","hyperlink","hypertext","hyphen","hypnoses","hypnosis","hypnotic","hypnotism","hypnotist","hypnotize","hypocrisy","hypocrite","ibuprofen","ice","iciness","icing","icky","icon","icy","idealism","idealist","idealize","ideally","idealness","identical","identify","identity","ideology","idiocy","idiom","idly","igloo","ignition","ignore","iguana","illicitly","illusion","illusive","image","imaginary","imagines","imaging","imbecile","imitate","imitation","immature","immerse","immersion","imminent","immobile","immodest","immorally","immortal","immovable","immovably","immunity","immunize","impaired","impale","impart","impatient","impeach","impeding","impending","imperfect","imperial","impish","implant","implement","implicate","implicit","implode","implosion","implosive","imply","impolite","important","importer","impose","imposing","impotence","impotency","impotent","impound","imprecise","imprint","imprison","impromptu","improper","improve","improving","improvise","imprudent","impulse","impulsive","impure","impurity","iodine","iodize","ion","ipad","iphone","ipod","irate","irk","iron","irregular","irrigate","irritable","irritably","irritant","irritate","islamic","islamist","isolated","isolating","isolation","isotope","issue","issuing","italicize","italics","item","itinerary","itunes","ivory","ivy","jab","jackal","jacket","jackknife","jackpot","jailbird","jailbreak","jailer","jailhouse","jalapeno","jam","janitor","january","jargon","jarring","jasmine","jaundice","jaunt","java","jawed","jawless","jawline","jaws","jaybird","jaywalker","jazz","jeep","jeeringly","jellied","jelly","jersey","jester","jet","jiffy","jigsaw","jimmy","jingle","jingling","jinx","jitters","jittery","job","jockey","jockstrap","jogger","jogging","john","joining","jokester","jokingly","jolliness","jolly","jolt","jot","jovial","joyfully","joylessly","joyous","joyride","joystick","jubilance","jubilant","judge","judgingly","judicial","judiciary","judo","juggle","juggling","jugular","juice","juiciness","juicy","jujitsu","jukebox","july","jumble","jumbo","jump","junction","juncture","june","junior","juniper","junkie","junkman","junkyard","jurist","juror","jury","justice","justifier","justify","justly","justness","juvenile","kabob","kangaroo","karaoke","karate","karma","kebab","keenly","keenness","keep","keg","kelp","kennel","kept","kerchief","kerosene","kettle","kick","kiln","kilobyte","kilogram","kilometer","kilowatt","kilt","kimono","kindle","kindling","kindly","kindness","kindred","kinetic","kinfolk","king","kinship","kinsman","kinswoman","kissable","kisser","kissing","kitchen","kite","kitten","kitty","kiwi","kleenex","knapsack","knee","knelt","knickers","knoll","koala","kooky","kosher","krypton","kudos","kung","labored","laborer","laboring","laborious","labrador","ladder","ladies","ladle","ladybug","ladylike","lagged","lagging","lagoon","lair","lake","lance","landed","landfall","landfill","landing","landlady","landless","landline","landlord","landmark","landmass","landmine","landowner","landscape","landside","landslide","language","lankiness","lanky","lantern","lapdog","lapel","lapped","lapping","laptop","lard","large","lark","lash","lasso","last","latch","late","lather","latitude","latrine","latter","latticed","launch","launder","laundry","laurel","lavender","lavish","laxative","lazily","laziness","lazy","lecturer","left","legacy","legal","legend","legged","leggings","legible","legibly","legislate","lego","legroom","legume","legwarmer","legwork","lemon","lend","length","lens","lent","leotard","lesser","letdown","lethargic","lethargy","letter","lettuce","level","leverage","levers","levitate","levitator","liability","liable","liberty","librarian","library","licking","licorice","lid","life","lifter","lifting","liftoff","ligament","likely","likeness","likewise","liking","lilac","lilly","lily","limb","limeade","limelight","limes","limit","limping","limpness","line","lingo","linguini","linguist","lining","linked","linoleum","linseed","lint","lion","lip","liquefy","liqueur","liquid","lisp","list","litigate","litigator","litmus","litter","little","livable","lived","lively","liver","livestock","lividly","living","lizard","lubricant","lubricate","lucid","luckily","luckiness","luckless","lucrative","ludicrous","lugged","lukewarm","lullaby","lumber","luminance","luminous","lumpiness","lumping","lumpish","lunacy","lunar","lunchbox","luncheon","lunchroom","lunchtime","lung","lurch","lure","luridness","lurk","lushly","lushness","luster","lustfully","lustily","lustiness","lustrous","lusty","luxurious","luxury","lying","lyrically","lyricism","lyricist","lyrics","macarena","macaroni","macaw","mace","machine","machinist","magazine","magenta","maggot","magical","magician","magma","magnesium","magnetic","magnetism","magnetize","magnifier","magnify","magnitude","magnolia","mahogany","maimed","majestic","majesty","majorette","majority","makeover","maker","makeshift","making","malformed","malt","mama","mammal","mammary","mammogram","manager","managing","manatee","mandarin","mandate","mandatory","mandolin","manger","mangle","mango","mangy","manhandle","manhole","manhood","manhunt","manicotti","manicure","manifesto","manila","mankind","manlike","manliness","manly","manmade","manned","mannish","manor","manpower","mantis","mantra","manual","many","map","marathon","marauding","marbled","marbles","marbling","march","mardi","margarine","margarita","margin","marigold","marina","marine","marital","maritime","marlin","marmalade","maroon","married","marrow","marry","marshland","marshy","marsupial","marvelous","marxism","mascot","masculine","mashed","mashing","massager","masses","massive","mastiff","matador","matchbook","matchbox","matcher","matching","matchless","material","maternal","maternity","math","mating","matriarch","matrimony","matrix","matron","matted","matter","maturely","maturing","maturity","mauve","maverick","maximize","maximum","maybe","mayday","mayflower","moaner","moaning","mobile","mobility","mobilize","mobster","mocha","mocker","mockup","modified","modify","modular","modulator","module","moisten","moistness","moisture","molar","molasses","mold","molecular","molecule","molehill","mollusk","mom","monastery","monday","monetary","monetize","moneybags","moneyless","moneywise","mongoose","mongrel","monitor","monkhood","monogamy","monogram","monologue","monopoly","monorail","monotone","monotype","monoxide","monsieur","monsoon","monstrous","monthly","monument","moocher","moodiness","moody","mooing","moonbeam","mooned","moonlight","moonlike","moonlit","moonrise","moonscape","moonshine","moonstone","moonwalk","mop","morale","morality","morally","morbidity","morbidly","morphine","morphing","morse","mortality","mortally","mortician","mortified","mortify","mortuary","mosaic","mossy","most","mothball","mothproof","motion","motivate","motivator","motive","motocross","motor","motto","mountable","mountain","mounted","mounting","mourner","mournful","mouse","mousiness","moustache","mousy","mouth","movable","move","movie","moving","mower","mowing","much","muck","mud","mug","mulberry","mulch","mule","mulled","mullets","multiple","multiply","multitask","multitude","mumble","mumbling","mumbo","mummified","mummify","mummy","mumps","munchkin","mundane","municipal","muppet","mural","murkiness","murky","murmuring","muscular","museum","mushily","mushiness","mushroom","mushy","music","musket","muskiness","musky","mustang","mustard","muster","mustiness","musty","mutable","mutate","mutation","mute","mutilated","mutilator","mutiny","mutt","mutual","muzzle","myself","myspace","mystified","mystify","myth","nacho","nag","nail","name","naming","nanny","nanometer","nape","napkin","napped","napping","nappy","narrow","nastily","nastiness","national","native","nativity","natural","nature","naturist","nautical","navigate","navigator","navy","nearby","nearest","nearly","nearness","neatly","neatness","nebula","nebulizer","nectar","negate","negation","negative","neglector","negligee","negligent","negotiate","nemeses","nemesis","neon","nephew","nerd","nervous","nervy","nest","net","neurology","neuron","neurosis","neurotic","neuter","neutron","never","next","nibble","nickname","nicotine","niece","nifty","nimble","nimbly","nineteen","ninetieth","ninja","nintendo","ninth","nuclear","nuclei","nucleus","nugget","nullify","number","numbing","numbly","numbness","numeral","numerate","numerator","numeric","numerous","nuptials","nursery","nursing","nurture","nutcase","nutlike","nutmeg","nutrient","nutshell","nuttiness","nutty","nuzzle","nylon","oaf","oak","oasis","oat","obedience","obedient","obituary","object","obligate","obliged","oblivion","oblivious","oblong","obnoxious","oboe","obscure","obscurity","observant","observer","observing","obsessed","obsession","obsessive","obsolete","obstacle","obstinate","obstruct","obtain","obtrusive","obtuse","obvious","occultist","occupancy","occupant","occupier","occupy","ocean","ocelot","octagon","octane","october","octopus","ogle","oil","oink","ointment","okay","old","olive","olympics","omega","omen","ominous","omission","omit","omnivore","onboard","oncoming","ongoing","onion","online","onlooker","only","onscreen","onset","onshore","onslaught","onstage","onto","onward","onyx","oops","ooze","oozy","opacity","opal","open","operable","operate","operating","operation","operative","operator","opium","opossum","opponent","oppose","opposing","opposite","oppressed","oppressor","opt","opulently","osmosis","other","otter","ouch","ought","ounce","outage","outback","outbid","outboard","outbound","outbreak","outburst","outcast","outclass","outcome","outdated","outdoors","outer","outfield","outfit","outflank","outgoing","outgrow","outhouse","outing","outlast","outlet","outline","outlook","outlying","outmatch","outmost","outnumber","outplayed","outpost","outpour","output","outrage","outrank","outreach","outright","outscore","outsell","outshine","outshoot","outsider","outskirts","outsmart","outsource","outspoken","outtakes","outthink","outward","outweigh","outwit","oval","ovary","oven","overact","overall","overarch","overbid","overbill","overbite","overblown","overboard","overbook","overbuilt","overcast","overcoat","overcome","overcook","overcrowd","overdraft","overdrawn","overdress","overdrive","overdue","overeager","overeater","overexert","overfed","overfeed","overfill","overflow","overfull","overgrown","overhand","overhang","overhaul","overhead","overhear","overheat","overhung","overjoyed","overkill","overlabor","overlaid","overlap","overlay","overload","overlook","overlord","overlying","overnight","overpass","overpay","overplant","overplay","overpower","overprice","overrate","overreach","overreact","override","overripe","overrule","overrun","overshoot","overshot","oversight","oversized","oversleep","oversold","overspend","overstate","overstay","overstep","overstock","overstuff","oversweet","overtake","overthrow","overtime","overtly","overtone","overture","overturn","overuse","overvalue","overview","overwrite","owl","oxford","oxidant","oxidation","oxidize","oxidizing","oxygen","oxymoron","oyster","ozone","paced","pacemaker","pacific","pacifier","pacifism","pacifist","pacify","padded","padding","paddle","paddling","padlock","pagan","pager","paging","pajamas","palace","palatable","palm","palpable","palpitate","paltry","pampered","pamperer","pampers","pamphlet","panama","pancake","pancreas","panda","pandemic","pang","panhandle","panic","panning","panorama","panoramic","panther","pantomime","pantry","pants","pantyhose","paparazzi","papaya","paper","paprika","papyrus","parabola","parachute","parade","paradox","paragraph","parakeet","paralegal","paralyses","paralysis","paralyze","paramedic","parameter","paramount","parasail","parasite","parasitic","parcel","parched","parchment","pardon","parish","parka","parking","parkway","parlor","parmesan","parole","parrot","parsley","parsnip","partake","parted","parting","partition","partly","partner","partridge","party","passable","passably","passage","passcode","passenger","passerby","passing","passion","passive","passivism","passover","passport","password","pasta","pasted","pastel","pastime","pastor","pastrami","pasture","pasty","patchwork","patchy","paternal","paternity","path","patience","patient","patio","patriarch","patriot","patrol","patronage","patronize","pauper","pavement","paver","pavestone","pavilion","paving","pawing","payable","payback","paycheck","payday","payee","payer","paying","payment","payphone","payroll","pebble","pebbly","pecan","pectin","peculiar","peddling","pediatric","pedicure","pedigree","pedometer","pegboard","pelican","pellet","pelt","pelvis","penalize","penalty","pencil","pendant","pending","penholder","penknife","pennant","penniless","penny","penpal","pension","pentagon","pentagram","pep","perceive","percent","perch","percolate","perennial","perfected","perfectly","perfume","periscope","perish","perjurer","perjury","perkiness","perky","perm","peroxide","perpetual","perplexed","persecute","persevere","persuaded","persuader","pesky","peso","pessimism","pessimist","pester","pesticide","petal","petite","petition","petri","petroleum","petted","petticoat","pettiness","petty","petunia","phantom","phobia","phoenix","phonebook","phoney","phonics","phoniness","phony","phosphate","photo","phrase","phrasing","placard","placate","placidly","plank","planner","plant","plasma","plaster","plastic","plated","platform","plating","platinum","platonic","platter","platypus","plausible","plausibly","playable","playback","player","playful","playgroup","playhouse","playing","playlist","playmaker","playmate","playoff","playpen","playroom","playset","plaything","playtime","plaza","pleading","pleat","pledge","plentiful","plenty","plethora","plexiglas","pliable","plod","plop","plot","plow","ploy","pluck","plug","plunder","plunging","plural","plus","plutonium","plywood","poach","pod","poem","poet","pogo","pointed","pointer","pointing","pointless","pointy","poise","poison","poker","poking","polar","police","policy","polio","polish","politely","polka","polo","polyester","polygon","polygraph","polymer","poncho","pond","pony","popcorn","pope","poplar","popper","poppy","popsicle","populace","popular","populate","porcupine","pork","porous","porridge","portable","portal","portfolio","porthole","portion","portly","portside","poser","posh","posing","possible","possibly","possum","postage","postal","postbox","postcard","posted","poster","posting","postnasal","posture","postwar","pouch","pounce","pouncing","pound","pouring","pout","powdered","powdering","powdery","power","powwow","pox","praising","prance","prancing","pranker","prankish","prankster","prayer","praying","preacher","preaching","preachy","preamble","precinct","precise","precision","precook","precut","predator","predefine","predict","preface","prefix","preflight","preformed","pregame","pregnancy","pregnant","preheated","prelaunch","prelaw","prelude","premiere","premises","premium","prenatal","preoccupy","preorder","prepaid","prepay","preplan","preppy","preschool","prescribe","preseason","preset","preshow","president","presoak","press","presume","presuming","preteen","pretended","pretender","pretense","pretext","pretty","pretzel","prevail","prevalent","prevent","preview","previous","prewar","prewashed","prideful","pried","primal","primarily","primary","primate","primer","primp","princess","print","prior","prism","prison","prissy","pristine","privacy","private","privatize","prize","proactive","probable","probably","probation","probe","probing","probiotic","problem","procedure","process","proclaim","procreate","procurer","prodigal","prodigy","produce","product","profane","profanity","professed","professor","profile","profound","profusely","progeny","prognosis","program","progress","projector","prologue","prolonged","promenade","prominent","promoter","promotion","prompter","promptly","prone","prong","pronounce","pronto","proofing","proofread","proofs","propeller","properly","property","proponent","proposal","propose","props","prorate","protector","protegee","proton","prototype","protozoan","protract","protrude","proud","provable","proved","proven","provided","provider","providing","province","proving","provoke","provoking","provolone","prowess","prowler","prowling","proximity","proxy","prozac","prude","prudishly","prune","pruning","pry","psychic","public","publisher","pucker","pueblo","pug","pull","pulmonary","pulp","pulsate","pulse","pulverize","puma","pumice","pummel","punch","punctual","punctuate","punctured","pungent","punisher","punk","pupil","puppet","puppy","purchase","pureblood","purebred","purely","pureness","purgatory","purge","purging","purifier","purify","purist","puritan","purity","purple","purplish","purposely","purr","purse","pursuable","pursuant","pursuit","purveyor","pushcart","pushchair","pusher","pushiness","pushing","pushover","pushpin","pushup","pushy","putdown","putt","puzzle","puzzling","pyramid","pyromania","python","quack","quadrant","quail","quaintly","quake","quaking","qualified","qualifier","qualify","quality","qualm","quantum","quarrel","quarry","quartered","quarterly","quarters","quartet","quench","query","quicken","quickly","quickness","quicksand","quickstep","quiet","quill","quilt","quintet","quintuple","quirk","quit","quiver","quizzical","quotable","quotation","quote","rabid","race","racing","racism","rack","racoon","radar","radial","radiance","radiantly","radiated","radiation","radiator","radio","radish","raffle","raft","rage","ragged","raging","ragweed","raider","railcar","railing","railroad","railway","raisin","rake","raking","rally","ramble","rambling","ramp","ramrod","ranch","rancidity","random","ranged","ranger","ranging","ranked","ranking","ransack","ranting","rants","rare","rarity","rascal","rash","rasping","ravage","raven","ravine","raving","ravioli","ravishing","reabsorb","reach","reacquire","reaction","reactive","reactor","reaffirm","ream","reanalyze","reappear","reapply","reappoint","reapprove","rearrange","rearview","reason","reassign","reassure","reattach","reawake","rebalance","rebate","rebel","rebirth","reboot","reborn","rebound","rebuff","rebuild","rebuilt","reburial","rebuttal","recall","recant","recapture","recast","recede","recent","recess","recharger","recipient","recital","recite","reckless","reclaim","recliner","reclining","recluse","reclusive","recognize","recoil","recollect","recolor","reconcile","reconfirm","reconvene","recopy","record","recount","recoup","recovery","recreate","rectal","rectangle","rectified","rectify","recycled","recycler","recycling","reemerge","reenact","reenter","reentry","reexamine","referable","referee","reference","refill","refinance","refined","refinery","refining","refinish","reflected","reflector","reflex","reflux","refocus","refold","reforest","reformat","reformed","reformer","reformist","refract","refrain","refreeze","refresh","refried","refueling","refund","refurbish","refurnish","refusal","refuse","refusing","refutable","refute","regain","regalia","regally","reggae","regime","region","register","registrar","registry","regress","regretful","regroup","regular","regulate","regulator","rehab","reheat","rehire","rehydrate","reimburse","reissue","reiterate","rejoice","rejoicing","rejoin","rekindle","relapse","relapsing","relatable","related","relation","relative","relax","relay","relearn","release","relenting","reliable","reliably","reliance","reliant","relic","relieve","relieving","relight","relish","relive","reload","relocate","relock","reluctant","rely","remake","remark","remarry","rematch","remedial","remedy","remember","reminder","remindful","remission","remix","remnant","remodeler","remold","remorse","remote","removable","removal","removed","remover","removing","rename","renderer","rendering","rendition","renegade","renewable","renewably","renewal","renewed","renounce","renovate","renovator","rentable","rental","rented","renter","reoccupy","reoccur","reopen","reorder","repackage","repacking","repaint","repair","repave","repaying","repayment","repeal","repeated","repeater","repent","rephrase","replace","replay","replica","reply","reporter","repose","repossess","repost","repressed","reprimand","reprint","reprise","reproach","reprocess","reproduce","reprogram","reps","reptile","reptilian","repugnant","repulsion","repulsive","repurpose","reputable","reputably","request","require","requisite","reroute","rerun","resale","resample","rescuer","reseal","research","reselect","reseller","resemble","resend","resent","reset","reshape","reshoot","reshuffle","residence","residency","resident","residual","residue","resigned","resilient","resistant","resisting","resize","resolute","resolved","resonant","resonate","resort","resource","respect","resubmit","result","resume","resupply","resurface","resurrect","retail","retainer","retaining","retake","retaliate","retention","rethink","retinal","retired","retiree","retiring","retold","retool","retorted","retouch","retrace","retract","retrain","retread","retreat","retrial","retrieval","retriever","retry","return","retying","retype","reunion","reunite","reusable","reuse","reveal","reveler","revenge","revenue","reverb","revered","reverence","reverend","reversal","reverse","reversing","reversion","revert","revisable","revise","revision","revisit","revivable","revival","reviver","reviving","revocable","revoke","revolt","revolver","revolving","reward","rewash","rewind","rewire","reword","rework","rewrap","rewrite","rhyme","ribbon","ribcage","rice","riches","richly","richness","rickety","ricotta","riddance","ridden","ride","riding","rifling","rift","rigging","rigid","rigor","rimless","rimmed","rind","rink","rinse","rinsing","riot","ripcord","ripeness","ripening","ripping","ripple","rippling","riptide","rise","rising","risk","risotto","ritalin","ritzy","rival","riverbank","riverbed","riverboat","riverside","riveter","riveting","roamer","roaming","roast","robbing","robe","robin","robotics","robust","rockband","rocker","rocket","rockfish","rockiness","rocking","rocklike","rockslide","rockstar","rocky","rogue","roman","romp","rope","roping","roster","rosy","rotten","rotting","rotunda","roulette","rounding","roundish","roundness","roundup","roundworm","routine","routing","rover","roving","royal","rubbed","rubber","rubbing","rubble","rubdown","ruby","ruckus","rudder","rug","ruined","rule","rumble","rumbling","rummage","rumor","runaround","rundown","runner","running","runny","runt","runway","rupture","rural","ruse","rush","rust","rut","sabbath","sabotage","sacrament","sacred","sacrifice","sadden","saddlebag","saddled","saddling","sadly","sadness","safari","safeguard","safehouse","safely","safeness","saffron","saga","sage","sagging","saggy","said","saint","sake","salad","salami","salaried","salary","saline","salon","saloon","salsa","salt","salutary","salute","salvage","salvaging","salvation","same","sample","sampling","sanction","sanctity","sanctuary","sandal","sandbag","sandbank","sandbar","sandblast","sandbox","sanded","sandfish","sanding","sandlot","sandpaper","sandpit","sandstone","sandstorm","sandworm","sandy","sanitary","sanitizer","sank","santa","sapling","sappiness","sappy","sarcasm","sarcastic","sardine","sash","sasquatch","sassy","satchel","satiable","satin","satirical","satisfied","satisfy","saturate","saturday","sauciness","saucy","sauna","savage","savanna","saved","savings","savior","savor","saxophone","say","scabbed","scabby","scalded","scalding","scale","scaling","scallion","scallop","scalping","scam","scandal","scanner","scanning","scant","scapegoat","scarce","scarcity","scarecrow","scared","scarf","scarily","scariness","scarring","scary","scavenger","scenic","schedule","schematic","scheme","scheming","schilling","schnapps","scholar","science","scientist","scion","scoff","scolding","scone","scoop","scooter","scope","scorch","scorebook","scorecard","scored","scoreless","scorer","scoring","scorn","scorpion","scotch","scoundrel","scoured","scouring","scouting","scouts","scowling","scrabble","scraggly","scrambled","scrambler","scrap","scratch","scrawny","screen","scribble","scribe","scribing","scrimmage","script","scroll","scrooge","scrounger","scrubbed","scrubber","scruffy","scrunch","scrutiny","scuba","scuff","sculptor","sculpture","scurvy","scuttle","secluded","secluding","seclusion","second","secrecy","secret","sectional","sector","secular","securely","security","sedan","sedate","sedation","sedative","sediment","seduce","seducing","segment","seismic","seizing","seldom","selected","selection","selective","selector","self","seltzer","semantic","semester","semicolon","semifinal","seminar","semisoft","semisweet","senate","senator","send","senior","senorita","sensation","sensitive","sensitize","sensually","sensuous","sepia","september","septic","septum","sequel","sequence","sequester","series","sermon","serotonin","serpent","serrated","serve","service","serving","sesame","sessions","setback","setting","settle","settling","setup","sevenfold","seventeen","seventh","seventy","severity","shabby","shack","shaded","shadily","shadiness","shading","shadow","shady","shaft","shakable","shakily","shakiness","shaking","shaky","shale","shallot","shallow","shame","shampoo","shamrock","shank","shanty","shape","shaping","share","sharpener","sharper","sharpie","sharply","sharpness","shawl","sheath","shed","sheep","sheet","shelf","shell","shelter","shelve","shelving","sherry","shield","shifter","shifting","shiftless","shifty","shimmer","shimmy","shindig","shine","shingle","shininess","shining","shiny","ship","shirt","shivering","shock","shone","shoplift","shopper","shopping","shoptalk","shore","shortage","shortcake","shortcut","shorten","shorter","shorthand","shortlist","shortly","shortness","shorts","shortwave","shorty","shout","shove","showbiz","showcase","showdown","shower","showgirl","showing","showman","shown","showoff","showpiece","showplace","showroom","showy","shrank","shrapnel","shredder","shredding","shrewdly","shriek","shrill","shrimp","shrine","shrink","shrivel","shrouded","shrubbery","shrubs","shrug","shrunk","shucking","shudder","shuffle","shuffling","shun","shush","shut","shy","siamese","siberian","sibling","siding","sierra","siesta","sift","sighing","silenced","silencer","silent","silica","silicon","silk","silliness","silly","silo","silt","silver","similarly","simile","simmering","simple","simplify","simply","sincere","sincerity","singer","singing","single","singular","sinister","sinless","sinner","sinuous","sip","siren","sister","sitcom","sitter","sitting","situated","situation","sixfold","sixteen","sixth","sixties","sixtieth","sixtyfold","sizable","sizably","size","sizing","sizzle","sizzling","skater","skating","skedaddle","skeletal","skeleton","skeptic","sketch","skewed","skewer","skid","skied","skier","skies","skiing","skilled","skillet","skillful","skimmed","skimmer","skimming","skimpily","skincare","skinhead","skinless","skinning","skinny","skintight","skipper","skipping","skirmish","skirt","skittle","skydiver","skylight","skyline","skype","skyrocket","skyward","slab","slacked","slacker","slacking","slackness","slacks","slain","slam","slander","slang","slapping","slapstick","slashed","slashing","slate","slather","slaw","sled","sleek","sleep","sleet","sleeve","slept","sliceable","sliced","slicer","slicing","slick","slider","slideshow","sliding","slighted","slighting","slightly","slimness","slimy","slinging","slingshot","slinky","slip","slit","sliver","slobbery","slogan","sloped","sloping","sloppily","sloppy","slot","slouching","slouchy","sludge","slug","slum","slurp","slush","sly","small","smartly","smartness","smasher","smashing","smashup","smell","smelting","smile","smilingly","smirk","smite","smith","smitten","smock","smog","smoked","smokeless","smokiness","smoking","smoky","smolder","smooth","smother","smudge","smudgy","smuggler","smuggling","smugly","smugness","snack","snagged","snaking","snap","snare","snarl","snazzy","sneak","sneer","sneeze","sneezing","snide","sniff","snippet","snipping","snitch","snooper","snooze","snore","snoring","snorkel","snort","snout","snowbird","snowboard","snowbound","snowcap","snowdrift","snowdrop","snowfall","snowfield","snowflake","snowiness","snowless","snowman","snowplow","snowshoe","snowstorm","snowsuit","snowy","snub","snuff","snuggle","snugly","snugness","speak","spearfish","spearhead","spearman","spearmint","species","specimen","specked","speckled","specks","spectacle","spectator","spectrum","speculate","speech","speed","spellbind","speller","spelling","spendable","spender","spending","spent","spew","sphere","spherical","sphinx","spider","spied","spiffy","spill","spilt","spinach","spinal","spindle","spinner","spinning","spinout","spinster","spiny","spiral","spirited","spiritism","spirits","spiritual","splashed","splashing","splashy","splatter","spleen","splendid","splendor","splice","splicing","splinter","splotchy","splurge","spoilage","spoiled","spoiler","spoiling","spoils","spoken","spokesman","sponge","spongy","sponsor","spoof","spookily","spooky","spool","spoon","spore","sporting","sports","sporty","spotless","spotlight","spotted","spotter","spotting","spotty","spousal","spouse","spout","sprain","sprang","sprawl","spray","spree","sprig","spring","sprinkled","sprinkler","sprint","sprite","sprout","spruce","sprung","spry","spud","spur","sputter","spyglass","squabble","squad","squall","squander","squash","squatted","squatter","squatting","squeak","squealer","squealing","squeamish","squeegee","squeeze","squeezing","squid","squiggle","squiggly","squint","squire","squirt","squishier","squishy","stability","stabilize","stable","stack","stadium","staff","stage","staging","stagnant","stagnate","stainable","stained","staining","stainless","stalemate","staleness","stalling","stallion","stamina","stammer","stamp","stand","stank","staple","stapling","starboard","starch","stardom","stardust","starfish","stargazer","staring","stark","starless","starlet","starlight","starlit","starring","starry","starship","starter","starting","startle","startling","startup","starved","starving","stash","state","static","statistic","statue","stature","status","statute","statutory","staunch","stays","steadfast","steadier","steadily","steadying","steam","steed","steep","steerable","steering","steersman","stegosaur","stellar","stem","stench","stencil","step","stereo","sterile","sterility","sterilize","sterling","sternness","sternum","stew","stick","stiffen","stiffly","stiffness","stifle","stifling","stillness","stilt","stimulant","stimulate","stimuli","stimulus","stinger","stingily","stinging","stingray","stingy","stinking","stinky","stipend","stipulate","stir","stitch","stock","stoic","stoke","stole","stomp","stonewall","stoneware","stonework","stoning","stony","stood","stooge","stool","stoop","stoplight","stoppable","stoppage","stopped","stopper","stopping","stopwatch","storable","storage","storeroom","storewide","storm","stout","stove","stowaway","stowing","straddle","straggler","strained","strainer","straining","strangely","stranger","strangle","strategic","strategy","stratus","straw","stray","streak","stream","street","strength","strenuous","strep","stress","stretch","strewn","stricken","strict","stride","strife","strike","striking","strive","striving","strobe","strode","stroller","strongbox","strongly","strongman","struck","structure","strudel","struggle","strum","strung","strut","stubbed","stubble","stubbly","stubborn","stucco","stuck","student","studied","studio","study","stuffed","stuffing","stuffy","stumble","stumbling","stump","stung","stunned","stunner","stunning","stunt","stupor","sturdily","sturdy","styling","stylishly","stylist","stylized","stylus","suave","subarctic","subatomic","subdivide","subdued","subduing","subfloor","subgroup","subheader","subject","sublease","sublet","sublevel","sublime","submarine","submerge","submersed","submitter","subpanel","subpar","subplot","subprime","subscribe","subscript","subsector","subside","subsiding","subsidize","subsidy","subsoil","subsonic","substance","subsystem","subtext","subtitle","subtly","subtotal","subtract","subtype","suburb","subway","subwoofer","subzero","succulent","such","suction","sudden","sudoku","suds","sufferer","suffering","suffice","suffix","suffocate","suffrage","sugar","suggest","suing","suitable","suitably","suitcase","suitor","sulfate","sulfide","sulfite","sulfur","sulk","sullen","sulphate","sulphuric","sultry","superbowl","superglue","superhero","superior","superjet","superman","supermom","supernova","supervise","supper","supplier","supply","support","supremacy","supreme","surcharge","surely","sureness","surface","surfacing","surfboard","surfer","surgery","surgical","surging","surname","surpass","surplus","surprise","surreal","surrender","surrogate","surround","survey","survival","survive","surviving","survivor","sushi","suspect","suspend","suspense","sustained","sustainer","swab","swaddling","swagger","swampland","swan","swapping","swarm","sway","swear","sweat","sweep","swell","swept","swerve","swifter","swiftly","swiftness","swimmable","swimmer","swimming","swimsuit","swimwear","swinger","swinging","swipe","swirl","switch","swivel","swizzle","swooned","swoop","swoosh","swore","sworn","swung","sycamore","sympathy","symphonic","symphony","symptom","synapse","syndrome","synergy","synopses","synopsis","synthesis","synthetic","syrup","system","t-shirt","tabasco","tabby","tableful","tables","tablet","tableware","tabloid","tackiness","tacking","tackle","tackling","tacky","taco","tactful","tactical","tactics","tactile","tactless","tadpole","taekwondo","tag","tainted","take","taking","talcum","talisman","tall","talon","tamale","tameness","tamer","tamper","tank","tanned","tannery","tanning","tantrum","tapeless","tapered","tapering","tapestry","tapioca","tapping","taps","tarantula","target","tarmac","tarnish","tarot","tartar","tartly","tartness","task","tassel","taste","tastiness","tasting","tasty","tattered","tattle","tattling","tattoo","taunt","tavern","thank","that","thaw","theater","theatrics","thee","theft","theme","theology","theorize","thermal","thermos","thesaurus","these","thesis","thespian","thicken","thicket","thickness","thieving","thievish","thigh","thimble","thing","think","thinly","thinner","thinness","thinning","thirstily","thirsting","thirsty","thirteen","thirty","thong","thorn","those","thousand","thrash","thread","threaten","threefold","thrift","thrill","thrive","thriving","throat","throbbing","throng","throttle","throwaway","throwback","thrower","throwing","thud","thumb","thumping","thursday","thus","thwarting","thyself","tiara","tibia","tidal","tidbit","tidiness","tidings","tidy","tiger","tighten","tightly","tightness","tightrope","tightwad","tigress","tile","tiling","till","tilt","timid","timing","timothy","tinderbox","tinfoil","tingle","tingling","tingly","tinker","tinkling","tinsel","tinsmith","tint","tinwork","tiny","tipoff","tipped","tipper","tipping","tiptoeing","tiptop","tiring","tissue","trace","tracing","track","traction","tractor","trade","trading","tradition","traffic","tragedy","trailing","trailside","train","traitor","trance","tranquil","transfer","transform","translate","transpire","transport","transpose","trapdoor","trapeze","trapezoid","trapped","trapper","trapping","traps","trash","travel","traverse","travesty","tray","treachery","treading","treadmill","treason","treat","treble","tree","trekker","tremble","trembling","tremor","trench","trend","trespass","triage","trial","triangle","tribesman","tribunal","tribune","tributary","tribute","triceps","trickery","trickily","tricking","trickle","trickster","tricky","tricolor","tricycle","trident","tried","trifle","trifocals","trillion","trilogy","trimester","trimmer","trimming","trimness","trinity","trio","tripod","tripping","triumph","trivial","trodden","trolling","trombone","trophy","tropical","tropics","trouble","troubling","trough","trousers","trout","trowel","truce","truck","truffle","trump","trunks","trustable","trustee","trustful","trusting","trustless","truth","try","tubby","tubeless","tubular","tucking","tuesday","tug","tuition","tulip","tumble","tumbling","tummy","turban","turbine","turbofan","turbojet","turbulent","turf","turkey","turmoil","turret","turtle","tusk","tutor","tutu","tux","tweak","tweed","tweet","tweezers","twelve","twentieth","twenty","twerp","twice","twiddle","twiddling","twig","twilight","twine","twins","twirl","twistable","twisted","twister","twisting","twisty","twitch","twitter","tycoon","tying","tyke","udder","ultimate","ultimatum","ultra","umbilical","umbrella","umpire","unabashed","unable","unadorned","unadvised","unafraid","unaired","unaligned","unaltered","unarmored","unashamed","unaudited","unawake","unaware","unbaked","unbalance","unbeaten","unbend","unbent","unbiased","unbitten","unblended","unblessed","unblock","unbolted","unbounded","unboxed","unbraided","unbridle","unbroken","unbuckled","unbundle","unburned","unbutton","uncanny","uncapped","uncaring","uncertain","unchain","unchanged","uncharted","uncheck","uncivil","unclad","unclaimed","unclamped","unclasp","uncle","unclip","uncloak","unclog","unclothed","uncoated","uncoiled","uncolored","uncombed","uncommon","uncooked","uncork","uncorrupt","uncounted","uncouple","uncouth","uncover","uncross","uncrown","uncrushed","uncured","uncurious","uncurled","uncut","undamaged","undated","undaunted","undead","undecided","undefined","underage","underarm","undercoat","undercook","undercut","underdog","underdone","underfed","underfeed","underfoot","undergo","undergrad","underhand","underline","underling","undermine","undermost","underpaid","underpass","underpay","underrate","undertake","undertone","undertook","undertow","underuse","underwear","underwent","underwire","undesired","undiluted","undivided","undocked","undoing","undone","undrafted","undress","undrilled","undusted","undying","unearned","unearth","unease","uneasily","uneasy","uneatable","uneaten","unedited","unelected","unending","unengaged","unenvied","unequal","unethical","uneven","unexpired","unexposed","unfailing","unfair","unfasten","unfazed","unfeeling","unfiled","unfilled","unfitted","unfitting","unfixable","unfixed","unflawed","unfocused","unfold","unfounded","unframed","unfreeze","unfrosted","unfrozen","unfunded","unglazed","ungloved","unglue","ungodly","ungraded","ungreased","unguarded","unguided","unhappily","unhappy","unharmed","unhealthy","unheard","unhearing","unheated","unhelpful","unhidden","unhinge","unhitched","unholy","unhook","unicorn","unicycle","unified","unifier","uniformed","uniformly","unify","unimpeded","uninjured","uninstall","uninsured","uninvited","union","uniquely","unisexual","unison","unissued","unit","universal","universe","unjustly","unkempt","unkind","unknotted","unknowing","unknown","unlaced","unlatch","unlawful","unleaded","unlearned","unleash","unless","unleveled","unlighted","unlikable","unlimited","unlined","unlinked","unlisted","unlit","unlivable","unloaded","unloader","unlocked","unlocking","unlovable","unloved","unlovely","unloving","unluckily","unlucky","unmade","unmanaged","unmanned","unmapped","unmarked","unmasked","unmasking","unmatched","unmindful","unmixable","unmixed","unmolded","unmoral","unmovable","unmoved","unmoving","unnamable","unnamed","unnatural","unneeded","unnerve","unnerving","unnoticed","unopened","unopposed","unpack","unpadded","unpaid","unpainted","unpaired","unpaved","unpeeled","unpicked","unpiloted","unpinned","unplanned","unplanted","unpleased","unpledged","unplowed","unplug","unpopular","unproven","unquote","unranked","unrated","unraveled","unreached","unread","unreal","unreeling","unrefined","unrelated","unrented","unrest","unretired","unrevised","unrigged","unripe","unrivaled","unroasted","unrobed","unroll","unruffled","unruly","unrushed","unsaddle","unsafe","unsaid","unsalted","unsaved","unsavory","unscathed","unscented","unscrew","unsealed","unseated","unsecured","unseeing","unseemly","unseen","unselect","unselfish","unsent","unsettled","unshackle","unshaken","unshaved","unshaven","unsheathe","unshipped","unsightly","unsigned","unskilled","unsliced","unsmooth","unsnap","unsocial","unsoiled","unsold","unsolved","unsorted","unspoiled","unspoken","unstable","unstaffed","unstamped","unsteady","unsterile","unstirred","unstitch","unstopped","unstuck","unstuffed","unstylish","unsubtle","unsubtly","unsuited","unsure","unsworn","untagged","untainted","untaken","untamed","untangled","untapped","untaxed","unthawed","unthread","untidy","untie","until","untimed","untimely","untitled","untoasted","untold","untouched","untracked","untrained","untreated","untried","untrimmed","untrue","untruth","unturned","untwist","untying","unusable","unused","unusual","unvalued","unvaried","unvarying","unveiled","unveiling","unvented","unviable","unvisited","unvocal","unwanted","unwarlike","unwary","unwashed","unwatched","unweave","unwed","unwelcome","unwell","unwieldy","unwilling","unwind","unwired","unwitting","unwomanly","unworldly","unworn","unworried","unworthy","unwound","unwoven","unwrapped","unwritten","unzip","upbeat","upchuck","upcoming","upcountry","update","upfront","upgrade","upheaval","upheld","uphill","uphold","uplifted","uplifting","upload","upon","upper","upright","uprising","upriver","uproar","uproot","upscale","upside","upstage","upstairs","upstart","upstate","upstream","upstroke","upswing","uptake","uptight","uptown","upturned","upward","upwind","uranium","urban","urchin","urethane","urgency","urgent","urging","urologist","urology","usable","usage","useable","used","uselessly","user","usher","usual","utensil","utility","utilize","utmost","utopia","utter","vacancy","vacant","vacate","vacation","vagabond","vagrancy","vagrantly","vaguely","vagueness","valiant","valid","valium","valley","valuables","value","vanilla","vanish","vanity","vanquish","vantage","vaporizer","variable","variably","varied","variety","various","varmint","varnish","varsity","varying","vascular","vaseline","vastly","vastness","veal","vegan","veggie","vehicular","velcro","velocity","velvet","vendetta","vending","vendor","veneering","vengeful","venomous","ventricle","venture","venue","venus","verbalize","verbally","verbose","verdict","verify","verse","version","versus","vertebrae","vertical","vertigo","very","vessel","vest","veteran","veto","vexingly","viability","viable","vibes","vice","vicinity","victory","video","viewable","viewer","viewing","viewless","viewpoint","vigorous","village","villain","vindicate","vineyard","vintage","violate","violation","violator","violet","violin","viper","viral","virtual","virtuous","virus","visa","viscosity","viscous","viselike","visible","visibly","vision","visiting","visitor","visor","vista","vitality","vitalize","vitally","vitamins","vivacious","vividly","vividness","vixen","vocalist","vocalize","vocally","vocation","voice","voicing","void","volatile","volley","voltage","volumes","voter","voting","voucher","vowed","vowel","voyage","wackiness","wad","wafer","waffle","waged","wager","wages","waggle","wagon","wake","waking","walk","walmart","walnut","walrus","waltz","wand","wannabe","wanted","wanting","wasabi","washable","washbasin","washboard","washbowl","washcloth","washday","washed","washer","washhouse","washing","washout","washroom","washstand","washtub","wasp","wasting","watch","water","waviness","waving","wavy","whacking","whacky","wham","wharf","wheat","whenever","whiff","whimsical","whinny","whiny","whisking","whoever","whole","whomever","whoopee","whooping","whoops","why","wick","widely","widen","widget","widow","width","wieldable","wielder","wife","wifi","wikipedia","wildcard","wildcat","wilder","wildfire","wildfowl","wildland","wildlife","wildly","wildness","willed","willfully","willing","willow","willpower","wilt","wimp","wince","wincing","wind","wing","winking","winner","winnings","winter","wipe","wired","wireless","wiring","wiry","wisdom","wise","wish","wisplike","wispy","wistful","wizard","wobble","wobbling","wobbly","wok","wolf","wolverine","womanhood","womankind","womanless","womanlike","womanly","womb","woof","wooing","wool","woozy","word","work","worried","worrier","worrisome","worry","worsening","worshiper","worst","wound","woven","wow","wrangle","wrath","wreath","wreckage","wrecker","wrecking","wrench","wriggle","wriggly","wrinkle","wrinkly","wrist","writing","written","wrongdoer","wronged","wrongful","wrongly","wrongness","wrought","xbox","xerox","yahoo","yam","yanking","yapping","yard","yarn","yeah","yearbook","yearling","yearly","yearning","yeast","yelling","yelp","yen","yesterday","yiddish","yield","yin","yippee","yo-yo","yodel","yoga","yogurt","yonder","yoyo","yummy","zap","zealous","zebra","zen","zeppelin","zero","zestfully","zesty","zigzagged","zipfile","zipping","zippy","zips","zit","zodiac","zombie","zone","zoning","zookeeper","zoologist","zoology","zoom"]},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&this.cipherService.upsert(o)}return[2]}}))}))},e.prototype.deleteWithServer=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.apiService.deleteFolder(e)];case 1:return t.sent(),[4,this.delete(e)];case 2:return t.sent(),[2]}}))}))},e}();t.FolderService=m},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)for(d=0;d0)for(d=0;d0)for(d=0;d0)for(d=0;d1)&&(t.wordSeparator=" "),null==t.capitalize&&(t.capitalize=!1),null==t.includeNumber&&(t.includeNumber=!1),n=c.EEFLongWordList.length-1,r=new Array(t.numWords),o=0,i.label=1;case 1:return oe.length&&(e.minSpecial=e.length-e.minNumber),e.numWordsn.minLength&&(n.minLength=e.data.minLength),e.data.useUpper&&(n.useUppercase=!0),e.data.useLower&&(n.useLowercase=!0),e.data.useNumbers&&(n.useNumbers=!0),null!=e.data.minNumbers&&e.data.minNumbers>n.numberCount&&(n.numberCount=e.data.minNumbers),e.data.useSpecial&&(n.useSpecial=!0),null!=e.data.minSpecial&&e.data.minSpecial>n.specialCount&&(n.specialCount=e.data.minSpecial),null!=e.data.minNumberWords&&e.data.minNumberWords>n.minNumberWords&&(n.minNumberWords=e.data.minNumberWords),e.data.capitalize&&(n.capitalize=!0),e.data.includeNumber&&(n.includeNumber=!0))})),[2,n])}}))}))},e.prototype.saveOptions=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.storageService.save(d,e)];case 1:return t.sent(),this.optionsCache=e,[2]}}))}))},e.prototype.getHistory=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return[4,this.cryptoService.hasKey()];case 1:return n.sent()?this.history?[3,4]:[4,this.storageService.get(m)]:[2,new Array];case 2:return e=n.sent(),t=this,[4,this.decryptHistory(e)];case 3:t.history=n.sent(),n.label=4;case 4:return[2,this.history||new Array]}}))}))},e.prototype.addHistory=function(e){return r(this,void 0,void 0,(function(){var t,n;return i(this,(function(r){switch(r.label){case 0:return[4,this.cryptoService.hasKey()];case 1:return r.sent()?[4,this.getHistory()]:[2];case 2:return t=r.sent(),this.matchesPrevious(e,t)?[2]:(t.unshift(new s.GeneratedPasswordHistory(e,Date.now())),t.length>100&&t.pop(),[4,this.encryptHistory(t)]);case 3:return n=r.sent(),[4,this.storageService.save(m,n)];case 4:return[2,r.sent()]}}))}))},e.prototype.clear=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.history=[],[4,this.storageService.remove(m)];case 1:return[2,e.sent()]}}))}))},e.prototype.passwordStrength=function(e,t){if(void 0===t&&(t=null),null==e||0===e.length)return null;var n=["bitwarden","bit","warden"];null!=t&&t.length>0&&(n=n.concat(t));var r=Array.from(new Set(n));return o(e,r)},e.prototype.normalizeOptions=function(e,t){e.minLowercase=0,e.minUppercase=0,!e.length||e.length<5?e.length=5:e.length>128&&(e.length=128),e.lengthe.length?e.minNumber=e.length:e.minNumber>9&&(e.minNumber=9):e.minNumber=0,e.minNumbere.length?e.minSpecial=e.length:e.minSpecial>9&&(e.minSpecial=9):e.minSpecial=0,e.minSpeciale.length&&(e.minSpecial=e.length-e.minNumber),null==e.numWords||e.length<3?e.numWords=3:e.numWords>20&&(e.numWords=20),e.numWords1&&(e.wordSeparator=e.wordSeparator[0]),this.sanitizePasswordLength(e,!1)},e.prototype.capitalize=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e.prototype.appendRandomNumberToRandomWord=function(e){return r(this,void 0,void 0,(function(){var t,n;return i(this,(function(r){switch(r.label){case 0:return null==e||e.length<=0?[2]:[4,this.cryptoService.randomNumber(0,e.length-1)];case 1:return t=r.sent(),[4,this.cryptoService.randomNumber(0,9)];case 2:return n=r.sent(),e[t]=e[t]+n,[2]}}))}))},e.prototype.encryptHistory=function(e){return r(this,void 0,void 0,(function(){var t,n=this;return i(this,(function(o){switch(o.label){case 0:return null==e||0===e.length?[2,Promise.resolve([])]:(t=e.map((function(e){return r(n,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return[4,this.cryptoService.encrypt(e.password)];case 1:return t=n.sent(),[2,new s.GeneratedPasswordHistory(t.encryptedString,e.date)]}}))}))})),[4,Promise.all(t)]);case 1:return[2,o.sent()]}}))}))},e.prototype.decryptHistory=function(e){return r(this,void 0,void 0,(function(){var t,n=this;return i(this,(function(o){switch(o.label){case 0:return null==e||0===e.length?[2,Promise.resolve([])]:(t=e.map((function(e){return r(n,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return[4,this.cryptoService.decryptToUtf8(new a.EncString(e.password))];case 1:return t=n.sent(),[2,new s.GeneratedPasswordHistory(t,e.date)]}}))}))})),[4,Promise.all(t)]);case 1:return[2,o.sent()]}}))}))},e.prototype.matchesPrevious=function(e,t){return null!=t&&0!==t.length&&t[t.length-1].password===e},e.prototype.shuffleArray=function(e){return r(this,void 0,void 0,(function(){var t,n,r;return i(this,(function(i){switch(i.label){case 0:t=e.length-1,i.label=1;case 1:return t>0?[4,this.cryptoService.randomNumber(0,t)]:[3,4];case 2:n=i.sent(),r=[e[n],e[t]],e[t]=r[0],e[n]=r[1],i.label=3;case 3:return t--,[3,1];case 4:return[2]}}))}))},e.prototype.sanitizePasswordLength=function(e,t){var n=0,r=0,i=e.minNumber,o=e.minSpecial;e.uppercase&&e.minUppercase<=0?n=1:e.uppercase||(n=0),e.lowercase&&e.minLowercase<=0?r=1:e.lowercase||(r=0),e.number&&e.minNumber<=0?i=1:e.number||(i=0),e.special&&e.minSpecial<=0?o=1:e.special||(o=0),(!e.length||e.length<1)&&(e.length=10);var a=n+r+i+o;e.length0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.revisionDate&&(n=!1),a=!1,n&&(t?(n=null!=r,a=!0):null==e.collectionIds||null==e.organizationId?n=null==r:(n=!1,a=!0)),!n&&a&&null!=e.organizationId&&null!=e.collectionIds&&e.collectionIds.length>0?[4,this.collectionService.getAll()]:[3,5];case 4:if(null!=(s=i.sent()))for(l=0;l-1){n=!0;break}i.label=5;case 5:return n?[4,this.apiService.getCipher(e.id)]:[3,9];case 6:return null==(c=i.sent())?[3,9]:[4,this.userService.getUserId()];case 7:return p=i.sent(),[4,this.cipherService.upsert(new o.CipherData(c,p))];case 8:return i.sent(),this.messagingService.send("syncedUpsertedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 9:return[3,13];case 10:return null!=(u=i.sent())&&404===u.statusCode&&t?[4,this.cipherService.delete(e.id)]:[3,12];case 11:return i.sent(),this.messagingService.send("syncedDeletedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 12:return[3,13];case 13:return[2,this.syncCompleted(!1)]}}))}))},e.prototype.syncDeleteCipher=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return this.syncStarted(),[4,this.userService.isAuthenticated()];case 1:return t.sent()?[4,this.cipherService.delete(e.id)]:[3,3];case 2:return t.sent(),this.messagingService.send("syncedDeletedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 3:return[2,this.syncCompleted(!1)]}}))}))},e.prototype.syncUpsertSend=function(e,t){return r(this,void 0,void 0,(function(){var n,r,o;return i(this,(function(i){switch(i.label){case 0:return this.syncStarted(),[4,this.userService.isAuthenticated()];case 1:if(!i.sent())return[3,9];i.label=2;case 2:return i.trys.push([2,8,,9]),[4,this.sendService.get(e.id)];case 3:return n=i.sent(),!t&&null==n||t&&null!=n&&n.revisionDate0&&e.push(t.domains)})),[2,this.settingsService.setEquivalentDomains(e)]}))}))},e.prototype.syncPolicies=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return t={},null!=e&&e.forEach((function(e){t[e.id]=new c.PolicyData(e)})),[4,this.policyService.replace(t)];case 1:return[2,n.sent()]}}))}))},e}();t.SyncService=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(160),i=n(950),o=n(951),a=function(e,t){if(null!=e)switch(this.id=e.id,this.accessId=e.accessId,this.userId=t,this.type=e.type,this.name=e.name,this.notes=e.notes,this.key=e.key,this.maxAccessCount=e.maxAccessCount,this.accessCount=e.accessCount,this.revisionDate=e.revisionDate,this.expirationDate=e.expirationDate,this.deletionDate=e.deletionDate,this.password=e.password,this.disabled=e.disable,this.hideEmail=e.hideEmail,this.type){case r.SendType.Text:this.text=new o.SendTextData(e.text);break;case r.SendType.File:this.file=new i.SendFileData(e.file)}};t.SendData=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]10?r=10:u>0&&(r=u)}catch(I){}if(p.has("period")&&null!=p.get("period"))try{(d=parseInt(p.get("period").trim(),null))>0&&(t=d)}catch(E){}p.has("secret")&&null!=p.get("secret")&&(o=p.get("secret")),p.has("algorithm")&&null!=p.get("algorithm")&&("sha1"!==(m=p.get("algorithm").toLowerCase())&&"sha256"!==m&&"sha512"!==m||(n=m))}else c&&(o=e.substr("steam://".length),r=5);return h=Math.round((new Date).getTime()/1e3),f=this.leftPad(this.decToHex(Math.floor(h/t)),16,"0"),v=a.Utils.fromHexToArray(f),(y=this.b32ToBytes(o)).length&&v.length?[4,this.sign(y,v,n)]:[2,null];case 1:if(0===(g=i.sent()).length)return[2,null];if(x=15&g[g.length-1],b=(127&g[x])<<24|(255&g[x+1])<<16|(255&g[x+2])<<8|255&g[x+3],S="",c)for(w=2147483647&b,C=0;C=e.length&&(e=Array(t+1-e.length).join(n)+e),e},e.prototype.decToHex=function(e){return(e<15.5?"0":"")+Math.round(e).toString(16)},e.prototype.b32ToHex=function(e){e=e.toUpperCase();for(var t="",n=0;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=n?[4,this.storageService.get(o.ConstantsService.vaultTimeoutActionKey)]:[3,12]);case 7:return"logOut"!==r.sent()?[3,9]:[4,this.logOut()];case 8:return r.sent(),[3,11];case 9:return[4,this.lock(!0)];case 10:r.sent(),r.label=11;case 11:r.label=12;case 12:return[2]}}))}))},e.prototype.lock=function(e){return void 0===e&&(e=!1),r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.userService.isAuthenticated()];case 1:return t.sent()?(this.biometricLocked=!0,e?[4,this.isBiometricLockSet()]:[3,5]):[2];case 2:return t.sent()&&this.platformUtilsService.supportsSecureStorage()?(this.messagingService.send("locked"),null==this.lockedCallback?[3,4]:[4,this.lockedCallback()]):[3,5];case 3:t.sent(),t.label=4;case 4:return[2];case 5:return[4,Promise.all([this.cryptoService.clearKey(),this.cryptoService.clearOrgKeys(!0),this.cryptoService.clearKeyPair(!0),this.cryptoService.clearEncKey(!0)])];case 6:return t.sent(),this.folderService.clearCache(),this.cipherService.clearCache(),this.collectionService.clearCache(),this.searchService.clearIndex(),this.messagingService.send("locked"),null==this.lockedCallback?[3,8]:[4,this.lockedCallback()];case 7:t.sent(),t.label=8;case 8:return[2]}}))}))},e.prototype.logOut=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return null==this.loggedOutCallback?[3,2]:[4,this.loggedOutCallback()];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},e.prototype.setVaultTimeoutOptions=function(e,t){return r(this,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return[4,this.storageService.save(o.ConstantsService.vaultTimeoutKey,e)];case 1:return n.sent(),[4,this.storageService.save(o.ConstantsService.vaultTimeoutActionKey,t)];case 2:return n.sent(),[4,this.cryptoService.toggleKey()];case 3:return n.sent(),[4,this.tokenService.toggleTokens()];case 4:return n.sent(),[2]}}))}))},e.prototype.isPinLockSet=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return[4,this.storageService.get(o.ConstantsService.protectedPin)];case 1:return e=n.sent(),[4,this.storageService.get(o.ConstantsService.pinProtectedKey)];case 2:return t=n.sent(),[2,[null!=e,null!=t]]}}))}))},e.prototype.isBiometricLockSet=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.storageService.get(o.ConstantsService.biometricUnlockKey)];case 1:return[2,e.sent()]}}))}))},e.prototype.clear=function(){return this.pinProtectedKey=null,this.storageService.remove(o.ConstantsService.protectedPin)},e}();t.VaultTimeoutService=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(710),i=n(955),o=function(){function e(e,t){void 0===t&&(t=null),this.isDev=e,this.filter=t,this.timersMap=new Map}return e.prototype.debug=function(e){this.isDev&&this.write(r.LogLevelType.Debug,e)},e.prototype.info=function(e){this.write(r.LogLevelType.Info,e)},e.prototype.warning=function(e){this.write(r.LogLevelType.Warning,e)},e.prototype.error=function(e){this.write(r.LogLevelType.Error,e)},e.prototype.write=function(e,t){if(null==this.filter||!this.filter(e))switch(e){case r.LogLevelType.Debug:case r.LogLevelType.Info:console.log(t);break;case r.LogLevelType.Warning:console.warn(t);break;case r.LogLevelType.Error:console.error(t)}},e.prototype.time=function(e){void 0===e&&(e="default"),this.timersMap.has(e)||this.timersMap.set(e,i())},e.prototype.timeEnd=function(e){void 0===e&&(e="default");var t=i(this.timersMap.get(e));return this.timersMap.delete(e),this.write(r.LogLevelType.Info,e+": "+(1e3*t[0]+t[1]/1e7)+"ms"),t},e}();t.ConsoleLogService=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(t.LogLevelType||(t.LogLevelType={}))},,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t),this.collectionIds=t.collectionIds},t}(n(960).Cipher);t.CipherWithIds=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t)},t}(n(967).Collection);t.CollectionWithId=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t)},t}(n(968).Folder);t.FolderWithId=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(26),a=n(25),s=n(39),l=n(118),c=n(1007);t.IgnoredProperties=["ainfo","autosubmit","notesplain","ps","scope","tags","title","uuid","notes"];var p=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.loginPropertyParsers=[t.setLoginUsername,t.setLoginPassword,t.setLoginUris],t.creditCardPropertyParsers=[t.setCreditCardNumber,t.setCreditCardVerification,t.setCreditCardCardholderName,t.setCreditCardExpiry],t.identityPropertyParsers=[t.setIdentityFirstName,t.setIdentityInitial,t.setIdentityLastName,t.setIdentityUserName,t.setIdentityEmail,t.setIdentityPhone,t.setIdentityCompany],t}return i(n,e),n.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0,{quoteChar:'"',escapeChar:"\\"});return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!t.isNullOrWhitespace(t.getProp(e,"title"))){var r=t.initLoginCipher();r.name=t.getValueOrDefault(t.getProp(e,"title"),"--"),t.setNotes(e,r),t.setCipherType(e,r);var i=null;for(var o in e)if(e.hasOwnProperty(o)&&!t.isNullOrWhitespace(e[o])){var a=new c.CipherImportContext(e,o,r);r.type===s.CipherType.Login&&t.setKnownLoginValue(a)||r.type===s.CipherType.Card&&t.setKnownCreditCardValue(a)||r.type===s.CipherType.Identity&&t.setKnownIdentityValue(a)||(i=t.setUnknownValue(a,i))}r.type===s.CipherType.Login&&!t.isNullOrWhitespace(i)&&t.isNullOrWhitespace(r.login.username)&&-1===i.indexOf("://")&&(r.login.username=i),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},n.prototype.getProp=function(e,t){return Object.entries(e).reduce((function(e,t){return e[t[0].toLowerCase()]=t[1],e}),{})[t.toLowerCase()]},n.prototype.getPropByRegexp=function(e,t){var n=Object.keys(e).reduce((function(e,n){return n.match(t)&&e.push(n),e}),[]);return 0===n.length?null:e[n[0]]},n.prototype.getPropIncluding=function(e,t){var n=Object.keys(e).reduce((function(e,n){return n.toLowerCase().includes(t.toLowerCase())&&e.push(n),e}),[]);return 0===n.length?null:e[n[0]]},n.prototype.setNotes=function(e,t){t.notes=this.getValueOrDefault(this.getProp(e,"notesPlain"),"")+"\n"+this.getValueOrDefault(this.getProp(e,"notes"),"")+"\n",t.notes.trim()},n.prototype.setKnownLoginValue=function(e){var t=this;return this.loginPropertyParsers.reduce((function(n,r){return n||(n=r.bind(t)(e)),n}),!1)},n.prototype.setKnownCreditCardValue=function(e){var t=this;return this.creditCardPropertyParsers.reduce((function(n,r){return n||(n=r.bind(t)(e)),n}),!1)},n.prototype.setKnownIdentityValue=function(e){var t=this;return this.identityPropertyParsers.reduce((function(n,r){return n||(n=r.bind(t)(e)),n}),!1)},n.prototype.setUnknownValue=function(e,n){if(-1===t.IgnoredProperties.indexOf(e.lowerProperty)&&!e.lowerProperty.startsWith("section:")&&!e.lowerProperty.startsWith("section ")){if(null==n&&"email"===e.lowerProperty)return e.importRecord[e.property];if("created date"===e.lowerProperty||"modified date"===e.lowerProperty){var r=new Date(1e3*parseInt(e.importRecord[e.property],10)).toUTCString();return this.processKvp(e.cipher,"1Password "+e.property,r),null}e.lowerProperty.includes("password")||e.lowerProperty.includes("key")||e.lowerProperty.includes("secret")?this.processKvp(e.cipher,e.property,e.importRecord[e.property],l.FieldType.Hidden):this.processKvp(e.cipher,e.property,e.importRecord[e.property])}return null},n.prototype.setIdentityFirstName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.firstName)||!e.lowerProperty.includes("first name"))&&(e.cipher.identity.firstName=e.importRecord[e.property],!0)},n.prototype.setIdentityInitial=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.middleName)||!e.lowerProperty.includes("initial"))&&(e.cipher.identity.middleName=e.importRecord[e.property],!0)},n.prototype.setIdentityLastName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.lastName)||!e.lowerProperty.includes("last name"))&&(e.cipher.identity.lastName=e.importRecord[e.property],!0)},n.prototype.setIdentityUserName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.username)||!e.lowerProperty.includes("username"))&&(e.cipher.identity.username=e.importRecord[e.property],!0)},n.prototype.setIdentityCompany=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.company)||!e.lowerProperty.includes("company"))&&(e.cipher.identity.company=e.importRecord[e.property],!0)},n.prototype.setIdentityPhone=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.phone)||!e.lowerProperty.includes("default phone"))&&(e.cipher.identity.phone=e.importRecord[e.property],!0)},n.prototype.setIdentityEmail=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.email)||!e.lowerProperty.includes("email"))&&(e.cipher.identity.email=e.importRecord[e.property],!0)},n.prototype.setCreditCardNumber=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.number)||!e.lowerProperty.includes("number"))&&(e.cipher.card.number=e.importRecord[e.property],e.cipher.card.brand=this.getCardBrand(e.cipher.card.number),!0)},n.prototype.setCreditCardVerification=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.code)||!e.lowerProperty.includes("verification number"))&&(e.cipher.card.code=e.importRecord[e.property],!0)},n.prototype.setCreditCardCardholderName=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.cardholderName)||!e.lowerProperty.includes("cardholder name"))&&(e.cipher.card.cardholderName=e.importRecord[e.property],!0)},n.prototype.setCreditCardExpiry=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.expiration)||!e.lowerProperty.includes("expiry date")||7!==e.importRecord[e.property].length)&&(e.cipher.card.expMonth=e.importRecord[e.property].substr(0,2),"0"===e.cipher.card.expMonth[0]&&(e.cipher.card.expMonth=e.cipher.card.expMonth.substr(1,1)),e.cipher.card.expYear=e.importRecord[e.property].substr(3,4),!0)},n.prototype.setLoginPassword=function(e){return!(!this.isNullOrWhitespace(e.cipher.login.password)||"password"!==e.lowerProperty)&&(e.cipher.login.password=e.importRecord[e.property],!0)},n.prototype.setLoginUsername=function(e){return!(!this.isNullOrWhitespace(e.cipher.login.username)||"username"!==e.lowerProperty)&&(e.cipher.login.username=e.importRecord[e.property],!0)},n.prototype.setLoginUris=function(e){if((null==e.cipher.login.uris||0===e.cipher.login.uris.length)&&"urls"===e.lowerProperty){var t=e.importRecord[e.property].split(this.newLineRegex);return e.cipher.login.uris=this.makeUriArray(t),!0}return"url"===e.lowerProperty&&(null==e.cipher.login.uris&&(e.cipher.login.uris=[]),e.cipher.login.uris.concat(this.makeUriArray(e.importRecord[e.property])),!0)},n}(a.BaseImporter);t.OnePasswordCsvImporter=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(596);t.AttachmentView=r.AttachmentView;var i=n(88);t.CardView=i.CardView;var o=n(143);t.CipherView=o.CipherView;var a=n(209);t.FieldView=a.FieldView;var s=n(144);t.IdentityView=s.IdentityView;var l=n(258);t.LoginUriView=l.LoginUriView;var c=n(159);t.LoginView=c.LoginView;var p=n(94);t.SecureNoteView=p.SecureNoteView;var u=n(1008);t.View=u.View},,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.SyncCipherUpdate=0]="SyncCipherUpdate",e[e.SyncCipherCreate=1]="SyncCipherCreate",e[e.SyncLoginDelete=2]="SyncLoginDelete",e[e.SyncFolderDelete=3]="SyncFolderDelete",e[e.SyncCiphers=4]="SyncCiphers",e[e.SyncVault=5]="SyncVault",e[e.SyncOrgKeys=6]="SyncOrgKeys",e[e.SyncFolderCreate=7]="SyncFolderCreate",e[e.SyncFolderUpdate=8]="SyncFolderUpdate",e[e.SyncCipherDelete=9]="SyncCipherDelete",e[e.SyncSettings=10]="SyncSettings",e[e.LogOut=11]="LogOut",e[e.SyncSendCreate=12]="SyncSendCreate",e[e.SyncSendUpdate=13]="SyncSendUpdate",e[e.SyncSendDelete=14]="SyncSendDelete"}(t.NotificationType||(t.NotificationType={}))},,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n(754),n(273),n(530),n(755);var i=n(756),o=n(72);r.enableProdMode(),o.platformBrowser().bootstrapModule(i.AppModule,{preserveWhitespaces:!0})},,function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(757);var r=n(9),i=n(214),o=n(822),a=n(267),s=(n(0),n(13)),l=n(72),c=n(907),p=n(908),u=n(1065),d=n(84),m=n(139),h=n(250),f=n(460),v=n(540),y=n(459),g=n(541),x=n(544),b=n(545),S=n(546),w=n(547),C=n(548),I=n(549),E=n(550),P=n(551),k=n(552),_=n(553),A=n(554),O=n(557),T=n(556),M=n(560),B=n(561),D=n(563),R=n(562),V=n(467),j=n(466),F=n(565),U=n(567),N=n(566),z=n(568),L=n(569),G=n(573),K=n(575),q=n(570),W=n(571),H=n(572),$=n(576),Y=n(585),Q=n(583),J=n(579),X=n(584),Z=n(580),ee=n(582),te=n(586),ne=n(587),re=n(593),ie=n(594),oe=n(606),ae=n(607),se=n(608),le=n(609),ce=n(610),pe=n(611),ue=n(481),de=n(613),me=n(505),he=n(622),fe=n(507),ve=n(612),ye=n(629),ge=n(631),xe=n(630),be=n(633),Se=n(472),we=n(473),Ce=n(476),Ie=n(469),Ee=n(637),Pe=n(646),ke=n(639),_e=n(647),Ae=n(634),Oe=n(635),Te=n(648),Me=n(679),Be=n(674),De=n(680),Re=n(681),Ve=n(670),je=n(676),Fe=n(675),Ue=n(650),Ne=n(649),ze=n(283),Le=n(298),Ge=n(117),Ke=n(651),qe=n(636),We=n(470),He=n(652),$e=n(142),Ye=n(588),Qe=n(477),Je=n(589),Xe=n(590),Ze=n(478),et=n(188),tt=n(591),nt=n(592),rt=n(659),it=n(474),ot=n(471),at=n(653),st=n(663),lt=n(654),ct=n(479),pt=n(480),ut=n(491),dt=n(493),mt=n(656),ht=n(655),ft=n(494),vt=n(657),yt=n(495),gt=n(496),xt=n(260),bt=n(497),St=n(508),wt=n(624),Ct=n(626),It=n(627),Et=n(628),Pt=n(263),kt=n(506),_t=n(660),At=n(294),Ot=n(662),Tt=n(661),Mt=n(658),Bt=n(24),Dt=n(107),Rt=n(17),Vt=n(16),jt=n(65),Ft=n(1066),Ut=n(1067),Nt=n(605),zt=n(45),Lt=n(513),Gt=n(37),Kt=n(53),qt=n(291),Wt=n(514),Ht=n(10),$t=n(1068),Yt=n(252),Qt=n(4),Jt=n(1069),Xt=n(1070),Zt=n(1071),en=n(1072),tn=n(1073),nn=n(1074),rn=n(1075),on=n(1076),an=n(1077),sn=n(1078),ln=n(1079),cn=n(1080),pn=n(1081),un=n(1082),dn=n(1083),mn=n(1084),hn=n(1085),fn=n(1086),vn=n(1087),yn=n(1088),gn=n(1089),xn=n(1090),bn=n(1091),Sn=n(1092),wn=n(1093),Cn=n(1094),In=n(0),En=n(9);Qt.registerLocaleData(Jt.default,"ca"),Qt.registerLocaleData(Xt.default,"cs"),Qt.registerLocaleData(Zt.default,"da"),Qt.registerLocaleData(en.default,"de"),Qt.registerLocaleData(tn.default,"el"),Qt.registerLocaleData(nn.default,"en-GB"),Qt.registerLocaleData(rn.default,"es"),Qt.registerLocaleData(on.default,"et"),Qt.registerLocaleData(an.default,"fr"),Qt.registerLocaleData(sn.default,"he"),Qt.registerLocaleData(ln.default,"it"),Qt.registerLocaleData(cn.default,"ja"),Qt.registerLocaleData(pn.default,"ko"),Qt.registerLocaleData(un.default,"lv"),Qt.registerLocaleData(dn.default,"ml"),Qt.registerLocaleData(mn.default,"nb"),Qt.registerLocaleData(hn.default,"nl"),Qt.registerLocaleData(fn.default,"pl"),Qt.registerLocaleData(vn.default,"pt-BR"),Qt.registerLocaleData(yn.default,"pt-PT"),Qt.registerLocaleData(gn.default,"ru"),Qt.registerLocaleData(xn.default,"sk"),Qt.registerLocaleData(bn.default,"sv"),Qt.registerLocaleData(Sn.default,"uk"),Qt.registerLocaleData(wn.default,"zh-CN"),Qt.registerLocaleData(Cn.default,"zh-TW");var Pn=function(){function e(){}return e.ɵmod=In.ɵɵdefineNgModule({type:e,bootstrap:[u.AppComponent]}),e.ɵinj=In.ɵɵdefineInjector({factory:function(t){return new(t||e)},providers:[Qt.DatePipe],imports:[[l.BrowserModule,c.BrowserAnimationsModule,s.FormsModule,o.AppRoutingModule,p.ServicesModule,r.ToasterModule.forRoot(),i.InfiniteScrollModule,a.DragDropModule]]}),e}();t.AppModule=Pn,("undefined"==typeof ngJitMode||ngJitMode)&&In.ɵɵsetNgModuleScope(Pn,{declarations:[Rt.A11yTitleDirective,b.AcceptEmergencyComponent,ye.AccessComponent,S.AcceptOrganizationComponent,be.AccountComponent,_.SetPasswordComponent,Se.AddCreditComponent,xt.AddEditComponent,we.AdjustPaymentComponent,Y.AdjustSeatsComponent,Ce.AdjustStorageComponent,Vt.ApiActionDirective,Ie.ApiKeyComponent,u.AppComponent,bt.AttachmentsComponent,jt.AutofocusDirective,m.AvatarComponent,Ft.BlurClickDirective,Ut.BoxRowDirective,lt.BreachReportComponent,St.BulkActionsComponent,wt.BulkDeleteComponent,Ct.BulkMoveComponent,It.BulkRestoreComponent,Et.BulkShareComponent,Bt.CalloutComponent,Ee.ChangeEmailComponent,Pe.ChangeKdfComponent,ke.ChangePasswordComponent,Q.ChangePlanComponent,Pt.CiphersComponent,kt.CollectionsComponent,Wt.ColorPasswordPipe,_e.CreateOrganizationComponent,Ae.DeauthorizeSessionsComponent,Oe.DeleteAccountComponent,J.DeleteOrganizationComponent,Te.DomainRulesComponent,X.DownloadLicenseComponent,Me.EmergencyAccessAddEditComponent,Be.EmergencyAccessAttachmentsComponent,je.EmergencyAccessComponent,De.EmergencyAccessConfirmComponent,Re.EmergencyAccessTakeoverComponent,Ve.EmergencyAccessViewComponent,Fe.EmergencyAddEditComponent,ct.ExportComponent,pt.ExposedPasswordsReportComponent,Nt.FallbackSrcDirective,_t.FolderAddEditComponent,f.FooterComponent,v.FrontendLayoutComponent,At.GroupingsComponent,w.HintComponent,Ht.I18nPipe,Dt.IconComponent,ut.ImportComponent,dt.InactiveTwoFactorReportComponent,zt.InputVerbatimDirective,Ue.LinkSsoComponent,C.LockComponent,I.LoginComponent,d.ModalComponent,y.NavbarComponent,Ne.OptionsComponent,$.AccountComponent,ue.AddEditComponent,Z.OrganizationBillingComponent,ze.OrganizationPlansComponent,ee.OrganizationSubscriptionComponent,de.AttachmentsComponent,me.CiphersComponent,D.CollectionAddEditComponent,he.CollectionsComponent,V.EntityEventsComponent,j.EntityUsersComponent,F.EventsComponent,re.ExportComponent,ie.ExposedPasswordsReportComponent,oe.ImportComponent,ae.InactiveTwoFactorReportComponent,U.GroupAddEditComponent,fe.GroupingsComponent,N.GroupsComponent,R.CollectionsComponent,z.ManageComponent,L.PeopleComponent,K.PolicyEditComponent,G.PoliciesComponent,se.ReusedPasswordsReportComponent,te.SettingsComponent,le.ToolsComponent,ne.TwoFactorSetupComponent,q.UserAddEditComponent,W.UserConfirmComponent,H.UserGroupsComponent,Le.OrganizationsComponent,g.OrganizationLayoutComponent,ce.UnsecuredWebsitesReportComponent,ve.VaultComponent,pe.WeakPasswordsReportComponent,ht.PasswordGeneratorComponent,mt.PasswordGeneratorHistoryComponent,h.PasswordStrengthComponent,Ge.PaymentComponent,Ke.PremiumComponent,qe.ProfileComponent,We.PurgeVaultComponent,E.RecoverDeleteComponent,P.RecoverTwoFactorComponent,k.RegisterComponent,ft.ReusedPasswordsReportComponent,$t.SearchCiphersPipe,Yt.SearchPipe,Lt.SelectCopyDirective,ge.AddEditComponent,xe.SendComponent,Ot.SendInfoComponent,He.SettingsComponent,Tt.ShareComponent,A.SsoComponent,Gt.StopClickDirective,Kt.StopPropDirective,$e.TaxInfoComponent,vt.ToolsComponent,qt.TrueFalseValueDirective,Ye.TwoFactorAuthenticatorComponent,T.TwoFactorComponent,Qe.TwoFactorDuoComponent,Je.TwoFactorEmailComponent,O.TwoFactorOptionsComponent,Xe.TwoFactorRecoveryComponent,Ze.TwoFactorSetupComponent,et.TwoFactorVerifyComponent,tt.TwoFactorWebAuthnComponent,nt.TwoFactorYubiKeyComponent,yt.UnsecuredWebsitesReportComponent,rt.UpdateKeyComponent,it.UpdateLicenseComponent,ot.UserBillingComponent,x.UserLayoutComponent,at.UserSubscriptionComponent,Mt.VaultComponent,st.VerifyEmailComponent,M.VerifyEmailTokenComponent,B.VerifyRecoverDeleteComponent,gt.WeakPasswordsReportComponent],imports:[l.BrowserModule,c.BrowserAnimationsModule,s.FormsModule,o.AppRoutingModule,p.ServicesModule,En.ToasterModule,i.InfiniteScrollModule,a.DragDropModule]})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(8),i=n(540),o=n(541),a=n(544),s=n(545),l=n(546),c=n(547),p=n(548),u=n(549),d=n(550),m=n(551),h=n(552),f=n(553),v=n(554),y=n(556),g=n(560),x=n(561),b=n(562),S=n(565),w=n(566),C=n(568),I=n(569),E=n(573),P=n(576),k=n(580),_=n(582),A=n(586),O=n(587),T=n(593),M=n(594),B=n(606),D=n(607),R=n(608),V=n(609),j=n(610),F=n(611),U=n(612),N=n(629),z=n(630),L=n(633),G=n(647),K=n(648),q=n(649),W=n(298),H=n(651),$=n(652),Y=n(478),Q=n(471),J=n(653),X=n(654),Z=n(479),ee=n(480),te=n(491),ne=n(493),re=n(655),ie=n(494),oe=n(657),ae=n(495),se=n(496),le=n(658),ce=n(664),pe=n(665),ue=n(667),de=n(668),me=n(669),he=n(666),fe=n(670),ve=n(676),ye=n(0),ge=n(8),xe=[{path:"",component:i.FrontendLayoutComponent,children:[{path:"",pathMatch:"full",component:u.LoginComponent,canActivate:[me.UnauthGuardService]},{path:"2fa",component:y.TwoFactorComponent,canActivate:[me.UnauthGuardService]},{path:"register",component:h.RegisterComponent,canActivate:[me.UnauthGuardService],data:{titleId:"createAccount"}},{path:"sso",component:v.SsoComponent,canActivate:[me.UnauthGuardService],data:{titleId:"enterpriseSingleSignOn"}},{path:"set-password",component:f.SetPasswordComponent,data:{titleId:"setMasterPassword"}},{path:"hint",component:c.HintComponent,canActivate:[me.UnauthGuardService],data:{titleId:"passwordHint"}},{path:"lock",component:p.LockComponent,canActivate:[de.LockGuardService]},{path:"verify-email",component:g.VerifyEmailTokenComponent},{path:"accept-organization",component:l.AcceptOrganizationComponent,data:{titleId:"joinOrganization"}},{path:"accept-emergency",component:s.AcceptEmergencyComponent,data:{titleId:"acceptEmergency"}},{path:"recover",pathMatch:"full",redirectTo:"recover-2fa"},{path:"recover-2fa",component:m.RecoverTwoFactorComponent,canActivate:[me.UnauthGuardService],data:{titleId:"recoverAccountTwoStep"}},{path:"recover-delete",component:d.RecoverDeleteComponent,canActivate:[me.UnauthGuardService],data:{titleId:"deleteAccount"}},{path:"verify-recover-delete",component:x.VerifyRecoverDeleteComponent,canActivate:[me.UnauthGuardService],data:{titleId:"deleteAccount"}},{path:"send/:sendId/:key",component:N.AccessComponent,data:{title:"Bitwarden Send"}}]},{path:"",component:a.UserLayoutComponent,canActivate:[ue.AuthGuardService],children:[{path:"vault",component:le.VaultComponent,data:{titleId:"myVault"}},{path:"sends",component:z.SendComponent,data:{title:"Send"}},{path:"settings",component:$.SettingsComponent,children:[{path:"",pathMatch:"full",redirectTo:"account"},{path:"account",component:L.AccountComponent,data:{titleId:"myAccount"}},{path:"options",component:q.OptionsComponent,data:{titleId:"options"}},{path:"domain-rules",component:K.DomainRulesComponent,data:{titleId:"domainRules"}},{path:"two-factor",component:Y.TwoFactorSetupComponent,data:{titleId:"twoStepLogin"}},{path:"premium",component:H.PremiumComponent,data:{titleId:"goPremium"}},{path:"billing",component:Q.UserBillingComponent,data:{titleId:"billing"}},{path:"subscription",component:J.UserSubscriptionComponent,data:{titleId:"premiumMembership"}},{path:"organizations",component:W.OrganizationsComponent,data:{titleId:"organizations"}},{path:"create-organization",component:G.CreateOrganizationComponent,data:{titleId:"newOrganization"}},{path:"emergency-access",children:[{path:"",component:ve.EmergencyAccessComponent,data:{titleId:"emergencyAccess"}},{path:":id",component:fe.EmergencyAccessViewComponent,data:{titleId:"emergencyAccess"}}]}]},{path:"tools",component:oe.ToolsComponent,canActivate:[ue.AuthGuardService],children:[{path:"",pathMatch:"full",redirectTo:"generator"},{path:"import",component:te.ImportComponent,data:{titleId:"importData"}},{path:"export",component:Z.ExportComponent,data:{titleId:"exportVault"}},{path:"generator",component:re.PasswordGeneratorComponent,data:{titleId:"passwordGenerator"}},{path:"breach-report",component:X.BreachReportComponent,data:{titleId:"dataBreachReport"}},{path:"reused-passwords-report",component:ie.ReusedPasswordsReportComponent,data:{titleId:"reusedPasswordsReport"}},{path:"unsecured-websites-report",component:ae.UnsecuredWebsitesReportComponent,data:{titleId:"unsecuredWebsitesReport"}},{path:"weak-passwords-report",component:se.WeakPasswordsReportComponent,data:{titleId:"weakPasswordsReport"}},{path:"exposed-passwords-report",component:ee.ExposedPasswordsReportComponent,data:{titleId:"exposedPasswordsReport"}},{path:"inactive-two-factor-report",component:ne.InactiveTwoFactorReportComponent,data:{titleId:"inactive2faReport"}}]}]},{path:"organizations/:organizationId",component:o.OrganizationLayoutComponent,canActivate:[ue.AuthGuardService,ce.OrganizationGuardService],children:[{path:"",pathMatch:"full",redirectTo:"vault"},{path:"vault",component:U.VaultComponent,data:{titleId:"vault"}},{path:"tools",component:V.ToolsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[he.Permissions.AccessImportExport,he.Permissions.AccessReports]},children:[{path:"",pathMatch:"full",redirectTo:"import"},{path:"import",component:B.ImportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"importData",permissions:[he.Permissions.AccessImportExport]}},{path:"export",component:T.ExportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"exportVault",permissions:[he.Permissions.AccessImportExport]}},{path:"exposed-passwords-report",component:M.ExposedPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"exposedPasswordsReport",permissions:[he.Permissions.AccessReports]}},{path:"inactive-two-factor-report",component:D.InactiveTwoFactorReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"inactive2faReport",permissions:[he.Permissions.AccessReports]}},{path:"reused-passwords-report",component:R.ReusedPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"reusedPasswordsReport",permissions:[he.Permissions.AccessReports]}},{path:"unsecured-websites-report",component:j.UnsecuredWebsitesReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"unsecuredWebsitesReport",permissions:[he.Permissions.AccessReports]}},{path:"weak-passwords-report",component:F.WeakPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"weakPasswordsReport",permissions:[he.Permissions.AccessReports]}}]},{path:"manage",component:C.ManageComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[he.Permissions.ManageAssignedCollections,he.Permissions.ManageAllCollections,he.Permissions.AccessEventLogs,he.Permissions.ManageGroups,he.Permissions.ManageUsers,he.Permissions.ManagePolicies]},children:[{path:"",pathMatch:"full",redirectTo:"people"},{path:"collections",component:b.CollectionsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"collections",permissions:[he.Permissions.ManageAssignedCollections,he.Permissions.ManageAllCollections]}},{path:"events",component:S.EventsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"eventLogs",permissions:[he.Permissions.AccessEventLogs]}},{path:"groups",component:w.GroupsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"groups",permissions:[he.Permissions.ManageGroups]}},{path:"people",component:I.PeopleComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"people",permissions:[he.Permissions.ManageUsers]}},{path:"policies",component:E.PoliciesComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"policies",permissions:[he.Permissions.ManagePolicies]}}]},{path:"settings",component:A.SettingsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[he.Permissions.ManageOrganization]},children:[{path:"",pathMatch:"full",redirectTo:"account"},{path:"account",component:P.AccountComponent,data:{titleId:"myOrganization"}},{path:"two-factor",component:O.TwoFactorSetupComponent,data:{titleId:"twoStepLogin"}},{path:"billing",component:k.OrganizationBillingComponent,data:{titleId:"billing"}},{path:"subscription",component:_.OrganizationSubscriptionComponent,data:{titleId:"subscription"}}]}]},{path:"**",redirectTo:""}],be=function(){function e(){}return e.ɵmod=ye.ɵɵdefineNgModule({type:e}),e.ɵinj=ye.ɵɵdefineInjector({factory:function(t){return new(t||e)},imports:[[r.RouterModule.forRoot(xe,{useHash:!0,paramsInheritanceStrategy:"always"})],r.RouterModule]}),e}();t.AppRoutingModule=be,("undefined"==typeof ngJitMode||ngJitMode)&&ye.ɵɵsetNgModuleScope(be,{imports:[ge.RouterModule],exports:[r.RouterModule]})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.subscribers=new Map}return e.prototype.send=function(e,t){null==t?this.subscribers.forEach((function(t){t(e)})):this.subscribers.has(t)&&this.subscribers.get(t)(e)},e.prototype.subscribe=function(e,t){this.subscribers.set(e,t)},e.prototype.unsubscribe=function(e){this.subscribers.has(e)&&this.subscribers.delete(e)},e}();t.BroadcasterService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDomain=function(e){return null}},,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.EmergencyAccessAcceptRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationUserAcceptRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=5)return this.messagingService.send("logout"),[2];this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("invalidPin"))}return[3,33];case 16:return[4,this.cryptoService.makeKey(this.masterPassword,this.email,e,t)];case 17:return r=i.sent(),[4,this.cryptoService.hashPassword(this.masterPassword,r)];case 18:return l=i.sent(),c=!1,null==l?[3,25]:[4,this.cryptoService.getKeyHash()];case 19:return null==(p=i.sent())?[3,20]:(c=p===l,[3,25]);case 20:(u=new s.PasswordVerificationRequest).masterPasswordHash=l,i.label=21;case 21:return i.trys.push([21,24,,25]),this.formPromise=this.apiService.postAccountVerifyPassword(u),[4,this.formPromise];case 22:return i.sent(),c=!0,[4,this.cryptoService.setKeyHash(l)];case 23:return i.sent(),[3,25];case 24:return i.sent(),[3,25];case 25:return c?this.pinSet[0]?[4,this.storageService.get(o.ConstantsService.protectedPin)]:[3,31]:[3,32];case 26:return d=i.sent(),[4,this.cryptoService.getEncKey(r)];case 27:return m=i.sent(),[4,this.cryptoService.decryptToUtf8(new a.EncString(d),m)];case 28:return h=i.sent(),[4,this.cryptoService.makePinKey(h,this.email,e,t)];case 29:return f=i.sent(),v=this.vaultTimeoutService,[4,this.cryptoService.encrypt(r.key,f)];case 30:v.pinProtectedKey=i.sent(),i.label=31;case 31:return this.setKeyAndContinue(r),[3,33];case 32:this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("invalidMasterPassword")),i.label=33;case 33:return[2]}}))}))},e.prototype.logOut=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("logOutConfirmation"),this.i18nService.t("logOut"),this.i18nService.t("logOut"),this.i18nService.t("cancel"))];case 1:return e.sent()&&this.messagingService.send("logout"),[2]}}))}))},e.prototype.unlockBiometric=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.biometricLock?[4,this.platformUtilsService.authenticateBiometric()]:[2];case 1:return e.sent()?[4,this.doContinue()]:[3,3];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},e.prototype.togglePassword=function(){this.showPassword=!this.showPassword,document.getElementById(this.pinLock?"pin":"masterPassword").focus()},e.prototype.setKeyAndContinue=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.cryptoService.setKey(e)];case 1:return t.sent(),this.doContinue(),[2]}}))}))},e.prototype.doContinue=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return this.vaultTimeoutService.biometricLocked=!1,[4,this.storageService.get(o.ConstantsService.disableFaviconKey)];case 1:return e=t.sent(),[4,this.stateService.save(o.ConstantsService.disableFaviconKey,!!e)];case 2:return t.sent(),this.messagingService.send("unlocked"),null!=this.onSuccessfulSubmit?this.onSuccessfulSubmit():null!=this.router&&this.router.navigate([this.successRoute]),[2]}}))}))},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.Router),c.ɵɵdirectiveInject(u.I18nService),c.ɵɵdirectiveInject(d.PlatformUtilsService),c.ɵɵdirectiveInject(m.MessagingService),c.ɵɵdirectiveInject(h.UserService),c.ɵɵdirectiveInject(f.CryptoService),c.ɵɵdirectiveInject(v.StorageService),c.ɵɵdirectiveInject(y.VaultTimeoutService),c.ɵɵdirectiveInject(g.EnvironmentService),c.ɵɵdirectiveInject(x.StateService),c.ɵɵdirectiveInject(b.ApiService))},e.ɵdir=c.ɵɵdefineDirective({type:e}),e}();t.LockComponent=S},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1&&(e=e.concat(this.email.substr(0,t).trim().toLowerCase().split(/[^A-Za-z0-9]/))),null!=this.name&&""!==this.name&&(e=e.concat(this.name.trim().toLowerCase().split(" "))),e},e}();t.RegisterComponent=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n,r,i,o,a,s){this.name=t,this.email=e,this.masterPasswordHash=n,this.masterPasswordHint=r||null,this.key=i,this.kdf=o,this.kdfIterations=a,this.referenceData=s};t.RegisterRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.ReferenceEventRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1?[4,this.sendEmail(!1)]:[3,5];case 4:n.sent(),n.label=5;case 5:case 6:return[3,7];case 7:return[2]}}))}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:if(null==this.token||""===this.token)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("verificationCodeRequired")),[2];if(this.selectedProviderType===o.TwoFactorProviderType.WebAuthn){if(null==this.webAuthn)return[2];this.webAuthn.stop()}else this.selectedProviderType!==o.TwoFactorProviderType.Email&&this.selectedProviderType!==o.TwoFactorProviderType.Authenticator||(this.token=this.token.replace(" ","").trim());e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.doSubmit()];case 2:return e.sent(),[3,4];case 3:return e.sent(),this.selectedProviderType===o.TwoFactorProviderType.WebAuthn&&null!=this.webAuthn&&this.webAuthn.start(),[3,4];case 4:return[2]}}))}))},e.prototype.doSubmit=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return this.formPromise=this.authService.logInTwoFactor(this.selectedProviderType,this.token,this.remember),[4,this.formPromise];case 1:return e=n.sent(),[4,this.storageService.get(l.ConstantsService.disableFaviconKey)];case 2:return t=n.sent(),[4,this.stateService.save(l.ConstantsService.disableFaviconKey,!!t)];case 3:return n.sent(),null!=this.onSuccessfulLogin&&this.onSuccessfulLogin(),e.resetMasterPassword&&(this.successRoute="set-password"),null!=this.onSuccessfulLoginNavigate?this.onSuccessfulLoginNavigate():this.router.navigate([this.successRoute],{queryParams:{identifier:this.identifier}}),[2]}}))}))},e.prototype.sendEmail=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:if(this.selectedProviderType!==o.TwoFactorProviderType.Email)return[2];if(null!=this.emailPromise)return[2];n.label=1;case 1:return n.trys.push([1,3,,4]),t=new a.TwoFactorEmailRequest(this.authService.email,this.authService.masterPasswordHash),this.emailPromise=this.apiService.postTwoFactorEmail(t),[4,this.emailPromise];case 2:return n.sent(),e&&this.platformUtilsService.showToast("success",null,this.i18nService.t("verificationCodeEmailSent",this.twoFactorEmail)),[3,4];case 3:return n.sent(),[3,4];case 4:return this.emailPromise=null,[2]}}))}))},e.prototype.cleanupWebAuthn=function(){null!=this.webAuthn&&(this.webAuthn.stop(),this.webAuthn.cleanup())},Object.defineProperty(e.prototype,"authing",{get:function(){return this.authService.authingWithPassword()||this.authService.authingWithSso()||this.authService.authingWithApiKey()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsLock",{get:function(){return this.authService.authingWithSso()||this.authService.authingWithApiKey()},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.AuthService),u.ɵɵdirectiveInject(m.Router),u.ɵɵdirectiveInject(h.I18nService),u.ɵɵdirectiveInject(f.ApiService),u.ɵɵdirectiveInject(v.PlatformUtilsService),u.ɵɵdirectiveInject(Window),u.ɵɵdirectiveInject(y.EnvironmentService),u.ɵɵdirectiveInject(g.StateService),u.ɵɵdirectiveInject(x.StorageService),u.ɵɵdirectiveInject(m.ActivatedRoute))},e.ɵdir=u.ɵɵdefineDirective({type:e}),e}();t.TwoFactorComponent=b},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.type=t.getDevice(),this.name=t.getDeviceString(),this.identifier=e,this.pushToken=null};t.DeviceRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.email=e};t.PreloginRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r,i,o,a){null!=e&&e.length>1?(this.email=e[0],this.masterPasswordHash=e[1]):null!=t&&t.length>2?(this.code=t[0],this.codeVerifier=t[1],this.redirectUri=t[2]):null!=n&&n.length>1&&(this.clientId=n[0],this.clientSecret=n[1]),this.token=i,this.provider=r,this.remember=o,this.device=null!=a?a:null}return e.prototype.toIdentityToken=function(e){var t={scope:"api offline_access",client_id:e};if(null!=this.clientSecret)t.scope="api",t.grant_type="client_credentials",t.client_secret=this.clientSecret;else if(null!=this.masterPasswordHash&&null!=this.email)t.grant_type="password",t.username=this.email,t.password=this.masterPasswordHash;else{if(null==this.code||null==this.codeVerifier||null==this.redirectUri)throw new Error("must provide credentials or codes");t.grant_type="authorization_code",t.code=this.code,t.code_verifier=this.codeVerifier,t.redirect_uri=this.redirectUri}return this.device&&(t.deviceType=this.device.type,t.deviceIdentifier=this.device.identifier,t.deviceName=this.device.name),this.token&&null!=this.provider&&(t.twoFactorToken=this.token,t.twoFactorProvider=this.provider,t.twoFactorRemember=this.remember?"1":"0"),t},e}();t.TokenRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r,i,o,a,s){this.win=e,this.webVaultUrl=t,this.webAuthnNewTab=n,this.platformUtilsService=r,this.i18nService=i,this.successCallback=o,this.errorCallback=a,this.infoCallback=s,this.iframe=null,this.parseFunction=this.parseMessage.bind(this),this.connectorLink=e.document.createElement("a")}return e.prototype.init=function(e){var t=new URLSearchParams({data:this.base64Encode(JSON.stringify(e)),parent:encodeURIComponent(this.win.document.location.href),btnText:encodeURIComponent(this.i18nService.t("webAuthnAuthenticate")),v:"1"});this.webAuthnNewTab?(t.append("locale",this.i18nService.translationLocale),this.platformUtilsService.launchUri(this.webVaultUrl+"/webauthn-fallback-connector.html?"+t)):(this.connectorLink.href=this.webVaultUrl+"/webauthn-connector.html?"+t,this.iframe=this.win.document.getElementById("webauthn_iframe"),this.iframe.allow="publickey-credentials-get "+new URL(this.webVaultUrl).origin,this.iframe.src=this.connectorLink.href,this.win.addEventListener("message",this.parseFunction,!1))},e.prototype.stop=function(){this.sendMessage("stop")},e.prototype.start=function(){this.sendMessage("start")},e.prototype.sendMessage=function(e){this.iframe&&this.iframe.src&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage(e,this.iframe.src)},e.prototype.base64Encode=function(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(function(e,t){return String.fromCharCode("0x"+t)})))},e.prototype.cleanup=function(){this.win.removeEventListener("message",this.parseFunction,!1)},e.prototype.parseMessage=function(e){if(this.validMessage(e)){var t=e.data.split("|");"success"===t[0]&&this.successCallback?this.successCallback(t[1]):"error"===t[0]&&this.errorCallback?this.errorCallback(t[1]):"info"===t[0]&&this.infoCallback&&this.infoCallback(t[1])}},e.prototype.validMessage=function(e){return null!=e.origin&&""!==e.origin&&e.origin===this.connectorLink.origin&&null!=e.data&&"string"==typeof e.data&&(0===e.data.indexOf("success|")||0===e.data.indexOf("error|")||0===e.data.indexOf("info|"))},e}();t.WebAuthn=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.userId=e,this.token=t};t.VerifyEmailRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.userId=e,this.token=t};t.VerifyDeleteRecoverRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.collections=[]};t.GroupRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationUserConfirmRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.emails=[],this.collections=[]};t.OrganizationUserInviteRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.collections=[]};t.OrganizationUserUpdateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.groupIds=[]};t.OrganizationUserUpdateGroupsRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.AppIdService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.LogService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.PolicyRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationUpdateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Charge=0]="Charge",e[e.Credit=1]="Credit",e[e.PromotionalCredit=2]="PromotionalCredit",e[e.ReferralCredit=3]="ReferralCredit",e[e.Refund=4]="Refund"}(t.TransactionType||(t.TransactionType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.VerifyBankRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.BitPayInvoiceRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(577).OrganizationTaxInfoUpdateRequest);t.PaymentRequest=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationCreateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationUpgradeRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.SeatRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.StorageRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorDuoRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.TwoFactorProviderRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorAuthenticatorRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorEmailRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorWebAuthnDeleteRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorWebAuthnRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorYubioOtpRequest=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]"+this.i18nService.t("encExportKeyWarningDesc")+"

"+this.i18nService.t("encExportAccountWarningDesc"),this.i18nService.t("confirmVaultExport"),this.i18nService.t("exportVault"),this.i18nService.t("cancel"),"warning",!0)]:[3,2];case 1:return[2,e.sent()];case 2:return[4,this.platformUtilsService.showDialog(this.i18nService.t("exportWarningDesc"),this.i18nService.t("confirmVaultExport"),this.i18nService.t("exportVault"),this.i18nService.t("cancel"),"warning")];case 3:return[2,e.sent()]}}))}))},e.prototype.togglePassword=function(){this.showPassword=!this.showPassword,document.getElementById("masterPassword").focus()},e.prototype.saved=function(){this.onSaved.emit()},e.prototype.getExportData=function(){return this.exportService.getExport(this.format)},e.prototype.getFileName=function(e){var t=this.format;return"encrypted_json"===this.format&&(e=null==e?"encrypted":"encrypted_"+e,t="json"),this.exportService.getFileName(e,t)},e.prototype.collectEvent=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.eventService.collect(a.EventType.User_ClientExportedVault)];case 1:return e.sent(),[2]}}))}))},e.prototype.downloadFile=function(e){var t=this.getFileName();this.platformUtilsService.saveFile(this.win,e,{type:"text/plain"},t)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.CryptoService),s.ɵɵdirectiveInject(c.I18nService),s.ɵɵdirectiveInject(p.PlatformUtilsService),s.ɵɵdirectiveInject(u.ExportService),s.ɵɵdirectiveInject(d.EventService),s.ɵɵdirectiveInject(Window))},e.ɵdir=s.ɵɵdefineDirective({type:e,outputs:{onSaved:"onSaved"}}),e}();t.ExportComponent=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.AttachmentRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&this.collections.length>0&&this.collections.forEach((function(e){o.collectionIds.indexOf(e.id)>-1&&(e.checked=!0)})),i.label=8;case 8:return r=this,[4,this.folderService.getAllDecrypted()];case 9:return r.folders=i.sent(),this.editMode&&this.previousCipherId!==this.cipherId&&this.eventService.collect(l.EventType.Cipher_ClientViewed,this.cipherId),this.previousCipherId=this.cipherId,[2]}}))}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return this.cipher.isDeleted?[2,this.restore()]:null==this.cipher.name||""===this.cipher.name?(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("nameRequired")),[2,!1]):this.editMode&&!this.cloneMode||this.allowPersonal||null!=this.cipher.organizationId?(this.editMode&&!this.cloneMode||this.cipher.type!==s.CipherType.Login||null==this.cipher.login.uris||1!==this.cipher.login.uris.length||null!=this.cipher.login.uris[0].uri&&""!==this.cipher.login.uris[0].uri||(this.cipher.login.uris=null),this.editMode&&!this.cloneMode||null==this.cipher.organizationId||(this.cipher.collectionIds=null==this.collections?[]:this.collections.filter((function(e){return e.checked})).map((function(e){return e.id}))),this.cloneMode&&(this.cipher.id=null),[4,this.encryptCipher()]):(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("personalOwnershipSubmitError")),[2,!1]);case 1:e=t.sent(),t.label=2;case 2:return t.trys.push([2,4,,5]),this.formPromise=this.saveCipher(e),[4,this.formPromise];case 3:return t.sent(),this.cipher.id=e.id,this.platformUtilsService.showToast("success",null,this.i18nService.t(this.editMode&&!this.cloneMode?"editedItem":"addedItem")),this.onSavedCipher.emit(this.cipher),this.messagingService.send(this.editMode&&!this.cloneMode?"editedCipher":"addedCipher"),[2,!0];case 4:return t.sent(),[3,5];case 5:return[2,!1]}}))}))},e.prototype.addUri=function(){this.cipher.type===s.CipherType.Login&&(null==this.cipher.login.uris&&(this.cipher.login.uris=[]),this.cipher.login.uris.push(new g.LoginUriView))},e.prototype.removeUri=function(e){if(this.cipher.type===s.CipherType.Login&&null!=this.cipher.login.uris){var t=this.cipher.login.uris.indexOf(e);t>-1&&this.cipher.login.uris.splice(t,1)}},e.prototype.addField=function(){null==this.cipher.fields&&(this.cipher.fields=[]);var e=new v.FieldView;e.type=this.addFieldType,e.newField=!0,this.cipher.fields.push(e)},e.prototype.removeField=function(e){var t=this.cipher.fields.indexOf(e);t>-1&&this.cipher.fields.splice(t,1)},e.prototype.trackByFunction=function(e,t){return e},e.prototype.cancel=function(){this.onCancelled.emit(this.cipher)},e.prototype.attachments=function(){this.onEditAttachments.emit(this.cipher)},e.prototype.share=function(){this.onShareCipher.emit(this.cipher)},e.prototype.editCollections=function(){this.onEditCollections.emit(this.cipher)},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t(this.cipher.isDeleted?"permanentlyDeleteItemConfirmation":"deleteItemConfirmation"),this.i18nService.t("deleteItem"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.deleteCipher(),[4,this.deletePromise];case 3:return e.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.cipher.isDeleted?"permanentlyDeletedItem":"deletedItem")),this.onDeletedCipher.emit(this.cipher),this.messagingService.send(this.cipher.isDeleted?"permanentlyDeletedCipher":"deletedCipher"),[3,5];case 4:return e.sent(),[3,5];case 5:return[2,!0]}}))}))},e.prototype.restore=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.cipher.isDeleted?[4,this.platformUtilsService.showDialog(this.i18nService.t("restoreItemConfirmation"),this.i18nService.t("restoreItem"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2,!1];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.restorePromise=this.restoreCipher(),[4,this.restorePromise];case 3:return e.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("restoredItem")),this.onRestoredCipher.emit(this.cipher),this.messagingService.send("restoredCipher"),[3,5];case 4:return e.sent(),[3,5];case 5:return[2,!0]}}))}))},e.prototype.generatePassword=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return null!=this.cipher.login&&null!=this.cipher.login.password&&this.cipher.login.password.length?[4,this.platformUtilsService.showDialog(this.i18nService.t("overwritePasswordConfirmation"),this.i18nService.t("overwritePassword"),this.i18nService.t("yes"),this.i18nService.t("no"))]:[3,2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return this.onGeneratePassword.emit(),[2,!0]}}))}))},e.prototype.togglePassword=function(){this.showPassword=!this.showPassword,document.getElementById("loginPassword").focus(),this.editMode&&this.showPassword&&this.eventService.collect(l.EventType.Cipher_ClientToggledPasswordVisible,this.cipherId)},e.prototype.toggleCardCode=function(){this.showCardCode=!this.showCardCode,document.getElementById("cardCode").focus(),this.editMode&&this.showCardCode&&this.eventService.collect(l.EventType.Cipher_ClientToggledCardCodeVisible,this.cipherId)},e.prototype.toggleFieldValue=function(e){var t=e;t.showValue=!t.showValue,this.editMode&&t.showValue&&this.eventService.collect(l.EventType.Cipher_ClientToggledHiddenFieldVisible,this.cipherId)},e.prototype.toggleUriOptions=function(e){var t=e;t.showOptions=(null!=t.showOptions||null==e.match)&&!t.showOptions},e.prototype.loginUriMatchChanged=function(e){var t=e;t.showOptions=null==t.showOptions||t.showOptions},e.prototype.drop=function(e){o.moveItemInArray(this.cipher.fields,e.previousIndex,e.currentIndex)},e.prototype.organizationChanged=function(){return r(this,void 0,void 0,(function(){var e,t=this;return i(this,(function(n){switch(n.label){case 0:return null!=this.writeableCollections&&this.writeableCollections.forEach((function(e){return e.checked=!1})),null==this.cipher.organizationId?[3,2]:(this.collections=this.writeableCollections.filter((function(e){return e.organizationId===t.cipher.organizationId})),[4,this.userService.getOrganization(this.cipher.organizationId)]);case 1:return null!=(e=n.sent())&&(this.cipher.organizationUseTotp=e.useTotp),[3,3];case 2:this.collections=[],n.label=3;case 3:return[2]}}))}))},e.prototype.checkPassword=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return null!=this.checkPasswordPromise||(null==this.cipher.login||null==this.cipher.login.password||""===this.cipher.login.password)?[2]:(this.checkPasswordPromise=this.auditService.passwordLeaked(this.cipher.login.password),[4,this.checkPasswordPromise]);case 1:return e=t.sent(),this.checkPasswordPromise=null,e>0?this.platformUtilsService.showToast("warning",null,this.i18nService.t("passwordExposed",e.toString())):this.platformUtilsService.showToast("success",null,this.i18nService.t("passwordSafe")),[2]}}))}))},e.prototype.loadCollections=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.collectionService.getAllDecrypted()];case 1:return[2,e.sent().filter((function(e){return!e.readOnly}))]}}))}))},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.encryptCipher=function(){return this.cipherService.encrypt(this.cipher)},e.prototype.saveCipher=function(e){return this.cipherService.saveWithServer(e)},e.prototype.deleteCipher=function(){return this.cipher.isDeleted?this.cipherService.deleteWithServer(this.cipher.id):this.cipherService.softDeleteWithServer(this.cipher.id)},e.prototype.restoreCipher=function(){return this.cipherService.restoreWithServer(this.cipher.id)},e.ɵfac=function(t){return new(t||e)(w.ɵɵdirectiveInject(C.CipherService),w.ɵɵdirectiveInject(I.FolderService),w.ɵɵdirectiveInject(E.I18nService),w.ɵɵdirectiveInject(P.PlatformUtilsService),w.ɵɵdirectiveInject(k.AuditService),w.ɵɵdirectiveInject(_.StateService),w.ɵɵdirectiveInject(A.UserService),w.ɵɵdirectiveInject(O.CollectionService),w.ɵɵdirectiveInject(T.MessagingService),w.ɵɵdirectiveInject(M.EventService),w.ɵɵdirectiveInject(B.PolicyService))},e.ɵdir=w.ɵɵdefineDirective({type:e,inputs:{cloneMode:"cloneMode",folderId:"folderId",cipherId:"cipherId",type:"type",collectionIds:"collectionIds",organizationId:"organizationId"},outputs:{onSavedCipher:"onSavedCipher",onDeletedCipher:"onDeletedCipher",onRestoredCipher:"onRestoredCipher",onCancelled:"onCancelled",onEditAttachments:"onEditAttachments",onShareCipher:"onShareCipher",onEditCollections:"onEditCollections",onGeneratePassword:"onGeneratePassword"}}),e}();t.AddEditComponent=D},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(498);t.AttachmentResponse=r.AttachmentResponse;var i=n(262);t.CipherResponse=i.CipherResponse;var o=n(499);t.CollectionResponse=o.CollectionResponse;var a=n(884);t.DeviceResponse=a.DeviceResponse;var s=n(500);t.DomainsResponse=s.DomainsResponse;var l=n(211);t.ErrorResponse=l.ErrorResponse;var c=n(501);t.FolderResponse=c.FolderResponse;var p=n(615);t.GlobalDomainResponse=p.GlobalDomainResponse;var u=n(616);t.IdentityTokenResponse=u.IdentityTokenResponse;var d=n(617);t.IdentityTwoFactorResponse=d.IdentityTwoFactorResponse;var m=n(885);t.KeysResponse=m.KeysResponse;var h=n(618);t.ListResponse=h.ListResponse;var f=n(619);t.ProfileOrganizationResponse=f.ProfileOrganizationResponse;var v=n(293);t.ProfileResponse=v.ProfileResponse;var y=n(620);t.SyncResponse=y.SyncResponse},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.password=n.getResponseProperty("Password"),n.lastUsedDate=n.getResponseProperty("LastUsedDate"),n}return i(t,e),t}(n(23).BaseResponse);t.PasswordHistoryResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.identifier=n.getResponseProperty("Identifier"),n.type=n.getResponseProperty("Type"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(n(23).BaseResponse);t.DeviceResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.privateKey=n.getResponseProperty("PrivateKey"),n.publicKey=n.getResponseProperty("PublicKey"),n}return i(t,e),t}(n(23).BaseResponse);t.KeysResponse=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]this.pageSize&&(t=this.pagedCiphersCount),this.ciphers.length>e&&(this.pagedCiphers=this.pagedCiphers.concat(this.ciphers.slice(e,e+t))),this.pagedCiphersCount=this.pagedCiphers.length,this.didScroll=this.pagedCiphers.length>this.pageSize}},e.prototype.reload=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),r(this,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return this.loaded=!1,this.ciphers=[],[4,this.load(e,t)];case 1:return n.sent(),[2]}}))}))},e.prototype.refresh=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return e.trys.push([0,,2,3]),this.refreshing=!0,[4,this.reload(this.filter,this.deleted)];case 1:return e.sent(),[3,3];case 2:return this.refreshing=!1,[7];case 3:return[2]}}))}))},e.prototype.applyFilter=function(e){return void 0===e&&(e=null),r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return this.filter=e,[4,this.search(null)];case 1:return t.sent(),[2]}}))}))},e.prototype.search=function(e,t){return void 0===e&&(e=null),r(this,void 0,void 0,(function(){var n,o,a=this;return i(this,(function(s){switch(s.label){case 0:return this.searchPending=!1,null!=this.searchTimeout&&clearTimeout(this.searchTimeout),n=function(e){return e.isDeleted===a.deleted},null!=e?[3,3]:(o=this,[4,this.searchService.searchCiphers(this.searchText,[this.filter,n],t)]);case 1:return o.ciphers=s.sent(),[4,this.resetPaging()];case 2:return s.sent(),[2];case 3:return this.searchPending=!0,this.searchTimeout=setTimeout((function(){return r(a,void 0,void 0,(function(){var e;return i(this,(function(r){switch(r.label){case 0:return e=this,[4,this.searchService.searchCiphers(this.searchText,[this.filter,n],t)];case 1:return e.ciphers=r.sent(),[4,this.resetPaging()];case 2:return r.sent(),this.searchPending=!1,[2]}}))}))}),e),[2]}}))}))},e.prototype.selectCipher=function(e){this.onCipherClicked.emit(e)},e.prototype.rightClickCipher=function(e){this.onCipherRightClicked.emit(e)},e.prototype.addCipher=function(){this.onAddCipher.emit()},e.prototype.addCipherOptions=function(){this.onAddCipherOptions.emit()},e.prototype.isSearching=function(){return!this.searchPending&&this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.ciphers.length>this.pageSize},e.prototype.resetPaging=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return this.pagedCiphers=[],this.loadMore(),[2]}))}))},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(s.SearchService))},e.ɵdir=a.ɵɵdefineDirective({type:e,inputs:{activeCipherId:"activeCipherId"},outputs:{onCipherClicked:"onCipherClicked",onCipherRightClicked:"onCipherRightClicked",onAddCipher:"onAddCipher",onAddCipherOptions:"onAddCipherOptions"}}),e}();t.CiphersComponent=l},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1})),[2]}}))}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:if(e=this.collections.filter((function(e){return!!e.checked})).map((function(e){return e.id})),!this.allowSelectNone&&0===e.length)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectOneCollection")),[2];this.cipherDomain.collectionIds=e,t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.saveCollections(),[4,this.formPromise];case 2:return t.sent(),this.onSavedCollections.emit(),this.platformUtilsService.showToast("success",null,this.i18nService.t("editedItem")),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.loadCipherCollections=function(){return this.cipherDomain.collectionIds},e.prototype.loadCollections=function(){return r(this,void 0,void 0,(function(){var e=this;return i(this,(function(t){switch(t.label){case 0:return[4,this.collectionService.getAllDecrypted()];case 1:return[2,t.sent().filter((function(t){return!t.readOnly&&t.organizationId===e.cipher.organizationId}))]}}))}))},e.prototype.saveCollections=function(){return this.cipherService.saveCollectionsWithServer(this.cipherDomain)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(s.CollectionService),a.ɵɵdirectiveInject(l.PlatformUtilsService),a.ɵɵdirectiveInject(c.I18nService),a.ɵɵdirectiveInject(p.CipherService))},e.ɵdir=a.ɵɵdefineDirective({type:e,inputs:{cipherId:"cipherId",allowSelectNone:"allowSelectNone"},outputs:{onSavedCollections:"onSavedCollections"}}),e}();t.CollectionsComponent=u},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?null:this.formatDateFallbacks(this.expirationDateFallback)+"T"+this.expirationTimeFallback},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"deletionDateTimeFallback",{get:function(){return this.nullOrWhiteSpaceCount([this.deletionDateFallback,this.deletionTimeFallback])>0?null:this.formatDateFallbacks(this.deletionDateFallback)+"T"+this.deletionTimeFallback},enumerable:!0,configurable:!0}),e.prototype.load=function(){return r(this,void 0,void 0,(function(){var e,t,n,r,o,s,h,f,v,y;return i(this,(function(i){switch(i.label){case 0:return[4,this.policyService.getAll(c.PolicyType.DisableSend)];case 1:return e=i.sent(),[4,this.userService.getAllOrganizations()];case 2:return t=i.sent(),this.disableSend=t.some((function(t){return t.enabled&&t.status===l.OrganizationUserStatusType.Confirmed&&t.usePolicies&&!t.canManagePolicies&&e.some((function(e){return e.organizationId===t.id&&e.enabled}))})),[4,this.policyService.getAll(c.PolicyType.SendOptions)];case 3:return n=i.sent(),r=this,[4,t.some((function(e){return e.enabled&&e.status===l.OrganizationUserStatusType.Confirmed&&e.usePolicies&&!e.canManagePolicies&&n.some((function(t){return t.organizationId===e.id&&t.enabled&&t.data.disableHideEmail}))}))];case 4:return r.disableHideEmail=i.sent(),o=this,[4,this.userService.canAccessPremium()];case 5:return o.canAccessPremium=i.sent(),s=this,[4,this.userService.getEmailVerified()];case 6:return s.emailVerified=i.sent(),this.canAccessPremium&&this.emailVerified||(this.type=p.SendType.Text),null!=this.send?[3,10]:this.editMode?[4,this.loadSend()]:[3,9];case 7:return h=i.sent(),f=this,[4,h.decrypt()];case 8:return f.send=i.sent(),[3,10];case 9:this.send=new m.SendView,this.send.type=null==this.type?p.SendType.File:this.type,this.send.file=new u.SendFileView,this.send.text=new d.SendTextView,this.send.deletionDate=new Date,this.send.deletionDate.setDate(this.send.deletionDate.getDate()+7),i.label=10;case 10:return this.hasPassword=null!=this.send.password&&""!==this.send.password.trim(),this.isDateTimeLocalSupported?(this.deletionDate=this.dateToString(this.send.deletionDate),this.expirationDate=this.dateToString(this.send.expirationDate)):(void 0!==(v=this.dateToSplitString(this.send.deletionDate))&&v.length>0&&(this.deletionDateFallback=v[0],this.deletionTimeFallback=v[1],this.isSafari&&(this.safariDeletionTime=this.deletionTimeFallback)),void 0!==(y=this.dateToSplitString(this.send.expirationDate))&&y.length>0&&(this.expirationDateFallback=y[0],this.expirationTimeFallback=y[1],this.isSafari&&(this.safariExpirationTime=this.expirationTimeFallback))),this.isSafari&&(this.safariDeletionTimeOptions=this.safariTimeOptions(a.DeletionDate),this.safariExpirationTimeOptions=this.safariTimeOptions(a.ExpriationDate)),[2]}}))}))},e.prototype.submit=function(){var e,t;return r(this,void 0,void 0,(function(){var n,r,o,a,s,l;return i(this,(function(i){switch(i.label){case 0:if(!this.isDateTimeLocalSupported){if(this.isSafari&&(this.expirationTimeFallback=null!==(e=this.safariExpirationTime)&&void 0!==e?e:this.expirationTimeFallback,this.deletionTimeFallback=null!==(t=this.safariDeletionTime)&&void 0!==t?t:this.deletionTimeFallback),this.deletionDate=this.deletionDateTimeFallback,null!=this.expirationDateTimeFallback&&isNaN(Date.parse(this.expirationDateTimeFallback)))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("expirationDateIsInvalid")),[2];if(isNaN(Date.parse(this.deletionDateTimeFallback)))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("deletionDateIsInvalid")),[2];if(1===this.nullOrWhiteSpaceCount([this.expirationDateFallback,this.expirationTimeFallback]))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("expirationDateAndTimeRequired")),[2];(this.editMode||0===this.expirationDateSelect)&&(this.expirationDate=this.expirationDateTimeFallback)}if(this.disableSend)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("sendDisabledWarning")),[2,!1];if(null==this.send.name||""===this.send.name)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("nameRequired")),[2,!1];if(n=null,this.send.type===p.SendType.File&&!this.editMode){if(r=document.getElementById("file"),null==(o=r.files)||0===o.length)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectFile")),[2];if(n=o[0],o[0].size>524288e3)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("maxFileSize")),[2]}return this.editMode||(a=new Date,this.deletionDateSelect>0&&((s=new Date).setHours(a.getHours()+this.deletionDateSelect),this.deletionDate=this.dateToString(s)),null!=this.expirationDateSelect&&this.expirationDateSelect>0&&((s=new Date).setHours(a.getHours()+this.expirationDateSelect),this.expirationDate=this.dateToString(s))),null!=this.password&&""===this.password.trim()&&(this.password=null),[4,this.encryptSend(n)];case 1:l=i.sent(),i.label=2;case 2:return i.trys.push([2,4,,5]),this.formPromise=this.sendService.saveWithServer(l),[4,this.formPromise];case 3:return i.sent(),null==this.send.id&&(this.send.id=l[0].id),null==this.send.accessId&&(this.send.accessId=l[0].accessId),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.editMode?"editedSend":"createdSend")),this.onSavedSend.emit(this.send),this.copyLink&&this.copyLinkToClipboard(this.link),[2,!0];case 4:return i.sent(),[3,5];case 5:return[2,!1]}}))}))},e.prototype.clearExpiration=function(){this.expirationDate=null,this.expirationDateFallback=null,this.expirationTimeFallback=null,this.safariExpirationTime=null},e.prototype.copyLinkToClipboard=function(e){null!=e&&this.platformUtilsService.copyToClipboard(e)},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return null!=this.deletePromise?[2,!1]:[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteSendConfirmation"),this.i18nService.t("deleteSend"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,5,,6]),this.deletePromise=this.sendService.deleteWithServer(this.send.id),[4,this.deletePromise];case 3:return e.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("deletedSend")),[4,this.load()];case 4:return e.sent(),this.onDeletedSend.emit(this.send),[2,!0];case 5:return e.sent(),[3,6];case 6:return[2,!1]}}))}))},e.prototype.typeChanged=function(){this.send.type!==p.SendType.File||this.alertShown||(this.canAccessPremium?this.emailVerified||(this.alertShown=!0,this.messagingService.send("emailVerificationRequired")):(this.alertShown=!0,this.messagingService.send("premiumRequired")))},e.prototype.toggleOptions=function(){this.showOptions=!this.showOptions},e.prototype.expirationDateFallbackChanged=function(){var e,t;this.isSafari?this.safariExpirationTime=null!==(e=this.safariExpirationTime)&&void 0!==e?e:"00:00":this.expirationTimeFallback=null!==(t=this.expirationTimeFallback)&&void 0!==t?t:this.datePipe.transform(new Date,"HH:mm")},e.prototype.loadSend=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return[2,this.sendService.get(this.sendId)]}))}))},e.prototype.encryptSend=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return[4,this.sendService.encrypt(this.send,e,this.password,null)];case 1:t=n.sent();try{t[0].deletionDate=null==this.deletionDate?null:new Date(this.deletionDate)}catch(r){t[0].deletionDate=null}try{t[0].expirationDate=null==this.expirationDate?null:new Date(this.expirationDate)}catch(i){t[0].expirationDate=null}return[2,t]}}))}))},e.prototype.dateToString=function(e){return null==e?null:this.datePipe.transform(e,"yyyy-MM-ddTHH:mm")},e.prototype.formatDateFallbacks=function(e){try{return this.isSafari||(e+=" 00:00"),this.datePipe.transform(new Date(e),"yyyy-MM-dd")}catch(t){this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("dateParsingError"))}},e.prototype.dateToSplitString=function(e){if(null!=e)return[this.isSafari?this.datePipe.transform(e,"MM/dd/yyyy"):this.datePipe.transform(e,"yyyy-MM-dd"),this.datePipe.transform(e,"HH:mm")]},e.prototype.togglePasswordVisible=function(){this.showPassword=!this.showPassword,document.getElementById("password").focus()},e.prototype.nullOrWhiteSpaceCount=function(e){return e.filter((function(e){return null==e||""===e.trim()})).length},e.prototype.safariTimeOptions=function(e){for(var t=[],n=[],r=[],i=[],s=1;s<=12;s++)for(var l=0;l<60;l+=15){var c=s.toString(),p=l.toString();if(s<10&&(c="0"+c),l<10&&(p="0"+p),12===s){var u={standard:c+":"+p+" AM",military:"00:"+p};n.push(u);var d={standard:c+":"+p+" PM",military:c+":"+p};t.push(d)}else{var m={standard:c+":"+p+" AM",military:c+":"+p};r.push(m);var h={standard:c+":"+p+" PM",military:s+12+":"+p};i.push(h)}}var f=o(n,r,t,i);if(e===a.ExpriationDate&&null!=this.expirationDateTimeFallback&&this.editMode){var v={standard:this.datePipe.transform(this.expirationDateTimeFallback,"hh:mm a"),military:this.datePipe.transform(this.expirationDateTimeFallback,"HH:mm")};return o([v,{standard:null,military:null}],f)}if(e===a.DeletionDate&&null!=this.deletionDateTimeFallback&&this.editMode){v={standard:this.datePipe.transform(this.deletionDateTimeFallback,"hh:mm a"),military:this.datePipe.transform(this.deletionDateTimeFallback,"HH:mm")};return o([v],f)}return o([{standard:null,military:null}],f)},e.ɵfac=function(t){return new(t||e)(h.ɵɵdirectiveInject(f.I18nService),h.ɵɵdirectiveInject(v.PlatformUtilsService),h.ɵɵdirectiveInject(y.EnvironmentService),h.ɵɵdirectiveInject(g.DatePipe),h.ɵɵdirectiveInject(x.SendService),h.ɵɵdirectiveInject(b.UserService),h.ɵɵdirectiveInject(S.MessagingService),h.ɵɵdirectiveInject(w.PolicyService))},e.ɵdir=h.ɵɵdefineDirective({type:e,inputs:{sendId:"sendId",type:"type"},outputs:{onSavedSend:"onSavedSend",onDeletedSend:"onDeletedSend",onCancelled:"onCancelled"}}),e}();t.AddEditComponent=C},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.culture="en-US",this.name=e,this.masterPasswordHint=t||null};t.UpdateProfileRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(638).EmailTokenRequest);t.EmailRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(644).PasswordRequest);t.KdfRequest=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.UpdateDomainsRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(this.organizationId=this.organizations[0].id),this.filterCollections(),[2]}}))}))},e.prototype.filterCollections=function(){var e=this;this.writeableCollections.forEach((function(e){return e.checked=!1})),null==this.organizationId||0===this.writeableCollections.length?this.collections=[]:this.collections=this.writeableCollections.filter((function(t){return t.organizationId===e.organizationId}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e,t,n=this;return i(this,(function(o){switch(o.label){case 0:return 0===(e=this.collections.filter((function(e){return!!e.checked})).map((function(e){return e.id}))).length?(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectOneCollection")),[2]):[4,this.cipherService.get(this.cipherId)];case 1:return[4,o.sent().decrypt()];case 2:t=o.sent(),o.label=3;case 3:return o.trys.push([3,5,,6]),this.formPromise=this.cipherService.shareWithServer(t,this.organizationId,e).then((function(){return r(n,void 0,void 0,(function(){return i(this,(function(e){return this.onSharedCipher.emit(),this.platformUtilsService.showToast("success",null,this.i18nService.t("sharedItem")),[2]}))}))})),[4,this.formPromise];case 4:return o.sent(),[2,!0];case 5:return o.sent(),[3,6];case 6:return[2,!1]}}))}))},Object.defineProperty(e.prototype,"canSave",{get:function(){if(null!=this.collections)for(var e=0;e0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e?p[e-1]():0===p.length&&(l.delete(c),0===l.size&&a.delete(n))};o.apply(n,r).then((function(e){return u(),e})).catch((function(e){throw u(),e})).then(t,i)};p.push(s),p.length<=e&&s()}))}}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.ids=null==e?[]:e,this.folderId=t};t.CipherBulkMoveRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.ids=null==e?[]:e};t.CipherBulkRestoreRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(511),i=function(e,t){var n=this;null!=e&&(this.ciphers=[],e.forEach((function(e){n.ciphers.push(new r.CipherWithIdRequest(e))}))),this.collectionIds=t};t.CipherBulkShareRequest=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(210),i=function(e){this.cipher=new r.CipherRequest(e),this.collectionIds=e.collectionIds};t.CipherShareRequest=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.comparator=e,this.sortedCiphersByUrl=new Map,this.timeouts=new Map}return e.prototype.isCached=function(e){return this.sortedCiphersByUrl.has(e)},e.prototype.addCiphers=function(e,t){t.sort(this.comparator),this.sortedCiphersByUrl.set(e,new i(t)),this.resetTimer(e)},e.prototype.getLastUsed=function(e){return this.resetTimer(e),this.isCached(e)?this.sortedCiphersByUrl.get(e).getLastUsed():null},e.prototype.getLastLaunched=function(e){return this.isCached(e)?this.sortedCiphersByUrl.get(e).getLastLaunched():null},e.prototype.getNext=function(e){return this.resetTimer(e),this.isCached(e)?this.sortedCiphersByUrl.get(e).getNext():null},e.prototype.updateLastUsedIndex=function(e){this.isCached(e)&&this.sortedCiphersByUrl.get(e).updateLastUsedIndex()},e.prototype.clear=function(){this.sortedCiphersByUrl.clear(),this.timeouts.clear()},e.prototype.resetTimer=function(e){var t=this;clearTimeout(this.timeouts.get(e)),this.timeouts.set(e,setTimeout((function(){t.sortedCiphersByUrl.delete(e),t.timeouts.delete(e)}),3e3))},e}();t.SortedCiphersCache=r;var i=function(){function e(e){this.ciphers=e,this.lastUsedIndex=-1}return e.prototype.getLastUsed=function(){return this.lastUsedIndex=Math.max(this.lastUsedIndex,0),this.ciphers[this.lastUsedIndex]},e.prototype.getLastLaunched=function(){return this.ciphers.filter((function(e){var t;return null===(t=e.localData)||void 0===t?void 0:t.lastLaunched})).sort((function(e,t){return t.localData.lastLaunched.valueOf()-e.localData.lastLaunched.valueOf()}))[0]},e.prototype.getNextIndex=function(){return(this.lastUsedIndex+1)%this.ciphers.length},e.prototype.getNext=function(){return this.ciphers[this.getNextIndex()]},e.prototype.updateLastUsedIndex=function(){this.lastUsedIndex=this.getNextIndex()},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n){this.children=[],this.parent=n,this.node=e,this.node.name=t};t.TreeNode=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.buffer=e};t.EncArrayBuffer=r},,,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.defaultType="",t.minLength=0,t.useUppercase=!1,t.useLowercase=!1,t.useNumbers=!1,t.numberCount=0,t.useSpecial=!1,t.specialCount=0,t.minNumberWords=0,t.capitalize=!1,t.includeNumber=!1,t}return i(t,e),t.prototype.inEffect=function(){return""!==this.defaultType||this.minLength>0||this.numberCount>0||this.specialCount>0||this.useUppercase||this.useLowercase||this.useNumbers||this.useSpecial||this.minNumberWords>0||this.capitalize||this.includeNumber},t}(n(81).default);t.PasswordGeneratorPolicyOptions=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.id=e.id,this.name=e.name,this.status=e.status,this.type=e.type,this.enabled=e.enabled,this.usePolicies=e.usePolicies,this.useGroups=e.useGroups,this.useDirectory=e.useDirectory,this.useEvents=e.useEvents,this.useTotp=e.useTotp,this.use2fa=e.use2fa,this.useApi=e.useApi,this.useBusinessPortal=e.useBusinessPortal,this.useSso=e.useSso,this.selfHost=e.selfHost,this.usersGetPremium=e.usersGetPremium,this.seats=e.seats,this.maxCollections=e.maxCollections,this.maxStorageGb=e.maxStorageGb,this.ssoBound=e.ssoBound,this.identifier=e.identifier,this.permissions=e.permissions,this.resetPasswordKey=e.resetPasswordKey,this.userId=e.userId};t.OrganizationData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.id=e.id,this.fileName=e.fileName,this.key=e.key,this.size=e.size,this.sizeName=e.sizeName)};t.SendFileData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.text=e.text,this.hidden=e.hidden)};t.SendTextData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0?this.browserCache=a.DeviceType.OperaBrowser:-1!==navigator.userAgent.indexOf(" Edg/")?this.browserCache=a.DeviceType.EdgeBrowser:-1!==navigator.userAgent.indexOf(" Vivaldi/")?this.browserCache=a.DeviceType.VivaldiBrowser:-1!==navigator.userAgent.indexOf(" Safari/")&&-1===navigator.userAgent.indexOf("Chrome")?this.browserCache=a.DeviceType.SafariBrowser:window.chrome&&-1!==navigator.userAgent.indexOf(" Chrome/")?this.browserCache=a.DeviceType.ChromeBrowser:-1!==navigator.userAgent.indexOf(" Trident/")?this.browserCache=a.DeviceType.IEBrowser:this.browserCache=a.DeviceType.UnknownBrowser),this.browserCache},e.prototype.getDeviceString=function(){return a.DeviceType[this.getDevice()].toLowerCase().replace("browser","")},e.prototype.isFirefox=function(){return this.getDevice()===a.DeviceType.FirefoxBrowser},e.prototype.isChrome=function(){return this.getDevice()===a.DeviceType.ChromeBrowser},e.prototype.isEdge=function(){return this.getDevice()===a.DeviceType.EdgeBrowser},e.prototype.isOpera=function(){return this.getDevice()===a.DeviceType.OperaBrowser},e.prototype.isVivaldi=function(){return this.getDevice()===a.DeviceType.VivaldiBrowser},e.prototype.isSafari=function(){return this.getDevice()===a.DeviceType.SafariBrowser},e.prototype.isIE=function(){return this.getDevice()===a.DeviceType.IEBrowser},e.prototype.isMacAppStore=function(){return!1},e.prototype.isViewOpen=function(){return Promise.resolve(!1)},e.prototype.lockTimeout=function(){return null},e.prototype.launchUri=function(e,t){var n=document.createElement("a");n.href=e,null!=t&&t.sameWindow||(n.target="_blank",n.rel="noreferrer noopener"),n.classList.add("d-none"),document.body.appendChild(n),n.click(),document.body.removeChild(n)},e.prototype.saveFile=function(e,t,n,r){var i=null,o=null,a=r.toLowerCase(),s=!0;if(a.endsWith(".pdf")?(o="application/pdf",s=!1):a.endsWith(".xlsx")?o="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":a.endsWith(".docx")?o="application/vnd.openxmlformats-officedocument.wordprocessingml.document":a.endsWith(".pptx")?o="application/vnd.openxmlformats-officedocument.presentationml.presentation":a.endsWith(".csv")?o="text/csv":a.endsWith(".png")?o="image/png":a.endsWith(".jpg")||a.endsWith(".jpeg")?o="image/jpeg":a.endsWith(".gif")&&(o="image/gif"),null!=o&&null==(n=n||{}).type&&(n.type=o),i=null==n||this.isIE()?new Blob([t]):new Blob([t],n),navigator.msSaveOrOpenBlob)navigator.msSaveBlob(i,r);else{var l=e.document.createElement("a");s?l.download=r:this.isSafari()||(l.target="_blank"),l.href=URL.createObjectURL(i),l.style.position="fixed",e.document.body.appendChild(l),l.click(),e.document.body.removeChild(l)}},e.prototype.getApplicationVersion=function(){return Promise.resolve("2.20.0")},e.prototype.supportsWebAuthn=function(e){return"undefined"!=typeof PublicKeyCredential},e.prototype.supportsDuo=function(){return!0},e.prototype.showToast=function(e,t,n,r){this.messagingService.send("showToast",{text:n,title:t,type:e,options:r})},e.prototype.showDialog=function(e,t,n,a,s,l){return void 0===l&&(l=!1),r(this,void 0,void 0,(function(){var r,c;return i(this,(function(i){switch(i.label){case 0:if(r=null,null!=s)switch(s){case"success":r="fa-check text-success";break;case"warning":r="fa-warning text-warning";break;case"error":r="fa-bolt text-danger";break;case"info":r="fa-info-circle text-info"}return c=null!=r?'':void 0,[4,o.default.fire({heightAuto:!1,buttonsStyling:!1,icon:s,iconHtml:c,text:l?null:e,html:l?e:null,title:t,showCancelButton:null!=a,cancelButtonText:a,showConfirmButton:!0,confirmButtonText:null==n?this.i18nService.t("ok"):n})];case 1:return[2,i.sent().value]}}))}))},e.prototype.isDev=function(){return!1},e.prototype.isSelfHost=function(){return"true"===(!1).toString()},e.prototype.copyToClipboard=function(e,t){var n=window,r=window.document;if(t&&(t.window||t.win)?r=(n=t.window||t.win).document:t&&t.doc&&(r=t.doc),n.clipboardData&&n.clipboardData.setData)n.clipboardData.setData("Text",e);else if(r.queryCommandSupported&&r.queryCommandSupported("copy")){var i=r.createElement("textarea");i.textContent=e,i.style.position="fixed";var o=r.body;r.body.classList.contains("modal-open")&&(o=r.body.querySelector(".modal")),o.appendChild(i),i.select();try{r.execCommand("copy")}catch(a){console.warn("Copy to clipboard failed.",a)}finally{o.removeChild(i)}}},e.prototype.readFromClipboard=function(e){throw new Error("Cannot read from clipboard on web.")},e.prototype.supportsBiometric=function(){return Promise.resolve(!1)},e.prototype.authenticateBiometric=function(){return Promise.resolve(!1)},e.prototype.supportsSecureStorage=function(){return!1},e.prototype.getDefaultSystemTheme=function(){return Promise.resolve(null)},e.prototype.onDefaultSystemThemeChange=function(){},e}();t.WebPlatformUtilsService=s},,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&e.data.forEach((function(e){var r=new l.Collection(new p.CollectionData(e));t.push(r.decrypt().then((function(e){n.push(e)})))})),Promise.all(t)}))),m.push(this.apiService.getCiphersOrganization(e).then((function(e){var t=[];return null!=e&&null!=e.data&&e.data.length>0&&e.data.filter((function(e){return null===e.deletedDate})).forEach((function(e){var n=new s.Cipher(new c.CipherData(e));t.push(n.decrypt().then((function(e){r.push(e)})))})),Promise.all(t)}))),[4,Promise.all(m)];case 1:return i.sent(),"csv"===t?(h=new Map,n.forEach((function(e){h.set(e.id,e)})),f=[],r.forEach((function(e){if(e.type===a.CipherType.Login||e.type===a.CipherType.SecureNote){var t={collections:[]};null!=e.collectionIds&&(t.collections=e.collectionIds.filter((function(e){return h.has(e)})).map((function(e){return h.get(e).name}))),y.buildCommonCipher(t,e),f.push(t)}})),[2,o.unparse(f)]):(v={encrypted:!1,collections:[],items:[]},n.forEach((function(e){var t=new d.CollectionWithId;t.build(e),v.collections.push(t)})),r.forEach((function(e){var t=new u.CipherWithIds;t.build(e),v.items.push(t)})),[2,JSON.stringify(v,null," ")])}}))}))},e.prototype.getOrganizationEncryptedExport=function(e){return r(this,void 0,void 0,(function(){var t,n,r,o;return i(this,(function(i){switch(i.label){case 0:return t=[],n=[],(r=[]).push(this.apiService.getCollections(e).then((function(e){return null!=e&&null!=e.data&&e.data.length>0&&e.data.forEach((function(e){var n=new l.Collection(new p.CollectionData(e));t.push(n)})),Promise.all([])}))),r.push(this.apiService.getCiphersOrganization(e).then((function(e){return null!=e&&null!=e.data&&e.data.length>0&&e.data.filter((function(e){return null===e.deletedDate})).forEach((function(e){var t=new s.Cipher(new c.CipherData(e));n.push(t)})),Promise.all([])}))),[4,Promise.all(r)];case 1:return i.sent(),o={encrypted:!0,collections:[],items:[]},t.forEach((function(e){var t=new d.CollectionWithId;t.build(e),o.collections.push(t)})),n.forEach((function(e){var t=new u.CipherWithIds;t.build(e),o.items.push(t)})),[2,JSON.stringify(o,null," ")]}}))}))},e.prototype.padNumber=function(e,t,n){void 0===n&&(n="0");var r=e.toString();return r.length>=t?r:new Array(t-r.length+1).join(n)+r},e.prototype.buildCommonCipher=function(e,t){switch(e.type=null,e.name=t.name,e.notes=t.notes,e.fields=null,e.login_uri=null,e.login_username=null,e.login_password=null,e.login_totp=null,t.fields&&t.fields.forEach((function(t){e.fields?e.fields+="\n":e.fields="",e.fields+=(t.name||"")+": "+t.value})),t.type){case a.CipherType.Login:e.type="login",e.login_username=t.login.username,e.login_password=t.login.password,e.login_totp=t.login.totp,t.login.uris&&(e.login_uri=[],t.login.uris.forEach((function(t){e.login_uri.push(t.uri)})));break;case a.CipherType.SecureNote:e.type="note";break;default:return}return e},e}();t.ExportService=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(39),i=n(143),o=n(190),a=n(105),s=n(961),l=n(962),c=n(963),p=n(964),u=n(966),d=function(){function e(){}return e.template=function(){var t=new e;return t.organizationId=null,t.collectionIds=null,t.folderId=null,t.type=r.CipherType.Login,t.name="Item name",t.notes="Some notes about this item.",t.favorite=!1,t.fields=[],t.login=null,t.secureNote=null,t.card=null,t.identity=null,t},e.toView=function(e,t){var n,o;if(void 0===t&&(t=new i.CipherView),t.type=e.type,t.folderId=e.folderId,null==t.organizationId&&(t.organizationId=e.organizationId),t.collectionIds||e.collectionIds){var a=new Set((null!==(n=t.collectionIds)&&void 0!==n?n:[]).concat(null!==(o=e.collectionIds)&&void 0!==o?o:[]));t.collectionIds=Array.from(a.values())}switch(t.name=e.name,t.notes=e.notes,t.favorite=e.favorite,null!=e.fields&&(t.fields=e.fields.map((function(e){return l.Field.toView(e)}))),e.type){case r.CipherType.Login:t.login=p.Login.toView(e.login);break;case r.CipherType.SecureNote:t.secureNote=u.SecureNote.toView(e.secureNote);break;case r.CipherType.Card:t.card=s.Card.toView(e.card);break;case r.CipherType.Identity:t.identity=c.Identity.toView(e.identity)}return t},e.toDomain=function(e,t){switch(void 0===t&&(t=new o.Cipher),t.type=e.type,t.folderId=e.folderId,null==t.organizationId&&(t.organizationId=e.organizationId),t.name=null!=e.name?new a.EncString(e.name):null,t.notes=null!=e.notes?new a.EncString(e.notes):null,t.favorite=e.favorite,null!=e.fields&&(t.fields=e.fields.map((function(e){return l.Field.toDomain(e)}))),e.type){case r.CipherType.Login:t.login=p.Login.toDomain(e.login);break;case r.CipherType.SecureNote:t.secureNote=u.SecureNote.toDomain(e.secureNote);break;case r.CipherType.Card:t.card=s.Card.toDomain(e.card);break;case r.CipherType.Identity:t.identity=c.Identity.toDomain(e.identity)}return t},e.prototype.build=function(e){var t,n;switch(this.organizationId=e.organizationId,this.folderId=e.folderId,this.type=e.type,e instanceof i.CipherView?(this.name=e.name,this.notes=e.notes):(this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.notes=null===(n=e.notes)||void 0===n?void 0:n.encryptedString),this.favorite=e.favorite,null!=e.fields&&(i.CipherView,this.fields=e.fields.map((function(e){return new l.Field(e)}))),e.type){case r.CipherType.Login:this.login=new p.Login(e.login);break;case r.CipherType.SecureNote:this.secureNote=new u.SecureNote(e.secureNote);break;case r.CipherType.Card:this.card=new s.Card(e.card);break;case r.CipherType.Identity:this.identity=new c.Identity(e.identity)}},e}();t.Cipher=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(88),i=n(285),o=n(105),a=function(){function e(e){var t,n,i,o,a,s;null!=e&&(e instanceof r.CardView?(this.cardholderName=e.cardholderName,this.brand=e.brand,this.number=e.number,this.expMonth=e.expMonth,this.expYear=e.expYear,this.code=e.code):(this.cardholderName=null===(t=e.cardholderName)||void 0===t?void 0:t.encryptedString,this.brand=null===(n=e.brand)||void 0===n?void 0:n.encryptedString,this.number=null===(i=e.number)||void 0===i?void 0:i.encryptedString,this.expMonth=null===(o=e.expMonth)||void 0===o?void 0:o.encryptedString,this.expYear=null===(a=e.expYear)||void 0===a?void 0:a.encryptedString,this.code=null===(s=e.code)||void 0===s?void 0:s.encryptedString))}return e.template=function(){var t=new e;return t.cardholderName="John Doe",t.brand="visa",t.number="4242424242424242",t.expMonth="04",t.expYear="2023",t.code="123",t},e.toView=function(e,t){return void 0===t&&(t=new r.CardView),t.cardholderName=e.cardholderName,t.brand=e.brand,t.number=e.number,t.expMonth=e.expMonth,t.expYear=e.expYear,t.code=e.code,t},e.toDomain=function(e,t){return void 0===t&&(t=new i.Card),t.cardholderName=null!=e.cardholderName?new o.EncString(e.cardholderName):null,t.brand=null!=e.brand?new o.EncString(e.brand):null,t.number=null!=e.number?new o.EncString(e.number):null,t.expMonth=null!=e.expMonth?new o.EncString(e.expMonth):null,t.expYear=null!=e.expYear?new o.EncString(e.expYear):null,t.code=null!=e.code?new o.EncString(e.code):null,t},e}();t.Card=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(118),i=n(209),o=n(105),a=n(286),s=function(){function e(e){var t,n;null!=e&&(e instanceof i.FieldView?(this.name=e.name,this.value=e.value):(this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.value=null===(n=e.value)||void 0===n?void 0:n.encryptedString),this.type=e.type)}return e.template=function(){var t=new e;return t.name="Field name",t.value="Some value",t.type=r.FieldType.Text,t},e.toView=function(e,t){return void 0===t&&(t=new i.FieldView),t.type=e.type,t.value=e.value,t.name=e.name,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Field),t.type=e.type,t.value=null!=e.value?new o.EncString(e.value):null,t.name=null!=e.name?new o.EncString(e.name):null,t},e}();t.Field=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(144),i=n(105),o=n(287),a=function(){function e(e){var t,n,i,o,a,s,l,c,p,u,d,m,h,f,v,y,g,x;null!=e&&(e instanceof r.IdentityView?(this.title=e.title,this.firstName=e.firstName,this.middleName=e.middleName,this.lastName=e.lastName,this.address1=e.address1,this.address2=e.address2,this.address3=e.address3,this.city=e.city,this.state=e.state,this.postalCode=e.postalCode,this.country=e.country,this.company=e.company,this.email=e.email,this.phone=e.phone,this.ssn=e.ssn,this.username=e.username,this.passportNumber=e.passportNumber,this.licenseNumber=e.licenseNumber):(this.title=null===(t=e.title)||void 0===t?void 0:t.encryptedString,this.firstName=null===(n=e.firstName)||void 0===n?void 0:n.encryptedString,this.middleName=null===(i=e.middleName)||void 0===i?void 0:i.encryptedString,this.lastName=null===(o=e.lastName)||void 0===o?void 0:o.encryptedString,this.address1=null===(a=e.address1)||void 0===a?void 0:a.encryptedString,this.address2=null===(s=e.address2)||void 0===s?void 0:s.encryptedString,this.address3=null===(l=e.address3)||void 0===l?void 0:l.encryptedString,this.city=null===(c=e.city)||void 0===c?void 0:c.encryptedString,this.state=null===(p=e.state)||void 0===p?void 0:p.encryptedString,this.postalCode=null===(u=e.postalCode)||void 0===u?void 0:u.encryptedString,this.country=null===(d=e.country)||void 0===d?void 0:d.encryptedString,this.company=null===(m=e.company)||void 0===m?void 0:m.encryptedString,this.email=null===(h=e.email)||void 0===h?void 0:h.encryptedString,this.phone=null===(f=e.phone)||void 0===f?void 0:f.encryptedString,this.ssn=null===(v=e.ssn)||void 0===v?void 0:v.encryptedString,this.username=null===(y=e.username)||void 0===y?void 0:y.encryptedString,this.passportNumber=null===(g=e.passportNumber)||void 0===g?void 0:g.encryptedString,this.licenseNumber=null===(x=e.licenseNumber)||void 0===x?void 0:x.encryptedString))}return e.template=function(){var t=new e;return t.title="Mr",t.firstName="John",t.middleName="William",t.lastName="Doe",t.address1="123 Any St",t.address2="Apt #123",t.address3=null,t.city="New York",t.state="NY",t.postalCode="10001",t.country="US",t.company="Acme Inc.",t.email="john@company.com",t.phone="5555551234",t.ssn="000-123-4567",t.username="jdoe",t.passportNumber="US-123456789",t.licenseNumber="D123-12-123-12333",t},e.toView=function(e,t){return void 0===t&&(t=new r.IdentityView),t.title=e.title,t.firstName=e.firstName,t.middleName=e.middleName,t.lastName=e.lastName,t.address1=e.address1,t.address2=e.address2,t.address3=e.address3,t.city=e.city,t.state=e.state,t.postalCode=e.postalCode,t.country=e.country,t.company=e.company,t.email=e.email,t.phone=e.phone,t.ssn=e.ssn,t.username=e.username,t.passportNumber=e.passportNumber,t.licenseNumber=e.licenseNumber,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.Identity),t.title=null!=e.title?new i.EncString(e.title):null,t.firstName=null!=e.firstName?new i.EncString(e.firstName):null,t.middleName=null!=e.middleName?new i.EncString(e.middleName):null,t.lastName=null!=e.lastName?new i.EncString(e.lastName):null,t.address1=null!=e.address1?new i.EncString(e.address1):null,t.address2=null!=e.address2?new i.EncString(e.address2):null,t.address3=null!=e.address3?new i.EncString(e.address3):null,t.city=null!=e.city?new i.EncString(e.city):null,t.state=null!=e.state?new i.EncString(e.state):null,t.postalCode=null!=e.postalCode?new i.EncString(e.postalCode):null,t.country=null!=e.country?new i.EncString(e.country):null,t.company=null!=e.company?new i.EncString(e.company):null,t.email=null!=e.email?new i.EncString(e.email):null,t.phone=null!=e.phone?new i.EncString(e.phone):null,t.ssn=null!=e.ssn?new i.EncString(e.ssn):null,t.username=null!=e.username?new i.EncString(e.username):null,t.passportNumber=null!=e.passportNumber?new i.EncString(e.passportNumber):null,t.licenseNumber=null!=e.licenseNumber?new i.EncString(e.licenseNumber):null,t},e}();t.Identity=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(965),i=n(159),o=n(105),a=n(288),s=function(){function e(e){var t,n,o;null!=e&&(null!=e.uris&&(i.LoginView,this.uris=e.uris.map((function(e){return new r.LoginUri(e)}))),e instanceof i.LoginView?(this.username=e.username,this.password=e.password,this.totp=e.totp):(this.username=null===(t=e.username)||void 0===t?void 0:t.encryptedString,this.password=null===(n=e.password)||void 0===n?void 0:n.encryptedString,this.totp=null===(o=e.totp)||void 0===o?void 0:o.encryptedString))}return e.template=function(){var t=new e;return t.uris=[],t.username="jdoe",t.password="myp@ssword123",t.totp="JBSWY3DPEHPK3PXP",t},e.toView=function(e,t){return void 0===t&&(t=new i.LoginView),null!=e.uris&&(t.uris=e.uris.map((function(e){return r.LoginUri.toView(e)}))),t.username=e.username,t.password=e.password,t.totp=e.totp,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Login),null!=e.uris&&(t.uris=e.uris.map((function(e){return r.LoginUri.toDomain(e)}))),t.username=null!=e.username?new o.EncString(e.username):null,t.password=null!=e.password?new o.EncString(e.password):null,t.totp=null!=e.totp?new o.EncString(e.totp):null,t},e}();t.Login=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(258),i=n(105),o=n(289),a=function(){function e(e){var t;this.match=null,null!=e&&(e instanceof r.LoginUriView?this.uri=e.uri:this.uri=null===(t=e.uri)||void 0===t?void 0:t.encryptedString,this.match=e.match)}return e.template=function(){var t=new e;return t.uri="https://google.com",t.match=null,t},e.toView=function(e,t){return void 0===t&&(t=new r.LoginUriView),t.uri=e.uri,t.match=e.match,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.LoginUri),t.uri=null!=e.uri?new i.EncString(e.uri):null,t.match=e.match,t},e}();t.LoginUri=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(106),i=n(94),o=n(290),a=function(){function e(e){null!=e&&(this.type=e.type)}return e.template=function(){var t=new e;return t.type=r.SecureNoteType.Generic,t},e.toView=function(e,t){return void 0===t&&(t=new i.SecureNoteView),t.type=e.type,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.SecureNote),t.type=e.type,t},e}();t.SecureNote=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(156),i=n(140),o=n(105),a=function(){function e(){}return e.template=function(){var t=new e;return t.organizationId="00000000-0000-0000-0000-000000000000",t.name="Collection name",t.externalId=null,t},e.toView=function(e,t){return void 0===t&&(t=new r.CollectionView),t.name=e.name,t.externalId=e.externalId,null==t.organizationId&&(t.organizationId=e.organizationId),t},e.toDomain=function(e,t){return void 0===t&&(t=new i.Collection),t.name=null!=e.name?new o.EncString(e.name):null,t.externalId=e.externalId,null==t.organizationId&&(t.organizationId=e.organizationId),t},e.prototype.build=function(e){var t;this.organizationId=e.organizationId,e instanceof r.CollectionView?this.name=e.name:this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.externalId=e.externalId},e}();t.Collection=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(127),i=n(105),o=n(516),a=function(){function e(){}return e.template=function(){var t=new e;return t.name="Folder name",t},e.toView=function(e,t){return void 0===t&&(t=new r.FolderView),t.name=e.name,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.Folder),t.name=null!=e.name?new i.EncString(e.name):null,t},e.prototype.build=function(e){var t;e instanceof r.FolderView?this.name=e.name:this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString},e}();t.Folder=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]5e4)throw new Error("Cannot upload file, exceeds maximum size of "+5e4*a);i.label=1;case 1:i.trys.push([1,12,,13]),i.label=2;case 2:return s"})),t+=""},e.prototype.getMaxBlockSize=function(e){return s.compare(e,"2019-12-12")>=0?4194304e3:s.compare(e,"2016-05-31")>=0?104857600:4194304},e}();t.AzureFileUploadService=a;var s=function(){function e(e){this.year=0,this.month=0,this.day=0;try{var t=e.split("-").map((function(e){return Number.parseInt(e,10)}));this.year=t[0],this.month=t[1],this.day=t[2]}catch(n){}}return e.compare=function(t,n){return"string"==typeof t&&(t=new e(t)),"string"==typeof n&&(n=new e(n)),t.year!==n.year?t.year-n.year:t.month!==n.month?t.month-n.month:t.day!==n.day?t.day-n.day:0},e.prototype.compare=function(t){return e.compare(this,t)},e}()},function(e,t,n){"use strict";(function(e){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(o=Math.floor(r.ciphers.length/2),a=r.ciphers.length-1,this.badData(r.ciphers[0])&&this.badData(r.ciphers[o])&&this.badData(r.ciphers[a])))return[2,new Error(this.i18nService.t("importFormatError"))];i.label=2;case 2:return i.trys.push([2,4,,5]),[4,this.postImport(r,n)];case 3:return i.sent(),[3,5];case 4:return s=i.sent(),l=new m.ErrorResponse(s,400),[2,this.handleServerError(l,r)];case 5:return[2,null];case 6:return[2,new Error(this.i18nService.t("importFormatError"))]}}))}))},e.prototype.getImporter=function(e,t){void 0===t&&(t=null);var n=this.getImporterInstance(e);return null==n?null:(n.organizationId=t,n)},e.prototype.getImporterInstance=function(e){if(null==e||""===e)return null;switch(e){case"bitwardencsv":return new g.BitwardenCsvImporter;case"bitwardenjson":return new x.BitwardenJsonImporter;case"lastpasscsv":case"passboltcsv":return new j.LastPassCsvImporter;case"keepassxcsv":return new R.KeePassXCsvImporter;case"aviracsv":return new y.AviraCsvImporter;case"blurcsv":return new S.BlurCsvImporter;case"safeincloudxml":return new ne.SafeInCloudXmlImporter;case"padlockcsv":return new q.PadlockCsvImporter;case"keepass2xml":return new D.KeePass2XmlImporter;case"chromecsv":case"operacsv":case"vivaldicsv":return new C.ChromeCsvImporter;case"firefoxcsv":return new O.FirefoxCsvImporter;case"upmcsv":return new le.UpmCsvImporter;case"saferpasscsv":return new re.SaferPassCsvImporter;case"meldiumcsv":return new U.MeldiumCsvImporter;case"1password1pif":return new L.OnePassword1PifImporter;case"1passwordwincsv":return new K.OnePasswordWinCsvImporter;case"1passwordmaccsv":return new G.OnePasswordMacCsvImporter;case"keepercsv":return new V.KeeperCsvImporter;case"passworddragonxml":return new J.PasswordDragonXmlImporter;case"enpasscsv":return new _.EnpassCsvImporter;case"enpassjson":return new A.EnpassJsonImporter;case"pwsafexml":return new X.PasswordSafeXmlImporter;case"dashlanejson":return new P.DashlaneJsonImporter;case"msecurecsv":return new N.MSecureCsvImporter;case"stickypasswordxml":return new ae.StickyPasswordXmlImporter;case"truekeycsv":return new se.TrueKeyCsvImporter;case"clipperzhtml":return new I.ClipperzHtmlImporter;case"roboformcsv":return new te.RoboFormCsvImporter;case"ascendocsv":return new h.AscendoCsvImporter;case"passwordbossjson":return new Q.PasswordBossJsonImporter;case"zohovaultcsv":return new pe.ZohoVaultCsvImporter;case"splashidcsv":return new oe.SplashIdCsvImporter;case"passkeepcsv":return new W.PassKeepCsvImporter;case"gnomejson":return new M.GnomeJsonImporter;case"passwordagentcsv":return new Y.PasswordAgentCsvImporter;case"passpackcsv":return new $.PasspackCsvImporter;case"passmanjson":return new H.PassmanJsonImporter;case"avastcsv":return new f.AvastCsvImporter;case"avastjson":return new v.AvastJsonImporter;case"fsecurefsk":return new T.FSecureFskImporter;case"kasperskytxt":return new B.KasperskyTxtImporter;case"remembearcsv":return new ee.RememBearCsvImporter;case"passwordwallettxt":return new Z.PasswordWalletTxtImporter;case"mykicsv":return new z.MykiCsvImporter;case"securesafecsv":return new ie.SecureSafeCsvImporter;case"logmeoncecsv":return new F.LogMeOnceCsvImporter;case"blackberrycsv":return new b.BlackBerryCsvImporter;case"buttercupcsv":return new w.ButtercupCsvImporter;case"codebookcsv":return new E.CodebookCsvImporter;case"encryptrcsv":return new k.EncryptrCsvImporter;case"yoticsv":return new ce.YotiCsvImporter;default:return null}},e.prototype.postImport=function(e,t){return void 0===t&&(t=null),r(this,void 0,void 0,(function(){var n,r,o,a,m;return i(this,(function(i){switch(i.label){case 0:if(null!=t)return[3,10];n=new p.ImportCiphersRequest,a=0,i.label=1;case 1:return a0&&(n+="\n\n"),"Folder"!==a&&"Collection"!==a&&(n+="["+(c+1)+"] "),n+="["+a+'] "'+i.name+'": '+l})),new Error(n)},e}();t.ImportService=ue},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.ciphers=[],this.folders=[],this.folderRelationships=[]};t.ImportCiphersRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.ciphers=[],this.collections=[],this.collectionRelationships=[]};t.ImportOrganizationCiphersRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.key=e,this.value=t};t.KvpRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<2)){var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[e.length-1]),r.name=t.getValueOrDefault(e[0],"--"),e.length>2&&e.length%2==0)for(var i=0;i-1?r.login.password=t.getValueOrDefault(o):null==r.login.username&&t.usernameFieldNames.indexOf(s)>-1?r.login.username=t.getValueOrDefault(o):(null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(s)>-1?r.login.uris=t.makeUriArray(o):t.processKvp(r,a,o)}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.AscendoCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name),r.login.uris=t.makeUriArray(e.web),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.login),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.AvastCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(39),l=n(106),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);return null==r?(n.success=!1,Promise.resolve(n)):(null!=r.logins&&r.logins.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.custName),r.notes=t.getValueOrDefault(e.note),r.login.uris=t.makeUriArray(e.url),r.login.password=t.getValueOrDefault(e.pwd),r.login.username=t.getValueOrDefault(e.loginName),t.cleanupCipher(r),n.ciphers.push(r)})),null!=r.notes&&r.notes.forEach((function(e){var r=t.initLoginCipher();r.type=s.CipherType.SecureNote,r.secureNote.type=l.SecureNoteType.Generic,r.name=t.getValueOrDefault(e.label),r.notes=t.getValueOrDefault(e.text),t.cleanupCipher(r),n.ciphers.push(r)})),null!=r.cards&&r.cards.forEach((function(e){var r=t.initLoginCipher();r.type=s.CipherType.Card,r.name=t.getValueOrDefault(e.custName),r.notes=t.getValueOrDefault(e.note),r.card.cardholderName=t.getValueOrDefault(e.holderName),r.card.number=t.getValueOrDefault(e.cardNumber),r.card.code=t.getValueOrDefault(e.cvv),r.card.brand=t.getCardBrand(r.card.number),null!=e.expirationDate&&(null!=e.expirationDate.month&&(r.card.expMonth=e.expirationDate.month+""),null!=e.expirationDate.year&&(r.card.expYear=e.expirationDate.year+"")),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.AvastJsonImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name,t.getValueOrDefault(t.nameFromUrl(e.website),"--")),r.login.uris=t.makeUriArray(e.website),r.login.password=t.getValueOrDefault(e.password),t.isNullOrWhitespace(e.username)&&!t.isNullOrWhitespace(e.secondary_username)?r.login.username=e.secondary_username:(r.login.username=t.getValueOrDefault(e.username),r.notes=t.getValueOrDefault(e.secondary_username)),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.AviraCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(143),l=n(156),c=n(209),p=n(159),u=n(94),d=n(39),m=n(118),h=n(106),f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){t.organization&&!t.isNullOrWhitespace(e.collections)?e.collections.split(",").forEach((function(e){for(var t=!0,r=n.collections.length,i=0;ia+2&&(f.value=i[o].substr(a+2)),r.fields.push(f)}}switch(null!=e.type?e.type.toLowerCase():null){case"note":r.type=d.CipherType.SecureNote,r.secureNote=new u.SecureNoteView,r.secureNote.type=h.SecureNoteType.Generic;break;default:r.type=d.CipherType.Login,r.login=new p.LoginView,r.login.totp=t.getValueOrDefault(e.login_totp||e.totp),r.login.username=t.getValueOrDefault(e.login_username||e.username),r.login.password=t.getValueOrDefault(e.login_password||e.password);var v=t.parseSingleRowCsv(e.login_uri||e.uri);r.login.uris=t.makeUriArray(v)}n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.BitwardenCsvImporter=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]5&&(f.passwordHistory=f.passwordHistory.slice(0,5)),!this.organization&&null!=h.folderId&&e.has(h.folderId)?this.result.folderRelationships.push([this.result.ciphers.length,e.get(h.folderId)]):this.organization&&null!=h.collectionIds&&h.collectionIds.forEach((function(t){e.has(t)&&y.result.collectionRelationships.push([y.result.ciphers.length,e.get(t)])})),[4,f.decrypt()]):[3,13];case 11:v=a.sent(),this.cleanupCipher(v),this.result.ciphers.push(v),a.label=12;case 12:return d++,[3,10];case 13:return[2]}}))}))},t.prototype.parseDecrypted=function(){var e=this,t=new Map;this.organization&&null!=this.results.collections?this.results.collections.forEach((function(n){var r=p.CollectionWithId.toView(n);null!=r&&(r.id=null,r.organizationId=null,t.set(n.id,e.result.collections.length),e.result.collections.push(r))})):this.organization||null==this.results.folders||this.results.folders.forEach((function(n){var r=u.FolderWithId.toView(n);null!=r&&(r.id=null,t.set(n.id,e.result.folders.length),e.result.folders.push(r))})),this.results.items.forEach((function(n){var r=c.CipherWithIds.toView(n);r.id=null,r.folderId=null,r.organizationId=null,r.collectionIds=null,null!=r.passwordHistory&&r.passwordHistory.length>5&&(r.passwordHistory=r.passwordHistory.slice(0,5)),!e.organization&&null!=n.folderId&&t.has(n.folderId)?e.result.folderRelationships.push([e.result.ciphers.length,t.get(n.folderId)]):e.organization&&null!=n.collectionIds&&n.collectionIds.forEach((function(n){t.has(n)&&e.result.collectionRelationships.push([e.result.ciphers.length,t.get(n)])})),e.cleanupCipher(r),e.result.ciphers.push(r)}))},t}(s.BaseImporter);t.BitwardenJsonImporter=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if("list"!==e.grouping){var r=t.initLoginCipher();r.favorite="1"===e.fav,r.name=t.getValueOrDefault(e.name),r.notes=t.getValueOrDefault(e.extra),"note"!==e.grouping&&(r.login.uris=t.makeUriArray(e.url),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.username)),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.BlackBerryCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){"null"===e.label&&(e.label=null);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.label,t.getValueOrDefault(t.nameFromUrl(e.domain),"--")),r.login.uris=t.makeUriArray(e.domain),r.login.password=t.getValueOrDefault(e.password),t.isNullOrWhitespace(e.email)&&!t.isNullOrWhitespace(e.username)?r.login.username=e.username:(r.login.username=t.getValueOrDefault(e.email),r.notes=t.getValueOrDefault(e.username)),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.BlurCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=["!group_id","!group_name","title","username","password","URL","id"],l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){t.processFolder(n,t.getValueOrDefault(e["!group_name"]));var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.title,"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.URL);var i=!1;for(var o in e)e.hasOwnProperty(o)&&(i||-1!==s.indexOf(o)||(i=!0),i&&t.processKvp(r,o,e[o]));t.cleanupCipher(r),n.ciphers.push(r)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.ButtercupCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name,"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.ChromeCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelector("textarea");return null==i||this.isNullOrWhitespace(i.textContent)?(n.errorMessage="Missing textarea.",n.success=!1,Promise.resolve(n)):(JSON.parse(i.textContent).forEach((function(e){var r=t.initLoginCipher();if(t.isNullOrWhitespace(e.label)||(r.name=e.label.split(" ")[0]),null==e.data||t.isNullOrWhitespace(e.data.notes)||(r.notes=e.data.notes.split("\\n").join("\n")),null!=e.currentVersion&&null!=e.currentVersion.fields)for(var i in e.currentVersion.fields)if(e.currentVersion.fields.hasOwnProperty(i)){var o=e.currentVersion.fields[i];switch(null!=o.actionType?o.actionType.toLowerCase():null){case"password":r.login.password=t.getValueOrDefault(o.value);break;case"email":case"username":case"user":case"name":r.login.username=t.getValueOrDefault(o.value);break;case"url":r.login.uris=t.makeUriArray(o.value);break;default:var a=null!=o.label?o.label.toLowerCase():null;null==r.login.password&&t.passwordFieldNames.indexOf(a)>-1?r.login.password=t.getValueOrDefault(o.value):null==r.login.username&&t.usernameFieldNames.indexOf(a)>-1?r.login.username=t.getValueOrDefault(o.value):(null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(a)>-1?r.login.uris=t.makeUriArray(o.value):t.processKvp(r,o.label,o.value)}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.ClipperzHtmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){t.processFolder(n,t.getValueOrDefault(e.Category));var r=t.initLoginCipher();r.favorite="True"===t.getValueOrDefault(e.Favorite),r.name=t.getValueOrDefault(e.Entry,"--"),r.notes=t.getValueOrDefault(e.Note),r.login.username=t.getValueOrDefault(e.Username,e.Email),r.login.password=t.getValueOrDefault(e.Password),r.login.totp=t.getValueOrDefault(e.TOTP),r.login.uris=t.makeUriArray(e.Website),t.isNullOrWhitespace(e.Username)||t.processKvp(r,"Email",e.Email),t.processKvp(r,"Phone",e.Phone),t.processKvp(r,"PIN",e.PIN),t.processKvp(r,"Account",e.Account),t.processKvp(r,"Date",e.Date),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.CodebookCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(143),c=n(144),p=n(94),u=n(39),d=n(106),m=new Set(["ADDRESS","AUTHENTIFIANT","BANKSTATEMENT","IDCARD","IDENTITY","PAYMENTMEANS_CREDITCARD","PAYMENTMEAN_PAYPAL","EMAIL"]),h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){this.result=new a.ImportResult;var t=JSON.parse(e);if(null==t||0===t.length)return this.result.success=!1,Promise.resolve(this.result);for(var n in null!=t.ADDRESS&&this.processAddress(t.ADDRESS),null!=t.AUTHENTIFIANT&&this.processAuth(t.AUTHENTIFIANT),null!=t.BANKSTATEMENT&&this.processNote(t.BANKSTATEMENT,"BankAccountName"),null!=t.IDCARD&&this.processNote(t.IDCARD,"Fullname"),null!=t.PAYMENTMEANS_CREDITCARD&&this.processCard(t.PAYMENTMEANS_CREDITCARD),null!=t.IDENTITY&&this.processIdentity(t.IDENTITY),t)t.hasOwnProperty(n)&&!m.has(n)&&this.processNote(t[n],null,"Generic Note");return this.result.success=!0,Promise.resolve(this.result)},t.prototype.processAuth=function(e){var t=this;e.forEach((function(e){var n=t.initLoginCipher();n.name=t.getValueOrDefault(e.title),n.login.username=t.getValueOrDefault(e.login,t.getValueOrDefault(e.secondaryLogin)),t.isNullOrWhitespace(n.login.username)?n.login.username=t.getValueOrDefault(e.email):t.isNullOrWhitespace(e.email)||(n.notes="Email: "+e.email+"\n"),n.login.password=t.getValueOrDefault(e.password),n.login.uris=t.makeUriArray(e.domain),n.notes+=t.getValueOrDefault(e.note,""),t.convertToNoteIfNeeded(n),t.cleanupCipher(n),t.result.ciphers.push(n)}))},t.prototype.processIdentity=function(e){var t=this;e.forEach((function(e){var n=new l.CipherView;n.identity=new c.IdentityView,n.type=u.CipherType.Identity,n.name=t.getValueOrDefault(e.fullName,"");var r=n.name.split(" ");r.length>0&&(n.identity.firstName=t.getValueOrDefault(r[0])),2===r.length?n.identity.lastName=t.getValueOrDefault(r[1]):3===r.length&&(n.identity.middleName=t.getValueOrDefault(r[1]),n.identity.lastName=t.getValueOrDefault(r[2])),n.identity.username=t.getValueOrDefault(e.pseudo),t.cleanupCipher(n),t.result.ciphers.push(n)}))},t.prototype.processAddress=function(e){var t=this;e.forEach((function(e){var n=new l.CipherView;n.identity=new c.IdentityView,n.type=u.CipherType.Identity,n.name=t.getValueOrDefault(e.addressName),n.identity.address1=t.getValueOrDefault(e.addressFull),n.identity.city=t.getValueOrDefault(e.city),n.identity.state=t.getValueOrDefault(e.state),n.identity.postalCode=t.getValueOrDefault(e.zipcode),n.identity.country=t.getValueOrDefault(e.country),null!=n.identity.country&&(n.identity.country=n.identity.country.toUpperCase()),t.cleanupCipher(n),t.result.ciphers.push(n)}))},t.prototype.processCard=function(e){var t=this;e.forEach((function(e){var n=new l.CipherView;n.card=new s.CardView,n.type=u.CipherType.Card,n.name=t.getValueOrDefault(e.bank),n.card.number=t.getValueOrDefault(e.cardNumber),n.card.brand=t.getCardBrand(n.card.number),n.card.cardholderName=t.getValueOrDefault(e.owner),t.isNullOrWhitespace(n.card.brand)||(t.isNullOrWhitespace(n.name)?n.name=n.card.brand:n.name+=" - "+n.card.brand),t.cleanupCipher(n),t.result.ciphers.push(n)}))},t.prototype.processNote=function(e,t,n){var r=this;void 0===n&&(n=null),e.forEach((function(e){var i=new l.CipherView;for(var o in i.secureNote=new p.SecureNoteView,i.type=u.CipherType.SecureNote,i.secureNote.type=d.SecureNoteType.Generic,i.name=null!=n?n:r.getValueOrDefault(e[t]),e)e.hasOwnProperty(o)&&o!==t&&r.processKvp(i,o,e[o].toString());r.cleanupCipher(i),r.result.ciphers.push(i)}))},t}(o.BaseImporter);t.DashlaneJsonImporter=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(39),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Label,"--"),r.notes=t.getValueOrDefault(e.Notes);var i=t.getValueOrDefault(e.Text);t.isNullOrWhitespace(i)||(t.isNullOrWhitespace(r.notes)?r.notes=i:r.notes+="\n\n"+i);var o=e["Entry Type"];if("Password"===o)r.login.username=t.getValueOrDefault(e.Username),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e["Site URL"]);else if("Credit Card"===o){r.type=l.CipherType.Card,r.card=new s.CardView,r.card.cardholderName=t.getValueOrDefault(e["Name on card"]),r.card.number=t.getValueOrDefault(e["Card Number"]),r.card.brand=t.getCardBrand(r.card.number),r.card.code=t.getValueOrDefault(e.CVV);var a=t.getValueOrDefault(e.Expiry);if(!t.isNullOrWhitespace(a)){var c=a.split("/");c.length>1&&(r.card.expMonth=parseInt(c[0],null).toString(),r.card.expYear=(2e3+parseInt(c[1],null)).toString())}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.EncryptrCsvImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(39),l=n(106),c=n(88),p=n(94),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=!0;return r.forEach((function(e){if(e.length<2||i&&("Title"===e[0]||"title"===e[0]))i=!1;else{var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[e.length-1]),r.name=t.getValueOrDefault(e[0],"--"),2!==e.length&&(t.containsField(e,"username")||t.containsField(e,"password")||t.containsField(e,"email")||t.containsField(e,"url"))||(r.type=s.CipherType.SecureNote,r.secureNote=new p.SecureNoteView,r.secureNote.type=l.SecureNoteType.Generic),t.containsField(e,"cardholder")&&t.containsField(e,"number")&&t.containsField(e,"expiry date")&&(r.type=s.CipherType.Card,r.card=new c.CardView),e.length>2&&e.length%2==0)for(var o=0;o0},t}(o.BaseImporter);t.EnpassCsvImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(127),c=n(39),p=n(118),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);if(null==r||null==r.items||0===r.items.length)return n.success=!1,Promise.resolve(n);var i=new Map,o=new Map,s=this.buildFolderTree(r.folders);return this.flattenFolderTree(null,s,i),i.forEach((function(e,t){o.set(t,n.folders.length);var r=new l.FolderView;r.name=e,n.folders.push(r)})),r.items.forEach((function(e){null!=e.folders&&e.folders.length>0&&o.has(e.folders[0])&&n.folderRelationships.push([n.ciphers.length,o.get(e.folders[0])]);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.title),r.favorite=e.favorite>0,null!=e.template_type&&null!=e.fields&&e.fields.length>0&&(0===e.template_type.indexOf("login.")||0===e.template_type.indexOf("password.")?t.processLogin(r,e.fields):0===e.template_type.indexOf("creditcard.")?t.processCard(r,e.fields):e.template_type.indexOf("identity.")<0&&e.fields.some((function(e){return"password"===e.type&&!t.isNullOrWhitespace(e.value)}))?t.processLogin(r,e.fields):t.processNote(r,e.fields)),r.notes+="\n"+t.getValueOrDefault(e.note,""),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n)},t.prototype.processLogin=function(e,t){var n=this,r=[];t.forEach((function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||("username"!==t.type&&"email"!==t.type||!n.isNullOrWhitespace(e.login.username)?"password"===t.type&&n.isNullOrWhitespace(e.login.password)?e.login.password=t.value:"totp"===t.type&&n.isNullOrWhitespace(e.login.totp)?e.login.totp=t.value:"url"===t.type?r.push(t.value):n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text):e.login.username=t.value)})),e.login.uris=this.makeUriArray(r)},t.prototype.processCard=function(e,t){var n=this;e.card=new s.CardView,e.type=c.CipherType.Card,t.forEach((function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||"ccType"===t.type||("ccName"===t.type&&n.isNullOrWhitespace(e.card.cardholderName)?e.card.cardholderName=t.value:"ccNumber"===t.type&&n.isNullOrWhitespace(e.card.number)?(e.card.number=t.value,e.card.brand=n.getCardBrand(e.card.number)):"ccCvc"===t.type&&n.isNullOrWhitespace(e.card.code)?e.card.code=t.value:"ccExpiry"===t.type&&n.isNullOrWhitespace(e.card.expYear)&&n.setCardExpiration(e,t.value)||n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text))}))},t.prototype.processNote=function(e,t){var n=this;t.forEach((function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text)}))},t.prototype.buildFolderTree=function(e){if(null==e)return[];var t=[],n=new Map([]);return e.forEach((function(e){n.set(e.uuid,e),e.children=[]})),e.forEach((function(e){null!=e.parent_uuid&&""!==e.parent_uuid&&n.has(e.parent_uuid)?n.get(e.parent_uuid).children.push(e):t.push(e)})),t},t.prototype.flattenFolderTree=function(e,t,n){var r=this;null!=t&&t.forEach((function(t){if(null!=t.title&&""!==t.title.trim()){var i=t.title.trim();null!=e&&""!==e.trim()&&(i=e+"/"+i),n.set(t.uuid,i),null!=t.children&&0!==t.children.length&&r.flattenFolderTree(i,t.children,n)}}))},t}(o.BaseImporter);t.EnpassJsonImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.filter((function(e){return"chrome://FirefoxAccounts"!==e.url})).forEach((function(e){var r=t.initLoginCipher(),i=t.getValueOrDefault(e.url,t.getValueOrDefault(e.hostname));r.name=t.getValueOrDefault(t.nameFromUrl(i),"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(i),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.FirefoxCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(39),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=new a.ImportResult,n=JSON.parse(e);if(null==n||null==n.data)return t.success=!1,Promise.resolve(t);for(var r in n.data)if(n.data.hasOwnProperty(r)){var i=n.data[r],o=this.initLoginCipher();if(o.name=this.getValueOrDefault(i.service),o.notes=this.getValueOrDefault(i.notes),"website"===i.style)o.login.username=this.getValueOrDefault(i.username),o.login.password=this.getValueOrDefault(i.password),o.login.uris=this.makeUriArray(i.url);else{if("creditcard"!==i.style)continue;o.type=l.CipherType.Card,o.card=new s.CardView,o.card.cardholderName=this.getValueOrDefault(i.username),o.card.number=this.getValueOrDefault(i.creditNumber),o.card.brand=this.getCardBrand(o.card.number),o.card.code=this.getValueOrDefault(i.creditCvv),this.isNullOrWhitespace(i.creditExpiry)||this.setCardExpiration(o,i.creditExpiry)||this.processKvp(o,"Expiration",i.creditExpiry),this.isNullOrWhitespace(i.password)||this.processKvp(o,"PIN",i.password)}this.convertToNoteIfNeeded(o),this.cleanupCipher(o),t.ciphers.push(o)}return t.success=!0,Promise.resolve(t)},t}(o.BaseImporter);t.FSecureFskImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);if(null==r||0===Object.keys(r).length)return n.success=!1,Promise.resolve(n);var i=function(e){if(!r.hasOwnProperty(e)||o.isNullOrWhitespace(e)||0===r[e].length)return"continue";r[e].forEach((function(r){if(!t.isNullOrWhitespace(r.display_name)&&0===r.display_name.indexOf("http")){t.processFolder(n,e);var i=t.initLoginCipher();if(i.name=r.display_name.replace("http://","").replace("https://",""),i.name.length>30&&(i.name=i.name.substring(0,30)),i.login.password=t.getValueOrDefault(r.secret),i.login.uris=t.makeUriArray(r.display_name),null!=r.attributes)for(var o in i.login.username=null!=r.attributes?t.getValueOrDefault(r.attributes.username_value):null,r.attributes)r.attributes.hasOwnProperty(o)&&"username_value"!==o&&"xdg:schema"!==o&&t.processKvp(i,o,r.attributes[o]);t.convertToNoteIfNeeded(i),t.cleanupCipher(i),n.ciphers.push(i)}}))},o=this;for(var s in r)i(s);return this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.GnomeJsonImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t,n,r,i,o=this,s=new a.ImportResult,l=this.splitNewLine(e).join("\n");-1!==l.indexOf("Notes\n\n")&&((i=l.split("Notes\n\n")).length>1&&(l=i[0],t=i[1]));-1!==l.indexOf("Applications\n\n")&&((i=l.split("Applications\n\n")).length>1&&(l=i[0],n=i[1]));0===l.indexOf("Websites\n\n")&&((i=l.split("Websites\n\n")).length>1&&(l=i[0],r=i[1]));var c=this.parseDataCategory(t),p=this.parseDataCategory(n),u=this.parseDataCategory(r);return c.forEach((function(e){var t=o.initLoginCipher();t.name=o.getValueOrDefault(e.get("Name")),t.notes=o.getValueOrDefault(e.get("Text")),o.cleanupCipher(t),s.ciphers.push(t)})),u.concat(p).forEach((function(e){var t=o.initLoginCipher(),n=e.has("Website name")?"Website name":"Application";t.name=o.getValueOrDefault(e.get(n),""),o.isNullOrWhitespace(e.get("Login name"))||(o.isNullOrWhitespace(t.name)||(t.name+=": "),t.name+=e.get("Login name")),t.notes=o.getValueOrDefault(e.get("Comment")),e.has("Website URL")&&(t.login.uris=o.makeUriArray(e.get("Website URL"))),t.login.username=o.getValueOrDefault(e.get("Login")),t.login.password=o.getValueOrDefault(e.get("Password")),o.cleanupCipher(t),s.ciphers.push(t)})),s.success=!0,Promise.resolve(s)},t.prototype.parseDataCategory=function(e){if(this.isNullOrWhitespace(e)||-1===e.indexOf("\n---\n"))return[];var t=[];return e.split("\n---\n").forEach((function(e){if(-1!==e.indexOf("\n")){var n,r,i=new Map;e.split("\n").forEach((function(e){if(null==n){var t,o,a=e.indexOf(":");-1!==a&&(t=e.substring(0,a),e.length>a+1&&(o=e.substring(a+2)),null!=t&&i.set(t,o),"Comment"!==t&&"Text"!==t||(n=o,r=t))}else n+="\n"+e})),null!=n&&null!=r&&i.set(r,n),0!==i.size&&t.push(i)}})),t},t}(o.BaseImporter);t.KasperskyTxtImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(118),s=n(26),l=n(127),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.result=new s.ImportResult,t}return i(t,e),t.prototype.parse=function(e){var t=this.parseXml(e);if(null==t)return this.result.success=!1,Promise.resolve(this.result);var n=t.querySelector("KeePassFile > Root > Group");return null==n?(this.result.errorMessage="Missing `KeePassFile > Root > Group` node.",this.result.success=!1,Promise.resolve(this.result)):(this.traverse(n,!0,""),this.organization&&this.moveFoldersToCollections(this.result),this.result.success=!0,Promise.resolve(this.result))},t.prototype.traverse=function(e,t,n){var r=this,i=this.result.folders.length,o=n;if(!t){""!==o&&(o+="/");var s=this.querySelectorDirectChild(e,"Name");o+=null==s?"-":s.textContent;var c=new l.FolderView;c.name=o,this.result.folders.push(c)}this.querySelectorAllDirectChild(e,"Entry").forEach((function(e){var n=r.result.ciphers.length,o=r.initLoginCipher();r.querySelectorAllDirectChild(e,"String").forEach((function(e){var t=r.querySelectorDirectChild(e,"Value"),n=null!=t?t.textContent:null;if(!r.isNullOrWhitespace(n)){var i=r.querySelectorDirectChild(e,"Key"),s=null!=i?i.textContent:null;if("URL"===s)o.login.uris=r.makeUriArray(n);else if("UserName"===s)o.login.username=n;else if("Password"===s)o.login.password=n;else if("otp"===s)o.login.totp=n.replace("key=","");else if("Title"===s)o.name=n;else if("Notes"===s)o.notes+=n+"\n";else{var l=a.FieldType.Text,c=t.attributes;c.length>0&&null!=c.ProtectInMemory&&"True"===c.ProtectInMemory.value&&(l=a.FieldType.Hidden),r.processKvp(o,s,n,l)}}})),r.cleanupCipher(o),r.result.ciphers.push(o),t||r.result.folderRelationships.push([n,i])})),this.querySelectorAllDirectChild(e,"Group").forEach((function(e){r.traverse(e,!1,o)}))},t}(o.BaseImporter);t.KeePass2XmlImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!t.isNullOrWhitespace(e.Title)){e.Group=!t.isNullOrWhitespace(e.Group)&&e.Group.startsWith("Root/")?e.Group.replace("Root/",""):e.Group;var r=t.isNullOrWhitespace(e.Group)?null:e.Group;t.processFolder(n,r);var i=t.initLoginCipher();i.notes=t.getValueOrDefault(e.Notes),i.name=t.getValueOrDefault(e.Title,"--"),i.login.username=t.getValueOrDefault(e.Username),i.login.password=t.getValueOrDefault(e.Password),i.login.uris=t.makeUriArray(e.URL),t.cleanupCipher(i),n.ciphers.push(i)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.KeePassXCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<6)){t.processFolder(n,e[0]);var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[5])+"\n",r.name=t.getValueOrDefault(e[1],"--"),r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[4]),e.length>7)for(var i=7;i-1){var n=e.ccexp.split("-");n.length>1&&(t.expYear=n[0],t.expMonth=n[1],2===t.expMonth.length&&"0"===t.expMonth[0]&&(t.expMonth=t.expMonth[1]))}return t},t.prototype.parseIdentity=function(e){var t=new p.IdentityView;return t.title=this.getValueOrDefault(e.title),t.firstName=this.getValueOrDefault(e.firstname),t.middleName=this.getValueOrDefault(e.middlename),t.lastName=this.getValueOrDefault(e.lastname),t.username=this.getValueOrDefault(e.username),t.company=this.getValueOrDefault(e.company),t.ssn=this.getValueOrDefault(e.ssn),t.address1=this.getValueOrDefault(e.address1),t.address2=this.getValueOrDefault(e.address2),t.address3=this.getValueOrDefault(e.address3),t.city=this.getValueOrDefault(e.city),t.state=this.getValueOrDefault(e.state),t.postalCode=this.getValueOrDefault(e.zip),t.country=this.getValueOrDefault(e.country),t.email=this.getValueOrDefault(e.email),t.phone=this.getValueOrDefault(e.phone),this.isNullOrWhitespace(t.title)||(t.title=t.title.charAt(0).toUpperCase()+t.title.slice(1)),t},t.prototype.parseSecureNote=function(e,t){var n=this.splitNewLine(e.extra),r=!1;if(n.length){var i=n[0].split(":");if(i.length>1&&"NoteType"===i[0]&&("Credit Card"===i[1]||"Address"===i[1])){if("Credit Card"===i[1]){var o=this.parseSecureNoteMapping(t,n,{Number:"number","Name on Card":"cardholderName","Security Code":"code","Expiration Date":"expMonth"});if(this.isNullOrWhitespace(o.expMonth)||","===o.expMonth)o.expMonth=void 0;else{var a=o.expMonth.split(","),s=a[0],l=a[1];if(this.isNullOrWhitespace(s))o.expMonth=void 0;else{var c=new Date(Date.parse(s.trim()+" 1, 2012")).getMonth()+1;isNaN(c)?o.expMonth=void 0:o.expMonth=c.toString()}this.isNullOrWhitespace(l)||(o.expYear=l)}t.type=m.CipherType.Card,t.card=o}else if("Address"===i[1]){o=this.parseSecureNoteMapping(t,n,{Title:"title","First Name":"firstName","Last Name":"lastName","Middle Name":"middleName",Company:"company","Address 1":"address1","Address 2":"address2","Address 3":"address3","City / Town":"city",State:"state","Zip / Postal Code":"postalCode",Country:"country","Email Address":"email",Username:"username"});t.type=m.CipherType.Identity,t.identity=o}r=!0}}r||(t.secureNote=new d.SecureNoteView,t.secureNote.type=h.SecureNoteType.Generic,t.notes=this.getValueOrDefault(e.extra))},t.prototype.parseSecureNoteMapping=function(e,t,n){var r=this,i={},o=!1;return t.forEach((function(t){var a=null,s=null;if(!o){if(r.isNullOrWhitespace(t))return;var l=t.indexOf(":");if(-1===l?a=t:(a=t.substring(0,l),t.length>l&&(s=t.substring(l+1))),r.isNullOrWhitespace(a)||r.isNullOrWhitespace(s)||"NoteType"===a)return}o?e.notes+="\n"+t:"Notes"===a?(r.isNullOrWhitespace(e.notes)?e.notes=s:e.notes+="\n"+s,o=!0):n.hasOwnProperty(a)?i[n[a]]=s:r.processKvp(e,a,s)})),i},t}(o.BaseImporter);t.LastPassCsvImporter=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<4)){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[1]),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.LogMeOnceCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.DisplayName,"--"),r.notes=t.getValueOrDefault(e.Notes),r.login.username=t.getValueOrDefault(e.UserName),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e.Url),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.MeldiumCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(39),l=n(106),c=n(94),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<3)){var r="Unassigned"!==t.getValueOrDefault(e[0],"Unassigned")?e[0]:null;t.processFolder(n,r);var i=t.initLoginCipher();if(i.name=t.getValueOrDefault(e[2],"--"),"Web Logins"===e[1]||"Login"===e[1])i.login.uris=t.makeUriArray(e[4]),i.login.username=t.getValueOrDefault(e[5]),i.login.password=t.getValueOrDefault(e[6]),i.notes=t.isNullOrWhitespace(e[3])?null:e[3].split("\\n").join("\n");else if(e.length>3){i.type=s.CipherType.SecureNote,i.secureNote=new c.SecureNoteView,i.secureNote.type=l.SecureNoteType.Generic;for(var o=3;o0&&(t.login.uris=this.makeUriArray(r))}null!=e.secureContents.fields&&this.parseFields(e.secureContents.fields,t,"designation","value","name"),null!=e.secureContents.sections&&e.secureContents.sections.forEach((function(e){null!=e.fields&&n.parseFields(e.fields,t,"n","v","t")}))}},t.prototype.parsePasswordHistory=function(e,t){var n=this,r=e.length>5?5:e.length;t.passwordHistory=e.filter((function(e){return!n.isNullOrWhitespace(e.value)&&null!=e.time})).sort((function(e,t){return t.time-e.time})).slice(0,r).map((function(e){var t=new c.PasswordHistoryView;return t.password=e.value,t.lastUsedDate=new Date((""+e.time).length>=13?e.time:1e3*e.time),t}))},t.prototype.parseFields=function(e,t,n,r,i){var o=this;e.forEach((function(e){if(null!=e[r]&&""!==e[r].toString().trim()){var a=e[r].toString(),s=null!=e[n]?e[n].toString():null;if(t.type===u.CipherType.Login){if(o.isNullOrWhitespace(t.login.username)&&"username"===s)return void(t.login.username=a);if(o.isNullOrWhitespace(t.login.password)&&"password"===s)return void(t.login.password=a);if(o.isNullOrWhitespace(t.login.totp)&&null!=s&&s.startsWith("TOTP_"))return void(t.login.totp=a)}else if(t.type===u.CipherType.Card){if(o.isNullOrWhitespace(t.card.number)&&"ccnum"===s)return t.card.number=a,void(t.card.brand=o.getCardBrand(a));if(o.isNullOrWhitespace(t.card.code)&&"cvv"===s)return void(t.card.code=a);if(o.isNullOrWhitespace(t.card.cardholderName)&&"cardholder"===s)return void(t.card.cardholderName=a);if(o.isNullOrWhitespace(t.card.expiration)&&"expiry"===s&&6===a.length)return t.card.expMonth=a.substr(4,2),"0"===t.card.expMonth[0]&&(t.card.expMonth=t.card.expMonth.substr(1,1)),void(t.card.expYear=a.substr(0,4));if("type"===s)return}else if(t.type===u.CipherType.Identity){var l=t.identity;if(o.isNullOrWhitespace(l.firstName)&&"firstname"===s)return void(l.firstName=a);if(o.isNullOrWhitespace(l.lastName)&&"lastname"===s)return void(l.lastName=a);if(o.isNullOrWhitespace(l.middleName)&&"initial"===s)return void(l.middleName=a);if(o.isNullOrWhitespace(l.phone)&&"defphone"===s)return void(l.phone=a);if(o.isNullOrWhitespace(l.company)&&"company"===s)return void(l.company=a);if(o.isNullOrWhitespace(l.email)&&"email"===s)return void(l.email=a);if(o.isNullOrWhitespace(l.username)&&"username"===s)return void(l.username=a);if("address"===s){var c=e[r],p=c.street,m=c.city,h=c.country,f=c.zip;return l.address1=o.getValueOrDefault(p),l.city=o.getValueOrDefault(m),o.isNullOrWhitespace(h)||(l.country=h.toUpperCase()),void(l.postalCode=o.getValueOrDefault(f))}}var v=o.isNullOrWhitespace(e[i])?"no_name":e[i];if("password"!==v||null==t.passwordHistory||!t.passwordHistory.some((function(e){return e.password===a}))){var y="concealed"===e.k?d.FieldType.Hidden:d.FieldType.Text;o.processKvp(t,v,a,y)}}}))},t}(o.BaseImporter);t.OnePassword1PifImporter=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(715),a=n(39),s=n(716),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.setCipherType=function(e,t){switch(this.getValueOrDefault(this.getProp(e,"type"),"Login")){case"Credit Card":t.type=a.CipherType.Card,t.card=new s.CardView,o.IgnoredProperties.push("type");break;case"Identity":t.type=a.CipherType.Identity,t.identity=new s.IdentityView,o.IgnoredProperties.push("type");break;case"Login":case"Secure Note":o.IgnoredProperties.push("type")}},t}(o.OnePasswordCsvImporter);t.OnePasswordMacCsvImporter=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n){this.importRecord=e,this.property=t,this.cipher=n,this.lowerProperty=t.toLowerCase()};t.CipherImportContext=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.View=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(715),a=n(39),s=n(716),l=function(e){function t(){var t=e.call(this)||this;return t.identityPropertyParsers.push(t.setIdentityAddress),t}return i(t,e),t.prototype.setCipherType=function(e,t){t.type=a.CipherType.Login,t.login=new s.LoginView,this.isNullOrWhitespace(this.getPropByRegexp(e,/\d+: number/i))||this.isNullOrWhitespace(this.getPropByRegexp(e,/\d+: expiry date/i))||(t.type=a.CipherType.Card,t.card=new s.CardView),this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: first name/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: initial/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: last name/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/internet \d+: email/i))||(t.type=a.CipherType.Identity,t.identity=new s.IdentityView)},t.prototype.setIdentityAddress=function(e){return!!e.lowerProperty.match(/address \d+: address/i)&&(this.processKvp(e.cipher,"address",e.importRecord[e.property]),!0)},t.prototype.setCreditCardExpiry=function(e){if(this.isNullOrWhitespace(e.cipher.card.expiration)&&e.lowerProperty.includes("expiry date")){var t=e.importRecord[e.property].split("/");return e.cipher.card.expMonth=t[0],"0"===e.cipher.card.expMonth[0]&&2===e.cipher.card.expMonth.length&&(e.cipher.card.expMonth=e.cipher.card.expMonth.substr(1,1)),e.cipher.card.expYear=t[2].length>4?t[2].substr(0,4):t[2],!0}return!1},t}(o.OnePasswordCsvImporter);t.OnePasswordWinCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(156),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=null;return r.forEach((function(e){if(null!=i){if(!(e.length<2||e.length!==i.length)){if(!t.isNullOrWhitespace(e[1]))if(t.organization){(r=e[1].split(",")).forEach((function(e){e=e.trim();for(var t=!0,r=n.collections.length,i=0;i0?r[0].trim():null;t.processFolder(n,o)}var a=t.initLoginCipher();a.name=t.getValueOrDefault(e[0],"--");for(var l=2;l-1?a.login.username=e[l]:t.passwordFieldNames.indexOf(c)>-1?a.login.password=e[l]:t.uriFieldNames.indexOf(c)>-1?a.login.uris=t.makeUriArray(e[l]):t.processKvp(a,i[l],e[l]))}t.cleanupCipher(a),n.ciphers.push(a)}}else i=e.map((function(e){return e}))})),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PadlockCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){t.processFolder(n,t.getValue("category",e));var r=t.initLoginCipher();r.notes=t.getValue("description",e),r.name=t.getValueOrDefault(t.getValue("title",e),"--"),r.login.username=t.getValue("username",e),r.login.password=t.getValue("password",e),r.login.uris=t.makeUriArray(t.getValue("site",e)),t.processKvp(r,"Password 2",t.getValue("password2",e)),t.cleanupCipher(r),n.ciphers.push(r)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.getValue=function(e,t){return this.getValueOrDefault(t[e],this.getValueOrDefault(t[" "+e]))},t}(o.BaseImporter);t.PassKeepCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);return null==r||0===r.length?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(null!=e.tags&&e.tags.length>0){var r=e.tags[0].text;t.processFolder(n,r)}var i=t.initLoginCipher();i.name=e.label,i.login.username=t.getValueOrDefault(e.username),t.isNullOrWhitespace(i.login.username)?i.login.username=t.getValueOrDefault(e.email):t.isNullOrWhitespace(e.email)||(i.notes="Email: "+e.email+"\n"),i.login.password=t.getValueOrDefault(e.password),i.login.uris=t.makeUriArray(e.url),i.notes+=t.getValueOrDefault(e.description,""),null!=e.otp&&(i.login.totp=t.getValueOrDefault(e.otp.secret)),null!=e.custom_fields&&e.custom_fields.forEach((function(e){switch(e.field_type){case"text":case"password":t.processKvp(i,e.label,e.value)}})),t.convertToNoteIfNeeded(i),t.cleanupCipher(i),n.ciphers.push(i)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.PassmanJsonImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(156),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.isNullOrWhitespace(e.Tags)?null:JSON.parse(e.Tags),i=null!=r&&null!=r.tags&&r.tags.length>0?r.tags.map((function(e){try{var n=JSON.parse(e);return t.getValueOrDefault(n.tag)}catch(r){}return null})).filter((function(e){return!t.isNullOrWhitespace(e)})):null;t.organization&&null!=i&&i.length>0?i.forEach((function(e){for(var t=!0,r=n.collections.length,i=0;i0&&t.processFolder(n,i[0]);var o=t.initLoginCipher();o.notes=t.getValueOrDefault(e.Notes,""),o.notes+="\n\n"+t.getValueOrDefault(e["Shared Notes"],"")+"\n",o.name=t.getValueOrDefault(e["Entry Name"],"--"),o.login.username=t.getValueOrDefault(e["User ID"]),o.login.password=t.getValueOrDefault(e.Password),o.login.uris=t.makeUriArray(e.URL),null!=e.__parsed_extra&&e.__parsed_extra.length>0&&e.__parsed_extra.forEach((function(e){t.isNullOrWhitespace(e)||(o.notes+="\n"+e)}));var a=t.isNullOrWhitespace(e["Extra Fields"])?null:JSON.parse(e["Extra Fields"]),l=null!=a&&null!=a.extraFields&&a.extraFields.length>0?a.extraFields.map((function(e){try{return JSON.parse(e)}catch(t){}return null})):null;null!=l&&l.forEach((function(e){null!=e&&t.processKvp(o,e.name,e.data)})),t.cleanupCipher(o),n.ciphers.push(o)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.PasspackCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=!0;return r.forEach((function(e){if(!(5!==e.length&&e.length<9)){var r=10===e.length&&"0"===e[0],o=t.initLoginCipher();if(o.name=t.getValueOrDefault(e[r?1:0],"--"),o.login.username=t.getValueOrDefault(e[r?2:1]),o.login.password=t.getValueOrDefault(e[r?3:2]),5===e.length)i=!1,o.notes=t.getValueOrDefault(e[4]),o.login.uris=t.makeUriArray(e[3]);else{var a=t.getValueOrDefault(e[r?9:8],"(None)"),s="(None)"!==a?a.split("\\").join("/"):null;null!=s&&(s=a.split(" > ").join("/"),s=a.split(">").join("/")),t.processFolder(n,s),o.notes=t.getValueOrDefault(e[r?5:3]),o.login.uris=t.makeUriArray(e[4])}t.convertToNoteIfNeeded(o),t.cleanupCipher(o),n.ciphers.push(o)}})),i&&this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PasswordAgentCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(127),c=n(39),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);if(null==r||null==r.items)return n.success=!1,Promise.resolve(n);var i=new Map;r.folders.forEach((function(e){i.set(e.id,e.name)}));var o=new Map;return i.forEach((function(e,t){o.set(t,n.folders.length);var r=new l.FolderView;r.name=e,n.folders.push(r)})),r.items.forEach((function(e){var r=t.initLoginCipher();if(r.name=t.getValueOrDefault(e.name,"--"),r.login.uris=t.makeUriArray(e.login_url),null!=e.folder&&o.has(e.folder)&&n.folderRelationships.push([n.ciphers.length,o.get(e.folder)]),null!=e.identifiers){for(var i in t.isNullOrWhitespace(e.identifiers.notes)||(r.notes=e.identifiers.notes.split("\\r\\n").join("\n").split("\\n").join("\n")),"CreditCard"===e.type&&(r.card=new s.CardView,r.type=c.CipherType.Card),e.identifiers)if(e.identifiers.hasOwnProperty(i)){var a=e.identifiers[i],l=null!=a?a.toString():null;if(!t.isNullOrWhitespace(l)&&"notes"!==i&&"ignoreItemInSecurityScore"!==i)if("custom_fields"!==i){if(r.type===c.CipherType.Card){if("cardNumber"===i){r.card.number=l,r.card.brand=t.getCardBrand(l);continue}if("nameOnCard"===i){r.card.cardholderName=l;continue}if("security_code"===i){r.card.code=l;continue}if("expires"===i){try{var p=new Date(l);r.card.expYear=p.getFullYear().toString(),r.card.expMonth=(p.getMonth()+1).toString()}catch(u){}continue}if("cardType"===i)continue}else{if(("username"===i||"email"===i)&&t.isNullOrWhitespace(r.login.username)){r.login.username=l;continue}if("password"===i){r.login.password=l;continue}if("totp"===i){r.login.totp=l;continue}if((null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(i)>-1){r.login.uris=t.makeUriArray(l);continue}}t.processKvp(r,i,l)}else a.forEach((function(e){t.processKvp(r,e.name,e.value)}))}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PasswordBossJsonImporter=p},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelectorAll("PasswordManager > record");return Array.from(i).forEach((function(e){var r=t.querySelectorDirectChild(e,"Category"),i=null==r||t.isNullOrWhitespace(r.textContent)||"Unfiled"===r.textContent?null:r.textContent;t.processFolder(n,i);var o=t.querySelectorDirectChild(e,"Account-Name"),a=t.querySelectorDirectChild(e,"User-Id"),s=t.querySelectorDirectChild(e,"Password"),l=t.querySelectorDirectChild(e,"URL"),c=t.querySelectorDirectChild(e,"Notes"),p=t.initLoginCipher();p.name=null!=o?t.getValueOrDefault(o.textContent,"--"):"--",p.notes=null!=c?t.getValueOrDefault(c.textContent):"",p.login.username=null!=a?t.getValueOrDefault(a.textContent):null,p.login.password=null!=s?t.getValueOrDefault(s.textContent):null,p.login.uris=null!=l?t.makeUriArray(l.textContent):null;for(var u=[],d=1;d<=10;d++)u.push("Attribute-"+d);t.querySelectorAllDirectChild(e,u.join(",")).forEach((function(e){t.isNullOrWhitespace(e.textContent)||"null"===e.textContent||t.processKvp(p,e.tagName,e.textContent)})),t.cleanupCipher(p),n.ciphers.push(p)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PasswordDragonXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelector("passwordsafe");if(null==i)return n.errorMessage="Missing `passwordsafe` node.",n.success=!1,Promise.resolve(n);var o=i.getAttribute("delimiter"),s=r.querySelectorAll("passwordsafe > entry");return Array.from(s).forEach((function(e){var r=t.querySelectorDirectChild(e,"group"),i=null==r||t.isNullOrWhitespace(r.textContent)?null:r.textContent.split(".").join("/");t.processFolder(n,i);var a=t.querySelectorDirectChild(e,"title"),s=t.querySelectorDirectChild(e,"username"),l=t.querySelectorDirectChild(e,"email"),c=t.querySelectorDirectChild(e,"password"),p=t.querySelectorDirectChild(e,"url"),u=t.querySelectorDirectChild(e,"notes"),d=t.initLoginCipher();d.name=null!=a?t.getValueOrDefault(a.textContent,"--"):"--",d.notes=null!=u?t.getValueOrDefault(u.textContent,"").split(o).join("\n"):null,d.login.username=null!=s?t.getValueOrDefault(s.textContent):null,d.login.password=null!=c?t.getValueOrDefault(c.textContent):null,d.login.uris=null!=p?t.makeUriArray(p.textContent):null,t.isNullOrWhitespace(d.login.username)&&null!=l?d.login.username=t.getValueOrDefault(l.textContent):null==l||t.isNullOrWhitespace(l.textContent)||(d.notes=t.isNullOrWhitespace(d.notes)?"Email: "+l.textContent:d.notes+"\nEmail: "+l.textContent),t.cleanupCipher(d),n.ciphers.push(d)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PasswordSafeXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<1)){e.length>5&&t.processFolder(n,e[5]);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),e.length>4&&(r.notes=t.getValueOrDefault(e[4],"").split("¬").join("\n")),e.length>2&&(r.login.username=t.getValueOrDefault(e[2])),e.length>3&&(r.login.password=t.getValueOrDefault(e[3])),e.length>1&&(r.login.uris=t.makeUriArray(e[1])),t.cleanupCipher(r),n.ciphers.push(r)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.PasswordWalletTxtImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(39),s=n(26),l=n(88),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new s.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if("true"!==e.trash){var r=t.initLoginCipher();if(r.name=t.getValueOrDefault(e.name),r.notes=t.getValueOrDefault(e.notes),"LoginItem"===e.type)r.login.uris=t.makeUriArray(e.website),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.username);else if("CreditCardItem"===e.type){r.type=a.CipherType.Card,r.card=new l.CardView,r.card.cardholderName=t.getValueOrDefault(e.cardholder),r.card.number=t.getValueOrDefault(e.number),r.card.brand=t.getCardBrand(r.card.number),r.card.code=t.getValueOrDefault(e.verification);try{var i=t.getValueOrDefault(e.expiryMonth);if(null!=i){var o=parseInt(i,null);null!=o&&o>=1&&o<=12&&(r.card.expMonth=o.toString())}}catch(d){}try{var s=t.getValueOrDefault(e.expiryYear);if(null!=s){var c=parseInt(s,null);null!=c&&(r.card.expYear=c.toString())}}catch(m){}var p=t.getValueOrDefault(e.pin);null!=p&&t.processKvp(r,"PIN",p);var u=t.getValueOrDefault(e.zipCode);null!=u&&t.processKvp(r,"Zip Code",u)}t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.RememBearCsvImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);if(null==r)return n.success=!1,Promise.resolve(n);var i=1;return r.forEach((function(e){var o=!t.isNullOrWhitespace(e.Folder)&&e.Folder.startsWith("/")?e.Folder.replace("/",""):e.Folder,a=t.isNullOrWhitespace(o)?null:o;t.processFolder(n,a);var s=t.initLoginCipher();if(s.notes=t.getValueOrDefault(e.Note),s.name=t.getValueOrDefault(e.Name,"--"),s.login.username=t.getValueOrDefault(e.Login),s.login.password=t.getValueOrDefault(e.Pwd),s.login.uris=t.makeUriArray(e.Url),!t.isNullOrWhitespace(e.Rf_fields)){var l=[e.Rf_fields];null!=e.__parsed_extra&&e.__parsed_extra.length>0&&(l=l.concat(e.__parsed_extra)),l.forEach((function(e){var n=e.split(":");if(!(n.length<3)){var r="-no-name-"===n[0]?null:n[0],i=4===n.length&&"rck"===n[2]?n[1]:n[2];t.processKvp(s,r,i)}}))}t.convertToNoteIfNeeded(s),t.cleanupCipher(s),i===r.length&&"--"===s.name&&t.isNullOrWhitespace(s.login.password)||(n.ciphers.push(s),i++)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.RoboFormCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(127),l=n(94),c=n(39),p=n(106),u=n(1022),d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);if(null==r.querySelector("database"))return n.errorMessage="Missing `database` node.",n.success=!1,Promise.resolve(n);var i=new Map;return Array.from(r.querySelectorAll("database > label")).forEach((function(e){var r=e.getAttribute("name"),o=e.getAttribute("id");if(!t.isNullOrWhitespace(r)&&!t.isNullOrWhitespace(o)){i.set(o,n.folders.length);var a=new s.FolderView;a.name=r,n.folders.push(a)}})),Array.from(r.querySelectorAll("database > card")).forEach((function(e){if("true"!==e.getAttribute("template")&&"true"!==e.getAttribute("deleted")){var r=t.querySelectorDirectChild(e,"label_id");if(null!=r){var o=r.textContent;!t.isNullOrWhitespace(o)&&i.has(o)&&n.folderRelationships.push([n.ciphers.length,i.get(o)])}var a=t.initLoginCipher();a.name=t.getValueOrDefault(e.getAttribute("title"),"--"),"true"===e.getAttribute("star")&&(a.favorite=!0),"note"===e.getAttribute("type")?(a.type=c.CipherType.SecureNote,a.secureNote=new l.SecureNoteView,a.secureNote.type=p.SecureNoteType.Generic):Array.from(t.querySelectorAllDirectChild(e,"field")).forEach((function(e){var n=e.textContent;if(!t.isNullOrWhitespace(n)){var r=e.getAttribute("name"),i=t.getValueOrDefault(e.getAttribute("type"),"").toLowerCase();"login"===i?a.login.username=n:"password"===i||"secret"===i?t.processKvp(a,r,n,u.FieldType.Hidden):"one_time_password"===i?a.login.totp=n:"notes"===i?a.notes+=n+"\n":"weblogin"===i||"website"===i?a.login.uris=t.makeUriArray(n):t.processKvp(a,r,n)}})),Array.from(t.querySelectorAllDirectChild(e,"notes")).forEach((function(e){a.notes+=e.textContent+"\n"})),t.setPassword(a),t.cleanupCipher(a),n.ciphers.push(a)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t.prototype.setPassword=function(e){var t=e.fields.filter((function(e){return e.type===u.FieldType.Hidden}));if(t.length){for(var n,r=0,i=t;r Database > Logins > Login");return Array.from(i).forEach((function(e){var i=e.getAttribute("ID");if(!t.isNullOrWhitespace(i)){var o=e.getAttribute("Name"),a=e.getAttribute("Password"),s=null,l=null,c=null,p=null,u=null,d=r.querySelector('root > Database > Accounts > Account > LoginLinks > Login[SourceLoginID="'+i+'"]');if(null!=d){var m=d.parentElement.parentElement;null!=m&&(s=m.getAttribute("Name"),l=m.getAttribute("Link"),p=m.getAttribute("ParentID"),c=m.getAttribute("Comments"),t.isNullOrWhitespace(c)||(c=c.split("/n").join("\n")))}t.isNullOrWhitespace(p)||(u=t.buildGroupText(r,p,""),t.processFolder(n,u));var h=t.initLoginCipher();h.name=t.getValueOrDefault(s,"--"),h.notes=t.getValueOrDefault(c),h.login.username=t.getValueOrDefault(o),h.login.password=t.getValueOrDefault(a),h.login.uris=t.makeUriArray(l),t.cleanupCipher(h),n.ciphers.push(h)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t.prototype.buildGroupText=function(e,t,n){var r=e.querySelector('root > Database > Groups > Group[ID="'+t+'"]');return null==r?n:(this.isNullOrWhitespace(n)||(n="/"+n),n=r.getAttribute("Name")+n,this.buildGroupText(e,r.getAttribute("ParentID"),n))},t}(o.BaseImporter);t.StickyPasswordXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(94),c=n(39),p=n(106),u=["kind","autologin","favorite","hexcolor","protectedwithpassword","subdomainonly","type","tk_export_version","note","title","document_content"],d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();if(r.favorite="true"===t.getValueOrDefault(e.favorite,"").toLowerCase(),r.name=t.getValueOrDefault(e.name,"--"),r.notes=t.getValueOrDefault(e.memo,""),r.login.username=t.getValueOrDefault(e.login),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),"login"!==e.kind&&(r.name=t.getValueOrDefault(e.title,"--"),r.notes=t.getValueOrDefault(e.note,"")),"cc"===e.kind){if(r.type=c.CipherType.Card,r.card=new s.CardView,r.card.cardholderName=t.getValueOrDefault(e.cardholder),r.card.number=t.getValueOrDefault(e.number),r.card.brand=t.getCardBrand(r.card.number),!t.isNullOrWhitespace(e.expiryDate))try{var i=new Date(e.expiryDate);r.card.expYear=i.getFullYear().toString(),r.card.expMonth=(i.getMonth()+1).toString()}catch(a){}}else if("login"!==e.kind)for(var o in r.type=c.CipherType.SecureNote,r.secureNote=new l.SecureNoteView,r.secureNote.type=p.SecureNoteType.Generic,t.isNullOrWhitespace(r.notes)||(r.notes=t.getValueOrDefault(e.document_content,"")),e)e.hasOwnProperty(o)&&u.indexOf(o.toLowerCase())<0&&!t.isNullOrWhitespace(e[o])&&t.processKvp(r,o,e[o]);t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.TrueKeyCsvImporter=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(5===e.length){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),r.notes=t.getValueOrDefault(e[4]),r.login.username=t.getValueOrDefault(e[1]),r.login.password=t.getValueOrDefault(e[2]),r.login.uris=t.makeUriArray(e[3]),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.UpmCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Name,"--"),r.login.username=t.getValueOrDefault(e["User name"]),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e.URL),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.YotiCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!t.isNullOrWhitespace(e["Password Name"])||!t.isNullOrWhitespace(e["Secret Name"])){t.processFolder(n,t.getValueOrDefault(e.ChamberName));var r=t.initLoginCipher();r.favorite="1"===t.getValueOrDefault(e.Favorite,"0"),r.notes=t.getValueOrDefault(e.Notes),r.name=t.getValueOrDefault(e["Password Name"],t.getValueOrDefault(e["Secret Name"],"--")),r.login.uris=t.makeUriArray(t.getValueOrDefault(e["Password URL"],t.getValueOrDefault(e["Secret URL"]))),t.parseData(r,e.SecretData),t.parseData(r,e.CustomData),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.parseData=function(e,t){var n=this;this.isNullOrWhitespace(t)||this.splitNewLine(t).forEach((function(t){var r=t.indexOf(":");if(!(r<0)){var i=t.substring(0,r),o=t.length>r?t.substring(r+1):null;if(!n.isNullOrWhitespace(i)&&!n.isNullOrWhitespace(o)&&"SecretType"!==i){var a=i.toLowerCase();null==e.login.username&&n.usernameFieldNames.indexOf(a)>-1?e.login.username=o:null==e.login.password&&n.passwordFieldNames.indexOf(a)>-1?e.login.password=o:n.processKvp(e,i,o)}}}))},t}(o.BaseImporter);t.ZohoVaultCsvImporter=s},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]t.minComplexity&&(t.minComplexity=e.data.minComplexity),null!=e.data.minLength&&e.data.minLength>t.minLength&&(t.minLength=e.data.minLength),e.data.requireUpper&&(t.requireUpper=!0),e.data.requireLower&&(t.requireLower=!0),e.data.requireNumbers&&(t.requireNumbers=!0),e.data.requireSpecial&&(t.requireSpecial=!0))})),[2,t]}}))}))},e.prototype.evaluateMasterPassword=function(e,t,n){return null==n||!(n.minComplexity>0&&n.minComplexity>e)&&(!(n.minLength>0&&n.minLength>t.length)&&((!n.requireUpper||t.toLocaleLowerCase()!==t)&&((!n.requireLower||t.toLocaleUpperCase()!==t)&&(!(n.requireNumbers&&!/[0-9]/.test(t))&&!(n.requireSpecial&&!/[!@#$%\^&*]/g.test(t))))))},e}();t.PolicyService=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.minComplexity=0,t.minLength=0,t.requireUpper=!1,t.requireLower=!1,t.requireNumbers=!1,t.requireSpecial=!1,t}return i(t,e),t}(n(81).default);t.MasterPasswordPolicyOptions=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]"))},e.prototype.indexCiphers=function(e,t){return r(this,void 0,void 0,(function(){var n,r,s=this;return i(this,(function(i){switch(i.label){case 0:return this.indexing?[2]:(this.logService.time("search indexing"),this.indexing=!0,this.indexedEntityId=e,this.index=null,(n=new o.Builder).ref("id"),n.field("shortid",{boost:100,extractor:function(e){return e.id.substr(0,8)}}),n.field("name",{boost:10}),n.field("subtitle",{boost:5,extractor:function(e){return null!=e.subTitle&&e.type===a.CipherType.Card?e.subTitle.replace(/\*/g,""):e.subTitle}}),n.field("notes"),n.field("login.username",{extractor:function(e){return e.type===a.CipherType.Login&&null!=e.login?e.login.username:null}}),n.field("login.uris",{boost:2,extractor:function(e){return s.uriExtractor(e)}}),n.field("fields",{extractor:function(e){return s.fieldExtractor(e,!1)}}),n.field("fields_joined",{extractor:function(e){return s.fieldExtractor(e,!0)}}),n.field("attachments",{extractor:function(e){return s.attachmentExtractor(e,!1)}}),n.field("attachments_joined",{extractor:function(e){return s.attachmentExtractor(e,!0)}}),n.field("organizationid",{extractor:function(e){return e.organizationId}}),(r=t)?[3,2]:[4,this.cipherService.getAllDecrypted()]);case 1:r=i.sent(),i.label=2;case 2:return(t=r).forEach((function(e){return n.add(e)})),this.index=n.build(),this.indexing=!1,this.logService.timeEnd("search indexing"),[2]}}))}))},e.prototype.searchCiphers=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=null),r(this,void 0,void 0,(function(){var r,a,s,l,c;return i(this,(function(i){switch(i.label){case 0:return r=[],null!=e&&(e=e.trim().toLowerCase()),""===e&&(e=null),null!=n?[3,2]:[4,this.cipherService.getAllDecrypted()];case 1:n=i.sent(),i.label=2;case 2:return null!=t&&Array.isArray(t)&&t.length>0?n=n.filter((function(e){return t.every((function(t){return null==t||t(e)}))})):null!=t&&(n=n.filter(t)),this.isSearchable(e)?this.indexing?[4,new Promise((function(e){return setTimeout(e,250)}))]:[3,5]:[2,n];case 3:return i.sent(),this.indexing?[4,new Promise((function(e){return setTimeout(e,500)}))]:[3,5];case 4:i.sent(),i.label=5;case 5:if(null==(a=this.getIndexForSearch()))return[2,this.searchCiphersBasic(n,e)];if(s=new Map,n.forEach((function(e){return s.set(e.id,e)})),l=null,null!=e&&e.length>1&&0===e.indexOf(">"))try{l=a.search(e.substr(1).trim())}catch(p){}else c=o.Query.wildcard.LEADING|o.Query.wildcard.TRAILING,l=a.query((function(t){o.tokenizer(e).forEach((function(e){var n=e.toString();t.term(n,{fields:["name"],wildcard:c}),t.term(n,{fields:["subtitle"],wildcard:c}),t.term(n,{fields:["login.uris"],wildcard:c}),t.term(n,{})}))}));return null!=l&&l.forEach((function(e){s.has(e.ref)&&r.push(s.get(e.ref))})),[2,r]}}))}))},e.prototype.searchCiphersBasic=function(e,t,n){return void 0===n&&(n=!1),t=t.trim().toLowerCase(),e.filter((function(e){return n===e.isDeleted&&(null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&e.id.startsWith(t))||(null!=e.subTitle&&e.subTitle.toLowerCase().indexOf(t)>-1||!!(e.login&&null!=e.login.uri&&e.login.uri.toLowerCase().indexOf(t)>-1))))}))},e.prototype.searchSends=function(e,t){return t=t.trim().toLocaleLowerCase(),e.filter((function(e){var n,r,i;return null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&(e.id.startsWith(t)||e.accessId.toLocaleLowerCase().startsWith(t)||null!=(null===(n=e.file)||void 0===n?void 0:n.id)&&e.file.id.startsWith(t)))||(null!=e.notes&&e.notes.toLowerCase().indexOf(t)>-1||(null!=(null===(r=e.text)||void 0===r?void 0:r.text)&&e.text.text.toLowerCase().indexOf(t)>-1||(null!=(null===(i=e.file)||void 0===i?void 0:i.fileName)&&e.file.fileName.toLowerCase().indexOf(t)>-1||void 0))))}))},e.prototype.getIndexForSearch=function(){return this.index},e.prototype.fieldExtractor=function(e,t){if(!e.hasFields)return null;var n=[];return e.fields.forEach((function(e){null!=e.name&&n.push(e.name),e.type===s.FieldType.Text&&null!=e.value&&n.push(e.value)})),0===(n=n.filter((function(e){return""!==e.trim()}))).length?null:t?n.join(" "):n},e.prototype.attachmentExtractor=function(e,t){if(!e.hasAttachments)return null;var n=[];return e.attachments.forEach((function(e){null!=e&&null!=e.fileName&&(t&&e.fileName.indexOf(".")>-1?n.push(e.fileName.substr(0,e.fileName.lastIndexOf("."))):n.push(e.fileName))})),0===(n=n.filter((function(e){return""!==e.trim()}))).length?null:t?n.join(" "):n},e.prototype.uriExtractor=function(e){if(e.type!==a.CipherType.Login||null==e.login||!e.login.hasUris)return null;var t=[];return e.login.uris.forEach((function(e){if(null!=e.uri&&""!==e.uri)if(null==e.hostname){var n=e.uri;if(e.match!==l.UriMatchType.RegularExpression){var r=n.indexOf("://");r>-1&&(n=n.substr(r+3));var i=n.search(/\?|&|#/);i>-1&&(n=n.substring(0,i))}t.push(n)}else t.push(e.hostname)})),t.length>0?t:null},e}();t.SearchService=c},,function(e,t,n){"use strict";(function(e){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1||n.indexOf(" Version/9.")>-1)}return e.prototype.pbkdf2=function(e,t,n,s){return r(this,void 0,void 0,(function(){var r,l,c,p,u,d,m,h,f;return i(this,(function(i){switch(i.label){case 0:return this.isIE||this.isOldSafari?(r="sha256"===n?32:64,l=this.toByteString(e),c=this.toByteString(t),p=o.pbkdf2(l,c,s,r,n),[2,a.Utils.fromByteStringToArray(p).buffer]):(u="sha256"===n?256:512,d=this.toBuf(e),m=this.toBuf(t),h={name:"PBKDF2",salt:m,iterations:s,hash:{name:this.toWebCryptoAlgorithm(n)}},[4,this.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveBits"])]);case 1:return f=i.sent(),[4,this.subtle.deriveBits(h,f,u)];case 2:return[2,i.sent()]}}))}))},e.prototype.hkdf=function(e,t,n,o,a){return r(this,void 0,void 0,(function(){var r,s,l,c;return i(this,(function(i){switch(i.label){case 0:return r=this.toBuf(t),s=this.toBuf(n),l={name:"HKDF",salt:r,info:s,hash:{name:this.toWebCryptoAlgorithm(a)}},[4,this.subtle.importKey("raw",e,{name:"HKDF"},!1,["deriveBits"])];case 1:return c=i.sent(),[4,this.subtle.deriveBits(l,c,8*o)];case 2:return[2,i.sent()]}}))}))},e.prototype.hkdfExpand=function(e,t,n,o){return r(this,void 0,void 0,(function(){var r,a,s,l,c,p,u,d,m,h;return i(this,(function(i){switch(i.label){case 0:if(n>255*(r="sha256"===o?32:64))throw new Error("outputByteSize is too large.");if(new Uint8Array(e).length=n)return[3,4];i.label=3;case 3:return d++,[3,1];case 4:return[2,u.slice(0,n).buffer]}}))}))},e.prototype.hash=function(e,t){return r(this,void 0,void 0,(function(){var n,r,s;return i(this,(function(i){switch(i.label){case 0:return this.isIE&&"sha1"===t||"md5"===t?(n="md5"===t?o.md.md5.create():o.md.sha1.create(),r=this.toByteString(e),n.update(r,"raw"),[2,a.Utils.fromByteStringToArray(n.digest().data).buffer]):(s=this.toBuf(e),[4,this.subtle.digest({name:this.toWebCryptoAlgorithm(t)},s)]);case 1:return[2,i.sent()]}}))}))},e.prototype.hmac=function(e,t,n){return r(this,void 0,void 0,(function(){var r,s,l,c,p;return i(this,(function(i){switch(i.label){case 0:return this.isIE&&"sha512"===n?(r=o.hmac.create(),s=this.toByteString(t),l=this.toByteString(e),r.start(n,s),r.update(l,"raw"),[2,a.Utils.fromByteStringToArray(r.digest().data).buffer]):(c={name:"HMAC",hash:{name:this.toWebCryptoAlgorithm(n)}},[4,this.subtle.importKey("raw",t,c,!1,["sign"])]);case 1:return p=i.sent(),[4,this.subtle.sign(c,p,e)];case 2:return[2,i.sent()]}}))}))},e.prototype.compare=function(e,t){return r(this,void 0,void 0,(function(){var n,r,o,a,s,l,c,p;return i(this,(function(i){switch(i.label){case 0:return[4,this.randomBytes(32)];case 1:return n=i.sent(),r={name:"HMAC",hash:{name:"SHA-256"}},[4,this.subtle.importKey("raw",n,r,!1,["sign"])];case 2:return o=i.sent(),[4,this.subtle.sign(r,o,e)];case 3:return a=i.sent(),[4,this.subtle.sign(r,o,t)];case 4:if(s=i.sent(),a.byteLength!==s.byteLength)return[2,!1];for(l=new Uint8Array(a),c=new Uint8Array(s),p=0;p0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]"})),n.body=r,n.bodyOutputType=s.BodyOutputType.TrustedHtml}null!=e.options&&(!0===e.options.trustedHtml&&(n.bodyOutputType=s.BodyOutputType.TrustedHtml),null!=e.options.timeout&&e.options.timeout>0&&(n.timeout=e.options.timeout)),this.toasterService.popAsync(n)},e.prototype.idleStateChanged=function(){this.isIdle?this.notificationsService.disconnectFromInactivity():this.notificationsService.reconnectFromActivity()},e.prototype.setFullWidth=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.storageService.get("enableFullWidth")];case 1:return e.sent()?document.body.classList.add("full-width"):document.body.classList.remove("full-width"),[2]}}))}))},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.BroadcasterService),u.ɵɵdirectiveInject(m.UserService),u.ɵɵdirectiveInject(h.TokenService),u.ɵɵdirectiveInject(f.FolderService),u.ɵɵdirectiveInject(v.SettingsService),u.ɵɵdirectiveInject(y.SyncService),u.ɵɵdirectiveInject(g.PasswordGenerationService),u.ɵɵdirectiveInject(x.CipherService),u.ɵɵdirectiveInject(b.AuthService),u.ɵɵdirectiveInject(S.Router),u.ɵɵdirectiveInject(w.ToasterService),u.ɵɵdirectiveInject(C.I18nService),u.ɵɵdirectiveInject(I.PlatformUtilsService),u.ɵɵdirectiveInject(u.NgZone),u.ɵɵdirectiveInject(E.VaultTimeoutService),u.ɵɵdirectiveInject(P.StorageService),u.ɵɵdirectiveInject(k.CryptoService),u.ɵɵdirectiveInject(_.CollectionService),u.ɵɵdirectiveInject(A.DomSanitizer),u.ɵɵdirectiveInject(O.SearchService),u.ɵɵdirectiveInject(T.NotificationsService),u.ɵɵdirectiveInject(M.RouterService),u.ɵɵdirectiveInject(B.StateService),u.ɵɵdirectiveInject(D.EventService),u.ɵɵdirectiveInject(R.PolicyService))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["app-root"]],decls:4,vars:1,consts:[["aria-live","polite",3,"toasterconfig"]],template:function(e,t){1&e&&(u.ɵɵelement(0,"toaster-container",0),u.ɵɵtext(1,"\n"),u.ɵɵelement(2,"router-outlet"),u.ɵɵtext(3,"\n")),2&e&&u.ɵɵproperty("toasterconfig",t.toasterConfig)},directives:[w.ToasterContainerComponent,S.RouterOutlet],encapsulation:2}),e}();t.AppComponent=V},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e){this.el=e}return e.prototype.onClick=function(){this.el.nativeElement.blur()},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appBlurClick",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",(function(){return t.onClick()}))}}),e}();t.BlurClickDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e){this.elRef=e,this.el=null,this.el=e.nativeElement}return e.prototype.ngOnInit=function(){var e=this;this.formEls=Array.from(this.el.querySelectorAll('input:not([type="hidden"]), select, textarea')),this.formEls.forEach((function(t){t.addEventListener("focus",(function(t){e.el.classList.add("active")}),!1),t.addEventListener("blur",(function(t){e.el.classList.remove("active")}),!1)}))},e.prototype.onClick=function(e){var t=e.target;if((t===this.el||t.classList.contains("progress")||t.classList.contains("progress-bar"))&&this.formEls.length>0){var n=this.formEls[0];if("input"===n.tagName.toLowerCase()){var r=n;if(null!=r.type&&"checkbox"===r.type.toLowerCase())return void r.click()}n.focus()}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appBoxRow",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",(function(e){return t.onClick(e)}))}}),e}();t.BoxRowDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t,n){return void 0===n&&(n=!1),null==e||0===e.length?[]:null==t||t.length<2?e.filter((function(e){return n!==e.isDeleted})):(t=t.trim().toLowerCase(),e.filter((function(e){return n===e.isDeleted&&(null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&e.id.startsWith(t))||(null!=e.subTitle&&e.subTitle.toLowerCase().indexOf(t)>-1||!!(e.login&&null!=e.login.uri&&e.login.uri.toLowerCase().indexOf(t)>-1))))})))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"searchCiphers",type:e,pure:!0}),e}();t.SearchCiphersPipe=i}]); +//# sourceMappingURL=main.a34068436143996e1f65.js.map \ No newline at end of file diff --git a/app/main.a34068436143996e1f65.js.map b/app/main.a34068436143996e1f65.js.map new file mode 100644 index 00000000..6c6c3a85 --- /dev/null +++ b/app/main.a34068436143996e1f65.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./jslib/src/abstractions/i18n.service.ts","webpack:///./jslib/src/abstractions/platformUtils.service.ts","webpack:///./jslib/src/abstractions/api.service.ts","webpack:///./jslib/src/abstractions/user.service.ts","webpack:///./jslib/src/angular/pipes/i18n.pipe.ts","webpack:///./jslib/src/abstractions/messaging.service.ts","webpack:///./jslib/src/angular/directives/api-action.directive.ts","webpack:///./jslib/src/angular/directives/a11y-title.directive.ts","webpack:///./jslib/src/abstractions/crypto.service.ts","webpack:///./jslib/src/abstractions/cipher.service.ts","webpack:///./jslib/src/models/response/baseResponse.ts","webpack:///./jslib/src/angular/components/callout.component.ts","webpack:///./jslib/src/angular/components/callout.component.html","webpack:///./jslib/src/importers/baseImporter.ts","webpack:///./jslib/src/models/domain/importResult.ts","webpack:///./jslib/src/misc/utils.ts","webpack:///./jslib/src/abstractions/passwordGeneration.service.ts","webpack:///./jslib/src/angular/directives/stop-click.directive.ts","webpack:///./jslib/src/abstractions/state.service.ts","webpack:///./jslib/src/enums/cipherType.ts","webpack:///./jslib/src/abstractions/collection.service.ts","webpack:///./jslib/src/abstractions/storage.service.ts","webpack:///./jslib/src/abstractions/policy.service.ts","webpack:///./jslib/src/angular/directives/input-verbatim.directive.ts","webpack:///./jslib/src/abstractions/folder.service.ts","webpack:///./jslib/src/angular/directives/stop-prop.directive.ts","webpack:///./jslib/src/abstractions/auth.service.ts","webpack:///./jslib/src/abstractions/sync.service.ts","webpack:///./jslib/src/abstractions/environment.service.ts","webpack:///./jslib/src/angular/directives/autofocus.directive.ts","webpack:///./jslib/src/services/constants.service.ts","webpack:///./jslib/src/abstractions/event.service.ts","webpack:///./jslib/src/models/request/passwordVerificationRequest.ts","webpack:///./jslib/src/abstractions/search.service.ts","webpack:///./jslib/src/models/domain/domainBase.ts","webpack:///./src/app/modal.component.ts","webpack:///./jslib/src/abstractions/audit.service.ts","webpack:///./jslib/src/models/view/cardView.ts","webpack:///./jslib/src/abstractions/vaultTimeout.service.ts","webpack:///./jslib/src/models/view/secureNoteView.ts","webpack:///./jslib/src/abstractions/token.service.ts","webpack:///./jslib/src/abstractions/cryptoFunction.service.ts","webpack:///./jslib/src/models/domain/encString.ts","webpack:///./jslib/src/enums/secureNoteType.ts","webpack:///./jslib/src/angular/components/icon.component.ts","webpack:///./jslib/src/angular/components/icon.component.html","webpack:///./jslib/src/angular/services/broadcaster.service.ts","webpack:///./jslib/src/enums/twoFactorProviderType.ts","webpack:///./jslib/src/abstractions/totp.service.ts","webpack:///./src/app/settings/payment.component.ts","webpack:///./src/app/settings/payment.component.html","webpack:///./jslib/src/enums/fieldType.ts","webpack:///./jslib/src/models/view/folderView.ts","webpack:///./src/app/components/avatar.component.ts","webpack:///./jslib/src/models/domain/collection.ts","webpack:///./jslib/src/enums/policyType.ts","webpack:///./src/app/settings/tax-info.component.ts","webpack:///./src/app/settings/tax-info.component.html","webpack:///./jslib/src/models/view/cipherView.ts","webpack:///./jslib/src/models/view/identityView.ts","webpack:///./jslib/src/models/data/collectionData.ts","webpack:///./jslib/src/models/view/collectionView.ts","webpack:///./jslib/src/enums/organizationUserStatusType.ts","webpack:///./jslib/src/models/data/cipherData.ts","webpack:///./jslib/src/models/view/loginView.ts","webpack:///./jslib/src/enums/sendType.ts","webpack:///./src/app/settings/two-factor-verify.component.ts","webpack:///./src/app/settings/two-factor-verify.component.html","webpack:///./jslib/src/abstractions/export.service.ts","webpack:///./jslib/src/models/domain/cipher.ts","webpack:///./jslib/src/abstractions/send.service.ts","webpack:///./jslib/src/models/view/fieldView.ts","webpack:///./jslib/src/models/request/cipherRequest.ts","webpack:///./jslib/src/models/response/errorResponse.ts","webpack:///./jslib/src/angular/services/validation.service.ts","webpack:///./src/app/services/router.service.ts","webpack:///./jslib/src/enums/kdfType.ts","webpack:///./src/app/components/password-strength.component.ts","webpack:///./src/app/components/password-strength.component.html","webpack:///./jslib/src/enums/organizationUserType.ts","webpack:///./jslib/src/angular/pipes/search.pipe.ts","webpack:///./src/app/services/event.service.ts","webpack:///./jslib/src/enums/eventType.ts","webpack:///./jslib/src/enums/paymentMethodType.ts","webpack:///./src/app/settings/two-factor-base.component.ts","webpack:///./src/app/tools/cipher-report.component.ts","webpack:///./jslib/src/models/view/loginUriView.ts","webpack:///./jslib/src/enums/uriMatchType.ts","webpack:///./src/app/vault/add-edit.component.ts","webpack:///./src/app/vault/add-edit.component.html","webpack:///./jslib/src/abstractions/import.service.ts","webpack:///./jslib/src/models/response/cipherResponse.ts","webpack:///./src/app/vault/ciphers.component.ts","webpack:///./src/app/vault/ciphers.component.html","webpack:///./jslib/src/enums/encryptionType.ts","webpack:///./jslib/src/services/auth.service.ts","webpack:///./jslib/src/models/request/selectionReadOnlyRequest.ts","webpack:///./jslib/src/enums/deviceType.ts","webpack:///./jslib/src/abstractions/settings.service.ts","webpack:///./jslib/src/enums/planType.ts","webpack:///./src/app/settings/organization-plans.component.ts","webpack:///./src/app/settings/organization-plans.component.html","webpack:///./jslib/src/models/domain/symmetricCryptoKey.ts","webpack:///./jslib/src/models/domain/card.ts","webpack:///./jslib/src/models/domain/field.ts","webpack:///./jslib/src/models/domain/identity.ts","webpack:///./jslib/src/models/domain/login.ts","webpack:///./jslib/src/models/domain/loginUri.ts","webpack:///./jslib/src/models/domain/secureNote.ts","webpack:///./jslib/src/angular/directives/true-false-value.directive.ts","webpack:///./jslib/src/models/response/selectionReadOnlyResponse.ts","webpack:///./jslib/src/models/response/profileResponse.ts","webpack:///./src/app/vault/groupings.component.ts","webpack:///./src/app/vault/groupings.component.html","webpack:///./jslib/src/models/domain/organization.ts","webpack:///./jslib/src/models/view/sendFileView.ts","webpack:///./jslib/src/models/view/sendTextView.ts","webpack:///./src/app/settings/organizations.component.ts","webpack:///./src/app/settings/organizations.component.html","webpack:///./src/app/layouts/navbar.component.ts","webpack:///./src/app/layouts/navbar.component.html","webpack:///./src/app/layouts/footer.component.ts","webpack:///./src/app/layouts/footer.component.html","webpack:///./jslib/src/models/request/keysRequest.ts","webpack:///./jslib/src/models/domain/policy.ts","webpack:///./jslib/src/models/data/policyData.ts","webpack:///./jslib/src/angular/components/change-password.component.ts","webpack:///./src/app/organizations/manage/entity-users.component.ts","webpack:///./src/app/organizations/manage/entity-users.component.html","webpack:///./src/app/organizations/manage/entity-events.component.ts","webpack:///./src/app/organizations/manage/entity-events.component.html","webpack:///./jslib/src/models/api/permissionsApi.ts","webpack:///./src/app/settings/api-key.component.ts","webpack:///./src/app/settings/api-key.component.html","webpack:///./src/app/settings/purge-vault.component.ts","webpack:///./src/app/settings/purge-vault.component.html","webpack:///./src/app/settings/user-billing.component.ts","webpack:///./src/app/settings/user-billing.component.html","webpack:///./src/app/settings/add-credit.component.ts","webpack:///./src/app/settings/add-credit.component.html","webpack:///./src/app/settings/adjust-payment.component.ts","webpack:///./src/app/settings/adjust-payment.component.html","webpack:///./src/app/settings/update-license.component.ts","webpack:///./src/app/settings/update-license.component.html","webpack:///./jslib/src/enums/productType.ts","webpack:///./src/app/settings/adjust-storage.component.ts","webpack:///./src/app/settings/adjust-storage.component.html","webpack:///./src/app/settings/two-factor-duo.component.ts","webpack:///./src/app/settings/two-factor-duo.component.html","webpack:///./src/app/settings/two-factor-setup.component.ts","webpack:///./src/app/settings/two-factor-setup.component.html","webpack:///./src/app/tools/export.component.ts","webpack:///./src/app/tools/export.component.html","webpack:///./src/app/tools/exposed-passwords-report.component.ts","webpack:///./src/app/tools/exposed-passwords-report.component.html","webpack:///./src/app/organizations/vault/add-edit.component.ts","webpack:///./jslib/src/models/data/attachmentData.ts","webpack:///./jslib/src/models/data/cardData.ts","webpack:///./jslib/src/models/data/fieldData.ts","webpack:///./jslib/src/models/data/identityData.ts","webpack:///./jslib/src/models/data/loginData.ts","webpack:///./jslib/src/models/data/loginUriData.ts","webpack:///./jslib/src/models/data/secureNoteData.ts","webpack:///./jslib/src/models/domain/attachment.ts","webpack:///./jslib/src/models/view/passwordHistoryView.ts","webpack:///./src/app/tools/import.component.ts","webpack:///./src/app/tools/import.component.html","webpack:///./src/app/tools/inactive-two-factor-report.component.ts","webpack:///./src/app/tools/inactive-two-factor-report.component.html","webpack:///./src/app/tools/reused-passwords-report.component.ts","webpack:///./src/app/tools/reused-passwords-report.component.html","webpack:///./src/app/tools/unsecured-websites-report.component.ts","webpack:///./src/app/tools/unsecured-websites-report.component.html","webpack:///./src/app/tools/weak-passwords-report.component.ts","webpack:///./src/app/tools/weak-passwords-report.component.html","webpack:///./src/app/vault/attachments.component.ts","webpack:///./src/app/vault/attachments.component.html","webpack:///./jslib/src/models/response/attachmentResponse.ts","webpack:///./jslib/src/models/response/collectionResponse.ts","webpack:///./jslib/src/models/response/domainsResponse.ts","webpack:///./jslib/src/models/response/folderResponse.ts","webpack:///./jslib/src/models/response/sendResponse.ts","webpack:///./jslib/src/models/api/sendFileApi.ts","webpack:///./jslib/src/models/api/sendTextApi.ts","webpack:///./src/app/organizations/vault/ciphers.component.ts","webpack:///./src/app/vault/collections.component.ts","webpack:///./src/app/vault/collections.component.html","webpack:///./src/app/organizations/vault/groupings.component.ts","webpack:///./src/app/vault/bulk-actions.component.ts","webpack:///./src/app/vault/bulk-actions.component.html","webpack:///./jslib/src/models/domain/sendFile.ts","webpack:///./jslib/src/models/domain/sendText.ts","webpack:///./jslib/src/models/request/cipherWithIdRequest.ts","webpack:///./jslib/src/models/request/folderRequest.ts","webpack:///./jslib/src/angular/directives/select-copy.directive.ts","webpack:///./jslib/src/angular/pipes/color-password.pipe.ts","webpack:///./jslib/src/models/data/folderData.ts","webpack:///./jslib/src/models/domain/folder.ts","webpack:///./jslib/src/abstractions/notifications.service.ts","webpack:///./$_lazy_route_resource lazy namespace object","webpack:///./src/app/layouts/frontend-layout.component.ts","webpack:///./src/app/layouts/frontend-layout.component.html","webpack:///./src/app/layouts/organization-layout.component.ts","webpack:///./src/app/layouts/organization-layout.component.html","webpack:///./src/app/layouts/user-layout.component.ts","webpack:///./src/app/layouts/user-layout.component.html","webpack:///./src/app/accounts/accept-emergency.component.ts","webpack:///./src/app/accounts/accept-emergency.component.html","webpack:///./src/app/accounts/accept-organization.component.ts","webpack:///./src/app/accounts/accept-organization.component.html","webpack:///./src/app/accounts/hint.component.ts","webpack:///./src/app/accounts/hint.component.html","webpack:///./src/app/accounts/lock.component.ts","webpack:///./src/app/accounts/lock.component.html","webpack:///./src/app/accounts/login.component.ts","webpack:///./src/app/accounts/login.component.html","webpack:///./src/app/accounts/recover-delete.component.ts","webpack:///./src/app/accounts/recover-delete.component.html","webpack:///./src/app/accounts/recover-two-factor.component.ts","webpack:///./src/app/accounts/recover-two-factor.component.html","webpack:///./src/app/accounts/register.component.ts","webpack:///./src/app/accounts/register.component.html","webpack:///./src/app/accounts/set-password.component.ts","webpack:///./src/app/accounts/set-password.component.html","webpack:///./src/app/accounts/sso.component.ts","webpack:///./src/app/accounts/sso.component.html","webpack:///./jslib/src/angular/components/sso.component.ts","webpack:///./src/app/accounts/two-factor.component.ts","webpack:///./src/app/accounts/two-factor.component.html","webpack:///./src/app/accounts/two-factor-options.component.ts","webpack:///./src/app/accounts/two-factor-options.component.html","webpack:///./jslib/src/models/request/twoFactorEmailRequest.ts","webpack:///./jslib/src/models/domain/authResult.ts","webpack:///./src/app/accounts/verify-email-token.component.ts","webpack:///./src/app/accounts/verify-email-token.component.html","webpack:///./src/app/accounts/verify-recover-delete.component.ts","webpack:///./src/app/accounts/verify-recover-delete.component.html","webpack:///./src/app/organizations/manage/collections.component.ts","webpack:///./src/app/organizations/manage/collections.component.html","webpack:///./src/app/organizations/manage/collection-add-edit.component.ts","webpack:///./src/app/organizations/manage/collection-add-edit.component.html","webpack:///./jslib/src/models/request/collectionRequest.ts","webpack:///./src/app/organizations/manage/events.component.ts","webpack:///./src/app/organizations/manage/events.component.html","webpack:///./src/app/organizations/manage/groups.component.ts","webpack:///./src/app/organizations/manage/groups.component.html","webpack:///./src/app/organizations/manage/group-add-edit.component.ts","webpack:///./src/app/organizations/manage/group-add-edit.component.html","webpack:///./src/app/organizations/manage/manage.component.ts","webpack:///./src/app/organizations/manage/manage.component.html","webpack:///./src/app/organizations/manage/people.component.ts","webpack:///./src/app/organizations/manage/people.component.html","webpack:///./src/app/organizations/manage/user-add-edit.component.ts","webpack:///./src/app/organizations/manage/user-add-edit.component.html","webpack:///./src/app/organizations/manage/user-confirm.component.ts","webpack:///./src/app/organizations/manage/user-confirm.component.html","webpack:///./src/app/organizations/manage/user-groups.component.ts","webpack:///./src/app/organizations/manage/user-groups.component.html","webpack:///./src/app/organizations/manage/policies.component.ts","webpack:///./src/app/organizations/manage/policies.component.html","webpack:///./jslib/src/abstractions/index.ts","webpack:///./src/app/organizations/manage/policy-edit.component.ts","webpack:///./src/app/organizations/manage/policy-edit.component.html","webpack:///./src/app/organizations/settings/account.component.ts","webpack:///./src/app/organizations/settings/account.component.html","webpack:///./jslib/src/models/request/organizationTaxInfoUpdateRequest.ts","webpack:///./jslib/src/models/request/taxInfoUpdateRequest.ts","webpack:///./src/app/organizations/settings/delete-organization.component.ts","webpack:///./src/app/organizations/settings/delete-organization.component.html","webpack:///./src/app/organizations/settings/organization-billing.component.ts","webpack:///./src/services/webConstants.ts","webpack:///./src/app/organizations/settings/organization-subscription.component.ts","webpack:///./src/app/organizations/settings/organization-subscription.component.html","webpack:///./src/app/organizations/settings/change-plan.component.ts","webpack:///./src/app/organizations/settings/change-plan.component.html","webpack:///./src/app/organizations/settings/download-license.component.ts","webpack:///./src/app/organizations/settings/download-license.component.html","webpack:///./src/app/organizations/settings/adjust-seats.component.ts","webpack:///./src/app/organizations/settings/adjust-seats.component.html","webpack:///./src/app/organizations/settings/settings.component.ts","webpack:///./src/app/organizations/settings/settings.component.html","webpack:///./src/app/organizations/settings/two-factor-setup.component.ts","webpack:///./src/app/settings/two-factor-authenticator.component.ts","webpack:///./src/app/settings/two-factor-authenticator.component.html","webpack:///./src/app/settings/two-factor-email.component.ts","webpack:///./src/app/settings/two-factor-email.component.html","webpack:///./src/app/settings/two-factor-recovery.component.ts","webpack:///./src/app/settings/two-factor-recovery.component.html","webpack:///./src/app/settings/two-factor-webauthn.component.ts","webpack:///./src/app/settings/two-factor-webauthn.component.html","webpack:///./src/app/settings/two-factor-yubikey.component.ts","webpack:///./src/app/settings/two-factor-yubikey.component.html","webpack:///./src/app/organizations/tools/export.component.ts","webpack:///./src/app/organizations/tools/exposed-passwords-report.component.ts","webpack:///./jslib/src/models/data/passwordHistoryData.ts","webpack:///./jslib/src/models/view/attachmentView.ts","webpack:///./jslib/src/models/domain/password.ts","webpack:///./jslib/src/models/request/cipherCreateRequest.ts","webpack:///./jslib/src/models/api/cardApi.ts","webpack:///./jslib/src/models/api/fieldApi.ts","webpack:///./jslib/src/models/api/identityApi.ts","webpack:///./jslib/src/models/api/loginApi.ts","webpack:///./jslib/src/models/api/loginUriApi.ts","webpack:///./jslib/src/models/api/secureNoteApi.ts","webpack:///./jslib/src/angular/directives/fallback-src.directive.ts","webpack:///./src/app/organizations/tools/import.component.ts","webpack:///./src/app/organizations/tools/inactive-two-factor-report.component.ts","webpack:///./src/app/organizations/tools/reused-passwords-report.component.ts","webpack:///./src/app/organizations/tools/tools.component.ts","webpack:///./src/app/organizations/tools/tools.component.html","webpack:///./src/app/organizations/tools/unsecured-websites-report.component.ts","webpack:///./src/app/organizations/tools/weak-passwords-report.component.ts","webpack:///./src/app/organizations/vault/vault.component.ts","webpack:///./src/app/organizations/vault/vault.component.html","webpack:///./src/app/organizations/vault/attachments.component.ts","webpack:///./jslib/src/angular/components/attachments.component.ts","webpack:///./jslib/src/models/response/globalDomainResponse.ts","webpack:///./jslib/src/models/response/identityTokenResponse.ts","webpack:///./jslib/src/models/response/identityTwoFactorResponse.ts","webpack:///./jslib/src/models/response/listResponse.ts","webpack:///./jslib/src/models/response/profileOrganizationResponse.ts","webpack:///./jslib/src/models/response/syncResponse.ts","webpack:///./jslib/src/models/response/policyResponse.ts","webpack:///./src/app/organizations/vault/collections.component.ts","webpack:///./jslib/src/models/request/cipherCollectionsRequest.ts","webpack:///./src/app/vault/bulk-delete.component.ts","webpack:///./src/app/vault/bulk-delete.component.html","webpack:///./jslib/src/models/request/cipherBulkDeleteRequest.ts","webpack:///./src/app/vault/bulk-move.component.ts","webpack:///./src/app/vault/bulk-move.component.html","webpack:///./src/app/vault/bulk-restore.component.ts","webpack:///./src/app/vault/bulk-restore.component.html","webpack:///./src/app/vault/bulk-share.component.ts","webpack:///./src/app/vault/bulk-share.component.html","webpack:///./src/app/send/access.component.ts","webpack:///./src/app/send/access.component.html","webpack:///./src/app/send/send.component.ts","webpack:///./src/app/send/send.component.html","webpack:///./src/app/send/add-edit.component.ts","webpack:///./src/app/send/add-edit.component.html","webpack:///./jslib/src/models/view/sendView.ts","webpack:///./src/app/settings/account.component.ts","webpack:///./src/app/settings/account.component.html","webpack:///./src/app/settings/deauthorize-sessions.component.ts","webpack:///./src/app/settings/deauthorize-sessions.component.html","webpack:///./src/app/settings/delete-account.component.ts","webpack:///./src/app/settings/delete-account.component.html","webpack:///./src/app/settings/profile.component.ts","webpack:///./src/app/settings/profile.component.html","webpack:///./src/app/settings/change-email.component.ts","webpack:///./src/app/settings/change-email.component.html","webpack:///./jslib/src/models/request/emailTokenRequest.ts","webpack:///./src/app/settings/change-password.component.ts","webpack:///./src/app/settings/change-password.component.html","webpack:///./jslib/src/enums/emergencyAccessStatusType.ts","webpack:///./jslib/src/models/request/emergencyAccessUpdateRequest.ts","webpack:///./jslib/src/models/request/folderWithIdRequest.ts","webpack:///./jslib/src/models/request/organizationUserResetPasswordEnrollmentRequest.ts","webpack:///./jslib/src/models/request/passwordRequest.ts","webpack:///./jslib/src/models/request/updateKeyRequest.ts","webpack:///./src/app/settings/change-kdf.component.ts","webpack:///./src/app/settings/change-kdf.component.html","webpack:///./src/app/settings/create-organization.component.ts","webpack:///./src/app/settings/create-organization.component.html","webpack:///./src/app/settings/domain-rules.component.ts","webpack:///./src/app/settings/domain-rules.component.html","webpack:///./src/app/settings/options.component.ts","webpack:///./src/app/settings/options.component.html","webpack:///./src/app/settings/link-sso.component.ts","webpack:///./src/app/settings/link-sso.component.html","webpack:///./src/app/settings/premium.component.ts","webpack:///./src/app/settings/premium.component.html","webpack:///./src/app/settings/settings.component.ts","webpack:///./src/app/settings/settings.component.html","webpack:///./src/app/settings/user-subscription.component.ts","webpack:///./src/app/settings/user-subscription.component.html","webpack:///./src/app/tools/breach-report.component.ts","webpack:///./src/app/tools/breach-report.component.html","webpack:///./src/app/tools/password-generator.component.ts","webpack:///./src/app/tools/password-generator.component.html","webpack:///./src/app/tools/password-generator-history.component.ts","webpack:///./src/app/tools/password-generator-history.component.html","webpack:///./src/app/tools/tools.component.ts","webpack:///./src/app/tools/tools.component.html","webpack:///./src/app/vault/vault.component.ts","webpack:///./src/app/vault/vault.component.html","webpack:///./src/app/settings/update-key.component.ts","webpack:///./src/app/settings/update-key.component.html","webpack:///./src/app/vault/folder-add-edit.component.ts","webpack:///./src/app/vault/folder-add-edit.component.html","webpack:///./src/app/vault/share.component.ts","webpack:///./src/app/vault/share.component.html","webpack:///./src/app/vault/send-info.component.ts","webpack:///./src/app/vault/send-info.component.html","webpack:///./src/app/settings/verify-email.component.ts","webpack:///./src/app/settings/verify-email.component.html","webpack:///./src/app/services/organization-guard.service.ts","webpack:///./src/app/services/organization-type-guard.service.ts","webpack:///./jslib/src/enums/permissions.ts","webpack:///./jslib/src/angular/services/auth-guard.service.ts","webpack:///./jslib/src/angular/services/lock-guard.service.ts","webpack:///./jslib/src/angular/services/unauth-guard.service.ts","webpack:///./src/app/settings/emergency-access-view.component.ts","webpack:///./src/app/settings/emergency-access-view.component.html","webpack:///./jslib/src/models/domain/encryptedObject.ts","webpack:///./jslib/src/models/domain/environmentUrls.ts","webpack:///./jslib/src/models/domain/generatedPasswordHistory.ts","webpack:///./src/app/settings/emergency-access-attachments.component.ts","webpack:///./src/app/settings/emergency-add-edit.component.ts","webpack:///./src/app/settings/emergency-access.component.ts","webpack:///./src/app/settings/emergency-access.component.html","webpack:///./jslib/src/enums/emergencyAccessType.ts","webpack:///./jslib/src/models/response/emergencyAccessResponse.ts","webpack:///./src/app/settings/emergency-access-add-edit.component.ts","webpack:///./src/app/settings/emergency-access-add-edit.component.html","webpack:///./src/app/settings/emergency-access-confirm.component.ts","webpack:///./src/app/settings/emergency-access-confirm.component.html","webpack:///./src/app/settings/emergency-access-takeover.component.ts","webpack:///./src/app/settings/emergency-access-takeover.component.html","webpack:///./jslib/src/services/api.service.ts","webpack:///./jslib/src/models/response/organizationResponse.ts","webpack:///./jslib/src/models/response/planResponse.ts","webpack:///./jslib/src/models/response/subscriptionResponse.ts","webpack:///./jslib/src/models/response/twoFactorWebAuthnResponse.ts","webpack:///./jslib/src/services/appId.service.ts","webpack:///./jslib/src/services/audit.service.ts","webpack:///./jslib/src/services/cipher.service.ts","webpack:///./jslib/src/misc/sequentialize.ts","webpack:///./jslib/src/services/collection.service.ts","webpack:///./jslib/src/misc/serviceUtils.ts","webpack:///./jslib/src/services/container.service.ts","webpack:///./jslib/src/services/crypto.service.ts","webpack:///./jslib/src/misc/wordlist.ts","webpack:///./jslib/src/services/environment.service.ts","webpack:///./jslib/src/services/folder.service.ts","webpack:///./jslib/src/services/i18n.service.ts","webpack:///./jslib/src/services/passwordGeneration.service.ts","webpack:///./jslib/src/services/settings.service.ts","webpack:///./jslib/src/services/state.service.ts","webpack:///./jslib/src/services/sync.service.ts","webpack:///./jslib/src/models/data/sendData.ts","webpack:///./jslib/src/services/token.service.ts","webpack:///./jslib/src/services/totp.service.ts","webpack:///./jslib/src/services/user.service.ts","webpack:///./jslib/src/services/vaultTimeout.service.ts","webpack:///./jslib/src/services/consoleLog.service.ts","webpack:///./jslib/src/enums/logLevelType.ts","webpack:///./jslib/src/models/export/cipherWithIds.ts","webpack:///./jslib/src/models/export/collectionWithId.ts","webpack:///./jslib/src/models/export/folderWithId.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordCsvImporter.ts","webpack:///./jslib/src/models/view/index.ts","webpack:///./jslib/src/enums/notificationType.ts","webpack:///./src/app/main.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./jslib/src/services/broadcaster.service.ts","webpack:///./jslib/src/misc/tldjs.noop.ts","webpack:///./jslib/src/models/request/emergencyAccessAcceptRequest.ts","webpack:///./jslib/src/models/request/organizationUserAcceptRequest.ts","webpack:///./jslib/src/angular/components/hint.component.ts","webpack:///./jslib/src/models/request/passwordHintRequest.ts","webpack:///./jslib/src/angular/components/lock.component.ts","webpack:///./jslib/src/angular/components/login.component.ts","webpack:///./jslib/src/models/request/deleteRecoverRequest.ts","webpack:///./jslib/src/models/request/twoFactorRecoveryRequest.ts","webpack:///./jslib/src/angular/components/register.component.ts","webpack:///./jslib/src/models/request/registerRequest.ts","webpack:///./jslib/src/models/request/referenceEventRequest.ts","webpack:///./jslib/src/angular/components/set-password.component.ts","webpack:///./jslib/src/models/request/setPasswordRequest.ts","webpack:///./jslib/src/angular/components/two-factor-options.component.ts","webpack:///./jslib/src/angular/components/modal.component.ts","webpack:///./jslib/src/angular/components/two-factor.component.ts","webpack:///./jslib/src/models/request/deviceRequest.ts","webpack:///./jslib/src/models/request/preloginRequest.ts","webpack:///./jslib/src/models/request/tokenRequest.ts","webpack:///./jslib/src/misc/webauthn.ts","webpack:///./jslib/src/models/request/verifyEmailRequest.ts","webpack:///./jslib/src/models/request/verifyDeleteRecoverRequest.ts","webpack:///./jslib/src/models/request/groupRequest.ts","webpack:///./jslib/src/models/request/organizationUserConfirmRequest.ts","webpack:///./jslib/src/models/request/organizationUserInviteRequest.ts","webpack:///./jslib/src/models/request/organizationUserUpdateRequest.ts","webpack:///./jslib/src/models/request/organizationUserUpdateGroupsRequest.ts","webpack:///./jslib/src/abstractions/appId.service.ts","webpack:///./jslib/src/abstractions/log.service.ts","webpack:///./jslib/src/models/request/policyRequest.ts","webpack:///./jslib/src/models/request/organizationUpdateRequest.ts","webpack:///./jslib/src/enums/transactionType.ts","webpack:///./jslib/src/models/request/verifyBankRequest.ts","webpack:///./jslib/src/models/request/bitPayInvoiceRequest.ts","webpack:///./jslib/src/models/request/paymentRequest.ts","webpack:///./jslib/src/models/request/organizationCreateRequest.ts","webpack:///./jslib/src/models/request/organizationUpgradeRequest.ts","webpack:///./jslib/src/models/request/seatRequest.ts","webpack:///./jslib/src/models/request/storageRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorDuoRequest.ts","webpack:///./jslib/src/models/request/twoFactorProviderRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorAuthenticatorRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorEmailRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorWebAuthnDeleteRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorWebAuthnRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorYubioOtpRequest.ts","webpack:///./jslib/src/angular/components/export.component.ts","webpack:///./jslib/src/models/request/attachmentRequest.ts","webpack:///./jslib/src/angular/components/add-edit.component.ts","webpack:///./jslib/src/models/response/index.ts","webpack:///./jslib/src/models/response/passwordHistoryResponse.ts","webpack:///./jslib/src/models/response/deviceResponse.ts","webpack:///./jslib/src/models/response/keysResponse.ts","webpack:///./jslib/src/angular/components/ciphers.component.ts","webpack:///./jslib/src/angular/components/collections.component.ts","webpack:///./jslib/src/angular/components/groupings.component.ts","webpack:///./jslib/src/models/domain/sendAccess.ts","webpack:///./jslib/src/models/view/sendAccessView.ts","webpack:///./jslib/src/models/request/sendAccessRequest.ts","webpack:///./jslib/src/angular/components/send/send.component.ts","webpack:///./jslib/src/angular/components/send/add-edit.component.ts","webpack:///./jslib/src/models/request/updateProfileRequest.ts","webpack:///./jslib/src/models/request/emailRequest.ts","webpack:///./jslib/src/models/request/kdfRequest.ts","webpack:///./jslib/src/models/request/updateDomainsRequest.ts","webpack:///./jslib/src/angular/components/password-generator.component.ts","webpack:///./jslib/src/angular/components/password-generator-history.component.ts","webpack:///./jslib/src/angular/components/folder-add-edit.component.ts","webpack:///./jslib/src/angular/components/share.component.ts","webpack:///./jslib/src/models/data/index.ts","webpack:///./jslib/src/models/domain/index.ts","webpack:///./jslib/src/models/request/emergencyAccessConfirmRequest.ts","webpack:///./jslib/src/models/request/emergencyAccessInviteRequest.ts","webpack:///./jslib/src/models/request/emergencyAccessPasswordRequest.ts","webpack:///./src/app/services/services.module.ts","webpack:///./src/services/broadcasterMessaging.service.ts","webpack:///./src/services/htmlStorage.service.ts","webpack:///./jslib/src/services/index.ts","webpack:///./jslib/src/models/response/apiKeyResponse.ts","webpack:///./jslib/src/models/response/attachmentUploadDataResponse.ts","webpack:///./jslib/src/models/response/billingResponse.ts","webpack:///./jslib/src/models/response/breachAccountResponse.ts","webpack:///./jslib/src/models/response/eventResponse.ts","webpack:///./jslib/src/models/response/groupResponse.ts","webpack:///./jslib/src/models/response/organizationSubscriptionResponse.ts","webpack:///./jslib/src/models/response/organizationUserResponse.ts","webpack:///./jslib/src/models/response/paymentResponse.ts","webpack:///./jslib/src/models/response/preloginResponse.ts","webpack:///./jslib/src/models/response/sendAccessResponse.ts","webpack:///./jslib/src/models/response/sendFileDownloadDataResponse.ts","webpack:///./jslib/src/models/response/sendFileUploadDataResponse.ts","webpack:///./jslib/src/models/response/taxInfoResponse.ts","webpack:///./jslib/src/models/response/taxRateResponse.ts","webpack:///./jslib/src/models/response/twoFactorAuthenticatorResponse.ts","webpack:///./jslib/src/models/response/twoFactorDuoResponse.ts","webpack:///./jslib/src/models/response/twoFactorEmailResponse.ts","webpack:///./jslib/src/models/response/twoFactorProviderResponse.ts","webpack:///./jslib/src/models/response/twoFactorRescoverResponse.ts","webpack:///./jslib/src/models/response/twoFactorYubiKeyResponse.ts","webpack:///./jslib/src/models/response/userKeyResponse.ts","webpack:///./jslib/src/misc/throttle.ts","webpack:///./jslib/src/models/request/cipherBulkMoveRequest.ts","webpack:///./jslib/src/models/request/cipherBulkRestoreRequest.ts","webpack:///./jslib/src/models/request/cipherBulkShareRequest.ts","webpack:///./jslib/src/models/request/cipherShareRequest.ts","webpack:///./jslib/src/models/domain/sortedCiphersCache.ts","webpack:///./jslib/src/models/domain/treeNode.ts","webpack:///./jslib/src/models/domain/encArrayBuffer.ts","webpack:///./jslib/src/models/domain/passwordGeneratorPolicyOptions.ts","webpack:///./jslib/src/models/data/organizationData.ts","webpack:///./jslib/src/models/data/sendFileData.ts","webpack:///./jslib/src/models/data/sendTextData.ts","webpack:///./src/services/i18n.service.ts","webpack:///./src/services/memoryStorage.service.ts","webpack:///./src/services/webPlatformUtils.service.ts","webpack:///./jslib/src/services/event.service.ts","webpack:///./jslib/src/models/data/eventData.ts","webpack:///./jslib/src/models/request/eventRequest.ts","webpack:///./jslib/src/services/export.service.ts","webpack:///./jslib/src/models/export/cipher.ts","webpack:///./jslib/src/models/export/card.ts","webpack:///./jslib/src/models/export/field.ts","webpack:///./jslib/src/models/export/identity.ts","webpack:///./jslib/src/models/export/login.ts","webpack:///./jslib/src/models/export/loginUri.ts","webpack:///./jslib/src/models/export/secureNote.ts","webpack:///./jslib/src/models/export/collection.ts","webpack:///./jslib/src/models/export/folder.ts","webpack:///./jslib/src/services/fileUpload.service.ts","webpack:///./jslib/src/enums/fileUploadType.ts","webpack:///./jslib/src/services/azureFileUpload.service.ts","webpack:///./jslib/src/services/bitwardenFileUpload.service.ts","webpack:///./jslib/src/services/import.service.ts","webpack:///./jslib/src/models/request/importCiphersRequest.ts","webpack:///./jslib/src/models/request/importOrganizationCiphersRequest.ts","webpack:///./jslib/src/models/request/kvpRequest.ts","webpack:///./jslib/src/importers/ascendoCsvImporter.ts","webpack:///./jslib/src/importers/avastCsvImporter.ts","webpack:///./jslib/src/importers/avastJsonImporter.ts","webpack:///./jslib/src/importers/aviraCsvImporter.ts","webpack:///./jslib/src/importers/bitwardenCsvImporter.ts","webpack:///./jslib/src/importers/bitwardenJsonImporter.ts","webpack:///./jslib/src/importers/blackBerryCsvImporter.ts","webpack:///./jslib/src/importers/blurCsvImporter.ts","webpack:///./jslib/src/importers/buttercupCsvImporter.ts","webpack:///./jslib/src/importers/chromeCsvImporter.ts","webpack:///./jslib/src/importers/clipperzHtmlImporter.ts","webpack:///./jslib/src/importers/codebookCsvImporter.ts","webpack:///./jslib/src/importers/dashlaneJsonImporter.ts","webpack:///./jslib/src/importers/encryptrCsvImporter.ts","webpack:///./jslib/src/importers/enpassCsvImporter.ts","webpack:///./jslib/src/importers/enpassJsonImporter.ts","webpack:///./jslib/src/importers/firefoxCsvImporter.ts","webpack:///./jslib/src/importers/fsecureFskImporter.ts","webpack:///./jslib/src/importers/gnomeJsonImporter.ts","webpack:///./jslib/src/importers/kasperskyTxtImporter.ts","webpack:///./jslib/src/importers/keepass2XmlImporter.ts","webpack:///./jslib/src/importers/keepassxCsvImporter.ts","webpack:///./jslib/src/importers/keeperCsvImporter.ts","webpack:///./jslib/src/importers/lastpassCsvImporter.ts","webpack:///./jslib/src/importers/logMeOnceCsvImporter.ts","webpack:///./jslib/src/importers/meldiumCsvImporter.ts","webpack:///./jslib/src/importers/msecureCsvImporter.ts","webpack:///./jslib/src/importers/mykiCsvImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepassword1PifImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordMacCsvImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/cipherImportContext.ts","webpack:///./jslib/src/models/view/view.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordWinCsvImporter.ts","webpack:///./jslib/src/importers/padlockCsvImporter.ts","webpack:///./jslib/src/importers/passkeepCsvImporter.ts","webpack:///./jslib/src/importers/passmanJsonImporter.ts","webpack:///./jslib/src/importers/passpackCsvImporter.ts","webpack:///./jslib/src/importers/passwordAgentCsvImporter.ts","webpack:///./jslib/src/importers/passwordBossJsonImporter.ts","webpack:///./jslib/src/importers/passwordDragonXmlImporter.ts","webpack:///./jslib/src/importers/passwordSafeXmlImporter.ts","webpack:///./jslib/src/importers/passwordWalletTxtImporter.ts","webpack:///./jslib/src/importers/rememBearCsvImporter.ts","webpack:///./jslib/src/importers/roboformCsvImporter.ts","webpack:///./jslib/src/importers/safeInCloudXmlImporter.ts","webpack:///./jslib/src/enums/index.ts","webpack:///./jslib/src/importers/saferpassCsvImport.ts","webpack:///./jslib/src/importers/secureSafeCsvImporter.ts","webpack:///./jslib/src/importers/splashIdCsvImporter.ts","webpack:///./jslib/src/importers/stickyPasswordXmlImporter.ts","webpack:///./jslib/src/importers/truekeyCsvImporter.ts","webpack:///./jslib/src/importers/upmCsvImporter.ts","webpack:///./jslib/src/importers/yotiCsvImporter.ts","webpack:///./jslib/src/importers/zohoVaultCsvImporter.ts","webpack:///./jslib/src/services/notifications.service.ts","webpack:///./jslib/src/models/response/notificationResponse.ts","webpack:///./jslib/src/services/policy.service.ts","webpack:///./jslib/src/models/domain/masterPasswordPolicyOptions.ts","webpack:///./jslib/src/services/search.service.ts","webpack:///./jslib/src/services/send.service.ts","webpack:///./jslib/src/models/request/sendRequest.ts","webpack:///./jslib/src/models/domain/send.ts","webpack:///./jslib/src/services/webCryptoFunction.service.ts","webpack:///./jslib/src/models/domain/decryptParameters.ts","webpack:///./jslib/src/abstractions/fileUpload.service.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.component.html","webpack:///./jslib/src/angular/directives/blur-click.directive.ts","webpack:///./jslib/src/angular/directives/box-row.directive.ts","webpack:///./jslib/src/angular/pipes/search-ciphers.pipe.ts"],"names":["i","chunkIds","length","deferredModules","j","deferredModule","enumerable","get","getter","value","key","bind","module","Object","prototype","hasOwnProperty","call","object","property","jsonpArray","webpackJsonpCallback","I18nService","PlatformUtilsService","ApiService","UserService","i18nService","transform","id","p1","p2","p3","this","t","I18nPipe","MessagingService","el","validationService","ngOnChanges","changes","appApiAction","then","nativeElement","loading","response","e","showError","ApiActionDirective","renderer","title","ngOnInit","hasAttribute","setAttribute","A11yTitleDirective","CryptoService","CipherService","getResponseProperty","propertyName","exactName","Error","undefined","otherCasePropertyName","charAt","toUpperCase","toLowerCase","slice","BaseResponse","type","calloutStyle","icon","CalloutComponent","organizationId","logService","ConsoleLogService","newLineRegex","passwordFieldNames","usernameFieldNames","notesFieldNames","uriFieldNames","parseCsvOptions","encoding","skipEmptyLines","parseXml","data","doc","DOMParser","parseFromString","querySelector","parseCsv","header","options","parseOptions","assign","splitNewLine","join","trim","result","papa","parse","errors","forEach","row","warning","message","parseSingleRowCsv","rowData","isNullOrWhitespace","parsedRow","makeUriArray","uri","loginUri","LoginUriView","fixUri","match","u","push","indexOf","substring","nameFromUrl","url","hostname","Utils","getHostname","startsWith","replace","str","getValueOrDefault","defaultValue","split","getCardBrand","cardNum","re","RegExp","test","setCardExpiration","cipher","expiration","parts","month","year","substr","card","expMonth","expYear","moveFoldersToCollections","folderRelationships","r","collectionRelationships","collections","folders","map","f","collection","CollectionView","name","querySelectorDirectChild","parentEl","query","els","querySelectorAllDirectChild","Array","from","querySelectorAll","filter","parentNode","initLoginCipher","CipherView","favorite","notes","fields","login","LoginView","CipherType","Login","cleanupCipher","processKvp","FieldType","Text","search","field","FieldView","processFolder","folderName","folderIndex","hasFolder","addFolder","FolderView","ciphers","convertToNoteIfNeeded","username","password","uris","SecureNote","secureNote","SecureNoteView","SecureNoteType","Generic","BaseImporter","success","ImportResult","nodeURL","window","init","inited","isNode","process","release","isBrowser","isNativeScript","isMobileBrowser","isMobile","isAppleMobileBrowser","isAppleMobile","global","fromB64ToArray","Uint8Array","Buffer","binaryString","atob","bytes","charCodeAt","fromUrlB64ToArray","fromUrlB64ToB64","fromHexToArray","parseInt","fromUtf8ToArray","strUtf8","unescape","encodeURIComponent","arr","fromByteStringToArray","fromBufferToB64","buffer","toString","binary","byteLength","String","fromCharCode","btoa","fromBufferToUrlB64","fromB64toUrlB64","b64Str","fromBufferToUtf8","encodedString","apply","decodeURIComponent","escape","fromBufferToByteString","fromBufferToHex","x","urlB64Str","output","fromUrlB64ToUtf8","fromB64ToUtf8","fromUtf8ToB64","utfStr","newGuid","c","Math","random","isGuid","uriString","getUrl","getHost","host","getDomain","httpUrl","tldEndingRegex","getUrlObject","validIpAddress","urlDomain","tldjs","domain","getQueryParams","Map","pair","set","getSortFunction","prop","a","b","collator","compare","localeCompare","nameOf","target","source","ipString","win","mobile","navigator","userAgent","vendor","opera","URL","hasProtocol","anchor","document","createElement","href","PasswordGenerationService","onClick","$event","preventDefault","StopClickDirective","StateService","CollectionService","StorageService","PolicyService","condition","disableComplete","InputVerbatimDirective","FolderService","stopPropagation","StopPropDirective","AuthService","SyncService","EnvironmentService","autofocus","focus","AutofocusDirective","environmentUrlsKey","ConstantsService","disableGaKey","disableAddLoginNotificationKey","disableContextMenuItemKey","disableFaviconKey","disableBadgeCounterKey","disableAutoTotpCopyKey","enableAutoFillOnPageLoadKey","vaultTimeoutKey","vaultTimeoutActionKey","lastActiveKey","neverDomainsKey","installedVersionKey","localeKey","themeKey","collapsedGroupingsKey","autoConfirmFingerprints","dontShowCardsCurrentTab","dontShowIdentitiesCurrentTab","defaultUriMatch","pinProtectedKey","protectedPin","clearClipboardKey","eventCollectionKey","ssoCodeVerifierKey","ssoStateKey","biometricUnlockKey","biometricText","biometricAwaitingAcceptance","biometricFingerprintValidated","disableChangedPasswordNotificationKey","EventService","PasswordVerificationRequest","indexedEntityId","SearchService","buildDomainModel","dataObj","alreadyEncrypted","notEncList","objProp","EncString","buildDataModel","notEncStringList","encryptedString","decryptObj","viewModel","orgId","promises","self","theProp","p","Promise","resolve","mapProp","decrypt","val","all","componentFactoryResolver","messagingService","ngOnDestroy","show","parentContainer","fade","setComponentParameters","factory","resolveComponentFactory","componentRef","container","createComponent","instance","modals","jq","modal","on","onShow","emit","send","onShown","find","onClose","onClosed","clear","close","ModalComponent","AuditService","cardholderName","code","_brand","_number","_subTitle","repeat","brand","number","count","exp","formatYear","CardView","VaultTimeoutService","n","TokenService","CryptoFunctionService","encryptedStringOrType","iv","mac","encType","encryptionType","headerPieces","encPieces","EncryptionType","AesCbc128_HmacSha256_B64","AesCbc256_B64","AesCbc256_HmacSha256_B64","Rsa2048_OaepSha256_B64","Rsa2048_OaepSha1_B64","decryptedValue","containerService","bitwardenContainerService","cryptoService","getCryptoService","getOrgKey","decryptToUtf8","IconMap","environmentService","stateService","iconsUrl","baseUrl","imageEnabled","load","setLoginIcon","Card","Identity","hostnameUri","isWebsite","image","fallbackImage","IconComponent","BroadcasterService","TwoFactorProviderType","TotpService","StripeElementStyle","base","color","fontFamily","fontSize","fontSmoothing","invalid","StripeElementClasses","empty","platformUtilsService","apiService","showMethods","showOptions","method","PaymentMethodType","hideBank","hidePaypal","hideCredit","bank","routing_number","account_number","account_holder_name","account_holder_type","currency","country","paymentMethodType","btInstance","stripe","stripeElements","stripeCardNumberElement","stripeCardExpiryElement","stripeCardCvcElement","stripeScript","src","async","onload","Stripe","isDev","WebConstants","stripeTestKey","stripeLiveKey","elements","setStripeElement","btScript","PayPal","BankAccount","Credit","head","appendChild","removeChild","setTimeout","body","btStylesheet","changeMethod","braintree","dropin","create","authorization","btSandboxKey","btProductionKey","paymentOptionPriority","paypal","flow","buttonStyle","label","size","shape","createErr","console","error","createPaymentToken","reject","requestPaymentMethod","payload","nonce","catch","err","postSetupPayment","clientSecret","handleCardSetup","setupIntent","status","payment_method","createToken","token","handleStripeCardPayment","successCallback","paymentIntent","style","classes","placeholder","mount","PaymentComponent","revisionDate","sanitizer","cryptoFunctionService","charCount","textColor","fontWeight","dynamic","circle","generate","email","hash","hashBytes","chars","upperData","getFirstLetters","charObj","getCharText","stringToColor","svg","getSvg","html","outerHTML","svgHtml","text","svgTag","backgroundColor","width","height","character","textTag","textContent","AvatarComponent","obj","externalId","readOnly","hidePasswords","Collection","PolicyType","route","onCountryChanged","EventEmitter","taxInfo","taxId","line1","line2","city","state","postalCode","includeTaxId","pristine","parent","params","subscribe","getOrganizationTaxInfo","getTaxInfo","getTaxRates","taxRates","localTaxRate","rate","getTaxInfoRequest","request","OrganizationTaxInfoUpdateRequest","TaxInfoUpdateRequest","submitTaxInfo","hasChanged","putOrganizationTaxInfo","putTaxInfo","changeCountry","TaxInfoComponent","folderId","organizationUseTotp","edit","viewPassword","identity","IdentityView","attachments","passwordHistory","collectionIds","deletedDate","localData","subTitle","hasAttachments","passwordRevisionDate","middleName","address1","address2","address3","company","phone","ssn","passportNumber","licenseNumber","_firstName","_lastName","firstName","lastName","address","addressPart2","CollectionData","OrganizationUserStatusType","userId","LoginData","SecureNoteData","CardData","IdentityData","FieldData","AttachmentData","ph","PasswordHistoryData","CipherData","l","totp","hasUris","some","canLaunch","launchUri","SendType","toasterService","onAuthed","submit","masterPassword","popAsync","hashPassword","masterPasswordHash","formPromise","getTwoFactorRecover","Duo","OrganizationDuo","getTwoFactorOrganizationDuo","getTwoFactorDuo","Email","getTwoFactorEmail","WebAuthn","getTwoFactorWebAuthn","Authenticator","getTwoFactorAuthenticator","Yubikey","getTwoFactorYubiKey","TwoFactorVerifyComponent","ExportService","Date","Attachment","Field","Password","encKey","model","reduce","promise","attachment","decAttachment","decField","decPh","toCipherData","toISOString","toLoginData","toSecureNoteData","toCardData","toIdentityData","toFieldData","toAttachmentData","toPasswordHistoryData","Cipher","SendService","newField","showValue","lastKnownRevisionDate","LoginApi","LoginUriApi","SecureNoteApi","CardApi","IdentityApi","FieldApi","lastUsedDate","attachments2","fileName","attachmentRequest","AttachmentRequest","CipherRequest","identityResponse","errorModel","responseErrorModel","validationErrors","statusCode","getSingleMessage","getAllMessages","messages","item","prefix","lastSep","lastIndexOf","ErrorResponse","defaultErrorMessage","concat","showToast","timeout","ValidationService","router","activatedRoute","titleService","previousUrl","currentUrl","events","event","NavigationEnd","titleId","rawTitle","child","firstChild","snapshot","newTitle","setTitle","getPreviousUrl","setPreviousUrl","RouterService","KdfType","showText","scoreWidth","score","PasswordStrengthComponent","OrganizationUserType","items","searchText","prop1","prop2","prop3","SearchPipe","getDefaultDateFilters","d","end","getFullYear","getMonth","getDate","setDate","start","toDateTimeLocalString","formatDateFilters","filterStart","filterEnd","isNaN","getTime","getEventInfo","ev","EventOptions","appInfo","getAppInfo","deviceType","getEventMessage","appIcon","appName","msg","EventType","User_LoggedIn","User_ChangedPassword","User_Updated2fa","User_Disabled2fa","User_Recovered2fa","User_FailedLogIn","User_FailedLogIn2fa","User_ClientExportedVault","Cipher_Created","formatCipherId","Cipher_Updated","Cipher_Deleted","Cipher_SoftDeleted","Cipher_Restored","Cipher_AttachmentCreated","Cipher_AttachmentDeleted","Cipher_Shared","Cipher_ClientViewed","Cipher_ClientToggledPasswordVisible","Cipher_ClientToggledHiddenFieldVisible","Cipher_ClientToggledCardCodeVisible","Cipher_ClientCopiedHiddenField","Cipher_ClientCopiedPassword","Cipher_ClientCopiedCardCode","Cipher_ClientAutofilled","Cipher_UpdatedCollections","Collection_Created","formatCollectionId","Collection_Updated","Collection_Deleted","Group_Created","formatGroupId","Group_Updated","Group_Deleted","OrganizationUser_Invited","formatOrgUserId","OrganizationUser_Confirmed","OrganizationUser_Updated","OrganizationUser_Removed","OrganizationUser_UpdatedGroups","OrganizationUser_UnlinkedSso","OrganizationUser_ResetPassword_Enroll","OrganizationUser_ResetPassword_Withdraw","Organization_Updated","Organization_PurgedVault","Policy_Updated","formatPolicyId","DeviceType","Android","iOS","UWP","ChromeExtension","FirefoxExtension","OperaExtension","EdgeExtension","VivaldiExtension","SafariExtension","WindowsDesktop","MacOsDesktop","LinuxDesktop","ChromeBrowser","FirefoxBrowser","OperaBrowser","SafariBrowser","VivaldiBrowser","EdgeBrowser","IEBrowser","UnknownBrowser","shortId","getShortId","cipherId","cipherInfo","makeAnchor","groupId","collectionId","organizationUserId","policyId","innerHTML","date","pad","getHours","getMinutes","num","norm","floor","abs","EventInfo","onUpdated","twoFactorProviderType","enabled","authed","auth","authResponse","enable","enableFunction","disable","showDialog","TwoFactorProviderRequest","putTwoFactorOrganizationDisable","putTwoFactorDisable","TwoFactorBaseComponent","userService","requiresPaid","hasLoaded","setCiphers","selectCipher","childComponent","cipherAddEditModalRef","organization","AddEditComponent","onSavedCipher","onDeletedCipher","onRestoredCipher","checkAccess","useTotp","canAccessPremium","accessPremium","CipherReportComponent","ViewContainerRef","CanLaunchWhitelist","_uri","_domain","_hostname","_host","_canLaunch","UriMatchType","RegularExpression","cipherService","folderService","auditService","collectionService","totpService","passwordGenerationService","eventService","policyService","showRevisionDate","hasPasswordHistory","viewingPasswordHistory","viewOnly","passwordRevisionDisplayDate","cleanUp","totpUpdateCode","getTimeInterval","totpTick","totpInterval","setInterval","toggleFavorite","launch","copy","typeI18nKey","aType","copyToClipboard","editMode","collect","generatePassword","confirmed","getOptions","premiumRequired","upgradeOrganization","viewHistory","clearInterval","getCode","totpCode","half","totpCodeFormatted","allowOwnershipAssignment","cloneMode","ownershipOptions","allowPersonal","intervalSeconds","epoch","round","mod","totpSec","totpDash","totpLow","ImportService","AttachmentResponse","h","PasswordHistoryResponse","CipherResponse","searchService","showAddNew","onAttachmentsClicked","onShareClicked","onCollectionsClicked","onCloneClicked","cipherType","userHasPremiumAccess","pageSize","selectAll","share","clone","delete","actionPromise","permanent","isDeleted","deleteCipher","refresh","restore","restoreWithServer","displayTotpCopyButton","select","selectCount","checkCipher","checked","getSelected","getSelectedIds","hasTotp","deleteWithServer","softDeleteWithServer","showFixOldAttachments","hasOldAttachments","CiphersComponent","TwoFactorProviders","description","priority","sort","premium","tokenService","appIdService","vaultTimeoutService","setCryptoKeys","selectedTwoFactorProviderType","logIn","makePreloginKey","hashedPassword","logInHelper","logInSso","codeVerifier","redirectUrl","logInApiKey","clientId","logInTwoFactor","twoFactorProvider","twoFactorToken","remember","ssoRedirectUrl","logInComplete","logInSsoComplete","logInApiKeyComplete","logOut","callback","getSupportedTwoFactorProviders","providers","twoFactorProvidersData","has","supportsDuo","supportsWebAuthn","getDefaultTwoFactorProvider","webAuthnSupported","providerType","providerPriority","provider","kdf","kdfIterations","postPrelogin","PreloginRequest","preloginResponse","makeKey","authingWithApiKey","authingWithSso","authingWithPassword","getTwoFactorToken","storedTwoFactorToken","getAppId","appId","deviceRequest","DeviceRequest","emailPassword","codeCodeVerifier","clientIdClientSecret","TokenRequest","Remember","postIdentityToken","clearState","AuthResult","twoFactor","accessToken","twoFactorResponse","twoFactorProviders2","twoFactorProviders","tokenResponse","resetMasterPassword","setTwoFactorToken","setTokens","refreshToken","setInformation","getUserId","getEmail","setKey","setKeyHash","setEncKey","privateKey","makeKeyPair","keyPair","postAccountKeys","KeysRequest","setEncPrivateKey","biometricLocked","SelectionReadOnlyRequest","SettingsService","PlanType","syncService","showFree","showCancel","product","ProductType","Free","plan","onSuccess","onCanceled","selfHosted","ownedBusiness","premiumAccessAddon","additionalStorage","additionalSeats","productTypes","singleOrgPolicyBlock","freeTrial","isSelfHost","getPlans","plans","Enterprise","Teams","selectedPlan","isAnnual","validPlans","Custom","canBeUsedByBusiness","legacyYear","disabled","additionalStoragePriceMonthly","additionalStoragePricePerGb","seatPriceMonthly","seatPrice","additionalStorageTotal","hasAdditionalStorageOption","seatTotal","hasAdditionalSeatsOption","subTotal","basePrice","hasPremiumAccessOption","premiumAccessOptionPrice","taxComponent","taxRate","subtotal","taxCharges","changedProduct","selectablePlans","baseSeats","trialPeriodDays","changedOwnedBusiness","TeamsAnnually","changedCountry","paymentComponent","cancel","getAll","SingleOrg","policies","getAllOrganizations","orgs","org","Owner","Admin","Invited","includes","files","createOrganization","fileEl","getElementById","doSubmit","tokenResult","makeShareKey","shareKey","encrypt","collectionCt","fd","FormData","append","postOrganizationLicense","OrganizationCreateRequest","collectionName","billingEmail","planType","paymentToken","businessName","additionalStorageGb","billingAddressPostalCode","billingAddressCountry","taxIdNumber","billingAddressLine1","billingAddressLine2","billingAddressCity","billingAddressState","postOrganization","OrganizationUpgradeRequest","postOrganizationUpgrade","paymentIntentClientSecret","refreshIdentityToken","fullSync","navigate","OrganizationPlansComponent","macKey","keyB64","encKeyB64","macKeyB64","SymmetricCryptoKey","LoginUri","view","toLoginUriData","LoginUriData","elementRef","trueValue","falseValue","propagateChange","_","onHostChange","writeValue","setProperty","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","TrueFalseValueDirective","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","SelectionReadOnlyResponse","organizations","emailVerified","masterPasswordHint","culture","twoFactorEnabled","securityStamp","o","ProfileOrganizationResponse","ProfileResponse","storageService","onSearchTextChanged","searchPlaceholder","searchTextChanged","GroupingsComponent","selectType","usePolicies","useGroups","useDirectory","useEvents","use2fa","useApi","useBusinessPortal","useSso","selfHost","usersGetPremium","seats","maxCollections","maxStorageGb","ssoBound","identifier","permissions","resetPasswordKey","Confirmed","Manager","isAdmin","accessBusinessPortal","accessEventLogs","accessImportExport","accessReports","manageAllCollections","isManager","manageAssignedCollections","manageGroups","manageSso","managePolicies","manageUsers","Organization","sizeName","SendFileView","hidden","SendTextView","vault","loaded","resetPasswordFeatureFlag","unlinkSso","deleteSsoUser","leave","postLeaveOrganization","toggleResetPasswordEnrollment","keyString","toastStringRef","isResetPasswordEnrolled","getEncKey","orgSymKey","encryptedKey","OrganizationUserResetPasswordEnrollmentRequest","putOrganizationUserResetPasswordEnrollment","OrganizationsComponent","getName","lock","NavbarComponent","getApplicationVersion","version","FooterComponent","publicKey","encryptedPrivateKey","Policy","PolicyData","getMasterPasswordPolicyOptions","enforcedPolicyOptions","getPasswordScoreAlertDisplay","minComplexity","strongPassword","setupSubmitActions","getKdf","getKdfIterations","makeEncKey","remakeEncKey","performSubmitActions","masterPasswordRetype","strengthResult","passwordStrength","getPasswordStrengthUserInput","evaluateMasterPassword","updatePasswordStrength","masterPasswordStrengthTimeout","clearTimeout","masterPasswordScore","userInput","atPosition","ChangePasswordComponent","onEditedUsers","organizationUserType","organizationUserStatusType","showSelected","selectedCount","allUsers","loadUsers","getOrganizationUsers","users","entity","getGroupUsers","entityId","s","user","getCollectionUsers","accessAll","check","selectedChanged","filterSelected","selections","putGroupUsers","putCollectionUsers","EntityUsersComponent","showUser","orgUsersUserIdMap","orgUsersIdMap","defaultDates","loadEvents","clearExisting","refreshPromise","morePromise","dates","getEventsOrganizationUser","continuationToken","getEventsCipher","actingUserId","eventInfo","userName","userEmail","ip","ipAddress","EntityEventsComponent","manageCiphers","manageResetPassword","PermissionsApi","postKey","apiKey","keyType","ApiKeyComponent","postPurgeCiphers","PurgeVaultComponent","firstLoaded","showAdjustPayment","showAddCredit","transactionType","TransactionType","getOrganizationBilling","billing","getUserBilling","verifyBank","VerifyBankRequest","amount1","verifyAmount1","amount2","verifyAmount2","verifyBankPromise","postOrganizationVerifyBank","addCredit","paymentSourceInApp","closeAddCredit","changePayment","closePayment","balance","paymentSource","AppleInApp","GoogleInApp","invoices","transactions","UserBillingComponent","onAdded","ppButtonFormAction","buttonActionProduction","ppButtonBusinessId","businessIdProduction","ppLoading","buttonActionSandbox","businessIdSandbox","creditAmount","ppButtonCustomField","getOrganization","subject","returnUrl","location","ppButtonFormRef","BitPay","req","BitPayInvoiceRequest","credit","amount","creditAmountNumber","postBitPayInvoice","bitPayUrl","formatAmount","floatAmount","parseFloat","toFixed","AddCreditComponent","ElementRef","onAdjusted","PaymentRequest","taxInfoComponent","postAccountPayment","postOrganizationPayment","AdjustPaymentComponent","updatePromise","postAccountLicense","postOrganizationLicenseUpdate","UpdateLicenseComponent","storageGbPrice","add","interval","storageAdjustment","StorageRequest","storageGbAdjustment","action","postAccountStorage","postOrganizationStorage","relativeTo","AdjustStorageComponent","processResponse","UpdateTwoFactorDuoRequest","integrationKey","ikey","secretKey","skey","putTwoFactorOrganizationDuo","putTwoFactorDuo","TwoFactorDuoComponent","showPolicyWarning","filterProvider","getTwoFactorProviders","evaluatePolicies","manage","openModal","authenticatorModalRef","TwoFactorAuthenticatorComponent","updateStatus","yubikeyModalRef","TwoFactorYubiKeyComponent","duoModalRef","emailModalRef","TwoFactorEmailComponent","webAuthnModalRef","TwoFactorWebAuthnComponent","recoveryCode","recoveryModalRef","TwoFactorRecoveryComponent","ref","TwoFactorAuthentication","TwoFactorSetupComponent","exportService","saved","ExportComponent","exposedPasswordMap","getAllCiphers","allCiphers","exposedPasswordCiphers","passwordLeaked","exposedCount","getAllDecrypted","canManageCipher","ExposedPasswordsReportComponent","originalCipher","canManageAllCollections","loadCollections","loadCipher","getCipherAdmin","encryptCipher","saveCipher","putCipherAdmin","CipherCreateRequest","postCipherAdmin","deleteCipherAdmin","putDeleteCipherAdmin","AttachmentView","orgKey","decryptToBytes","decValue","PasswordHistoryView","importService","format","successNavigate","setImportOptions","importOptions","importer","getImporter","fileContents","getFileContents","content","import","getFormatInstructionTitle","results","featuredImportOptions","regularImportOptions","fire","heightAuto","buttonsStyling","iconHtml","input","inputValue","inputAttributes","showConfirmButton","confirmButtonText","onOpen","popupEl","scrollTo","file","reader","FileReader","readAsText","evt","pre","onerror","ImportComponent","services","cipherDocs","load2fa","fetch","Request","json","categoryName","responseJson","serviceName","category","service","InactiveTwoFactorReportComponent","ciphersWithPasswords","passwordUseMap","reusedPasswordCiphers","ReusedPasswordsReportComponent","unsecuredCiphers","UnsecuredWebsitesReportComponent","passwordStrengthMap","passwordStrengthCache","weakPasswordCiphers","isUserNameNotEmpty","getCacheKey","hasUserName","cacheKey","scoreKey","WeakPasswordsReportComponent","reupload","reuploadCipherAttachment","AttachmentsComponent","CollectionResponse","CollectionDetailsResponse","groups","g","CollectionGroupDetailsResponse","globalEquivalentDomains","equivalentDomains","GlobalDomainResponse","DomainsResponse","FolderResponse","accessId","maxAccessCount","accessCount","expirationDate","deletionDate","hideEmail","SendTextApi","SendFileApi","SendResponse","onEventsClicked","accessEvents","deleted","getAllFromApiForOrganization","indexCiphers","applyFilter","CollectionsComponent","getCollections","collectionDomains","decryptMany","unassignedCollection","getAllNested","nestedCollections","collapse","grouping","isCollapsed","bulkDelete","selectedIds","ciphersComponent","bulkDeleteModalRef","BulkDeleteComponent","cipherIds","onDeleted","bulkRestore","bulkRestoreModalRef","BulkRestoreComponent","onRestored","bulkShare","selectedCiphers","bulkShareModalRef","BulkShareComponent","onShared","bulkMove","bulkMoveModalRef","BulkMoveComponent","onMoved","BulkActionsComponent","SendFile","SendText","CipherWithIdRequest","folder","FolderRequest","onCopy","copyText","selection","getSelection","rangeCount","getRangeAt","stringEndPos","newLinePos","SelectCopyDirective","colorizedPassword","isSpecial","ColorPasswordPipe","FolderData","Folder","NotificationsService","webpackEmptyAsyncContext","keys","exports","classList","remove","FrontendLayoutComponent","broadcasterService","ngZone","businessUrl","enterpriseUrl","run","command","unsubscribe","goToBusinessPortal","businessTokenPromise","getEnterprisePortalSignInToken","showManageTab","showToolsTab","isOwner","canManageUsers","canManageAssignedCollections","canManageGroups","canManagePolicies","canAccessEventLogs","canAccessImportExport","canAccessReports","canAccessBusinessPortal","OrganizationLayoutComponent","UserLayoutComponent","fired","queryParams","qParams","errorMessage","isAuthenticated","EmergencyAccessAcceptRequest","postEmergencyAccessAccept","toast","save","AcceptEmergencyComponent","OrganizationUserAcceptRequest","postOrganizationUserAccept","orgName","organizationName","AcceptOrganizationComponent","HintComponent","routerService","onSuccessfulSubmit","successRoute","LockComponent","togglePassword","authService","onSuccessfulLoginNavigate","goAfterLogIn","queryParamsSub","orgInvite","emergencyInvite","loginRedirect","LoginComponent","DeleteRecoverRequest","postAccountRecoverDelete","RecoverDeleteComponent","TwoFactorRecoveryRequest","postTwoFactorRecover","RecoverTwoFactorComponent","showCreateOrgMessage","layout","referenceData","ReferenceEventRequest","reference","cookie","pop","shift","invite","getPoliciesByToken","policiesData","RegisterComponent","SetPasswordComponent","redirectUri","origin","storedIdentifier","SsoComponent","loggingIn","twoFactorRoute","changePasswordRoute","checkState","getOrgIdentiferFromState","codeChallenge","returnUri","includeUserIdentifier","initiateSsoFormPromise","preValidate","buildAuthorizeUrl","authorizeUrl","sameWindow","preValidateSso","passwordOptions","uppercase","lowercase","numbers","special","codeVerifierHash","identityBaseUrl","getSsoUserIdentifier","userIdentifier","orgIdFromState","onSuccessfulLoginTwoFactorNavigate","sso","onSuccessfulLoginChangePasswordNavigate","disableFavicon","onSuccessfulLogin","stateSplit","checkStateSplit","anotherMethod","twoFactorOptionsModal","TwoFactorOptionsComponent","onProviderSelected","selectedProviderType","onRecoverSelected","TwoFactorComponent","recover","TwoFactorEmailRequest","postAccountVerifyEmailToken","VerifyEmailRequest","VerifyEmailTokenComponent","VerifyDeleteRecoverRequest","postAccountRecoverDeleteToken","VerifyRecoverDeleteComponent","didScroll","pagedCollectionsCount","getUserCollections","resetPaging","loadMore","pagedLength","pagedCollections","pagedSize","addEditModalRef","CollectionAddEditComponent","onSavedCollection","onDeletedCollection","removeCollection","deleteCollection","usersModalRef","entityName","isSearching","isSearchable","isPaging","searching","index","splice","accessGroups","getGroups","groupsResponse","getCollectionDetails","group","CollectionRequest","putCollection","postCollection","deletePromise","getEventsOrganization","EventsComponent","pagedGroupsCount","pagedGroups","GroupAddEditComponent","onSavedGroup","onDeletedGroup","removeGroup","deleteGroup","GroupsComponent","access","getGroupDetails","GroupRequest","putGroup","postGroup","accessPolicies","ManageComponent","statusMap","pagedUsersCount","viewEvents","pagedUsers","Accepted","confirmedCount","acceptedCount","UserAddEditComponent","onSavedUser","onDeletedUser","removeUser","groupsModalRef","UserGroupsComponent","deleteOrganizationUser","reinvite","postOrganizationUserReinvite","confirm","confirmUser","doConfirmation","mapIndex","updateUser","autoConfirm","confirmModalRef","UserConfirmComponent","onConfirmedUser","getUserPublicKey","publicKeyResponse","log","getFingerprint","eventsModalRef","rsaEncrypt","OrganizationUserConfirmRequest","postOrganizationUserConfirm","PeopleComponent","User","showCustom","getOrganizationUser","setRequestPermissions","clearPermissions","OrganizationUserUpdateRequest","putOrganizationUser","OrganizationUserInviteRequest","emails","postOrganizationUserInvite","dontAskAgain","fingerprint","getOrganizationUserGroups","userGroups","ug","OrganizationUserUpdateGroupsRequest","groupIds","putOrganizationUserGroups","userCanAccessBusinessPortal","policiesEnabledMap","display","MasterPassword","PasswordGenerator","RequireSso","PersonalOwnership","DisableSend","SendOptions","policyIdFromEvents","orgPolicies","orgPolicy","getPolicies","op","editModalRef","PolicyEditComponent","onSavedPolicy","goToEnterprisePortal","enterpriseTokenPromise","PoliciesComponent","AppIdService","LogService","policyType","masterPassMinComplexity","passwordScores","defaultTypes","getPolicy","policy","passGenDefaultType","defaultType","passGenMinLength","minLength","passGenUseUpper","useUpper","passGenUseLower","useLower","passGenUseNumbers","useNumbers","passGenUseSpecial","useSpecial","passGenMinNumbers","minNumbers","passGenMinSpecial","minSpecial","passGenMinNumberWords","minNumberWords","passGenCapitalize","capitalize","passGenIncludeNumber","includeNumber","masterPassMinLength","masterPassRequireUpper","requireUpper","masterPassRequireLower","requireLower","masterPassRequireNumbers","requireNumbers","masterPassRequireSpecial","requireSpecial","sendDisableHideEmail","disableHideEmail","PolicyRequest","putPolicy","canUseApi","OrganizationUpdateRequest","putOrganization","taxFormPromise","deleteOrganization","deleteModalRef","DeleteOrganizationComponent","purgeVault","purgeModalRef","viewApiKey","apiKeyModalRef","postOrganizationApiKey","scope","grantType","apiKeyTitle","apiKeyWarning","apiKeyDescription","rotateApiKey","rotateApiKeyModalRef","isRotation","postOrganizationRotateApiKey","AccountComponent","OrganizationBillingComponent","adjustSeatsAdd","showAdjustSeats","adjustStorageAdd","showAdjustStorage","showUpdateLicense","showDownloadLicense","showChangePlan","getOrganizationSubscription","sub","reinstate","reinstatePromise","postOrganizationReinstate","cancelPromise","postOrganizationCancel","changePlan","subscription","closeChangePlan","changed","downloadLicense","closeDownloadLicense","updateLicense","closeUpdateLicense","updated","adjustSeats","closeSeats","adjustStorage","closeStorage","cancelled","cancelAtEndDate","upcomingInvoice","storageGb","storagePercentage","OrganizationSubscriptionComponent","onChanged","defaultUpgradePlan","FamiliesAnnually","defaultUpgradeProduct","Families","ChangePlanComponent","onDownloaded","installationId","getOrganizationLicense","license","licenseString","JSON","stringify","saveFile","DownloadLicenseComponent","seatAdjustment","SeatRequest","postOrganizationSeat","AdjustSeatsComponent","access2fa","SettingsComponent","duoComp","getTwoFactorOrganizationProviders","qrScript","UpdateTwoFactorAuthenticatorRequest","putTwoFactorAuthenticator","QRious","element","sendEmail","emailPromise","postTwoFactorEmailSetup","sentEmail","UpdateTwoFactorEmailRequest","putTwoFactorEmail","print","w","open","write","onafterprint","formatString","keyIdAvailable","keysConfiguredCount","webAuthnResponse","UpdateTwoFactorWebAuthnRequest","deviceResponse","putTwoFactorWebAuthn","removePromise","UpdateTwoFactorWebAuthnDeleteRequest","deleteTwoFactorWebAuthn","readKey","challengePromise","getTwoFactorWebAuthnChallenge","challenge","readDevice","webAuthnChallenge","resetWebAuthn","credentials","webAuthnListening","webAuthnError","listening","k","configured","migrated","nfc","UpdateTwoFactorYubioOtpRequest","key1","key2","key3","key4","key5","putTwoFactorYubiKey","disablePromise","existingKey","padRight","max","getExportData","getOrganizationExport","getFileName","collectEvent","manageableCiphers","onError","appFallbackSrc","FallbackSrcDirective","ToolsComponent","changeDetectorRef","trashCleanupWarning","groupingsComponent","successfully","detectChanges","selectedAll","reload","selectedTrash","filterDeleted","selectedType","filterCipherType","selectedCollectionId","filterCollection","clearGroupingFilters","clearFilters","go","filterSearchText","editCipherAttachments","attachmentsModalRef","madeAttachmentChanges","onUploadedAttachment","onDeletedAttachment","editCipherCollections","collectionsModalRef","onSavedCollections","addCipher","component","editCipher","cloneCipher","replaceUrl","VaultComponent","saveCipherAttachment","saveAttachmentWithServer","cipherDomain","deleteCipherAttachment","attachmentId","deleteCipherAttachmentAdmin","onReuploadedAttachment","deletePromises","reuploadPromises","emergencyAccessId","hasUpdatedKey","download","downloading","canAccessAttachments","getAttachmentData","attachmentDownloadResponse","cache","arrayBuffer","buf","decryptFromBytes","decBuf","hasEncKey","admin","saveAttachmentRawWithServer","foundAttachment","a2","deleteAttachmentWithServer","Window","domains","excluded","access_token","expiresIn","expires_in","refresh_token","tokenType","token_type","IdentityTokenResponse","IdentityTwoFactorResponse","dr","ListResponse","sends","profile","PolicyResponse","SyncResponse","allowSelectNone","loadCipherCollections","saveCollections","CipherCollectionsRequest","putCipherCollectionsAdmin","deleteCiphers","deleteCiphersAdmin","deleteManyWithServer","softDeleteManyWithServer","deleteRequest","CipherBulkDeleteRequest","deleteManyCiphersAdmin","putDeleteManyCiphersAdmin","ids","moveManyWithServer","restoreManyWithServer","nonShareableCount","shareableCiphers","writeableCollections","allCollections","filterCollections","checkedCollectionIds","shareManyWithServer","sendType","passwordRequired","unavailable","maskedText","creatorIdentifier","sendId","decKey","getSendFileDownloadData","accessRequest","downloadData","toggleText","keyArray","SendAccessRequest","pbkdf2","passwordHash","sendResponse","postSendAccess","sendAccess","SendAccess","makeSendKey","AccessComponent","sendService","addSend","disableSend","editSend","sendAddEditModalRef","onSavedSend","onDeletedSend","SendComponent","datePipe","copyLinkToClipboard","link","SendView","deauthorizeSessions","deauthModalRef","DeauthorizeSessionsComponent","deleteAccount","DeleteAccountComponent","viewUserApiKey","viewUserApiKeyModalRef","postUserApiKey","rotateUserApiKey","rotateUserApiKeyModalRef","postUserRotateApiKey","postSecurityStamp","getProfile","UpdateProfileRequest","putProfile","ProfileComponent","tokenSent","newEmail","EmailTokenRequest","postEmailToken","EmailRequest","newKey","newMasterPasswordHash","newEncKey","postEmail","reset","ChangeEmailComponent","rotateEncKey","rotateEncKeyClicked","currentMasterPassword","PasswordRequest","postPassword","updateKey","getPrivateKey","encPrivateKey","UpdateKeyRequest","FolderWithIdRequest","postAccountKey","updateEmergencyAccesses","updateAllResetPasswordKeys","getEmergencyAccessTrusted","emergencyAccess","allowedStatuses","EmergencyAccessStatusType","RecoveryInitiated","RecoveryApproved","filteredAccesses","details","granteeId","updateRequest","EmergencyAccessUpdateRequest","waitTimeDays","keyEncrypted","putEmergencyAccess","PBKDF2_SHA256","kdfOptions","KdfRequest","postAccountKdf","ChangeKdfComponent","orgPlansComponent","EnterpriseAnnually","CreateOrganizationComponent","custom","getSettingsDomains","toggleExcluded","globalDomain","customize","UpdateDomainsRequest","excludedGlobalEquivalentDomains","d2","putSettingsDomains","indexTrackBy","DomainRulesComponent","vaultTimeout","vaultTimeoutAction","vaultTimeouts","localeOptions","supportedTranslationLocales","locale","localeNames","disableIcons","enableGravatars","enableFullWidth","startingLocale","setVaultTimeoutOptions","vaultTimeoutActionChanged","newValue","OptionsComponent","ngAfterContentInit","LinkSsoComponent","premiumPrice","getPremium","getEmailVerified","finalizePremium","postPremium","paymentResponse","PremiumComponent","getUserSubscription","usingInAppPurchase","postReinstatePremium","postCancelPremium","UserSubscriptionComponent","breachedAccounts","checkedUsername","BreachReportComponent","history","historyModalRef","PasswordGeneratorHistoryComponent","lengthChanged","minNumberChanged","minSpecialChanged","PasswordGeneratorComponent","saveOptions","regenerate","favorites","showVerifyEmail","showBrowserOutdated","showUpdateKey","showPremiumCallout","organizationsComponent","selectedFavorites","filterFavorites","selectedFolder","selectedFolderId","filterFolder","shareCipher","shareModalRef","ShareComponent","onSharedCipher","folderAddEditModalRef","FolderAddEditComponent","onSavedFolder","loadFolders","editFolder","onDeletedFolder","updateKeyModalRef","UpdateKeyComponent","makeRequest","getKey","SendInfoComponent","postAccountVerifyEmail","VerifyEmailComponent","canActivate","OrganizationGuardService","Permissions","AccessBusinessPortal","AccessEventLogs","AccessImportExport","AccessReports","ManageAllCollections","ManageAssignedCollections","ManageGroups","ManageOrganization","ManagePolicies","ManageUsers","OrganizationTypeGuardService","routerState","isLocked","promptBiometric","AuthGuardService","LockGuardService","UnauthGuardService","EmergencyAddEditComponent","postEmergencyAccessView","viewAttachments","EmergencyAccessAttachmentsComponent","decCiphers","rsaDecrypt","oldKeyBuffer","oldEncKey","cipherResponse","cipherData","getLocaleSortingFunction","EmergencyAccessViewComponent","EncryptedObject","EnvironmentUrls","GeneratedPasswordHistory","emergencyAccessType","EmergencyAccessType","emergencyAccessStatusType","isOrganizationOwner","trustedContacts","getEmergencyAccessGranted","grantedContacts","EmergencyAccessAddEditComponent","onSaved","contact","postEmergencyAccessReinvite","EmergencyAccessConfirmComponent","onConfirmed","deleteEmergencyAccess","EmergencyAccessGranteeDetailsResponse","removeGrantee","removeGrantor","requestAccess","postEmergencyAccessInitiate","approve","View","postEmergencyAccessApprove","postEmergencyAccessReject","takeover","EmergencyAccessTakeoverComponent","takeoverModalRef","onDone","EmergencyAccessConfirmRequest","postEmergencyAccessConfirm","EmergencyAccessComponent","creationDate","grantorId","EmergencyAccessGrantorDetailsResponse","EmergencyAccessTakeoverResponse","EmergencyAccessViewResponse","waitTimes","getEmergencyAccess","waitTime","EmergencyAccessInviteRequest","postEmergencyAccessInvite","getEmergencyGrantorPolicies","policyResponse","postEmergencyAccessTakeover","takeoverResponse","EmergencyAccessPasswordRequest","postEmergencyAccessPassword","logoutCallback","customUserAgent","urlsSet","isWebClient","isDesktopClient","usingBaseUrl","device","getDevice","setUrls","urls","apiBaseUrl","eventsBaseUrl","api","headers","Headers","qsStringify","toIdentityToken","identityClientId","getCredentials","isJsonResponse","TwoFactorProviders2","clearTwoFactorToken","doRefreshToken","BillingResponse","SubscriptionResponse","TaxInfoResponse","PreloginResponse","setPassword","getAccountRevisionDate","postPasswordHint","postRegister","PaymentResponse","postIapCheck","postAccountVerifyPassword","ApiKeyResponse","getFolder","postFolder","putFolder","deleteFolder","getSend","apiUrl","SendAccessResponse","SendFileDownloadDataResponse","getSends","postSend","postFileTypeSend","SendFileUploadDataResponse","renewSendFileUploadUrl","fileId","postSendFile","postSendFileLegacy","putSend","putSendRemovePassword","deleteSend","getCipher","getCiphersOrganization","postCipher","postCipherCreate","putCipher","deleteManyCiphers","putMoveCiphers","putShareCipher","putShareCiphers","putCipherCollections","path","postImportCiphers","postImportOrganizationCiphers","putDeleteCipher","putDeleteManyCiphers","putRestoreCipher","putRestoreCipherAdmin","putRestoreManyCiphers","postCipherAttachment","AttachmentUploadDataResponse","postCipherAttachmentLegacy","postCipherAttachmentAdminLegacy","postShareCipherAttachment","renewAttachmentUploadUrl","postAttachmentFile","deleteCollectionUser","GroupDetailsResponse","GroupResponse","deleteGroupUser","OrganizationUserDetailsResponse","OrganizationUserUserDetailsResponse","PlanResponse","postImportDirectory","TaxRateResponse","getSync","TwoFactorProviderResponse","TwoFactorAuthenticatorResponse","TwoFactorEmailResponse","TwoFactorDuoResponse","TwoFactorYubiKeyResponse","TwoFactorWebAuthnResponse","ChallengeResponse","TwoFactorRecoverResponse","rawId","extensions","getClientExtensionResults","AttestationObject","attestationObject","clientDataJson","clientDataJSON","postTwoFactorEmail","OrganizationResponse","OrganizationSubscriptionResponse","getEvents","addEventParameters","EventResponse","postEventsCollect","getActiveBearerToken","authHeader","UserKeyResponse","getHibpBreach","BreachAccountResponse","getToken","tokenNeedsRefresh","nativeFetch","handleError","hasResponse","requestInit","tokenError","isTextResponse","Message","getRefreshToken","decodedToken","decodeToken","grant_type","client_id","typeHeader","businessAddress1","businessAddress2","businessAddress3","businessCountry","businessTaxNumber","nameLocalizationKey","descriptionLocalizationKey","baseStorageGb","maxUsers","maxAdditionalSeats","maxAdditionalStorage","hasSelfHost","hasPolicies","hasGroups","hasDirectory","hasEvents","has2fa","hasApi","hasSso","upgradeSortOrder","displaySortOrder","stripePlanId","stripeSeatPlanId","stripeStoragePlanId","stripePremiumAccessPlanId","storageName","BillingSubscriptionResponse","BillingSubscriptionUpcomingInvoiceResponse","trialEndDate","periodStartDate","periodEndDate","cancelledDate","BillingSubscriptionItemResponse","quantity","KeyResponse","attestation","authenticatorSelection","excludeCredentials","pubKeyCredParams","rp","makeAndGetAppId","getAnonymousAppId","existingId","guid","hashStart","hashEnding","leakedHashes","v","throttle","Keys","DomainMatchBlacklist","Set","settingsService","fileUploadService","sortedCiphersCache","SortedCiphersCache","sortCiphersByLastUsed","_decryptedCipherCache","clearIndex","clearCache","decryptedCipherCache","existingCipher","hasFields","existingHiddenFields","Hidden","ef","matchedField","encryptObjProperty","encryptCipherData","encryptFields","encryptPasswordHistories","encryptAttachments","attachmentsModel","encAttachments","fieldsModel","encFields","encryptField","encField","fieldModel","Boolean","phModels","encPhs","encryptPasswordHistory","encPh","phModel","hasKey","getAllDecryptedForGrouping","groupingId","getAllDecryptedForUrl","includeOtherTypes","defaultMatch","eqDomainsPromise","getEquivalentDomains","eqDomains","matches","eqDomain","matchingDomains","Domain","domainUrlHost","Host","urlHost","Exact","StartsWith","Never","getLastUsedForUrl","getCipherForUrl","getLastLaunchedForUrl","getNextCipherForUrl","updateLastUsedIndexForUrl","updateLastUsedIndex","updateLastUsedDate","ciphersLocalData","cached","updateLastLaunchedDate","lastLaunched","saveNeverDomain","saveWithServer","upsert","shareWithServer","attachmentPromises","shareAttachmentWithServer","encCipher","CipherShareRequest","encCiphers","CipherBulkShareRequest","unencryptedFile","readAsArrayBuffer","cData","filename","encFileName","dataEncKey","encryptToBytes","encData","fileSize","adminRequest","uploadDataResponse","cipherMiniResponse","uploadCipherAttachment","legacyServerAttachmentFileUpload","blob","Blob","filepath","contentType","saveCollectionsWithServer","CipherBulkMoveRequest","deleteAttachment","aLastUsed","bLastUsed","bothNotNull","sortCiphersByLastUsedThenName","aName","bName","softDelete","setDeletedDate","clearDeletedDate","constructor","CipherBulkRestoreRequest","restores","attachmentView","attachmentResponse","theObj","modelProp","lastUsed","isCached","addCiphers","getLastLaunched","getLastUsed","getNext","sequentialize","propertyKey","descriptor","originalMethod","caches","getCache","argsCacheKey","args","onFinally","decryptedCollectionCache","decCollections","nodes","collectionCopy","ServiceUtils","nestedTraverse","getNested","getTreeNodeObject","nodeTree","partIndex","delimiter","partName","node","TreeNode","children","newPartName","attachToWindow","attachToGlobal","ContainerService","secureStorageService","platformUtilService","option","biometric","supportsSecureStorage","keyHash","setOrgKeys","orgKeys","getKeyHash","encKeyCipher","decEncKey","stretchKey","getPublicKey","rsaExtractPublicKey","keyFingerprint","hkdfExpand","userFingerprint","hashPhrase","getOrgKeys","encOrgKeys","clearKey","legacyEtmKey","clearKeyHash","clearEncKey","memoryOnly","clearKeyPair","clearOrgKeys","clearPinProtectedKey","clearKeys","toggleKey","salt","makeKeyFromPin","pin","protectedKeyCs","makePinKey","pinKey","randomBytes","rsaGenerateKeyPair","publicB64","privateEnc","keyMaterial","hkdf","sendKey","getKeyForEncryption","theKey","buildEncKey","plainValue","plainBuf","aesEncrypt","encObj","encValue","macLen","encBytes","EncArrayBuffer","Rsa2048_OaepSha256_HmacSha256_B64","Rsa2048_OaepSha1_HmacSha256_B64","alg","encString","aesDecryptToBytes","decipher","aesDecryptToUtf8","encBuf","ctBytes","ivBytes","macBytes","randomNumber","min","rval","range","bitsNeeded","ceil","log2","bytesNeeded","mask","pow","byteArray","macData","hmac","keyForEnc","resolveLegacyKey","fastParams","aesDecryptFastParameters","hmacFast","computedMac","compareFast","aesDecryptFast","aesDecrypt","minimumEntropy","entropyPerWord","EEFLongWordList","numWords","hashArr","entropyAvailable","phrase","hashNumber","bigInt","fromArray","remainder","divide","encKeyEnc","notificationsService","getWebVaultUrl","webVaultUrl","setUrlsFromStorage","urlsObj","icons","notifications","webVault","enterprise","envUrls","identityUrl","notificationsUrl","eventsUrl","formatUrl","decryptedFolderCache","decFolders","noneFolder","folderCopy","cId","updates","systemLanguage","localesDirectory","getLocalesJson","defaultMessages","localeMessages","translationLocale","Intl","Collator","numeric","sensitivity","loadMessages","translate","messagesObj","formattedLocale","locales","placeholders","placeProp","replaceToken","replaceContent","DefaultOptions","ambiguous","minNumber","minUppercase","minLowercase","wordSeparator","generatePassphrase","sanitizePasswordLength","positions","shuffleArray","allCharSet","lowercaseCharSet","uppercaseCharSet","numberCharSet","specialCharSet","positionChars","randomCharIndex","listLength","wordList","wordIndex","appendRandomNumberToRandomWord","optionsCache","enforcePasswordGeneratorPoliciesOnOptions","enforcedOptions","getPasswordGeneratorPolicyOptions","useUppercase","useLowercase","numberCount","specialCount","PasswordGeneratorPolicyOptions","currentPolicy","getHistory","encrypted","decryptHistory","addHistory","currentHistory","matchesPrevious","unshift","now","encryptHistory","newHistory","userInputs","globalUserInputs","finalUserInputs","zxcvbn","normalizeOptions","decrypted","array","forGeneration","minUppercaseCalc","minLowercaseCalc","minNumberCalc","minSpecialCalc","settingsCache","getSettingsKey","setEquivalentDomains","setSettingsKey","getSettings","settings","purge","syncInProgress","getLastSync","lastSync","setLastSync","toJSON","forceSync","allowThrowOnError","syncStarted","syncCompleted","needsSync","needsSyncing","syncProfile","syncFolders","syncCollections","syncCiphers","syncSends","syncSettings","syncPolicies","syncUpsertFolder","notification","isEdit","localFolder","remoteFolder","syncDeleteFolder","syncUpsertCipher","shouldUpdate","localCipher","checkCollections","remoteCipher","syncDeleteCipher","syncUpsertSend","localSend","remoteSend","SendData","syncDeleteSend","getSecurityStamp","stamp","setSecurityStamp","setEmailVerified","OrganizationData","replaceOrganizations","SendTextData","File","SendFileData","setToken","setRefreshToken","skipTokenStorage","toggleTokens","clearToken","decoded","getTokenExpirationDate","setUTCSeconds","tokenSecondsRemaining","offsetSeconds","msRemaining","valueOf","minutes","email_verified","getIssuer","iss","B32Chars","SteamChars","period","digits","keyB32","isOtpAuth","isSteamAuth","digitParams","periodParam","algParam","timeHex","leftPad","decToHex","timeBytes","keyBytes","b32ToBytes","sign","offset","otp","fullCode","trunc","isAutoCopyEnabled","b32ToHex","cleanedInput","bits","hex","byteIndex","chunk","signature","clearOrganizations","lockedCallback","loggedOutCallback","checkOnInterval","startCheck","checkVaultTimeout","isBiometricLockSet","isViewOpen","lockTimeout","lastActive","vaultTimeoutSeconds","allowSoftLock","isPinLockSet","timersMap","debug","LogLevelType","Debug","info","Info","Warning","level","warn","time","hrtime","timeEnd","elapsed","build","CipherWithIds","CollectionWithId","FolderWithId","IgnoredProperties","loginPropertyParsers","setLoginUsername","setLoginPassword","setLoginUris","creditCardPropertyParsers","setCreditCardNumber","setCreditCardVerification","setCreditCardCardholderName","setCreditCardExpiry","identityPropertyParsers","setIdentityFirstName","setIdentityInitial","setIdentityLastName","setIdentityUserName","setIdentityEmail","setIdentityPhone","setIdentityCompany","quoteChar","escapeChar","getProp","setNotes","setCipherType","altUsername","context","CipherImportContext","setKnownLoginValue","setKnownCreditCardValue","setKnownIdentityValue","setUnknownValue","entries","agg","entry","getPropByRegexp","regexp","matchingKeys","getPropIncluding","includesMap","importRecord","func","lowerProperty","readableDate","toUTCString","OnePasswordCsvImporter","NotificationType","enableProdMode","platformBrowser","bootstrapModule","preserveWhitespaces","registerLocaleData","AppModule","AppComponent","DatePipe","BrowserModule","BrowserAnimationsModule","FormsModule","AppRoutingModule","ServicesModule","ToasterModule","forRoot","InfiniteScrollModule","DragDropModule","BlurClickDirective","BoxRowDirective","SearchCiphersPipe","routes","pathMatch","redirectTo","RouterModule","useHash","paramsInheritanceStrategy","subscribers","messageCallback","PasswordHintRequest","showPassword","pinLock","webVaultHostname","invalidPinAttempts","pinSet","supportsBiometric","biometricLock","vaultUrl","failed","decPin","setKeyAndContinue","passwordValid","storedKeyHash","unlockBiometric","authenticateBiometric","doContinue","rememberEmail","launchSsoBrowser","ssoRedirectUri","ssoCodeVerifier","webUrl","confirmMasterPassword","hint","showTerms","acceptPolicies","useLowerKdf","isIE","RegisterRequest","confirmField","syncLoading","SetPasswordRequest","orgIdentifier","onSuccessfulChangePassword","choose","backdrop","className","addEventListener","webAuthnReady","webAuthnNewTab","webAuthn","twoFactorEmail","loginRoute","authing","needsLock","cleanupWebAuthn","providerData","DuoWebSDK","iframe","sig_request","Signature","submit_callback","sig","stop","doToast","cleanup","getDeviceString","pushToken","codes","client_secret","code_verifier","redirect_uri","deviceIdentifier","deviceName","twoFactorRemember","errorCallback","infoCallback","parseFunction","parseMessage","connectorLink","URLSearchParams","base64Encode","btnText","allow","sendMessage","contentWindow","postMessage","removeEventListener","validMessage","warningDialog","downloadFile","encryptedFormat","getExport","extension","csv","onCancelled","onEditAttachments","onShareCipher","onEditCollections","onGeneratePassword","showCardCode","fieldType","addFieldType","currentDate","typeOptions","cardBrandOptions","cardExpMonthOptions","identityTitleOptions","addFieldTypeOptions","uriMatchOptions","myEmail","addEditCipherInfo","organizationChanged","previousCipherId","addUri","removeUri","addField","removeField","trackByFunction","editCollections","restorePromise","restoreCipher","toggleCardCode","toggleFieldValue","toggleUriOptions","loginUriMatchChanged","drop","moveItemInArray","previousIndex","currentIndex","checkPassword","checkPasswordPromise","DeviceResponse","KeysResponse","activeCipherId","onCipherClicked","onCipherRightClicked","onAddCipher","onAddCipherOptions","pagedCiphers","searchPending","searchTimeout","pagedCiphersCount","refreshing","indexedCiphers","deletedFilter","searchCiphers","rightClickCipher","addCipherOptions","selectedCollectionIds","showFolders","showCollections","showFavorites","showTrash","onAllClicked","onFavoritesClicked","onTrashClicked","onCipherTypeClicked","onFolderClicked","onAddFolder","onEditFolder","onCollectionClicked","setLoaded","collapsedGroupings","nestedFolders","clearSelections","selectFavorites","selectTrash","selectFolder","selectCollection","idPrefix","SendAccessView","expired","filteredSends","hasSearched","onSuccessfulLoad","applyTextSearch","removePassword","removePasswordWithServer","onSuccessfulRemovePassword","onSuccessfulDelete","sendLinkBaseUrl","urlB64Key","searchSends","DateField","copyLink","deletionDateSelect","expirationDateSelect","alertShown","deletionDateOptions","expirationDateOptions","isSafari","isFirefox","nullOrWhiteSpaceCount","expirationDateFallback","expirationTimeFallback","formatDateFallbacks","deletionDateFallback","deletionTimeFallback","disableSendPolicies","sendOptionsPolicies","loadSend","hasPassword","isDateTimeLocalSupported","dateToString","deletionDateParts","dateToSplitString","safariDeletionTime","expirationDateParts","safariExpirationTime","safariDeletionTimeOptions","safariTimeOptions","DeletionDate","safariExpirationTimeOptions","ExpriationDate","deletionDateTimeFallback","expirationDateTimeFallback","setHours","encryptSend","encSend","clearExpiration","typeChanged","toggleOptions","expirationDateFallbackChanged","sendData","dateString","togglePasswordVisible","strarray","noon","midnight","ams","pms","m","hour","midnightOption","standard","military","noonOption","amOption","pmOption","validTimes","previousValue","showSelect","onSelected","avoidAmbiguous","optionsResponse","sliderChanged","sliderInput","copyOptions","cipherView","language","BroadcasterMessagingService","WebPlatformUtilsService","HtmlStorageService","MemoryStorageService","WebCryptoFunctionService","consoleLogService","FileUploadService","eventLoggingService","initFactory","htmlEl","documentElement","theme","useValue","APP_INITIALIZER","useFactory","deps","LOCALE_ID","subscriber","arg","localStorageKeys","localStorageStartsWithKeys","memoryStorageStartsWithKeys","memoryStorage","isLocalStorage","localStorage","getItem","isMemoryStorage","sessionStorage","setItem","removeItem","swKey","fileUploadType","BillingSourceResponse","BillingTransactionResponse","BillingInvoiceResponse","cardBrand","needsVerification","pdfUrl","paid","createdDate","refunded","partiallyRefunded","refundedAmount","addedDate","breachDate","dataClasses","isActive","isVerified","logoPath","modifiedDate","pwnCount","OrganizationUserResponse","userProfile","taxIdType","limit","throttleKey","allThrottles","getThrottles","throttles","argsThrottleKey","queue","exec","comparator","sortedCiphersByUrl","timeouts","Ciphers","resetTimer","lastUsedIndex","y","getNextIndex","inEffect","filePath","store","browserCache","chrome","isChrome","isEdge","isOpera","isVivaldi","isMacAppStore","rel","click","blobData","blobOptions","fileNameLower","doDownload","endsWith","msSaveOrOpenBlob","msSaveBlob","createObjectURL","position","confirmText","cancelText","bodyIsHtml","iconClasses","iconHtmlStr","showCancelButton","cancelButtonText","clipboardData","setData","queryCommandSupported","textarea","copyEl","contains","execCommand","readFromClipboard","getDefaultSystemTheme","onDefaultSystemThemeChange","uploadEvents","eventType","uploadImmediately","orgIds","eventCollection","EventData","EventRequest","clearEvents","getEncryptedExport","getDecryptedExport","getOrganizationEncryptedExport","getOrganizationDecryptedExport","padNumber","getSeconds","buildCommonCipher","unparse","jsonDoc","collectionPromises","decCol","cipherPromises","decCipher","padCharacter","numString","login_uri","login_username","login_password","login_totp","template","toView","values","toDomain","azureFileUploadService","AzureFileUploadService","bitwardenFileUploadService","BitwardenFileUploadService","uploadSendFile","uploadData","encryptedFileData","FileUploadType","Direct","Azure","upload","renewalCallback","encryptedFileName","azureUploadBlob","azureUploadBlocks","urlObject","searchParams","blobResponse","blockSize","getMaxBlockSize","blockIndex","numBlocks","blocksStaged","renewUrlIfNecessary","blockUrl","blockId","encodedBlockId","blockData","blockHeaders","blockRequest","blockResponse","blockListUrl","blockListXml","expiry","setTime","utfBlockId","blockIdList","xml","Version","day","Number","compareTo","apiCall","getImportOptions","importResult","halfway","last","badData","postImport","errorResponse","handleServerError","getImporterInstance","BitwardenCsvImporter","BitwardenJsonImporter","LastPassCsvImporter","KeePassXCsvImporter","AviraCsvImporter","BlurCsvImporter","SafeInCloudXmlImporter","PadlockCsvImporter","KeePass2XmlImporter","ChromeCsvImporter","FirefoxCsvImporter","UpmCsvImporter","SaferPassCsvImporter","MeldiumCsvImporter","OnePassword1PifImporter","OnePasswordWinCsvImporter","OnePasswordMacCsvImporter","KeeperCsvImporter","PasswordDragonXmlImporter","EnpassCsvImporter","EnpassJsonImporter","PasswordSafeXmlImporter","DashlaneJsonImporter","MSecureCsvImporter","StickyPasswordXmlImporter","TrueKeyCsvImporter","ClipperzHtmlImporter","RoboFormCsvImporter","AscendoCsvImporter","PasswordBossJsonImporter","ZohoVaultCsvImporter","SplashIdCsvImporter","PassKeepCsvImporter","GnomeJsonImporter","PasswordAgentCsvImporter","PasspackCsvImporter","PassmanJsonImporter","AvastCsvImporter","AvastJsonImporter","FSecureFskImporter","KasperskyTxtImporter","RememBearCsvImporter","PasswordWalletTxtImporter","MykiCsvImporter","SecureSafeCsvImporter","LogMeOnceCsvImporter","BlackBerryCsvImporter","ButtercupCsvImporter","CodebookCsvImporter","EncryptrCsvImporter","YotiCsvImporter","ImportCiphersRequest","KvpRequest","ImportOrganizationCiphersRequest","itemType","fieldLower","web","logins","custName","note","pwd","loginName","cards","holderName","cardNumber","cvv","website","secondary_username","col","addCollection","collectionIndex","delimPosition","parseEncrypted","parseDecrypted","groupingsMap","fav","extra","OfficialProps","processingCustomFields","currentVersion","actionType","labelLower","Category","Favorite","Entry","Note","Username","TOTP","Website","Phone","PIN","Account","HandledResults","ADDRESS","processAddress","AUTHENTIFIANT","processAuth","BANKSTATEMENT","processNote","IDCARD","PAYMENTMEANS_CREDITCARD","processCard","IDENTITY","processIdentity","credential","secondaryLogin","fullName","nameParts","pseudo","addressName","addressFull","zipcode","owner","nameProperty","Label","Notes","CVV","Expiry","expParts","firstRow","containsField","fieldValue","fieldName","fieldNameLower","foldersMap","foldersIndexMap","folderTree","buildFolderTree","flattenFolderTree","template_type","processLogin","sensitive","uuid","parent_uuid","titlePrefix","tree","creditNumber","creditCvv","creditExpiry","keyRing","display_name","secret","attributes","attr","username_value","notesData","applicationsData","websitesData","workingData","parseDataCategory","applications","websites","nameKey","itemComment","itemCommentKey","colonIndex","rootGroup","traverse","isRootNode","groupPrefixName","groupName","nameEl","cipherIndex","entryString","valueEl","keyEl","attrs","ProtectInMemory","Title","Group","buildBaseCipher","parseSecureNote","parseCard","parseIdentity","ccnum","cardCipher","profilename","firstname","lastname","ccname","cccsc","ccexp","ccexpParts","middlename","zip","extraParts","processedNote","typeParts","mappedData","parseSecureNoteMapping","monthString","processingNotes","extraPart","DisplayName","UserName","Url","nickname","additionalInfo","twoFactAuthToken","cardName","exp_month","exp_year","firstAddressLine","secondAddressLine","zipCode","line","trashed","processStandardItem","processWinOpVaultItem","overview","URLs","parsePasswordHistory","notesPlain","parseFields","sections","section","openContents","faveIndex","typeName","secureContents","maxSize","designationKey","valueKey","fieldDesignation","street","setIdentityAddress","expSplit","tags","tag","getValue","custom_fields","customField","field_type","tagsJson","Tags","tagJson","__parsed_extra","fieldsJson","extraFields","fieldJson","newVersion","altFormat","login_url","identifiers","valObj","expDate","cf","records","record","categoryText","accountName","tagName","passwordSafe","notesDelimiter","getAttribute","groupText","trash","cardholder","verification","expiryMonth","expMonthNumber","expiryYear","expYearNumber","Name","Pwd","Rf_fields","labelEl","cardEl","labelIdEl","labelId","fieldEl","notesEl","candidates","choice","Comment","parseFieldsToNotes","startIndex","loginNodes","loginNode","accountId","usernameText","passwordText","titleText","linkText","notesText","accountLogin","account","parentElement","buildGroupText","PropertiesToIgnore","memo","kind","expiryDate","document_content","ChamberName","parseData","SecretData","CustomData","connected","inactive","reconnectTimer","signalrConnection","off","signalR","HubConnectionBuilder","withUrl","accessTokenFactory","skipNegotiation","transport","HttpTransportType","WebSockets","withHubProtocol","signalRMsgPack","MessagePackHubProtocol","processNotification","NotificationResponse","onclose","reconnect","isAuthedAndUnlocked","updateConnection","sync","reconnectFromActivity","disconnectFromInactivity","contextId","payloadUserId","UserId","myUserId","SyncCipherCreate","SyncCipherUpdate","SyncCipherDelete","SyncLoginDelete","SyncFolderCreate","SyncFolderUpdate","SyncFolderDelete","SyncVault","SyncCiphers","SyncSettings","SyncOrgKeys","LogOut","SyncSendCreate","SyncSendUpdate","SyncSendDelete","SyncCipherNotification","SyncFolderNotification","UserNotification","SyncSendNotification","policyCache","MasterPasswordPolicyOptions","newPassword","toLocaleLowerCase","toLocaleUpperCase","indexing","searchableMinLength","builder","lunr","Builder","boost","extractor","uriExtractor","fieldExtractor","attachmentExtractor","isArray","every","getIndexForSearch","searchCiphersBasic","ciphersMap","searchResults","Query","wildcard","LEADING","TRAILING","q","tokenizer","term","joined","protocolIndex","queryIndex","decryptedSendCache","fileData","Send","cryptoKey","ArrayBuffer","encryptFileData","parseFile","decSends","SendRequest","legacyServerSendFileUpload","encFileData","fileLength","crypto","subtle","ua","isOldSafari","algorithm","iterations","forgeLen","passwordBytes","toByteString","saltBytes","derivedKeyBytes","forge","wcLen","passwordBuf","toBuf","saltBuf","pbkdf2Params","toWebCryptoAlgorithm","importKey","impKey","deriveBits","ikm","outputByteSize","infoBuf","hkdfParams","prk","hashLen","infoArr","runningOkmLength","previousT","okm","md","md5","sha1","valueBytes","update","digest","valueBuf","signingAlgorithm","mac1","mac2","arr1","arr2","getBytes","rand","Uint32Array","util","createBuffer","putInt32","DecryptParameters","meta","encKeyByteString","macKeyByteString","decode64","parameters","dataBuffer","createDecipher","finish","rsaParams","impPrivateKey","exportKey","jwkPrivateKey","jwkPublicKeyParams","kty","ext","impPublicKey","modulusLength","publicExponent","generateKey","getRandomValues","encodeUtf8","toasterConfig","ToasterConfig","showCloseButton","mouseoverTimerStop","animation","lastActivity","idleTimer","isIdle","runOutsideAngular","onmousemove","recordActivity","onmousedown","ontouchstart","onclick","onscroll","onkeypress","setFullWidth","idleStateChanged","sanitize","SecurityContext","HTML","bodyOutputType","BodyOutputType","TrustedHtml","trustedHtml","blur","elRef","formEls","formEl","inputEl"],"mappings":"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qB,G,yGAE3CooE,EAAuB,KACA,KAAvBnzF,EAAIA,IAAIgO,WAAR,MACe,GAAM3M,KAAKssF,WAAW3tF,I,OACzB,OADN+rE,EAAS,SACH,GAAM1qE,KAAK4nC,QAAQle,EAAQghD,I,cAAvConB,EAAY,S,oBACkB,KAAvBnzF,EAAIA,IAAIgO,WAAR,MACK,GAAM3M,KAAK4nC,QAAQle,EAAQ/qB,I,cAAvCmzF,EAAY,S,aAEZ,MAAM,IAAInwF,MAAM,qB,OAEpB,MAAO,CAAC,EAAD,CAAC,IAAI,EAAAioC,mBAAmBlgB,GAASooE,YAjmB5C,GADC,EAAA/H,eAAc,WAAM,qB,iDACA,EAAAngD,qB,8DA4ErB,GADC,EAAAmgD,eAAc,WAAM,sB,mHAwhBzB,EA1rBA,GAAa,EAAAzoF,iB,8EC9BA,EAAA8vF,gBAAkB,CAC3B,SACA,UACA,YACA,QACA,UACA,UACA,SACA,OACA,WACA,WACA,WACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,SACA,SACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,WACA,UACA,OACA,UACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,OACA,UACA,YACA,WACA,WACA,UACA,YACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,SACA,QACA,YACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,SACA,YACA,YACA,YACA,YACA,YACA,OACA,UACA,SACA,SACA,QACA,YACA,SACA,QACA,UACA,QACA,WACA,UACA,YACA,QACA,YACA,YACA,SACA,WACA,YACA,UACA,QACA,OACA,OACA,OACA,MACA,OACA,YACA,QACA,YACA,QACA,UACA,UACA,YACA,QACA,QACA,YACA,WACA,SACA,QACA,QACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,QACA,QACA,YACA,QACA,WACA,UACA,WACA,WACA,OACA,WACA,SACA,SACA,WACA,QACA,YACA,QACA,WACA,YACA,YACA,WACA,YACA,YACA,SACA,YACA,YACA,SACA,UACA,UACA,WACA,OACA,QACA,QACA,QACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,UACA,WACA,YACA,UACA,YACA,UACA,SACA,UACA,UACA,UACA,SACA,SACA,WACA,OACA,YACA,UACA,QACA,SACA,SACA,SACA,UACA,UACA,YACA,YACA,UACA,SACA,UACA,YACA,YACA,WACA,QACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,UACA,WACA,UACA,YACA,UACA,YACA,WACA,WACA,WACA,SACA,UACA,YACA,WACA,SACA,WACA,WACA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,SACA,UACA,QACA,QACA,UACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,WACA,QACA,SACA,UACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,QACA,YACA,YACA,UACA,QACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,WACA,QACA,OACA,WACA,YACA,YACA,WACA,OACA,QACA,WACA,WACA,QACA,QACA,YACA,UACA,WACA,QACA,SACA,UACA,SACA,UACA,UACA,UACA,SACA,UACA,OACA,QACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,QACA,MACA,SACA,YACA,SACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,YACA,SACA,WACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,YACA,SACA,WACA,QACA,OACA,WACA,OACA,SACA,YACA,UACA,SACA,SACA,UACA,YACA,WACA,YACA,YACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,UACA,WACA,QACA,WACA,YACA,SACA,YACA,SACA,SACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,UACA,WACA,QACA,WACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,UACA,SACA,QACA,OACA,OACA,SACA,WACA,SACA,SACA,WACA,YACA,YACA,WACA,SACA,SACA,YACA,WACA,WACA,UACA,YACA,WACA,WACA,YACA,UACA,UACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,YACA,SACA,WACA,WACA,YACA,WACA,QACA,WACA,YACA,SACA,QACA,UACA,QACA,UACA,SACA,WACA,QACA,SACA,UACA,SACA,SACA,YACA,UACA,QACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,QACA,WACA,SACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,SACA,YACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,QACA,WACA,UACA,WACA,SACA,UACA,SACA,OACA,YACA,UACA,YACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,OACA,YACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,OACA,YACA,WACA,YACA,UACA,UACA,SACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,UACA,YACA,YACA,QACA,YACA,YACA,QACA,WACA,YACA,SACA,UACA,SACA,QACA,QACA,UACA,QACA,QACA,WACA,QACA,QACA,UACA,UACA,WACA,SACA,OACA,WACA,QACA,WACA,UACA,WACA,OACA,OACA,WACA,WACA,UACA,OACA,SACA,UACA,QACA,SACA,YACA,QACA,QACA,UACA,SACA,QACA,QACA,WACA,UACA,WACA,WACA,OACA,SACA,UACA,SACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,QACA,OACA,MACA,UACA,OACA,UACA,SACA,UACA,WACA,QACA,WACA,WACA,WACA,QACA,UACA,SACA,SACA,QACA,OACA,YACA,YACA,OACA,YACA,SACA,QACA,SACA,UACA,WACA,UACA,QACA,QACA,QACA,SACA,UACA,WACA,YACA,OACA,YACA,WACA,SACA,QACA,OACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,YACA,YACA,SACA,SACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,YACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,UACA,UACA,SACA,YACA,OACA,QACA,QACA,UACA,UACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,WACA,QACA,QACA,UACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,WACA,QACA,YACA,SACA,WACA,SACA,YACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,UACA,QACA,OACA,QACA,YACA,SACA,OACA,UACA,YACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,QACA,QACA,SACA,SACA,SACA,UACA,YACA,WACA,QACA,OACA,SACA,OACA,SACA,UACA,OACA,WACA,OACA,SACA,UACA,SACA,YACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,WACA,UACA,OACA,UACA,OACA,WACA,WACA,UACA,YACA,WACA,UACA,YACA,OACA,UACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,WACA,UACA,WACA,SACA,QACA,SACA,SACA,UACA,SACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,SACA,QACA,YACA,SACA,UACA,SACA,UACA,UACA,WACA,OACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,UACA,YACA,UACA,YACA,UACA,UACA,QACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,YACA,YACA,YACA,WACA,SACA,YACA,QACA,SACA,UACA,UACA,WACA,UACA,YACA,WACA,YACA,QACA,YACA,YACA,UACA,UACA,UACA,SACA,YACA,QACA,SACA,WACA,SACA,UACA,YACA,YACA,QACA,UACA,UACA,UACA,OACA,OACA,SACA,SACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,WACA,SACA,UACA,WACA,WACA,UACA,YACA,WACA,UACA,SACA,SACA,SACA,UACA,YACA,SACA,QACA,UACA,YACA,SACA,SACA,YACA,QACA,UACA,YACA,UACA,WACA,WACA,UACA,SACA,SACA,QACA,SACA,YACA,WACA,WACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,WACA,QACA,QACA,UACA,YACA,UACA,YACA,WACA,SACA,SACA,UACA,QACA,QACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,WACA,UACA,WACA,UACA,UACA,QACA,UACA,UACA,WACA,QACA,UACA,SACA,WACA,WACA,WACA,UACA,WACA,SACA,WACA,UACA,QACA,QACA,SACA,SACA,OACA,YACA,UACA,QACA,YACA,SACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,YACA,YACA,YACA,WACA,YACA,YACA,QACA,QACA,QACA,OACA,WACA,SACA,WACA,WACA,QACA,WACA,WACA,SACA,YACA,UACA,QACA,UACA,WACA,SACA,OACA,SACA,UACA,WACA,SACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,UACA,SACA,SACA,OACA,QACA,QACA,OACA,QACA,WACA,SACA,SACA,QACA,YACA,QACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,OACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,YACA,WACA,QACA,SACA,UACA,SACA,UACA,WACA,QACA,SACA,WACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,UACA,UACA,WACA,QACA,SACA,UACA,WACA,YACA,QACA,WACA,SACA,SACA,YACA,SACA,UACA,QACA,YACA,UACA,UACA,WACA,YACA,YACA,OACA,WACA,SACA,UACA,SACA,QACA,UACA,MACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,OACA,OACA,OACA,OACA,WACA,WACA,UACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,QACA,QACA,SACA,QACA,WACA,UACA,UACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,YACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,QACA,YACA,UACA,WACA,WACA,SACA,WACA,YACA,YACA,UACA,YACA,YACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,YACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,UACA,YACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,OACA,QACA,OACA,WACA,YACA,UACA,SACA,SACA,SACA,YACA,YACA,WACA,WACA,YACA,QACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,OACA,UACA,SACA,QACA,QACA,QACA,YACA,YACA,WACA,YACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,SACA,WACA,OACA,WACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,YACA,SACA,QACA,YACA,QACA,UACA,UACA,QACA,QACA,QACA,UACA,WACA,WACA,WACA,WACA,SACA,SACA,UACA,YACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,WACA,WACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,UACA,WACA,YACA,UACA,WACA,UACA,WACA,OACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,UACA,UACA,UACA,WACA,UACA,YACA,SACA,WACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,UACA,QACA,QACA,UACA,UACA,YACA,UACA,YACA,UACA,QACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,UACA,UACA,WACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,UACA,UACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,YACA,WACA,UACA,YACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,YACA,UACA,QACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,YACA,QACA,QACA,QACA,OACA,SACA,UACA,YACA,UACA,YACA,WACA,YACA,UACA,MACA,QACA,SACA,UACA,UACA,WACA,SACA,YACA,YACA,MACA,MACA,WACA,SACA,QACA,WACA,SACA,QACA,QACA,WACA,QACA,UACA,YACA,SACA,WACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,WACA,YACA,UACA,WACA,WACA,UACA,OACA,OACA,YACA,OACA,YACA,OACA,WACA,SACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,QACA,SACA,SACA,QACA,QACA,YACA,QACA,WACA,SACA,WACA,YACA,WACA,UACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,WACA,OACA,WACA,UACA,SACA,YACA,YACA,YACA,QACA,WACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,SACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,WACA,YACA,WACA,SACA,YACA,QACA,WACA,QACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,QACA,SACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,SACA,QACA,SACA,QACA,UACA,SACA,UACA,UACA,OACA,YACA,YACA,WACA,YACA,SACA,UACA,YACA,WACA,SACA,SACA,SACA,WACA,YACA,YACA,UACA,UACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,WACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,QACA,UACA,WACA,UACA,UACA,YACA,WACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,OACA,WACA,SACA,YACA,QACA,OACA,SACA,UACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,MACA,WACA,YACA,WACA,OACA,SACA,OACA,WACA,QACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,YACA,QACA,QACA,SACA,SACA,UACA,UACA,UACA,SACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,SACA,WACA,WACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,WACA,OACA,YACA,UACA,OACA,UACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,QACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,WACA,SACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,QACA,SACA,SACA,OACA,WACA,WACA,QACA,QACA,QACA,QACA,OACA,SACA,YACA,SACA,QACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,QACA,QACA,SACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,UACA,QACA,OACA,YACA,SACA,SACA,OACA,SACA,WACA,SACA,OACA,OACA,QACA,OACA,OACA,WACA,YACA,YACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,YACA,QACA,UACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,SACA,QACA,OACA,UACA,QACA,QACA,QACA,UACA,WACA,YACA,WACA,WACA,SACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,QACA,QACA,QACA,YACA,UACA,WACA,UACA,UACA,UACA,QACA,QACA,WACA,SACA,OACA,MACA,SACA,YACA,UACA,WACA,UACA,WACA,WACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,SACA,WACA,OACA,UACA,WACA,WACA,MACA,OACA,SACA,YACA,YACA,UACA,UACA,WACA,SACA,SACA,OACA,OACA,UACA,OACA,QACA,QACA,QACA,UACA,UACA,WACA,UACA,YACA,UACA,WACA,UACA,WACA,WACA,OACA,QACA,UACA,UACA,UACA,SACA,UACA,QACA,UACA,UACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,SACA,UACA,QACA,UACA,SACA,WACA,SACA,YACA,YACA,SACA,WACA,UACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,YACA,OACA,SACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,YACA,OACA,WACA,SACA,OACA,UACA,SACA,WACA,YACA,WACA,MACA,YACA,UACA,YACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,UACA,SACA,QACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,SACA,MACA,WACA,WACA,YACA,QACA,UACA,SACA,MACA,UACA,WACA,MACA,YACA,QACA,YACA,WACA,YACA,QACA,UACA,QACA,QACA,UACA,SACA,UACA,YACA,YACA,QACA,WACA,UACA,SACA,SACA,WACA,SACA,YACA,QACA,UACA,YACA,WACA,OACA,QACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,YACA,QACA,MACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,SACA,SACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,YACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,UACA,SACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,SACA,SACA,SACA,UACA,UACA,SACA,SACA,YACA,WACA,YACA,WACA,SACA,UACA,SACA,SACA,YACA,SACA,SACA,WACA,UACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,WACA,QACA,OACA,SACA,OACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,WACA,UACA,QACA,SACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,WACA,SACA,SACA,UACA,YACA,SACA,SACA,UACA,QACA,QACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,SACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,UACA,QACA,YACA,SACA,YACA,WACA,UACA,QACA,WACA,YACA,YACA,UACA,UACA,OACA,YACA,YACA,YACA,WACA,WACA,QACA,WACA,UACA,OACA,QACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,SACA,UACA,SACA,QACA,WACA,OACA,SACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,YACA,YACA,YACA,QACA,SACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,YACA,SACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,OACA,SACA,UACA,SACA,OACA,QACA,UACA,OACA,WACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,UACA,OACA,UACA,YACA,YACA,UACA,UACA,WACA,SACA,UACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,MACA,QACA,UACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,WACA,WACA,WACA,WACA,QACA,QACA,UACA,SACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,SACA,SACA,WACA,UACA,YACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,WACA,YACA,UACA,UACA,QACA,WACA,QACA,UACA,SACA,WACA,SACA,SACA,SACA,UACA,OACA,SACA,QACA,WACA,SACA,WACA,WACA,UACA,UACA,YACA,QACA,WACA,QACA,UACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,MACA,OACA,UACA,UACA,WACA,WACA,YACA,YACA,QACA,UACA,QACA,QACA,YACA,UACA,WACA,WACA,OACA,UACA,YACA,YACA,YACA,WACA,WACA,SACA,QACA,UACA,WACA,SACA,WACA,UACA,YACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,OACA,UACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,OACA,SACA,UACA,QACA,WACA,UACA,UACA,QACA,SACA,UACA,WACA,OACA,MACA,MACA,OACA,QACA,OACA,WACA,SACA,WACA,SACA,WACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,WACA,WACA,UACA,YACA,WACA,YACA,WACA,QACA,QACA,UACA,UACA,YACA,SACA,UACA,QACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,SACA,YACA,WACA,YACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,WACA,SACA,YACA,WACA,QACA,UACA,UACA,WACA,SACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,QACA,SACA,UACA,QACA,UACA,YACA,SACA,OACA,QACA,YACA,UACA,WACA,WACA,YACA,SACA,QACA,QACA,SACA,WACA,YACA,WACA,QACA,YACA,SACA,MACA,QACA,MACA,YACA,UACA,QACA,OACA,YACA,WACA,UACA,SACA,SACA,UACA,YACA,SACA,YACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,MACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,MACA,WACA,YACA,SACA,UACA,WACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,WACA,WACA,QACA,UACA,YACA,SACA,QACA,YACA,WACA,YACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,YACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,QACA,QACA,YACA,SACA,UACA,YACA,QACA,OACA,WACA,YACA,WACA,SACA,WACA,SACA,SACA,SACA,QACA,UACA,SACA,WACA,QACA,QACA,SACA,QACA,UACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,SACA,WACA,YACA,QACA,UACA,QACA,WACA,UACA,WACA,UACA,SACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,UACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,QACA,QACA,QACA,UACA,WACA,UACA,OACA,SACA,YACA,UACA,SACA,OACA,OACA,WACA,OACA,UACA,QACA,WACA,WACA,YACA,OACA,UACA,QACA,UACA,OACA,OACA,OACA,QACA,WACA,YACA,QACA,SACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,SACA,SACA,SACA,OACA,OACA,OACA,WACA,YACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,UACA,WACA,QACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,UACA,YACA,QACA,QACA,YACA,UACA,UACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,QACA,OACA,UACA,WACA,WACA,YACA,SACA,QACA,UACA,WACA,OACA,YACA,OACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,OACA,UACA,OACA,WACA,SACA,QACA,QACA,SACA,WACA,SACA,QACA,SACA,UACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,UACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,OACA,WACA,QACA,OACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,OACA,OACA,QACA,QACA,UACA,OACA,SACA,MACA,UACA,WACA,YACA,WACA,UACA,WACA,SACA,SACA,UACA,UACA,MACA,UACA,QACA,OACA,UACA,OACA,SACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,YACA,SACA,QACA,YACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,WACA,QACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,UACA,QACA,UACA,OACA,SACA,QACA,UACA,YACA,QACA,SACA,YACA,WACA,UACA,WACA,YACA,OACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,WACA,SACA,OACA,WACA,WACA,YACA,YACA,YACA,SACA,SACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,UACA,WACA,OACA,OACA,QACA,UACA,YACA,UACA,QACA,UACA,YACA,QACA,SACA,SACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,QACA,WACA,QACA,SACA,SACA,YACA,QACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,WACA,WACA,UACA,WACA,SACA,SACA,WACA,OACA,MACA,OACA,OACA,OACA,QACA,SACA,WACA,SACA,QACA,YACA,WACA,UACA,SACA,YACA,WACA,YACA,WACA,WACA,SACA,SACA,YACA,YACA,SACA,WACA,SACA,OACA,SACA,UACA,WACA,WACA,SACA,SACA,SACA,UACA,SACA,YACA,UACA,QACA,OACA,UACA,OACA,SACA,YACA,MACA,SACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,UACA,QACA,OACA,OACA,MACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,QACA,OACA,QACA,WACA,SACA,SACA,YACA,WACA,WACA,QACA,YACA,WACA,UACA,WACA,UACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,SACA,YACA,UACA,WACA,YACA,YACA,WACA,SACA,UACA,YACA,YACA,WACA,UACA,YACA,YACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,SACA,SACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,WACA,YACA,YACA,UACA,QACA,UACA,YACA,UACA,OACA,YACA,SACA,QACA,MACA,MACA,SACA,SACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,MACA,UACA,UACA,SACA,UACA,UACA,WACA,QACA,OACA,QACA,UACA,UACA,OACA,UACA,YACA,OACA,OACA,YACA,UACA,QACA,SACA,SACA,MACA,QACA,SACA,QACA,SACA,WACA,OACA,UACA,UACA,MACA,SACA,YACA,SACA,UACA,OACA,UACA,WACA,WACA,YACA,QACA,OACA,MACA,SACA,WACA,YACA,SACA,UACA,WACA,YACA,WACA,QACA,YACA,WACA,YACA,OACA,SACA,WACA,UACA,QACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,OACA,WACA,WACA,OACA,SACA,UACA,SACA,UACA,WACA,SACA,QACA,OACA,UACA,YACA,UACA,SACA,WACA,WACA,QACA,WACA,UACA,SACA,QACA,QACA,SACA,WACA,OACA,MACA,OACA,SACA,OACA,WACA,WACA,SACA,OACA,OACA,WACA,WACA,YACA,WACA,OACA,SACA,SACA,WACA,SACA,WACA,UACA,UACA,UACA,OACA,UACA,UACA,YACA,WACA,SACA,UACA,UACA,OACA,SACA,QACA,OACA,UACA,WACA,OACA,QACA,WACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,UACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,QACA,UACA,SACA,QACA,SACA,UACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,UACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,OACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,OACA,UACA,SACA,YACA,UACA,QACA,OACA,SACA,OACA,OACA,UACA,SACA,UACA,YACA,WACA,SACA,UACA,QACA,WACA,SACA,WACA,YACA,YACA,SACA,UACA,YACA,UACA,UACA,WACA,MACA,OACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,SACA,QACA,QACA,OACA,OACA,UACA,YACA,QACA,QACA,UACA,WACA,OACA,QACA,WACA,WACA,SACA,SACA,WACA,UACA,OACA,OACA,MACA,UACA,UACA,SACA,OACA,OACA,WACA,YACA,SACA,SACA,SACA,UACA,QACA,SACA,QACA,YACA,UACA,SACA,SACA,YACA,YACA,QACA,UACA,YACA,WACA,YACA,YACA,SACA,WACA,UACA,SACA,YACA,WACA,YACA,UACA,UACA,SACA,QACA,WACA,WACA,YACA,YACA,OACA,QACA,OACA,YACA,OACA,SACA,WACA,SACA,YACA,UACA,YACA,WACA,QACA,YACA,SACA,QACA,YACA,WACA,WACA,SACA,WACA,WACA,QACA,OACA,UACA,YACA,WACA,UACA,SACA,UACA,WACA,QACA,YACA,WACA,YACA,YACA,YACA,UACA,YACA,WACA,WACA,SACA,WACA,UACA,YACA,WACA,WACA,QACA,YACA,SACA,YACA,OACA,OACA,SACA,UACA,YACA,UACA,WACA,UACA,WACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,YACA,UACA,UACA,UACA,YACA,WACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,SACA,SACA,OACA,MACA,WACA,YACA,UACA,UACA,WACA,QACA,QACA,YACA,YACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,YACA,SACA,UACA,SACA,QACA,YACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,UACA,WACA,SACA,UACA,UACA,UACA,YACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,OACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,WACA,WACA,QACA,WACA,WACA,UACA,QACA,SACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,QACA,SACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,YACA,WACA,QACA,WACA,OACA,YACA,WACA,WACA,UACA,MACA,YACA,SACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,YACA,YACA,YACA,WACA,MACA,SACA,WACA,UACA,YACA,WACA,WACA,WACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,OACA,WACA,YACA,SACA,WACA,YACA,SACA,YACA,QACA,QACA,YACA,WACA,UACA,WACA,UACA,WACA,QACA,YACA,YACA,QACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,OACA,MACA,MACA,WACA,QACA,OACA,SACA,UACA,WACA,WACA,YACA,YACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,WACA,UACA,YACA,SACA,QACA,YACA,QACA,YACA,WACA,SACA,UACA,YACA,WACA,QACA,QACA,SACA,YACA,QACA,UACA,UACA,SACA,YACA,QACA,UACA,SACA,WACA,OACA,YACA,YACA,SACA,OACA,SACA,SACA,SACA,UACA,YACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,QACA,YACA,OACA,SACA,SACA,UACA,QACA,SACA,UACA,YACA,WACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,UACA,OACA,SACA,OACA,UACA,QACA,OACA,MACA,YACA,SACA,WACA,WACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,QACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,QACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,WACA,YACA,QACA,SACA,QACA,MACA,MACA,QACA,MACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,YACA,OACA,UACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,SACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,SACA,QACA,SACA,UACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,MACA,QACA,WACA,QACA,OACA,UACA,WACA,OACA,WACA,UACA,WACA,UACA,QACA,SACA,WACA,OACA,WACA,QACA,UACA,YACA,UACA,OACA,SACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,WACA,UACA,YACA,YACA,YACA,WACA,QACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,MACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,QACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,YACA,UACA,UACA,SACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,OACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,MACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,SACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,QACA,SACA,UACA,SACA,YACA,OACA,WACA,YACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,QACA,WACA,OACA,YACA,QACA,UACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,SACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,UACA,SACA,WACA,SACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,QACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,YACA,SACA,WACA,YACA,OACA,WACA,UACA,QACA,YACA,UACA,SACA,YACA,YACA,SACA,WACA,QACA,YACA,WACA,SACA,SACA,UACA,UACA,WACA,SACA,QACA,QACA,SACA,UACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,UACA,SACA,OACA,SACA,WACA,UACA,SACA,UACA,UACA,YACA,WACA,UACA,YACA,QACA,SACA,UACA,WACA,YACA,MACA,WACA,UACA,QACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,QACA,OACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,YACA,SACA,YACA,QACA,SACA,WACA,QACA,YACA,SACA,YACA,YACA,QACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,UACA,UACA,WACA,QACA,UACA,QACA,SACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,UACA,WACA,YACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,UACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,YACA,WACA,QACA,WACA,QACA,SACA,YACA,SACA,WACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,UACA,WACA,SACA,OACA,YACA,UACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,YACA,UACA,YACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,SACA,QACA,WACA,WACA,UACA,WACA,YACA,OACA,SACA,WACA,WACA,SACA,YACA,WACA,UACA,SACA,WACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,UACA,WACA,SACA,SACA,UACA,YACA,UACA,UACA,QACA,SACA,WACA,QACA,UACA,OACA,WACA,YACA,UACA,QACA,SACA,MACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,YACA,UACA,SACA,WACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,SACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,UACA,SACA,YACA,YACA,YACA,SACA,UACA,YACA,UACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,UACA,SACA,UACA,UACA,YACA,UACA,UACA,WACA,SACA,YACA,WACA,QACA,SACA,YACA,UACA,UACA,SACA,QACA,WACA,QACA,QACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,YACA,WACA,WACA,YACA,QACA,UACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,QACA,QACA,YACA,SACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,UACA,YACA,WACA,SACA,YACA,YACA,WACA,WACA,QACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,QACA,YACA,QACA,UACA,MACA,UACA,SACA,YACA,SACA,SACA,MACA,OACA,YACA,OACA,UACA,QACA,YACA,OACA,SACA,SACA,QACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,SACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,QACA,UACA,WACA,SACA,SACA,UACA,SACA,SACA,WACA,YACA,OACA,QACA,YACA,WACA,UACA,WACA,WACA,YACA,SACA,YACA,UACA,WACA,UACA,SACA,QACA,UACA,OACA,SACA,WACA,UACA,YACA,SACA,QACA,WACA,QACA,WACA,QACA,UACA,YACA,YACA,UACA,UACA,QACA,UACA,UACA,SACA,YACA,YACA,WACA,UACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,QACA,QACA,QACA,UACA,YACA,QACA,OACA,SACA,YACA,WACA,YACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,WACA,YACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,UACA,SACA,OACA,SACA,QACA,SACA,WACA,OACA,SACA,QACA,YACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,SACA,SACA,OACA,UACA,SACA,QACA,SACA,SACA,UACA,YACA,WACA,QACA,YACA,WACA,WACA,UACA,WACA,OACA,YACA,WACA,UACA,YACA,YACA,YACA,WACA,SACA,WACA,WACA,WACA,UACA,YACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,SACA,SACA,YACA,SACA,SACA,SACA,SACA,YACA,YACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,UACA,WACA,WACA,WACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,YACA,UACA,UACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,UACA,SACA,WACA,YACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,UACA,WACA,WACA,QACA,QACA,UACA,UACA,YACA,WACA,WACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,SACA,SACA,WACA,SACA,YACA,OACA,SACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,QACA,UACA,YACA,SACA,UACA,SACA,YACA,UACA,UACA,UACA,WACA,SACA,WACA,YACA,YACA,WACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,WACA,UACA,SACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,UACA,SACA,UACA,QACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,YACA,OACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,UACA,WACA,SACA,SACA,WACA,YACA,YACA,SACA,WACA,YACA,SACA,YACA,YACA,UACA,UACA,UACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,SACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,WACA,SACA,OACA,SACA,UACA,OACA,UACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,UACA,OACA,UACA,WACA,WACA,UACA,SACA,WACA,UACA,OACA,SACA,OACA,UACA,UACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,UACA,QACA,UACA,OACA,QACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,UACA,UACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,SACA,UACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,WACA,UACA,QACA,YACA,UACA,SACA,UACA,QACA,OACA,SACA,UACA,QACA,OACA,OACA,OACA,MACA,UACA,WACA,YACA,SACA,YACA,SACA,YACA,UACA,WACA,QACA,UACA,SACA,YACA,YACA,SACA,WACA,UACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,QACA,SACA,WACA,SACA,SACA,QACA,SACA,QACA,OACA,WACA,SACA,UACA,YACA,YACA,OACA,SACA,WACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,UACA,SACA,WACA,UACA,UACA,YACA,UACA,YACA,YACA,WACA,QACA,WACA,YACA,OACA,QACA,UACA,YACA,QACA,UACA,YACA,UACA,OACA,YACA,QACA,UACA,WACA,QACA,YACA,YACA,UACA,WACA,WACA,YACA,QACA,QACA,SACA,UACA,QACA,UACA,SACA,QACA,YACA,MACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,WACA,OACA,UACA,UACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,QACA,UACA,YACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,QACA,QACA,WACA,QACA,QACA,UACA,QACA,SACA,YACA,YACA,SACA,YACA,SACA,UACA,QACA,WACA,SACA,YACA,UACA,WACA,WACA,SACA,WACA,WACA,WACA,YACA,YACA,QACA,UACA,UACA,SACA,WACA,SACA,WACA,YACA,SACA,SACA,UACA,YACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,WACA,YACA,SACA,UACA,WACA,YACA,YACA,SACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,QACA,SACA,WACA,WACA,WACA,SACA,WACA,UACA,UACA,UACA,SACA,WACA,YACA,YACA,WACA,OACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,UACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,WACA,QACA,YACA,SACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,UACA,WACA,QACA,UACA,UACA,SACA,WACA,UACA,UACA,SACA,WACA,QACA,YACA,YACA,UACA,UACA,WACA,SACA,QACA,SACA,UACA,YACA,UACA,SACA,QACA,QACA,WACA,UACA,YACA,UACA,QACA,QACA,UACA,UACA,QACA,UACA,WACA,QACA,SACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,YACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,SACA,SACA,UACA,WACA,YACA,SACA,UACA,SACA,UACA,QACA,UACA,YACA,UACA,QACA,OACA,QACA,YACA,QACA,QACA,WACA,UACA,WACA,WACA,QACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,QACA,UACA,YACA,YACA,WACA,QACA,SACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,SACA,SACA,UACA,WACA,YACA,SACA,QACA,SACA,WACA,UACA,UACA,YACA,OACA,QACA,OACA,MACA,UACA,WACA,UACA,SACA,SACA,SACA,OACA,UACA,WACA,WACA,SACA,SACA,UACA,OACA,YACA,QACA,OACA,OACA,SACA,YACA,SACA,YACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,UACA,MACA,QACA,SACA,SACA,SACA,UACA,WACA,YACA,UACA,UACA,QACA,UACA,WACA,YACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,UACA,YACA,WACA,WACA,UACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,UACA,UACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,SACA,YACA,UACA,WACA,WACA,QACA,UACA,WACA,WACA,UACA,QACA,YACA,UACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,OACA,UACA,QACA,WACA,YACA,UACA,WACA,QACA,UACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,YACA,SACA,SACA,UACA,QACA,SACA,YACA,UACA,WACA,YACA,WACA,WACA,QACA,WACA,YACA,SACA,OACA,OACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,OACA,YACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,QACA,UACA,YACA,UACA,WACA,UACA,QACA,WACA,QACA,YACA,QACA,QACA,QACA,UACA,QACA,OACA,SACA,YACA,YACA,UACA,QACA,UACA,SACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,QACA,UACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,UACA,WACA,SACA,UACA,SACA,QACA,UACA,UACA,QACA,QACA,WACA,YACA,YACA,UACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,QACA,OACA,QACA,UACA,SACA,WACA,QACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,YACA,SACA,QACA,YACA,UACA,WACA,YACA,UACA,WACA,QACA,OACA,SACA,YACA,SACA,SACA,QACA,SACA,QACA,QACA,UACA,SACA,UACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,YACA,UACA,YACA,WACA,YACA,UACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,UACA,QACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,QACA,WACA,WACA,SACA,SACA,SACA,YACA,UACA,YACA,YACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,QACA,SACA,WACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,QACA,WACA,UACA,YACA,UACA,WACA,SACA,WACA,UACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,QACA,YACA,WACA,WACA,YACA,QACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,OACA,SACA,UACA,OACA,SACA,UACA,YACA,YACA,WACA,YACA,UACA,OACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,QACA,YACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,UACA,QACA,QACA,SACA,QACA,QACA,YACA,YACA,WACA,UACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,QACA,QACA,QACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,QACA,SACA,SACA,SACA,WACA,YACA,QACA,SACA,UACA,SACA,WACA,SACA,SACA,SACA,SACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,WACA,YACA,SACA,YACA,UACA,WACA,QACA,SACA,QACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,SACA,QACA,UACA,WACA,SACA,UACA,YACA,QACA,QACA,UACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,YACA,UACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,YACA,YACA,YACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,UACA,WACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,UACA,YACA,OACA,UACA,SACA,SACA,OACA,WACA,YACA,UACA,SACA,YACA,WACA,QACA,UACA,QACA,WACA,WACA,WACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,WACA,YACA,SACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,SACA,WACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,SACA,UACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,YACA,WACA,SACA,WACA,UACA,YACA,WACA,QACA,UACA,UACA,WACA,YACA,YACA,OACA,YACA,UACA,YACA,OACA,WACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,QACA,QACA,SACA,SACA,UACA,UACA,QACA,SACA,QACA,QACA,QACA,WACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,QACA,SACA,UACA,UACA,QACA,WACA,SACA,SACA,YACA,UACA,YACA,UACA,SACA,WACA,QACA,OACA,UACA,WACA,UACA,UACA,WACA,UACA,YACA,MACA,UACA,OACA,SACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,SACA,OACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,UACA,UACA,OACA,YACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,OACA,SACA,QACA,YACA,UACA,QACA,WACA,SACA,WACA,SACA,QACA,SACA,QACA,OACA,OACA,UACA,YACA,OACA,QACA,QACA,WACA,WACA,UACA,UACA,YACA,QACA,SACA,WACA,UACA,UACA,YACA,WACA,WACA,QACA,UACA,QACA,QACA,SACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,WACA,SACA,YACA,SACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,WACA,WACA,OACA,YACA,UACA,QACA,QACA,QACA,SACA,WACA,UACA,OACA,QACA,UACA,UACA,YACA,YACA,WACA,UACA,OACA,SACA,OACA,OACA,QACA,SACA,UACA,YACA,UACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,OACA,UACA,OACA,SACA,SACA,SACA,UACA,YACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,UACA,QACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,UACA,SACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,WACA,WACA,OACA,YACA,WACA,YACA,UACA,QACA,SACA,OACA,UACA,UACA,YACA,SACA,SACA,QACA,WACA,SACA,QACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,WACA,WACA,UACA,YACA,SACA,WACA,WACA,UACA,QACA,SACA,YACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,YACA,SACA,WACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,YACA,UACA,WACA,WACA,YACA,QACA,MACA,QACA,WACA,UACA,UACA,UACA,MACA,UACA,QACA,SACA,WACA,QACA,SACA,UACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,MACA,QACA,QACA,QACA,WACA,SACA,YACA,SACA,QACA,QACA,UACA,YACA,OACA,WACA,QACA,QACA,QACA,YACA,UACA,UACA,WACA,SACA,SACA,UACA,SACA,QACA,OACA,QACA,WACA,YACA,QACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,UACA,YACA,WACA,SACA,SACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,UACA,WACA,WACA,YACA,UACA,YACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,YACA,UACA,YACA,WACA,QACA,YACA,UACA,YACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,SACA,YACA,UACA,YACA,WACA,UACA,WACA,UACA,SACA,WACA,SACA,YACA,UACA,WACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,YACA,YACA,YACA,SACA,WACA,UACA,YACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,QACA,YACA,YACA,YACA,YACA,YACA,QACA,WACA,YACA,SACA,WACA,OACA,YACA,WACA,WACA,UACA,SACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,SACA,YACA,WACA,UACA,WACA,UACA,YACA,YACA,SACA,SACA,YACA,YACA,YACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,WACA,WACA,SACA,SACA,WACA,UACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,SACA,WACA,YACA,SACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,UACA,UACA,YACA,WACA,UACA,WACA,WACA,SACA,QACA,QACA,UACA,WACA,WACA,YACA,SACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,UACA,WACA,UACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,YACA,UACA,QACA,YACA,SACA,WACA,YACA,SACA,UACA,YACA,YACA,YACA,SACA,YACA,WACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,WACA,YACA,SACA,UACA,UACA,WACA,SACA,SACA,SACA,WACA,YACA,SACA,OACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,SACA,UACA,SACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,UACA,SACA,SACA,YACA,UACA,SACA,QACA,UACA,OACA,YACA,OACA,QACA,QACA,UACA,UACA,UACA,SACA,SACA,QACA,UACA,SACA,SACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,QACA,SACA,SACA,YACA,QACA,UACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,OACA,QACA,SACA,YACA,SACA,WACA,SACA,WACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,QACA,QACA,YACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,YACA,WACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,YACA,SACA,QACA,OACA,WACA,UACA,QACA,WACA,SACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,UACA,WACA,QACA,OACA,YACA,UACA,WACA,UACA,UACA,SACA,WACA,UACA,QACA,QACA,WACA,WACA,UACA,WACA,YACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,QACA,UACA,OACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,QACA,QACA,SACA,YACA,MACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,SACA,UACA,SACA,WACA,YACA,YACA,WACA,YACA,UACA,SACA,SACA,YACA,UACA,UACA,WACA,YACA,UACA,OACA,UACA,QACA,QACA,WACA,SACA,OACA,WACA,SACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,WACA,UACA,QACA,WACA,UACA,WACA,SACA,MACA,OACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,SACA,YACA,UACA,SACA,YACA,OACA,OACA,QACA,UACA,OACA,OACA,UACA,SACA,WACA,SACA,OACA,QACA,WACA,SACA,OACA,SACA,OACA,OACA,WACA,QACA,UACA,SACA,SACA,WACA,SACA,MACA,OACA,YACA,YACA,YACA,YACA,YACA,UACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,UACA,YACA,QACA,YACA,YACA,QACA,QACA,QACA,MACA,UACA,QACA,SACA,WACA,UACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,UACA,UACA,YACA,UACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,MACA,UACA,UACA,OACA,OACA,OACA,WACA,WACA,SACA,WACA,QACA,UACA,OACA,MACA,YACA,UACA,QACA,MACA,SACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,MACA,UACA,QACA,MACA,WACA,OACA,YACA,QACA,YACA,UACA,UACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,YACA,YACA,UACA,S,68CCjmPJ,aAEA,QAOA,aAUI,WAAoB71E,EAAgCuwB,EACxCimD,GADQ,KAAAx2E,aAAgC,KAAAuwB,iBACxC,KAAAimD,uBAoGhB,OAlGI,YAAAC,eAAA,WACI,OAAwB,MAApBhyF,KAAKiyF,YACEjyF,KAAKiyF,YACLjyF,KAAK+Z,QACL/Z,KAAK+Z,QAET,MAGL,YAAAm4E,mBAAN,W,oGACyB,SAAMlyF,KAAK8rC,eAAettC,IAAI,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,EAAAkL,cAA/B,EAAA+3F,0B,8ECXtB,aAAS,EAAAllD,eAAA,EAAAA,eACT,YAAS,EAAAhlC,SAAA,EAAAA,SACT,aAAS,EAAA5P,WAAA,EAAAA,WACT,aAAS,EAAAc,UAAA,EAAAA,UACT,aAAS,EAAAgc,aAAA,EAAAA,aACT,aAAS,EAAArgB,aAAA,EAAAA,aACT,aAAS,EAAA4D,UAAA,EAAAA,UACT,YAAS,EAAAuB,eAAA,EAAAA,eACT,cAAS,EAAAwrE,KAAA,EAAAA,M,uFCRT,SAAY2sB,GACR,2CACA,2CACA,yCACA,2CACA,iCAEA,6BACA,iCACA,2CACA,2CACA,2CACA,oCAEA,wBAEA,wCACA,wCACA,wCAlBJ,CAAY,EAAAA,mBAAA,EAAAA,iBAAgB,M,wGCA5B,WAGA,OACA,OACA,OAGA,EAAQ,K,qBAKJ,EAAAC,iBAGJ,EAAAC,kBAAyBC,gBAAgB,EAAD,UAAY,CAAEC,qBAAqB,K,iGChB3E,OAEA,WACA,SAEA,SAEA,SAEA,GADA,KACA,OACA,QACA,SAEA,SAEA,UACA,QAEA,SACA,SAEA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,SAGA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UAIA,UACA,UAGA,UACA,UAGA,UAGA,UACA,UAGA,UAIA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,SACA,UAEA,SACA,SACA,SACA,WACA,WACA,UACA,SACA,UACA,SACA,SACA,UAEA,UACA,SACA,WACA,UAEA,QAIA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,W,gBAEA,GAAAC,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAY,SAC/B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAY,SAC/B,GAAAA,mBAAmB,WAAY,SAC/B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAY,SAC/B,GAAAA,mBAAmB,WAAY,SAE/B,gC,wCA+MaC,EAAS,WAFN,EAAAC,gB,8DAEHD,IAAS,UAHP,CAAC,GAAAE,UAAS,SA3MZ,CACL,EAAAC,cACA,EAAAC,wBACA,EAAAC,YACA,EAAAC,iBACA,EAAAC,eACA,EAAAC,cAAcC,UACd,EAAAC,qBACA,EAAAC,mB,EATR,GA+Ma,EAAAX,c,iEAAAA,GAAS,eAnMd,GAAAthG,mBACA,EAAAqnD,yBACA,GAAA8f,gBACA,EAAAzf,4BACA,GAAA4Q,iBACA,EAAA3O,qBACA,GAAA5S,mBACA,GAAAlhB,iBACA,GAAAyhB,uBACA,EAAAqkB,qBACA,GAAAtjB,uBACA,GAAA34C,mBACA,GAAA2zC,gBACA,EAAAkuD,aACA,GAAArhD,qBACA,GAAAvvC,mBACA,EAAAyQ,gBACA,GAAA8gF,mBACA,GAAAC,gBACA,GAAA3zB,sBACA,GAAA9qB,qBACA,GAAAhB,oBACA,GAAAc,kBACA,GAAAT,qBACA,GAAAK,mBACA,GAAAniD,iBACA,GAAAyoE,qBACA,GAAAgC,mBACA,GAAAt7B,wBACA,EAAA0qB,oBACA,GAAAz+B,iBACA,GAAAulB,qBACA,GAAA+C,kBACA,GAAAknB,4BACA,GAAA3D,6BACA,GAAAE,uBACA,EAAA7Q,4BACA,GAAAiV,qBACA,EAAAjR,yBACA,GAAAiY,gCACA,GAAAnB,oCACA,GAAAyC,yBACA,GAAAlB,gCACA,GAAAa,iCACA,GAAA5B,6BACA,GAAAX,0BACA,GAAA33B,gBACA,GAAAS,gCACA,GAAA2kB,qBACA,GAAAuQ,uBACA,EAAAzhC,gBACA,EAAA2W,wBACA,GAAAva,mBACA,EAAA8c,cACA,GAAA9oD,SACA,GAAAua,cACA,GAAAglC,gBACA,GAAAY,iCACA,GAAA9uC,uBACA,GAAAu9D,iBACA,EAAA1lB,cACA,EAAAS,eACA,EAAAxyC,eACA,EAAAs4B,gBACA,GAAAi/B,iBACA,mBACA,oBACA,EAAAhV,6BACA,GAAArwB,2BACA,GAAAsyB,kCACA,wBACA,oBACA,6BACA,wBACA,wBACA,uBACA,kBACA,mBACA,mCACA,mBACA,oCACA,wBACA,sBACA,kBACA,uBACA,kBACA,kBACA,sBACA,oBACA,kCACA,qBACA,kBACA,2BACA,uBACA,uBACA,sBACA,GAAArsB,uBACA,EAAAuY,4BACA,oCACA,kBACA,gCACA,GAAAqoB,2BACA,GAAAJ,kCACA,EAAA5hD,0BACA,GAAA3N,iBACA,GAAA4uD,iBACA,GAAAjF,iBACA,GAAAx1B,oBACA,EAAAoV,uBACA,EAAAG,0BACA,EAAAY,kBACA,GAAAtK,+BACA,GAAAgjD,kBACA,GAAA90E,WACA,GAAAk3B,oBACA,oBACA,GAAAm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","file":"app/main.a34068436143996e1f65.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([753,2]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export abstract class I18nService {\n locale: string;\n supportedTranslationLocales: string[];\n translationLocale: string;\n collator: Intl.Collator;\n localeNames: Map;\n t: (id: string, p1?: string, p2?: string, p3?: string) => string;\n translate: (id: string, p1?: string, p2?: string, p3?: string) => string;\n}\n","import { DeviceType } from '../enums/deviceType';\n\nexport abstract class PlatformUtilsService {\n identityClientId: string;\n getDevice: () => DeviceType;\n getDeviceString: () => string;\n isFirefox: () => boolean;\n isChrome: () => boolean;\n isEdge: () => boolean;\n isOpera: () => boolean;\n isVivaldi: () => boolean;\n isSafari: () => boolean;\n isIE: () => boolean;\n isMacAppStore: () => boolean;\n isViewOpen: () => Promise;\n /**\n * @deprecated This only ever returns null. Pull from your platform's storage using ConstantsService.vaultTimeoutKey\n */\n lockTimeout: () => number;\n launchUri: (uri: string, options?: any) => void;\n saveFile: (win: Window, blobData: any, blobOptions: any, fileName: string) => void;\n getApplicationVersion: () => Promise;\n supportsWebAuthn: (win: Window) => boolean;\n supportsDuo: () => boolean;\n showToast: (type: 'error' | 'success' | 'warning' | 'info', title: string, text: string | string[],\n options?: any) => void;\n showDialog: (body: string, title?: string, confirmText?: string, cancelText?: string,\n type?: string, bodyIsHtml?: boolean) => Promise;\n isDev: () => boolean;\n isSelfHost: () => boolean;\n copyToClipboard: (text: string, options?: any) => void;\n readFromClipboard: (options?: any) => Promise;\n supportsBiometric: () => Promise;\n authenticateBiometric: () => Promise;\n getDefaultSystemTheme: () => Promise<'light' | 'dark'>;\n onDefaultSystemThemeChange: (callback: ((theme: 'light' | 'dark') => unknown)) => unknown;\n supportsSecureStorage: () => boolean;\n}\n","import { PolicyType } from '../enums/policyType';\n\nimport { EnvironmentUrls } from '../models/domain/environmentUrls';\nimport { AttachmentRequest } from '../models/request/attachmentRequest';\n\nimport { BitPayInvoiceRequest } from '../models/request/bitPayInvoiceRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkRestoreRequest } from '../models/request/cipherBulkRestoreRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { DeleteRecoverRequest } from '../models/request/deleteRecoverRequest';\nimport { EmailRequest } from '../models/request/emailRequest';\nimport { EmailTokenRequest } from '../models/request/emailTokenRequest';\nimport { EmergencyAccessAcceptRequest } from '../models/request/emergencyAccessAcceptRequest';\nimport { EmergencyAccessConfirmRequest } from '../models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessInviteRequest } from '../models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessPasswordRequest } from '../models/request/emergencyAccessPasswordRequest';\nimport { EmergencyAccessUpdateRequest } from '../models/request/emergencyAccessUpdateRequest';\nimport { EventRequest } from '../models/request/eventRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { GroupRequest } from '../models/request/groupRequest';\nimport { IapCheckRequest } from '../models/request/iapCheckRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportDirectoryRequest } from '../models/request/importDirectoryRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KdfRequest } from '../models/request/kdfRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { OrganizationCreateRequest } from '../models/request/organizationCreateRequest';\nimport { OrganizationTaxInfoUpdateRequest } from '../models/request/organizationTaxInfoUpdateRequest';\nimport { OrganizationUpdateRequest } from '../models/request/organizationUpdateRequest';\nimport { OrganizationUpgradeRequest } from '../models/request/organizationUpgradeRequest';\nimport { OrganizationUserAcceptRequest } from '../models/request/organizationUserAcceptRequest';\nimport { OrganizationUserConfirmRequest } from '../models/request/organizationUserConfirmRequest';\nimport { OrganizationUserInviteRequest } from '../models/request/organizationUserInviteRequest';\nimport { OrganizationUserResetPasswordEnrollmentRequest } from '../models/request/organizationUserResetPasswordEnrollmentRequest';\nimport { OrganizationUserUpdateGroupsRequest } from '../models/request/organizationUserUpdateGroupsRequest';\nimport { OrganizationUserUpdateRequest } from '../models/request/organizationUserUpdateRequest';\nimport { PasswordHintRequest } from '../models/request/passwordHintRequest';\nimport { PasswordRequest } from '../models/request/passwordRequest';\nimport { PasswordVerificationRequest } from '../models/request/passwordVerificationRequest';\nimport { PaymentRequest } from '../models/request/paymentRequest';\nimport { PolicyRequest } from '../models/request/policyRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { RegisterRequest } from '../models/request/registerRequest';\nimport { SeatRequest } from '../models/request/seatRequest';\nimport { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';\nimport { SendAccessRequest } from '../models/request/sendAccessRequest';\nimport { SendRequest } from '../models/request/sendRequest';\nimport { SetPasswordRequest } from '../models/request/setPasswordRequest';\nimport { StorageRequest } from '../models/request/storageRequest';\nimport { TaxInfoUpdateRequest } from '../models/request/taxInfoUpdateRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\nimport { TwoFactorEmailRequest } from '../models/request/twoFactorEmailRequest';\nimport { TwoFactorProviderRequest } from '../models/request/twoFactorProviderRequest';\nimport { TwoFactorRecoveryRequest } from '../models/request/twoFactorRecoveryRequest';\nimport { UpdateDomainsRequest } from '../models/request/updateDomainsRequest';\nimport { UpdateKeyRequest } from '../models/request/updateKeyRequest';\nimport { UpdateProfileRequest } from '../models/request/updateProfileRequest';\nimport { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';\nimport { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';\nimport { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';\nimport { UpdateTwoFactorWebAuthnDeleteRequest } from '../models/request/updateTwoFactorWebAuthnDeleteRequest';\nimport { UpdateTwoFactorWebAuthnRequest } from '../models/request/updateTwoFactorWebAuthnRequest';\nimport { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';\nimport { VerifyBankRequest } from '../models/request/verifyBankRequest';\nimport { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest';\nimport { VerifyEmailRequest } from '../models/request/verifyEmailRequest';\n\nimport { ApiKeyResponse } from '../models/response/apiKeyResponse';\nimport { AttachmentResponse } from '../models/response/attachmentResponse';\nimport { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';\nimport { BillingResponse } from '../models/response/billingResponse';\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport {\n CollectionGroupDetailsResponse,\n CollectionResponse,\n} from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse\n} from '../models/response/emergencyAccessResponse';\nimport { EventResponse } from '../models/response/eventResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n GroupDetailsResponse,\n GroupResponse,\n} from '../models/response/groupResponse';\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\nimport { ListResponse } from '../models/response/listResponse';\nimport { OrganizationResponse } from '../models/response/organizationResponse';\nimport { OrganizationSubscriptionResponse } from '../models/response/organizationSubscriptionResponse';\nimport {\n OrganizationUserDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from '../models/response/organizationUserResponse';\nimport { PaymentResponse } from '../models/response/paymentResponse';\nimport { PlanResponse } from '../models/response/planResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { PreloginResponse } from '../models/response/preloginResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';\nimport { SendAccessResponse } from '../models/response/sendAccessResponse';\nimport { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';\nimport { SendFileUploadDataResponse } from '../models/response/sendFileUploadDataResponse';\nimport { SendResponse } from '../models/response/sendResponse';\nimport { SubscriptionResponse } from '../models/response/subscriptionResponse';\nimport { SyncResponse } from '../models/response/syncResponse';\nimport { TaxInfoResponse } from '../models/response/taxInfoResponse';\nimport { TaxRateResponse } from '../models/response/taxRateResponse';\nimport { TwoFactorAuthenticatorResponse } from '../models/response/twoFactorAuthenticatorResponse';\nimport { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';\nimport { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';\nimport { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';\nimport { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';\nimport { ChallengeResponse, TwoFactorWebAuthnResponse } from '../models/response/twoFactorWebAuthnResponse';\nimport { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';\nimport { UserKeyResponse } from '../models/response/userKeyResponse';\n\nimport { SendAccessView } from '../models/view/sendAccessView';\n\nexport abstract class ApiService {\n urlsSet: boolean;\n apiBaseUrl: string;\n identityBaseUrl: string;\n eventsBaseUrl: string;\n\n setUrls: (urls: EnvironmentUrls) => void;\n postIdentityToken: (request: TokenRequest) => Promise;\n refreshIdentityToken: () => Promise;\n\n getProfile: () => Promise;\n getUserBilling: () => Promise;\n getUserSubscription: () => Promise;\n getTaxInfo: () => Promise;\n putProfile: (request: UpdateProfileRequest) => Promise;\n putTaxInfo: (request: TaxInfoUpdateRequest) => Promise;\n postPrelogin: (request: PreloginRequest) => Promise;\n postEmailToken: (request: EmailTokenRequest) => Promise;\n postEmail: (request: EmailRequest) => Promise;\n postPassword: (request: PasswordRequest) => Promise;\n setPassword: (request: SetPasswordRequest) => Promise;\n postSecurityStamp: (request: PasswordVerificationRequest) => Promise;\n deleteAccount: (request: PasswordVerificationRequest) => Promise;\n getAccountRevisionDate: () => Promise;\n postPasswordHint: (request: PasswordHintRequest) => Promise;\n postRegister: (request: RegisterRequest) => Promise;\n postPremium: (data: FormData) => Promise;\n postIapCheck: (request: IapCheckRequest) => Promise;\n postReinstatePremium: () => Promise;\n postCancelPremium: () => Promise;\n postAccountStorage: (request: StorageRequest) => Promise;\n postAccountPayment: (request: PaymentRequest) => Promise;\n postAccountLicense: (data: FormData) => Promise;\n postAccountKey: (request: UpdateKeyRequest) => Promise;\n postAccountKeys: (request: KeysRequest) => Promise;\n postAccountVerifyEmail: () => Promise;\n postAccountVerifyEmailToken: (request: VerifyEmailRequest) => Promise;\n postAccountVerifyPassword: (request: PasswordVerificationRequest) => Promise;\n postAccountRecoverDelete: (request: DeleteRecoverRequest) => Promise;\n postAccountRecoverDeleteToken: (request: VerifyDeleteRecoverRequest) => Promise;\n postAccountKdf: (request: KdfRequest) => Promise;\n getEnterprisePortalSignInToken: () => Promise;\n postUserApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postUserRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n\n getFolder: (id: string) => Promise;\n postFolder: (request: FolderRequest) => Promise;\n putFolder: (id: string, request: FolderRequest) => Promise;\n deleteFolder: (id: string) => Promise;\n\n getSend: (id: string) => Promise;\n postSendAccess: (id: string, request: SendAccessRequest, apiUrl?: string) => Promise;\n getSends: () => Promise>;\n postSend: (request: SendRequest) => Promise;\n postFileTypeSend: (request: SendRequest) => Promise;\n postSendFile: (sendId: string, fileId: string, data: FormData) => Promise;\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n postSendFileLegacy: (data: FormData) => Promise;\n putSend: (id: string, request: SendRequest) => Promise;\n putSendRemovePassword: (id: string) => Promise;\n deleteSend: (id: string) => Promise;\n getSendFileDownloadData: (send: SendAccessView, request: SendAccessRequest, apiUrl?: string) => Promise;\n renewSendFileUploadUrl: (sendId: string, fileId: string) => Promise;\n\n getCipher: (id: string) => Promise;\n getCipherAdmin: (id: string) => Promise;\n getAttachmentData: (cipherId: string, attachmentId: string, emergencyAccessId?: string) => Promise;\n getCiphersOrganization: (organizationId: string) => Promise>;\n postCipher: (request: CipherRequest) => Promise;\n postCipherCreate: (request: CipherCreateRequest) => Promise;\n postCipherAdmin: (request: CipherCreateRequest) => Promise;\n putCipher: (id: string, request: CipherRequest) => Promise;\n putCipherAdmin: (id: string, request: CipherRequest) => Promise;\n deleteCipher: (id: string) => Promise;\n deleteCipherAdmin: (id: string) => Promise;\n deleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise;\n deleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise;\n putMoveCiphers: (request: CipherBulkMoveRequest) => Promise;\n putShareCipher: (id: string, request: CipherShareRequest) => Promise;\n putShareCiphers: (request: CipherBulkShareRequest) => Promise;\n putCipherCollections: (id: string, request: CipherCollectionsRequest) => Promise;\n putCipherCollectionsAdmin: (id: string, request: CipherCollectionsRequest) => Promise;\n postPurgeCiphers: (request: PasswordVerificationRequest, organizationId?: string) => Promise;\n postImportCiphers: (request: ImportCiphersRequest) => Promise;\n postImportOrganizationCiphers: (organizationId: string, request: ImportOrganizationCiphersRequest) => Promise;\n putDeleteCipher: (id: string) => Promise;\n putDeleteCipherAdmin: (id: string) => Promise;\n putDeleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise;\n putDeleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise;\n putRestoreCipher: (id: string) => Promise;\n putRestoreCipherAdmin: (id: string) => Promise;\n putRestoreManyCiphers: (request: CipherBulkRestoreRequest) => Promise>;\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n postCipherAttachmentLegacy: (id: string, data: FormData) => Promise;\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n postCipherAttachmentAdminLegacy: (id: string, data: FormData) => Promise;\n postCipherAttachment: (id: string, request: AttachmentRequest) => Promise;\n deleteCipherAttachment: (id: string, attachmentId: string) => Promise;\n deleteCipherAttachmentAdmin: (id: string, attachmentId: string) => Promise;\n postShareCipherAttachment: (id: string, attachmentId: string, data: FormData,\n organizationId: string) => Promise;\n renewAttachmentUploadUrl: (id: string, attachmentId: string) => Promise;\n postAttachmentFile: (id: string, attachmentId: string, data: FormData) => Promise;\n\n getCollectionDetails: (organizationId: string, id: string) => Promise;\n getUserCollections: () => Promise>;\n getCollections: (organizationId: string) => Promise>;\n getCollectionUsers: (organizationId: string, id: string) => Promise;\n postCollection: (organizationId: string, request: CollectionRequest) => Promise;\n putCollectionUsers: (organizationId: string, id: string, request: SelectionReadOnlyRequest[]) => Promise;\n putCollection: (organizationId: string, id: string, request: CollectionRequest) => Promise;\n deleteCollection: (organizationId: string, id: string) => Promise;\n deleteCollectionUser: (organizationId: string, id: string, organizationUserId: string) => Promise;\n\n getGroupDetails: (organizationId: string, id: string) => Promise;\n getGroups: (organizationId: string) => Promise>;\n getGroupUsers: (organizationId: string, id: string) => Promise;\n postGroup: (organizationId: string, request: GroupRequest) => Promise;\n putGroup: (organizationId: string, id: string, request: GroupRequest) => Promise;\n putGroupUsers: (organizationId: string, id: string, request: string[]) => Promise;\n deleteGroup: (organizationId: string, id: string) => Promise;\n deleteGroupUser: (organizationId: string, id: string, organizationUserId: string) => Promise;\n\n getPolicy: (organizationId: string, type: PolicyType) => Promise;\n getPolicies: (organizationId: string) => Promise>;\n getPoliciesByToken: (organizationId: string, token: string, email: string, organizationUserId: string) =>\n Promise>;\n putPolicy: (organizationId: string, type: PolicyType, request: PolicyRequest) => Promise;\n\n getOrganizationUser: (organizationId: string, id: string) => Promise;\n getOrganizationUserGroups: (organizationId: string, id: string) => Promise;\n getOrganizationUsers: (organizationId: string) => Promise>;\n postOrganizationUserInvite: (organizationId: string, request: OrganizationUserInviteRequest) => Promise;\n postOrganizationUserReinvite: (organizationId: string, id: string) => Promise;\n postOrganizationUserAccept: (organizationId: string, id: string,\n request: OrganizationUserAcceptRequest) => Promise;\n postOrganizationUserConfirm: (organizationId: string, id: string,\n request: OrganizationUserConfirmRequest) => Promise;\n putOrganizationUser: (organizationId: string, id: string, request: OrganizationUserUpdateRequest) => Promise;\n putOrganizationUserGroups: (organizationId: string, id: string,\n request: OrganizationUserUpdateGroupsRequest) => Promise;\n putOrganizationUserResetPasswordEnrollment: (organizationId: string, userId: string,\n request: OrganizationUserResetPasswordEnrollmentRequest) => Promise;\n deleteOrganizationUser: (organizationId: string, id: string) => Promise;\n\n getSync: () => Promise;\n postImportDirectory: (organizationId: string, request: ImportDirectoryRequest) => Promise;\n\n getSettingsDomains: () => Promise;\n putSettingsDomains: (request: UpdateDomainsRequest) => Promise;\n\n getTwoFactorProviders: () => Promise>;\n getTwoFactorOrganizationProviders: (organizationId: string) => Promise>;\n getTwoFactorAuthenticator: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorEmail: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorDuo: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorOrganizationDuo: (organizationId: string,\n request: PasswordVerificationRequest) => Promise;\n getTwoFactorYubiKey: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorWebAuthn: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorWebAuthnChallenge: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorRecover: (request: PasswordVerificationRequest) => Promise;\n putTwoFactorAuthenticator: (\n request: UpdateTwoFactorAuthenticatorRequest) => Promise;\n putTwoFactorEmail: (request: UpdateTwoFactorEmailRequest) => Promise;\n putTwoFactorDuo: (request: UpdateTwoFactorDuoRequest) => Promise;\n putTwoFactorOrganizationDuo: (organizationId: string,\n request: UpdateTwoFactorDuoRequest) => Promise;\n putTwoFactorYubiKey: (request: UpdateTwoFactorYubioOtpRequest) => Promise;\n putTwoFactorWebAuthn: (request: UpdateTwoFactorWebAuthnRequest) => Promise;\n deleteTwoFactorWebAuthn: (request: UpdateTwoFactorWebAuthnDeleteRequest) => Promise;\n putTwoFactorDisable: (request: TwoFactorProviderRequest) => Promise;\n putTwoFactorOrganizationDisable: (organizationId: string,\n request: TwoFactorProviderRequest) => Promise;\n postTwoFactorRecover: (request: TwoFactorRecoveryRequest) => Promise;\n postTwoFactorEmailSetup: (request: TwoFactorEmailRequest) => Promise;\n postTwoFactorEmail: (request: TwoFactorEmailRequest) => Promise;\n\n getEmergencyAccessTrusted: () => Promise>;\n getEmergencyAccessGranted: () => Promise>;\n getEmergencyAccess: (id: string) => Promise;\n getEmergencyGrantorPolicies: (id: string) => Promise>;\n putEmergencyAccess: (id: string, request: EmergencyAccessUpdateRequest) => Promise;\n deleteEmergencyAccess: (id: string) => Promise;\n postEmergencyAccessInvite: (request: EmergencyAccessInviteRequest) => Promise;\n postEmergencyAccessReinvite: (id: string) => Promise;\n postEmergencyAccessAccept: (id: string, request: EmergencyAccessAcceptRequest) => Promise;\n postEmergencyAccessConfirm: (id: string, request: EmergencyAccessConfirmRequest) => Promise;\n postEmergencyAccessInitiate: (id: string) => Promise;\n postEmergencyAccessApprove: (id: string) => Promise;\n postEmergencyAccessReject: (id: string) => Promise;\n postEmergencyAccessTakeover: (id: string) => Promise;\n postEmergencyAccessPassword: (id: string, request: EmergencyAccessPasswordRequest) => Promise;\n postEmergencyAccessView: (id: string) => Promise;\n\n getOrganization: (id: string) => Promise;\n getOrganizationBilling: (id: string) => Promise;\n getOrganizationSubscription: (id: string) => Promise;\n getOrganizationLicense: (id: string, installationId: string) => Promise;\n getOrganizationTaxInfo: (id: string) => Promise;\n postOrganization: (request: OrganizationCreateRequest) => Promise;\n putOrganization: (id: string, request: OrganizationUpdateRequest) => Promise;\n putOrganizationTaxInfo: (id: string, request: OrganizationTaxInfoUpdateRequest) => Promise;\n postLeaveOrganization: (id: string) => Promise;\n postOrganizationLicense: (data: FormData) => Promise;\n postOrganizationLicenseUpdate: (id: string, data: FormData) => Promise;\n postOrganizationApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postOrganizationRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postOrganizationUpgrade: (id: string, request: OrganizationUpgradeRequest) => Promise;\n postOrganizationSeat: (id: string, request: SeatRequest) => Promise;\n postOrganizationStorage: (id: string, request: StorageRequest) => Promise;\n postOrganizationPayment: (id: string, request: PaymentRequest) => Promise;\n postOrganizationVerifyBank: (id: string, request: VerifyBankRequest) => Promise;\n postOrganizationCancel: (id: string) => Promise;\n postOrganizationReinstate: (id: string) => Promise;\n deleteOrganization: (id: string, request: PasswordVerificationRequest) => Promise;\n getPlans: () => Promise>;\n getTaxRates: () => Promise>;\n\n getEvents: (start: string, end: string, token: string) => Promise>;\n getEventsCipher: (id: string, start: string, end: string, token: string) => Promise>;\n getEventsOrganization: (id: string, start: string, end: string,\n token: string) => Promise>;\n getEventsOrganizationUser: (organizationId: string, id: string,\n start: string, end: string, token: string) => Promise>;\n postEventsCollect: (request: EventRequest[]) => Promise;\n\n deleteSsoUser: (organizationId: string) => Promise;\n getSsoUserIdentifier: () => Promise;\n\n getUserPublicKey: (id: string) => Promise;\n\n getHibpBreach: (username: string) => Promise;\n\n postBitPayInvoice: (request: BitPayInvoiceRequest) => Promise;\n postSetupPayment: () => Promise;\n\n getActiveBearerToken: () => Promise;\n fetch: (request: Request) => Promise;\n nativeFetch: (request: Request) => Promise;\n\n preValidateSso: (identifier: string) => Promise;\n}\n","import { OrganizationData } from '../models/data/organizationData';\nimport { Organization } from '../models/domain/organization';\n\nimport { KdfType } from '../enums/kdfType';\n\nexport abstract class UserService {\n setInformation: (userId: string, email: string, kdf: KdfType, kdfIterations: number) => Promise;\n setEmailVerified: (emailVerified: boolean) => Promise;\n setSecurityStamp: (stamp: string) => Promise;\n getUserId: () => Promise;\n getEmail: () => Promise;\n getSecurityStamp: () => Promise;\n getKdf: () => Promise;\n getKdfIterations: () => Promise;\n getEmailVerified: () => Promise;\n clear: () => Promise;\n isAuthenticated: () => Promise;\n canAccessPremium: () => Promise;\n getOrganization: (id: string) => Promise;\n getAllOrganizations: () => Promise;\n replaceOrganizations: (organizations: { [id: string]: OrganizationData; }) => Promise;\n clearOrganizations: (userId: string) => Promise;\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\n\n@Pipe({\n name: 'i18n',\n})\nexport class I18nPipe implements PipeTransform {\n constructor(private i18nService: I18nService) { }\n\n transform(id: string, p1?: string, p2?: string, p3?: string): string {\n return this.i18nService.t(id, p1, p2, p3);\n }\n}\n","export abstract class MessagingService {\n send: (subscriber: string, arg?: any) => void;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { ValidationService } from '../services/validation.service';\n\n@Directive({\n selector: '[appApiAction]',\n})\nexport class ApiActionDirective implements OnChanges {\n @Input() appApiAction: Promise;\n\n constructor(private el: ElementRef, private validationService: ValidationService) { }\n\n ngOnChanges(changes: any) {\n if (this.appApiAction == null || this.appApiAction.then == null) {\n return;\n }\n\n this.el.nativeElement.loading = true;\n\n this.appApiAction.then((response: any) => {\n this.el.nativeElement.loading = false;\n }, (e: any) => {\n this.el.nativeElement.loading = false;\n this.validationService.showError(e);\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[appA11yTitle]',\n})\nexport class A11yTitleDirective {\n @Input() set appA11yTitle(title: string) {\n this.title = title;\n }\n\n private title: string;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit() {\n if (!this.el.nativeElement.hasAttribute('title')) {\n this.renderer.setAttribute(this.el.nativeElement, 'title', this.title);\n }\n if (!this.el.nativeElement.hasAttribute('aria-label')) {\n this.renderer.setAttribute(this.el.nativeElement, 'aria-label', this.title);\n }\n }\n}\n","import { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';\n\nimport { KdfType } from '../enums/kdfType';\n\nexport abstract class CryptoService {\n setKey: (key: SymmetricCryptoKey) => Promise;\n setKeyHash: (keyHash: string) => Promise<{}>;\n setEncKey: (encKey: string) => Promise<{}>;\n setEncPrivateKey: (encPrivateKey: string) => Promise<{}>;\n setOrgKeys: (orgs: ProfileOrganizationResponse[]) => Promise<{}>;\n getKey: () => Promise;\n getKeyHash: () => Promise;\n getEncKey: (key?: SymmetricCryptoKey) => Promise;\n getPublicKey: () => Promise;\n getPrivateKey: () => Promise;\n getFingerprint: (userId: string, publicKey?: ArrayBuffer) => Promise;\n getOrgKeys: () => Promise>;\n getOrgKey: (orgId: string) => Promise;\n hasKey: () => Promise;\n hasEncKey: () => Promise;\n clearKey: () => Promise;\n clearKeyHash: () => Promise;\n clearEncKey: (memoryOnly?: boolean) => Promise;\n clearKeyPair: (memoryOnly?: boolean) => Promise;\n clearOrgKeys: (memoryOnly?: boolean) => Promise;\n clearPinProtectedKey: () => Promise;\n clearKeys: () => Promise;\n toggleKey: () => Promise;\n makeKey: (password: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise;\n makeKeyFromPin: (pin: string, salt: string, kdf: KdfType, kdfIterations: number,\n protectedKeyCs?: EncString) => Promise;\n makeShareKey: () => Promise<[EncString, SymmetricCryptoKey]>;\n makeKeyPair: (key?: SymmetricCryptoKey) => Promise<[string, EncString]>;\n makePinKey: (pin: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise;\n makeSendKey: (keyMaterial: ArrayBuffer) => Promise;\n hashPassword: (password: string, key: SymmetricCryptoKey) => Promise;\n makeEncKey: (key: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, EncString]>;\n remakeEncKey: (key: SymmetricCryptoKey, encKey?: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, EncString]>;\n encrypt: (plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey) => Promise;\n encryptToBytes: (plainValue: ArrayBuffer, key?: SymmetricCryptoKey) => Promise;\n rsaEncrypt: (data: ArrayBuffer, publicKey?: ArrayBuffer) => Promise;\n rsaDecrypt: (encValue: string) => Promise;\n decryptToBytes: (encString: EncString, key?: SymmetricCryptoKey) => Promise;\n decryptToUtf8: (encString: EncString, key?: SymmetricCryptoKey) => Promise;\n decryptFromBytes: (encBuf: ArrayBuffer, key: SymmetricCryptoKey) => Promise;\n randomNumber: (min: number, max: number) => Promise;\n}\n","import { CipherType } from '../enums/cipherType';\nimport { UriMatchType } from '../enums/uriMatchType';\n\nimport { CipherData } from '../models/data/cipherData';\n\nimport { Cipher } from '../models/domain/cipher';\nimport { Field } from '../models/domain/field';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { FieldView } from '../models/view/fieldView';\n\nexport abstract class CipherService {\n decryptedCipherCache: CipherView[];\n\n clearCache: () => void;\n encrypt: (model: CipherView, key?: SymmetricCryptoKey, originalCipher?: Cipher) => Promise;\n encryptFields: (fieldsModel: FieldView[], key: SymmetricCryptoKey) => Promise;\n encryptField: (fieldModel: FieldView, key: SymmetricCryptoKey) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllDecryptedForGrouping: (groupingId: string, folder?: boolean) => Promise;\n getAllDecryptedForUrl: (url: string, includeOtherTypes?: CipherType[],\n defaultMatch?: UriMatchType) => Promise;\n getAllFromApiForOrganization: (organizationId: string) => Promise;\n getLastUsedForUrl: (url: string) => Promise;\n getLastLaunchedForUrl: (url: string) => Promise;\n getNextCipherForUrl: (url: string) => Promise;\n updateLastUsedIndexForUrl: (url: string) => void;\n updateLastUsedDate: (id: string) => Promise;\n updateLastLaunchedDate: (id: string) => Promise;\n saveNeverDomain: (domain: string) => Promise;\n saveWithServer: (cipher: Cipher) => Promise;\n shareWithServer: (cipher: CipherView, organizationId: string, collectionIds: string[]) => Promise;\n shareManyWithServer: (ciphers: CipherView[], organizationId: string, collectionIds: string[]) => Promise;\n saveAttachmentWithServer: (cipher: Cipher, unencryptedFile: any, admin?: boolean) => Promise;\n saveAttachmentRawWithServer: (cipher: Cipher, filename: string, data: ArrayBuffer,\n admin?: boolean) => Promise;\n saveCollectionsWithServer: (cipher: Cipher) => Promise;\n upsert: (cipher: CipherData | CipherData[]) => Promise;\n replace: (ciphers: { [id: string]: CipherData; }) => Promise;\n clear: (userId: string) => Promise;\n moveManyWithServer: (ids: string[], folderId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n deleteManyWithServer: (ids: string[]) => Promise;\n deleteAttachment: (id: string, attachmentId: string) => Promise;\n deleteAttachmentWithServer: (id: string, attachmentId: string) => Promise;\n sortCiphersByLastUsed: (a: any, b: any) => number;\n sortCiphersByLastUsedThenName: (a: any, b: any) => number;\n getLocaleSortingFunction: () => (a: CipherView, b: CipherView) => number;\n softDelete: (id: string | string[]) => Promise;\n softDeleteWithServer: (id: string) => Promise;\n softDeleteManyWithServer: (ids: string[]) => Promise;\n restore: (cipher: { id: string, revisionDate: string; } | { id: string, revisionDate: string; }[]) => Promise;\n restoreWithServer: (id: string) => Promise;\n restoreManyWithServer: (ids: string[]) => Promise;\n}\n","export abstract class BaseResponse {\n private response: any;\n\n constructor(response: any) {\n this.response = response;\n }\n\n protected getResponseProperty(propertyName: string, response: any = null, exactName = false): any {\n if (propertyName == null || propertyName === '') {\n throw new Error('propertyName must not be null/empty.');\n }\n if (response == null && this.response != null) {\n response = this.response;\n }\n if (response == null) {\n return null;\n }\n if (!exactName && response[propertyName] === undefined) {\n let otherCasePropertyName: string = null;\n if (propertyName.charAt(0) === propertyName.charAt(0).toUpperCase()) {\n otherCasePropertyName = propertyName.charAt(0).toLowerCase();\n } else {\n otherCasePropertyName = propertyName.charAt(0).toUpperCase();\n }\n if (propertyName.length > 1) {\n otherCasePropertyName += propertyName.slice(1);\n }\n\n propertyName = otherCasePropertyName;\n if (response[propertyName] === undefined) {\n propertyName = propertyName.toLowerCase();\n }\n if (response[propertyName] === undefined) {\n propertyName = propertyName.toUpperCase();\n }\n }\n return response[propertyName];\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\n\n@Component({\n selector: 'app-callout',\n templateUrl: 'callout.component.html',\n})\nexport class CalloutComponent implements OnInit {\n @Input() type = 'info';\n @Input() icon: string;\n @Input() title: string;\n @Input() clickable: boolean;\n\n calloutStyle: string;\n\n constructor(private i18nService: I18nService) { }\n\n ngOnInit() {\n this.calloutStyle = this.type;\n\n if (this.type === 'warning' || this.type === 'danger') {\n if (this.type === 'danger') {\n this.calloutStyle = 'danger';\n }\n if (this.title === undefined) {\n this.title = this.i18nService.t('warning');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-warning';\n }\n } else if (this.type === 'error') {\n this.calloutStyle = 'danger';\n if (this.title === undefined) {\n this.title = this.i18nService.t('error');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-bolt';\n }\n } else if (this.type === 'tip') {\n this.calloutStyle = 'success';\n if (this.title === undefined) {\n this.title = this.i18nService.t('tip');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-lightbulb-o';\n }\n }\n }\n}\n","

\n

\n \n {{title}}\n

\n \n
\n","import * as papa from 'papaparse';\n\nimport { LogService } from '../abstractions/log.service';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { LoginUriView } from '../models/view/loginUriView';\n\nimport { Utils } from '../misc/utils';\n\nimport { FieldView } from '../models/view/fieldView';\nimport { FolderView } from '../models/view/folderView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { ConsoleLogService } from '../services/consoleLog.service';\n\nexport abstract class BaseImporter {\n organizationId: string = null;\n\n protected logService: LogService = new ConsoleLogService(false);\n\n protected newLineRegex = /(?:\\r\\n|\\r|\\n)/;\n\n protected passwordFieldNames = [\n 'password', 'pass word', 'passphrase', 'pass phrase',\n 'pass', 'code', 'code word', 'codeword',\n 'secret', 'secret word', 'personpwd',\n 'key', 'keyword', 'key word', 'keyphrase', 'key phrase',\n 'form_pw', 'wppassword', 'pin', 'pwd', 'pw', 'pword', 'passwd',\n 'p', 'serial', 'serial#', 'license key', 'reg #',\n\n // Non-English names\n 'passwort',\n ];\n\n protected usernameFieldNames = [\n 'user', 'name', 'user name', 'username', 'login name',\n 'email', 'e-mail', 'id', 'userid', 'user id',\n 'login', 'form_loginname', 'wpname', 'mail',\n 'loginid', 'login id', 'log', 'personlogin',\n 'first name', 'last name', 'card#', 'account #',\n 'member', 'member #',\n\n // Non-English names\n 'nom', 'benutzername',\n ];\n\n protected notesFieldNames = [\n 'note', 'notes', 'comment', 'comments', 'memo',\n 'description', 'free form', 'freeform',\n 'free text', 'freetext', 'free',\n\n // Non-English names\n 'kommentar',\n ];\n\n protected uriFieldNames: string[] = [\n 'url', 'hyper link', 'hyperlink', 'link',\n 'host', 'hostname', 'host name', 'server', 'address',\n 'hyper ref', 'href', 'web', 'website', 'web site', 'site',\n 'web-site', 'uri',\n\n // Non-English names\n 'ort', 'adresse',\n ];\n\n protected parseCsvOptions = {\n encoding: 'UTF-8',\n skipEmptyLines: false,\n };\n\n protected get organization() {\n return this.organizationId != null;\n }\n\n protected parseXml(data: string): Document {\n const parser = new DOMParser();\n const doc = parser.parseFromString(data, 'application/xml');\n return doc != null && doc.querySelector('parsererror') == null ? doc : null;\n }\n\n protected parseCsv(data: string, header: boolean, options: any = {}): any[] {\n const parseOptions = Object.assign({ header: header }, this.parseCsvOptions, options);\n data = this.splitNewLine(data).join('\\n').trim();\n const result = papa.parse(data, parseOptions);\n if (result.errors != null && result.errors.length > 0) {\n result.errors.forEach(e => {\n if (e.row != null) {\n // tslint:disable-next-line\n this.logService.warning('Error parsing row ' + e.row + ': ' + e.message);\n }\n });\n }\n return result.data && result.data.length > 0 ? result.data : null;\n }\n\n protected parseSingleRowCsv(rowData: string) {\n if (this.isNullOrWhitespace(rowData)) {\n return null;\n }\n const parsedRow = this.parseCsv(rowData, false);\n if (parsedRow != null && parsedRow.length > 0 && parsedRow[0].length > 0) {\n return parsedRow[0];\n }\n return null;\n }\n\n protected makeUriArray(uri: string | string[]): LoginUriView[] {\n if (uri == null) {\n return null;\n }\n\n if (typeof uri === 'string') {\n const loginUri = new LoginUriView();\n loginUri.uri = this.fixUri(uri);\n if (this.isNullOrWhitespace(loginUri.uri)) {\n return null;\n }\n loginUri.match = null;\n return [loginUri];\n }\n\n if (uri.length > 0) {\n const returnArr: LoginUriView[] = [];\n uri.forEach(u => {\n const loginUri = new LoginUriView();\n loginUri.uri = this.fixUri(u);\n if (this.isNullOrWhitespace(loginUri.uri)) {\n return;\n }\n loginUri.match = null;\n returnArr.push(loginUri);\n });\n return returnArr.length === 0 ? null : returnArr;\n }\n\n return null;\n }\n\n protected fixUri(uri: string) {\n if (uri == null) {\n return null;\n }\n uri = uri.trim();\n if (uri.indexOf('://') === -1 && uri.indexOf('.') >= 0) {\n uri = 'http://' + uri;\n }\n if (uri.length > 1000) {\n return uri.substring(0, 1000);\n }\n return uri;\n }\n\n protected nameFromUrl(url: string) {\n const hostname = Utils.getHostname(url);\n if (this.isNullOrWhitespace(hostname)) {\n return null;\n }\n return hostname.startsWith('www.') ? hostname.replace('www.', '') : hostname;\n }\n\n protected isNullOrWhitespace(str: string): boolean {\n return Utils.isNullOrWhitespace(str);\n }\n\n protected getValueOrDefault(str: string, defaultValue: string = null): string {\n if (this.isNullOrWhitespace(str)) {\n return defaultValue;\n }\n return str;\n }\n\n protected splitNewLine(str: string): string[] {\n return str.split(this.newLineRegex);\n }\n\n // ref https://stackoverflow.com/a/5911300\n protected getCardBrand(cardNum: string) {\n if (this.isNullOrWhitespace(cardNum)) {\n return null;\n }\n\n // Visa\n let re = new RegExp('^4');\n if (cardNum.match(re) != null) {\n return 'Visa';\n }\n\n // Mastercard\n // Updated for Mastercard 2017 BINs expansion\n if (/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/\n .test(cardNum)) {\n return 'Mastercard';\n }\n\n // AMEX\n re = new RegExp('^3[47]');\n if (cardNum.match(re) != null) {\n return 'Amex';\n }\n\n // Discover\n re = new RegExp('^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)');\n if (cardNum.match(re) != null) {\n return 'Discover';\n }\n\n // Diners\n re = new RegExp('^36');\n if (cardNum.match(re) != null) {\n return 'Diners Club';\n }\n\n // Diners - Carte Blanche\n re = new RegExp('^30[0-5]');\n if (cardNum.match(re) != null) {\n return 'Diners Club';\n }\n\n // JCB\n re = new RegExp('^35(2[89]|[3-8][0-9])');\n if (cardNum.match(re) != null) {\n return 'JCB';\n }\n\n // Visa Electron\n re = new RegExp('^(4026|417500|4508|4844|491(3|7))');\n if (cardNum.match(re) != null) {\n return 'Visa';\n }\n\n return null;\n }\n\n protected setCardExpiration(cipher: CipherView, expiration: string): boolean {\n if (!this.isNullOrWhitespace(expiration)) {\n const parts = expiration.split('/');\n if (parts.length === 2) {\n let month: string = null;\n let year: string = null;\n if (parts[0].length === 1 || parts[0].length === 2) {\n month = parts[0];\n if (month.length === 2 && month[0] === '0') {\n month = month.substr(1, 1);\n }\n }\n if (parts[1].length === 2 || parts[1].length === 4) {\n year = month.length === 2 ? '20' + parts[1] : parts[1];\n }\n if (month != null && year != null) {\n cipher.card.expMonth = month;\n cipher.card.expYear = year;\n return true;\n }\n }\n }\n return false;\n }\n\n protected moveFoldersToCollections(result: ImportResult) {\n result.folderRelationships.forEach(r => result.collectionRelationships.push(r));\n result.collections = result.folders.map(f => {\n const collection = new CollectionView();\n collection.name = f.name;\n return collection;\n });\n result.folderRelationships = [];\n result.folders = [];\n }\n\n protected querySelectorDirectChild(parentEl: Element, query: string) {\n const els = this.querySelectorAllDirectChild(parentEl, query);\n return els.length === 0 ? null : els[0];\n }\n\n protected querySelectorAllDirectChild(parentEl: Element, query: string) {\n return Array.from(parentEl.querySelectorAll(query)).filter(el => el.parentNode === parentEl);\n }\n\n protected initLoginCipher() {\n const cipher = new CipherView();\n cipher.favorite = false;\n cipher.notes = '';\n cipher.fields = [];\n cipher.login = new LoginView();\n cipher.type = CipherType.Login;\n return cipher;\n }\n\n protected cleanupCipher(cipher: CipherView) {\n if (cipher == null) {\n return;\n }\n if (cipher.type !== CipherType.Login) {\n cipher.login = null;\n }\n if (this.isNullOrWhitespace(cipher.name)) {\n cipher.name = '--';\n }\n if (this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = null;\n } else {\n cipher.notes = cipher.notes.trim();\n }\n if (cipher.fields != null && cipher.fields.length === 0) {\n cipher.fields = null;\n }\n }\n\n protected processKvp(cipher: CipherView, key: string, value: string, type: FieldType = FieldType.Text) {\n if (this.isNullOrWhitespace(value)) {\n return;\n }\n if (this.isNullOrWhitespace(key)) {\n key = '';\n }\n if (value.length > 200 || value.trim().search(this.newLineRegex) > -1) {\n if (cipher.notes == null) {\n cipher.notes = '';\n }\n cipher.notes += (key + ': ' + this.splitNewLine(value).join('\\n') + '\\n');\n } else {\n if (cipher.fields == null) {\n cipher.fields = [];\n }\n const field = new FieldView();\n field.type = type;\n field.name = key;\n field.value = value;\n cipher.fields.push(field);\n }\n }\n\n protected processFolder(result: ImportResult, folderName: string) {\n let folderIndex = result.folders.length;\n const hasFolder = !this.isNullOrWhitespace(folderName);\n let addFolder = hasFolder;\n\n if (hasFolder) {\n for (let i = 0; i < result.folders.length; i++) {\n if (result.folders[i].name === folderName) {\n addFolder = false;\n folderIndex = i;\n break;\n }\n }\n }\n\n if (addFolder) {\n const f = new FolderView();\n f.name = folderName;\n result.folders.push(f);\n }\n if (hasFolder) {\n result.folderRelationships.push([result.ciphers.length, folderIndex]);\n }\n }\n\n protected convertToNoteIfNeeded(cipher: CipherView) {\n if (cipher.type === CipherType.Login && this.isNullOrWhitespace(cipher.login.username) &&\n this.isNullOrWhitespace(cipher.login.password) &&\n (cipher.login.uris == null || cipher.login.uris.length === 0)) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n }\n }\n}\n","import { CipherView } from '../view/cipherView';\nimport { CollectionView } from '../view/collectionView';\nimport { FolderView } from '../view/folderView';\n\nexport class ImportResult {\n success = false;\n errorMessage: string;\n ciphers: CipherView[] = [];\n folders: FolderView[] = [];\n folderRelationships: [number, number][] = [];\n collections: CollectionView[] = [];\n collectionRelationships: [number, number][] = [];\n}\n","import * as tldjs from 'tldjs';\n\nimport { I18nService } from '../abstractions/i18n.service';\n\n// tslint:disable-next-line\nconst nodeURL = typeof window === 'undefined' ? require('url') : null;\n\nexport class Utils {\n static inited = false;\n static isNativeScript = false;\n static isNode = false;\n static isBrowser = true;\n static isMobileBrowser = false;\n static isAppleMobileBrowser = false;\n static global: any = null;\n static tldEndingRegex = /.*\\.(com|net|org|edu|uk|gov|ca|de|jp|fr|au|ru|ch|io|es|us|co|xyz|info|ly|mil)$/;\n\n static init() {\n if (Utils.inited) {\n return;\n }\n\n Utils.inited = true;\n Utils.isNode = typeof process !== 'undefined' && (process as any).release != null &&\n (process as any).release.name === 'node';\n Utils.isBrowser = typeof window !== 'undefined';\n Utils.isNativeScript = !Utils.isNode && !Utils.isBrowser;\n Utils.isMobileBrowser = Utils.isBrowser && this.isMobile(window);\n Utils.isAppleMobileBrowser = Utils.isBrowser && this.isAppleMobile(window);\n Utils.global = Utils.isNativeScript ? global : (Utils.isNode && !Utils.isBrowser ? global : window);\n }\n\n static fromB64ToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'base64'));\n } else {\n const binaryString = window.atob(str);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n }\n }\n\n static fromUrlB64ToArray(str: string): Uint8Array {\n return Utils.fromB64ToArray(Utils.fromUrlB64ToB64(str));\n }\n\n static fromHexToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'hex'));\n } else {\n const bytes = new Uint8Array(str.length / 2);\n for (let i = 0; i < str.length; i += 2) {\n bytes[i / 2] = parseInt(str.substr(i, 2), 16);\n }\n return bytes;\n }\n }\n\n static fromUtf8ToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'utf8'));\n } else {\n const strUtf8 = unescape(encodeURIComponent(str));\n const arr = new Uint8Array(strUtf8.length);\n for (let i = 0; i < strUtf8.length; i++) {\n arr[i] = strUtf8.charCodeAt(i);\n }\n return arr;\n }\n }\n\n static fromByteStringToArray(str: string): Uint8Array {\n const arr = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return arr;\n }\n\n static fromBufferToB64(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('base64');\n } else {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n }\n\n static fromBufferToUrlB64(buffer: ArrayBuffer): string {\n return Utils.fromB64toUrlB64(Utils.fromBufferToB64(buffer));\n }\n\n static fromB64toUrlB64(b64Str: string) {\n return b64Str.replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n }\n\n static fromBufferToUtf8(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('utf8');\n } else {\n const bytes = new Uint8Array(buffer);\n const encodedString = String.fromCharCode.apply(null, bytes);\n return decodeURIComponent(escape(encodedString));\n }\n }\n\n static fromBufferToByteString(buffer: ArrayBuffer): string {\n return String.fromCharCode.apply(null, new Uint8Array(buffer));\n }\n\n // ref: https://stackoverflow.com/a/40031979/1090359\n static fromBufferToHex(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('hex');\n } else {\n const bytes = new Uint8Array(buffer);\n return Array.prototype.map.call(bytes, (x: number) => ('00' + x.toString(16)).slice(-2)).join('');\n }\n }\n\n static fromUrlB64ToB64(urlB64Str: string): string {\n let output = urlB64Str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw new Error('Illegal base64url string!');\n }\n\n return output;\n }\n\n static fromUrlB64ToUtf8(urlB64Str: string): string {\n return Utils.fromB64ToUtf8(Utils.fromUrlB64ToB64(urlB64Str));\n }\n\n static fromUtf8ToB64(utfStr: string): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(utfStr, 'utf8').toString('base64');\n } else {\n return decodeURIComponent(escape(window.btoa(utfStr)));\n }\n }\n\n static fromB64ToUtf8(b64Str: string): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(b64Str, 'base64').toString('utf8');\n } else {\n return decodeURIComponent(escape(window.atob(b64Str)));\n }\n }\n\n // ref: http://stackoverflow.com/a/2117523/1090359\n static newGuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // tslint:disable-next-line\n const r = Math.random() * 16 | 0;\n // tslint:disable-next-line\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n static isGuid(id: string) {\n return RegExp(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/, 'i').test(id);\n }\n\n static getHostname(uriString: string): string {\n const url = Utils.getUrl(uriString);\n try {\n return url != null && url.hostname !== '' ? url.hostname : null;\n } catch {\n return null;\n }\n }\n\n static getHost(uriString: string): string {\n const url = Utils.getUrl(uriString);\n try {\n return url != null && url.host !== '' ? url.host : null;\n } catch {\n return null;\n }\n }\n\n static getDomain(uriString: string): string {\n if (uriString == null) {\n return null;\n }\n\n uriString = uriString.trim();\n if (uriString === '') {\n return null;\n }\n\n if (uriString.startsWith('data:')) {\n return null;\n }\n\n let httpUrl = uriString.startsWith('http://') || uriString.startsWith('https://');\n if (!httpUrl && uriString.indexOf('://') < 0 && Utils.tldEndingRegex.test(uriString)) {\n uriString = 'http://' + uriString;\n httpUrl = true;\n }\n\n if (httpUrl) {\n try {\n const url = Utils.getUrlObject(uriString);\n if (url.hostname === 'localhost' || Utils.validIpAddress(url.hostname)) {\n return url.hostname;\n }\n\n const urlDomain = tldjs != null && tldjs.getDomain != null ? tldjs.getDomain(url.hostname) : null;\n return urlDomain != null ? urlDomain : url.hostname;\n } catch (e) { }\n }\n\n try {\n const domain = tldjs != null && tldjs.getDomain != null ? tldjs.getDomain(uriString) : null;\n\n if (domain != null) {\n return domain;\n }\n } catch {\n return null;\n }\n\n return null;\n }\n\n static getQueryParams(uriString: string): Map {\n const url = Utils.getUrl(uriString);\n if (url == null || url.search == null || url.search === '') {\n return null;\n }\n const map = new Map();\n const pairs = (url.search[0] === '?' ? url.search.substr(1) : url.search).split('&');\n pairs.forEach(pair => {\n const parts = pair.split('=');\n if (parts.length < 1) {\n return;\n }\n map.set(decodeURIComponent(parts[0]).toLowerCase(), parts[1] == null ? '' : decodeURIComponent(parts[1]));\n });\n return map;\n }\n\n static getSortFunction(i18nService: I18nService, prop: string) {\n return (a: any, b: any) => {\n if (a[prop] == null && b[prop] != null) {\n return -1;\n }\n if (a[prop] != null && b[prop] == null) {\n return 1;\n }\n if (a[prop] == null && b[prop] == null) {\n return 0;\n }\n\n return i18nService.collator ? i18nService.collator.compare(a[prop], b[prop]) :\n a[prop].localeCompare(b[prop]);\n };\n }\n\n static isNullOrWhitespace(str: string): boolean {\n return str == null || typeof str !== 'string' || str.trim() === '';\n }\n\n static nameOf(name: string & keyof T) {\n return name;\n }\n\n static assign(target: T, source: Partial): T {\n return Object.assign(target, source);\n }\n\n static getUrl(uriString: string): URL {\n if (uriString == null) {\n return null;\n }\n\n uriString = uriString.trim();\n if (uriString === '') {\n return null;\n }\n\n let url = Utils.getUrlObject(uriString);\n if (url == null) {\n const hasHttpProtocol = uriString.indexOf('http://') === 0 || uriString.indexOf('https://') === 0;\n if (!hasHttpProtocol && uriString.indexOf('.') > -1) {\n url = Utils.getUrlObject('http://' + uriString);\n }\n }\n return url;\n }\n\n private static validIpAddress(ipString: string): boolean {\n // tslint:disable-next-line\n const ipRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n return ipRegex.test(ipString);\n }\n\n private static isMobile(win: Window) {\n let mobile = false;\n (a => {\n // tslint:disable-next-line\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) {\n mobile = true;\n }\n })(win.navigator.userAgent || win.navigator.vendor || (win as any).opera);\n return mobile || win.navigator.userAgent.match(/iPad/i) != null;\n }\n\n private static isAppleMobile(win: Window) {\n return win.navigator.userAgent.match(/iPhone/i) != null || win.navigator.userAgent.match(/iPad/i) != null;\n }\n\n private static getUrlObject(uriString: string): URL {\n try {\n if (nodeURL != null) {\n return nodeURL.URL ? new nodeURL.URL(uriString) : nodeURL.parse(uriString);\n } else if (typeof URL === 'function') {\n return new URL(uriString);\n } else if (window != null) {\n const hasProtocol = uriString.indexOf('://') > -1;\n if (!hasProtocol && uriString.indexOf('.') > -1) {\n uriString = 'http://' + uriString;\n } else if (!hasProtocol) {\n return null;\n }\n const anchor = window.document.createElement('a');\n anchor.href = uriString;\n return anchor as any;\n }\n } catch (e) { }\n\n return null;\n }\n}\n\nUtils.init();\n","import { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory';\nimport { PasswordGeneratorPolicyOptions } from '../models/domain/passwordGeneratorPolicyOptions';\n\nexport abstract class PasswordGenerationService {\n generatePassword: (options: any) => Promise;\n generatePassphrase: (options: any) => Promise;\n getOptions: () => Promise<[any, PasswordGeneratorPolicyOptions]>;\n enforcePasswordGeneratorPoliciesOnOptions: (options: any) => Promise<[any, PasswordGeneratorPolicyOptions]>;\n getPasswordGeneratorPolicyOptions: () => Promise;\n saveOptions: (options: any) => Promise;\n getHistory: () => Promise;\n addHistory: (password: string) => Promise;\n clear: () => Promise;\n passwordStrength: (password: string, userInputs?: string[]) => zxcvbn.ZXCVBNResult;\n normalizeOptions: (options: any, enforcedPolicyOptions: PasswordGeneratorPolicyOptions) => void;\n}\n","import {\n Directive,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appStopClick]',\n})\nexport class StopClickDirective {\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n $event.preventDefault();\n }\n}\n","export abstract class StateService {\n get: (key: string) => Promise;\n save: (key: string, obj: any) => Promise;\n remove: (key: string) => Promise;\n purge: () => Promise;\n}\n","export enum CipherType {\n Login = 1,\n SecureNote = 2,\n Card = 3,\n Identity = 4,\n}\n","import { CollectionData } from '../models/data/collectionData';\n\nimport { Collection } from '../models/domain/collection';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nexport abstract class CollectionService {\n decryptedCollectionCache: CollectionView[];\n\n clearCache: () => void;\n encrypt: (model: CollectionView) => Promise;\n decryptMany: (collections: Collection[]) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllNested: (collections?: CollectionView[]) => Promise[]>;\n getNested: (id: string) => Promise>;\n upsert: (collection: CollectionData | CollectionData[]) => Promise;\n replace: (collections: { [id: string]: CollectionData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n}\n","export abstract class StorageService {\n get: (key: string) => Promise;\n save: (key: string, obj: any) => Promise;\n remove: (key: string) => Promise;\n}\n","import { PolicyData } from '../models/data/policyData';\n\nimport { MasterPasswordPolicyOptions } from '../models/domain/masterPasswordPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { PolicyType } from '../enums/policyType';\n\nexport abstract class PolicyService {\n policyCache: Policy[];\n\n clearCache: () => void;\n getAll: (type?: PolicyType) => Promise;\n replace: (policies: { [id: string]: PolicyData; }) => Promise;\n clear: (userId: string) => Promise;\n getMasterPasswordPolicyOptions: (policies?: Policy[]) => Promise;\n evaluateMasterPassword: (passwordStrength: number, newPassword: string,\n enforcedPolicyOptions?: MasterPasswordPolicyOptions) => boolean;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[appInputVerbatim]',\n})\nexport class InputVerbatimDirective {\n @Input() set appInputVerbatim(condition: boolean | string) {\n this.disableComplete = condition === '' || condition === true;\n }\n\n private disableComplete: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit() {\n if (this.disableComplete && !this.el.nativeElement.hasAttribute('autocomplete')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocomplete', 'off');\n }\n if (!this.el.nativeElement.hasAttribute('autocapitalize')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocapitalize', 'none');\n }\n if (!this.el.nativeElement.hasAttribute('autocorrect')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocorrect', 'none');\n }\n if (!this.el.nativeElement.hasAttribute('spellcheck')) {\n this.renderer.setAttribute(this.el.nativeElement, 'spellcheck', 'false');\n }\n if (!this.el.nativeElement.hasAttribute('inputmode')) {\n this.renderer.setAttribute(this.el.nativeElement, 'inputmode', 'verbatim');\n }\n }\n}\n","import { FolderData } from '../models/data/folderData';\n\nimport { Folder } from '../models/domain/folder';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport abstract class FolderService {\n decryptedFolderCache: FolderView[];\n\n clearCache: () => void;\n encrypt: (model: FolderView, key?: SymmetricCryptoKey) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllNested: () => Promise[]>;\n getNested: (id: string) => Promise>;\n saveWithServer: (folder: Folder) => Promise;\n upsert: (folder: FolderData | FolderData[]) => Promise;\n replace: (folders: { [id: string]: FolderData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n}\n","import {\n Directive,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appStopProp]',\n})\nexport class StopPropDirective {\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n $event.stopPropagation();\n }\n}\n","import { TwoFactorProviderType } from '../enums/twoFactorProviderType';\n\nimport { AuthResult } from '../models/domain/authResult';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport abstract class AuthService {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n ssoRedirectUrl: string;\n clientId: string;\n clientSecret: string;\n twoFactorProvidersData: Map;\n selectedTwoFactorProviderType: TwoFactorProviderType;\n\n logIn: (email: string, masterPassword: string) => Promise;\n logInSso: (code: string, codeVerifier: string, redirectUrl: string) => Promise;\n logInApiKey: (clientId: string, clientSecret: string) => Promise;\n logInTwoFactor: (twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,\n remember?: boolean) => Promise;\n logInComplete: (email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean) => Promise;\n logInSsoComplete: (code: string, codeVerifier: string, redirectUrl: string,\n twoFactorProvider: TwoFactorProviderType, twoFactorToken: string, remember?: boolean) => Promise;\n logInApiKeyComplete: (clientId: string, clientSecret: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean) => Promise;\n logOut: (callback: Function) => void;\n getSupportedTwoFactorProviders: (win: Window) => any[];\n getDefaultTwoFactorProvider: (webAuthnSupported: boolean) => TwoFactorProviderType;\n makePreloginKey: (masterPassword: string, email: string) => Promise;\n authingWithApiKey: () => boolean;\n authingWithSso: () => boolean;\n authingWithPassword: () => boolean;\n}\n","import {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\n\nexport abstract class SyncService {\n syncInProgress: boolean;\n\n getLastSync: () => Promise;\n setLastSync: (date: Date) => Promise;\n fullSync: (forceSync: boolean, allowThrowOnError?: boolean) => Promise;\n syncUpsertFolder: (notification: SyncFolderNotification, isEdit: boolean) => Promise;\n syncDeleteFolder: (notification: SyncFolderNotification) => Promise;\n syncUpsertCipher: (notification: SyncCipherNotification, isEdit: boolean) => Promise;\n syncDeleteCipher: (notification: SyncFolderNotification) => Promise;\n syncUpsertSend: (notification: SyncSendNotification, isEdit: boolean) => Promise;\n syncDeleteSend: (notification: SyncSendNotification) => Promise;\n}\n","export abstract class EnvironmentService {\n baseUrl: string;\n webVaultUrl: string;\n apiUrl: string;\n identityUrl: string;\n iconsUrl: string;\n notificationsUrl: string;\n eventsUrl: string;\n enterpriseUrl: string;\n\n getWebVaultUrl: () => string;\n setUrlsFromStorage: () => Promise;\n setUrls: (urls: any) => Promise;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n} from '@angular/core';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive({\n selector: '[appAutofocus]',\n})\nexport class AutofocusDirective {\n @Input() set appAutofocus(condition: boolean | string) {\n this.autofocus = condition === '' || condition === true;\n }\n\n private autofocus: boolean;\n\n constructor(private el: ElementRef) { }\n\n ngOnInit() {\n if (!Utils.isMobileBrowser && this.autofocus) {\n this.el.nativeElement.focus();\n }\n }\n}\n","export class ConstantsService {\n static readonly environmentUrlsKey: string = 'environmentUrls';\n static readonly disableGaKey: string = 'disableGa';\n static readonly disableAddLoginNotificationKey: string = 'disableAddLoginNotification';\n static readonly disableChangedPasswordNotificationKey: string = 'disableChangedPasswordNotification';\n static readonly disableContextMenuItemKey: string = 'disableContextMenuItem';\n static readonly disableFaviconKey: string = 'disableFavicon';\n static readonly disableBadgeCounterKey: string = 'disableBadgeCounter';\n static readonly disableAutoTotpCopyKey: string = 'disableAutoTotpCopy';\n static readonly enableAutoFillOnPageLoadKey: string = 'enableAutoFillOnPageLoad';\n static readonly vaultTimeoutKey: string = 'lockOption';\n static readonly vaultTimeoutActionKey: string = 'vaultTimeoutAction';\n static readonly lastActiveKey: string = 'lastActive';\n static readonly neverDomainsKey: string = 'neverDomains';\n static readonly installedVersionKey: string = 'installedVersion';\n static readonly localeKey: string = 'locale';\n static readonly themeKey: string = 'theme';\n static readonly collapsedGroupingsKey: string = 'collapsedGroupings';\n static readonly autoConfirmFingerprints: string = 'autoConfirmFingerprints';\n static readonly dontShowCardsCurrentTab: string = 'dontShowCardsCurrentTab';\n static readonly dontShowIdentitiesCurrentTab: string = 'dontShowIdentitiesCurrentTab';\n static readonly defaultUriMatch: string = 'defaultUriMatch';\n static readonly pinProtectedKey: string = 'pinProtectedKey';\n static readonly protectedPin: string = 'protectedPin';\n static readonly clearClipboardKey: string = 'clearClipboardKey';\n static readonly eventCollectionKey: string = 'eventCollection';\n static readonly ssoCodeVerifierKey: string = 'ssoCodeVerifier';\n static readonly ssoStateKey: string = 'ssoState';\n static readonly biometricUnlockKey: string = 'biometric';\n static readonly biometricText: string = 'biometricText';\n static readonly biometricAwaitingAcceptance: string = 'biometricAwaitingAcceptance';\n static readonly biometricFingerprintValidated: string = 'biometricFingerprintValidated';\n\n readonly environmentUrlsKey: string = ConstantsService.environmentUrlsKey;\n readonly disableGaKey: string = ConstantsService.disableGaKey;\n readonly disableAddLoginNotificationKey: string = ConstantsService.disableAddLoginNotificationKey;\n readonly disableContextMenuItemKey: string = ConstantsService.disableContextMenuItemKey;\n readonly disableFaviconKey: string = ConstantsService.disableFaviconKey;\n readonly disableBadgeCounterKey: string = ConstantsService.disableBadgeCounterKey;\n readonly disableAutoTotpCopyKey: string = ConstantsService.disableAutoTotpCopyKey;\n readonly enableAutoFillOnPageLoadKey: string = ConstantsService.enableAutoFillOnPageLoadKey;\n readonly vaultTimeoutKey: string = ConstantsService.vaultTimeoutKey;\n readonly vaultTimeoutActionKey: string = ConstantsService.vaultTimeoutActionKey;\n readonly lastActiveKey: string = ConstantsService.lastActiveKey;\n readonly neverDomainsKey: string = ConstantsService.neverDomainsKey;\n readonly installedVersionKey: string = ConstantsService.installedVersionKey;\n readonly localeKey: string = ConstantsService.localeKey;\n readonly themeKey: string = ConstantsService.themeKey;\n readonly collapsedGroupingsKey: string = ConstantsService.collapsedGroupingsKey;\n readonly autoConfirmFingerprints: string = ConstantsService.autoConfirmFingerprints;\n readonly dontShowCardsCurrentTab: string = ConstantsService.dontShowCardsCurrentTab;\n readonly dontShowIdentitiesCurrentTab: string = ConstantsService.dontShowIdentitiesCurrentTab;\n readonly defaultUriMatch: string = ConstantsService.defaultUriMatch;\n readonly pinProtectedKey: string = ConstantsService.pinProtectedKey;\n readonly protectedPin: string = ConstantsService.protectedPin;\n readonly clearClipboardKey: string = ConstantsService.clearClipboardKey;\n readonly eventCollectionKey: string = ConstantsService.eventCollectionKey;\n readonly ssoCodeVerifierKey: string = ConstantsService.ssoCodeVerifierKey;\n readonly ssoStateKey: string = ConstantsService.ssoStateKey;\n readonly biometricUnlockKey: string = ConstantsService.biometricUnlockKey;\n readonly biometricText: string = ConstantsService.biometricText;\n readonly biometricAwaitingAcceptance: string = ConstantsService.biometricAwaitingAcceptance;\n readonly biometricFingerprintValidated: string = ConstantsService.biometricFingerprintValidated;\n}\n","import { EventType } from '../enums/eventType';\n\nexport abstract class EventService {\n collect: (eventType: EventType, cipherId?: string, uploadImmediately?: boolean) => Promise;\n uploadEvents: () => Promise;\n clearEvents: () => Promise;\n}\n","export class PasswordVerificationRequest {\n masterPasswordHash: string;\n}\n","import { CipherView } from '../models/view/cipherView';\nimport { SendView } from '../models/view/sendView';\n\nexport abstract class SearchService {\n indexedEntityId?: string = null;\n clearIndex: () => void;\n isSearchable: (query: string) => boolean;\n indexCiphers: (indexedEntityGuid?: string, ciphersToIndex?: CipherView[]) => Promise;\n searchCiphers: (query: string,\n filter?: ((cipher: CipherView) => boolean) | (((cipher: CipherView) => boolean)[]),\n ciphers?: CipherView[]) => Promise;\n searchCiphersBasic: (ciphers: CipherView[], query: string, deleted?: boolean) => CipherView[];\n searchSends: (sends: SendView[], query: string) => SendView[];\n}\n","import { EncString } from './encString';\n\nimport { View } from '../view/view';\n\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport default class Domain {\n protected buildDomainModel(domain: D, dataObj: any, map: any,\n alreadyEncrypted: boolean, notEncList: any[] = []) {\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n const objProp = dataObj[(map[prop] || prop)];\n if (alreadyEncrypted === true || notEncList.indexOf(prop) > -1) {\n (domain as any)[prop] = objProp ? objProp : null;\n } else {\n (domain as any)[prop] = objProp ? new EncString(objProp) : null;\n }\n }\n }\n protected buildDataModel(domain: D, dataObj: any, map: any, notEncStringList: any[] = []) {\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n const objProp = (domain as any)[(map[prop] || prop)];\n if (notEncStringList.indexOf(prop) > -1) {\n (dataObj as any)[prop] = objProp != null ? objProp : null;\n } else {\n (dataObj as any)[prop] = objProp != null ? (objProp as EncString).encryptedString : null;\n }\n }\n }\n\n protected async decryptObj(viewModel: T, map: any, orgId: string,\n key: SymmetricCryptoKey = null): Promise {\n const promises = [];\n const self: any = this;\n\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n // tslint:disable-next-line\n (function (theProp) {\n const p = Promise.resolve().then(() => {\n const mapProp = map[theProp] || theProp;\n if (self[mapProp]) {\n return self[mapProp].decrypt(orgId, key);\n }\n return null;\n }).then((val: any) => {\n (viewModel as any)[theProp] = val;\n });\n promises.push(p);\n })(prop);\n }\n\n await Promise.all(promises);\n return viewModel;\n }\n}\n","import * as jq from 'jquery';\n\nimport {\n Component,\n ComponentFactoryResolver,\n Type,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ModalComponent as BaseModalComponent } from 'jslib/angular/components/modal.component';\nimport { Utils } from 'jslib/misc/utils';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\n@Component({\n selector: 'app-modal',\n template: ``,\n})\nexport class ModalComponent extends BaseModalComponent {\n el: any = null;\n\n constructor(componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService) {\n super(componentFactoryResolver, messagingService);\n }\n\n ngOnDestroy() { /* Nothing */ }\n\n show(type: Type, parentContainer: ViewContainerRef, fade: boolean = true,\n setComponentParameters: (component: T) => void = null): T {\n this.parentContainer = parentContainer;\n this.fade = fade;\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = this.container.createComponent(factory);\n if (setComponentParameters != null) {\n setComponentParameters(componentRef.instance);\n }\n\n const modals = Array.from(document.querySelectorAll('.modal'));\n if (modals.length > 0) {\n this.el = jq(modals[0]);\n this.el.modal('show');\n\n this.el.on('show.bs.modal', () => {\n this.onShow.emit();\n this.messagingService.send('modalShow');\n });\n this.el.on('shown.bs.modal', () => {\n this.onShown.emit();\n this.messagingService.send('modalShown');\n if (!Utils.isMobileBrowser) {\n this.el.find('*[appAutoFocus]').focus();\n }\n });\n this.el.on('hide.bs.modal', () => {\n this.onClose.emit();\n this.messagingService.send('modalClose');\n });\n this.el.on('hidden.bs.modal', () => {\n this.onClosed.emit();\n this.messagingService.send('modalClosed');\n if (this.parentContainer != null) {\n this.parentContainer.clear();\n }\n });\n }\n\n return componentRef.instance;\n }\n\n close() {\n if (this.el != null) {\n this.el.modal('hide');\n }\n }\n}\n","import { BreachAccountResponse } from '../models/response/breachAccountResponse';\n\nexport abstract class AuditService {\n passwordLeaked: (password: string) => Promise;\n breachedAccounts: (username: string) => Promise;\n}\n","import { View } from './view';\n\nimport { Card } from '../domain/card';\n\nexport class CardView implements View {\n cardholderName: string = null;\n expMonth: string = null;\n expYear: string = null;\n code: string = null;\n\n // tslint:disable\n private _brand: string = null;\n private _number: string = null;\n private _subTitle: string = null;\n // tslint:enable\n\n constructor(c?: Card) {\n // ctor\n }\n\n get maskedCode(): string {\n return this.code != null ? '•'.repeat(this.code.length) : null;\n }\n\n get brand(): string {\n return this._brand;\n }\n set brand(value: string) {\n this._brand = value;\n this._subTitle = null;\n }\n\n get number(): string {\n return this._number;\n }\n set number(value: string) {\n this._number = value;\n this._subTitle = null;\n }\n\n get subTitle(): string {\n if (this._subTitle == null) {\n this._subTitle = this.brand;\n if (this.number != null && this.number.length >= 4) {\n if (this._subTitle != null && this._subTitle !== '') {\n this._subTitle += ', ';\n } else {\n this._subTitle = '';\n }\n\n // Show last 5 on amex, last 4 for all others\n const count = this.number.length >= 5 && this.number.match(new RegExp('^3[47]')) != null ? 5 : 4;\n this._subTitle += ('*' + this.number.substr(this.number.length - count));\n }\n }\n return this._subTitle;\n }\n\n get expiration(): string {\n if (!this.expMonth && !this.expYear) {\n return null;\n }\n\n let exp = this.expMonth != null ? ('0' + this.expMonth).slice(-2) : '__';\n exp += (' / ' + (this.expYear != null ? this.formatYear(this.expYear) : '____'));\n return exp;\n }\n\n private formatYear(year: string): string {\n return year.length === 2 ? '20' + year : year;\n }\n}\n","import { EncString } from '../models/domain/encString';\n\nexport abstract class VaultTimeoutService {\n biometricLocked: boolean;\n pinProtectedKey: EncString;\n isLocked: () => Promise;\n checkVaultTimeout: () => Promise;\n lock: (allowSoftLock?: boolean) => Promise;\n logOut: () => Promise;\n setVaultTimeoutOptions: (vaultTimeout: number, vaultTimeoutAction: string) => Promise;\n isPinLockSet: () => Promise<[boolean, boolean]>;\n isBiometricLockSet: () => Promise;\n clear: () => Promise;\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { View } from './view';\n\nimport { SecureNote } from '../domain/secureNote';\n\nexport class SecureNoteView implements View {\n type: SecureNoteType = null;\n\n constructor(n?: SecureNote) {\n if (!n) {\n return;\n }\n\n this.type = n.type;\n }\n\n get subTitle(): string {\n return null;\n }\n}\n","export abstract class TokenService {\n token: string;\n decodedToken: any;\n refreshToken: string;\n setTokens: (accessToken: string, refreshToken: string) => Promise;\n setToken: (token: string) => Promise;\n getToken: () => Promise;\n setRefreshToken: (refreshToken: string) => Promise;\n getRefreshToken: () => Promise;\n toggleTokens: () => Promise;\n setTwoFactorToken: (token: string, email: string) => Promise;\n getTwoFactorToken: (email: string) => Promise;\n clearTwoFactorToken: (email: string) => Promise;\n clearToken: () => Promise;\n decodeToken: () => any;\n getTokenExpirationDate: () => Date;\n tokenSecondsRemaining: (offsetSeconds?: number) => number;\n tokenNeedsRefresh: (minutes?: number) => boolean;\n getUserId: () => string;\n getEmail: () => string;\n getEmailVerified: () => boolean;\n getName: () => string;\n getPremium: () => boolean;\n getIssuer: () => string;\n}\n","import { DecryptParameters } from '../models/domain/decryptParameters';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport abstract class CryptoFunctionService {\n pbkdf2: (password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: 'sha256' | 'sha512',\n iterations: number) => Promise;\n hkdf: (ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer,\n outputByteSize: number, algorithm: 'sha256' | 'sha512') => Promise;\n hkdfExpand: (prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number,\n algorithm: 'sha256' | 'sha512') => Promise;\n hash: (value: string | ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5') => Promise;\n hmac: (value: ArrayBuffer, key: ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512') => Promise;\n compare: (a: ArrayBuffer, b: ArrayBuffer) => Promise;\n hmacFast: (value: ArrayBuffer | string, key: ArrayBuffer | string, algorithm: 'sha1' | 'sha256' | 'sha512') =>\n Promise;\n compareFast: (a: ArrayBuffer | string, b: ArrayBuffer | string) => Promise;\n aesEncrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise;\n aesDecryptFastParameters: (data: string, iv: string, mac: string, key: SymmetricCryptoKey) =>\n DecryptParameters;\n aesDecryptFast: (parameters: DecryptParameters) => Promise;\n aesDecrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise;\n rsaEncrypt: (data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: 'sha1' | 'sha256') => Promise;\n rsaDecrypt: (data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: 'sha1' | 'sha256') => Promise;\n rsaExtractPublicKey: (privateKey: ArrayBuffer) => Promise;\n rsaGenerateKeyPair: (length: 1024 | 2048 | 4096) => Promise<[ArrayBuffer, ArrayBuffer]>;\n randomBytes: (length: number) => Promise;\n}\n","import { EncryptionType } from '../../enums/encryptionType';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\n\nimport { Utils } from '../../misc/utils';\n\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class EncString {\n encryptedString?: string;\n encryptionType?: EncryptionType;\n decryptedValue?: string;\n data?: string;\n iv?: string;\n mac?: string;\n\n constructor(encryptedStringOrType: string | EncryptionType, data?: string, iv?: string, mac?: string) {\n if (data != null) {\n // data and header\n const encType = encryptedStringOrType as EncryptionType;\n\n if (iv != null) {\n this.encryptedString = encType + '.' + iv + '|' + data;\n } else {\n this.encryptedString = encType + '.' + data;\n }\n\n // mac\n if (mac != null) {\n this.encryptedString += ('|' + mac);\n }\n\n this.encryptionType = encType;\n this.data = data;\n this.iv = iv;\n this.mac = mac;\n\n return;\n }\n\n this.encryptedString = encryptedStringOrType as string;\n if (!this.encryptedString) {\n return;\n }\n\n const headerPieces = this.encryptedString.split('.');\n let encPieces: string[] = null;\n\n if (headerPieces.length === 2) {\n try {\n this.encryptionType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split('|');\n } catch (e) {\n return;\n }\n } else {\n encPieces = this.encryptedString.split('|');\n this.encryptionType = encPieces.length === 3 ? EncryptionType.AesCbc128_HmacSha256_B64 :\n EncryptionType.AesCbc256_B64;\n }\n\n switch (this.encryptionType) {\n case EncryptionType.AesCbc128_HmacSha256_B64:\n case EncryptionType.AesCbc256_HmacSha256_B64:\n if (encPieces.length !== 3) {\n return;\n }\n\n this.iv = encPieces[0];\n this.data = encPieces[1];\n this.mac = encPieces[2];\n break;\n case EncryptionType.AesCbc256_B64:\n if (encPieces.length !== 2) {\n return;\n }\n\n this.iv = encPieces[0];\n this.data = encPieces[1];\n break;\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n if (encPieces.length !== 1) {\n return;\n }\n\n this.data = encPieces[0];\n break;\n default:\n return;\n }\n }\n\n async decrypt(orgId: string, key: SymmetricCryptoKey = null): Promise {\n if (this.decryptedValue != null) {\n return this.decryptedValue;\n }\n\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n if (key == null) {\n key = await cryptoService.getOrgKey(orgId);\n }\n this.decryptedValue = await cryptoService.decryptToUtf8(this, key);\n } catch (e) {\n this.decryptedValue = '[error: cannot decrypt]';\n }\n return this.decryptedValue;\n }\n}\n","export enum SecureNoteType {\n Generic = 0,\n}\n","import {\n Component,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\n\nimport { CipherView } from '../../models/view/cipherView';\n\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { StateService } from '../../abstractions/state.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nconst IconMap: any = {\n 'fa-globe': String.fromCharCode(0xf0ac),\n 'fa-sticky-note-o': String.fromCharCode(0xf24a),\n 'fa-id-card-o': String.fromCharCode(0xf2c3),\n 'fa-credit-card': String.fromCharCode(0xf09d),\n 'fa-android': String.fromCharCode(0xf17b),\n 'fa-apple': String.fromCharCode(0xf179),\n};\n\n@Component({\n selector: 'app-vault-icon',\n templateUrl: 'icon.component.html',\n})\nexport class IconComponent implements OnChanges {\n @Input() cipher: CipherView;\n icon: string;\n image: string;\n fallbackImage: string;\n imageEnabled: boolean;\n\n private iconsUrl: string;\n\n constructor(environmentService: EnvironmentService, protected stateService: StateService) {\n this.iconsUrl = environmentService.iconsUrl;\n if (!this.iconsUrl) {\n if (environmentService.baseUrl) {\n this.iconsUrl = environmentService.baseUrl + '/icons';\n } else {\n this.iconsUrl = 'https://icons.bitwarden.net';\n }\n }\n }\n\n async ngOnChanges() {\n this.imageEnabled = !(await this.stateService.get(ConstantsService.disableFaviconKey));\n this.load();\n }\n\n get iconCode(): string {\n return IconMap[this.icon];\n }\n\n protected load() {\n switch (this.cipher.type) {\n case CipherType.Login:\n this.icon = 'fa-globe';\n this.setLoginIcon();\n break;\n case CipherType.SecureNote:\n this.icon = 'fa-sticky-note-o';\n break;\n case CipherType.Card:\n this.icon = 'fa-credit-card';\n break;\n case CipherType.Identity:\n this.icon = 'fa-id-card-o';\n break;\n default:\n break;\n }\n }\n\n private setLoginIcon() {\n if (this.cipher.login.uri) {\n let hostnameUri = this.cipher.login.uri;\n let isWebsite = false;\n\n if (hostnameUri.indexOf('androidapp://') === 0) {\n this.icon = 'fa-android';\n this.image = null;\n } else if (hostnameUri.indexOf('iosapp://') === 0) {\n this.icon = 'fa-apple';\n this.image = null;\n } else if (this.imageEnabled && hostnameUri.indexOf('://') === -1 && hostnameUri.indexOf('.') > -1) {\n hostnameUri = 'http://' + hostnameUri;\n isWebsite = true;\n } else if (this.imageEnabled) {\n isWebsite = hostnameUri.indexOf('http') === 0 && hostnameUri.indexOf('.') > -1;\n }\n\n if (this.imageEnabled && isWebsite) {\n try {\n this.image = this.iconsUrl + '/' + Utils.getHostname(hostnameUri) + '/icon.png';\n this.fallbackImage = 'images/fa-globe.png';\n } catch (e) { }\n }\n } else {\n this.image = null;\n }\n }\n}\n","
\n \"\"\n \n
\n","import { Injectable } from '@angular/core';\n\nimport { BroadcasterService as BaseBroadcasterService } from '../../services/broadcaster.service';\n\n@Injectable()\nexport class BroadcasterService extends BaseBroadcasterService {\n}\n","export enum TwoFactorProviderType {\n Authenticator = 0,\n Email = 1,\n Duo = 2,\n Yubikey = 3,\n U2f = 4,\n Remember = 5,\n OrganizationDuo = 6,\n WebAuthn = 7,\n}\n","export abstract class TotpService {\n getCode: (key: string) => Promise;\n getTimeInterval: (key: string) => number;\n isAutoCopyEnabled: () => Promise;\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { WebConstants } from '../../services/webConstants';\n\nconst StripeElementStyle = {\n base: {\n color: '#333333',\n fontFamily: '\"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, ' +\n '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n fontSize: '14px',\n fontSmoothing: 'antialiased',\n },\n invalid: {\n color: '#333333',\n },\n};\n\nconst StripeElementClasses = {\n focus: 'is-focused',\n empty: 'is-empty',\n invalid: 'is-invalid',\n};\n\n@Component({\n selector: 'app-payment',\n templateUrl: 'payment.component.html',\n})\nexport class PaymentComponent implements OnInit {\n @Input() showMethods = true;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.Card;\n @Input() hideBank = false;\n @Input() hidePaypal = false;\n @Input() hideCredit = false;\n\n bank: any = {\n routing_number: null,\n account_number: null,\n account_holder_name: null,\n account_holder_type: '',\n currency: 'USD',\n country: 'US',\n };\n\n paymentMethodType = PaymentMethodType;\n\n private btScript: HTMLScriptElement;\n private btInstance: any = null;\n private stripeScript: HTMLScriptElement;\n private stripe: any = null;\n private stripeElements: any = null;\n private stripeCardNumberElement: any = null;\n private stripeCardExpiryElement: any = null;\n private stripeCardCvcElement: any = null;\n\n constructor(private platformUtilsService: PlatformUtilsService, private apiService: ApiService) {\n this.stripeScript = window.document.createElement('script');\n this.stripeScript.src = 'https://js.stripe.com/v3/';\n this.stripeScript.async = true;\n this.stripeScript.onload = () => {\n this.stripe = (window as any).Stripe(this.platformUtilsService.isDev() ?\n WebConstants.stripeTestKey : WebConstants.stripeLiveKey);\n this.stripeElements = this.stripe.elements();\n this.setStripeElement();\n };\n this.btScript = window.document.createElement('script');\n this.btScript.src = 'scripts/dropin.js';\n this.btScript.async = true;\n }\n\n ngOnInit() {\n if (!this.showOptions) {\n this.hidePaypal = this.method !== PaymentMethodType.PayPal;\n this.hideBank = this.method !== PaymentMethodType.BankAccount;\n this.hideCredit = this.method !== PaymentMethodType.Credit;\n }\n window.document.head.appendChild(this.stripeScript);\n if (!this.hidePaypal) {\n window.document.head.appendChild(this.btScript);\n }\n }\n\n ngOnDestroy() {\n window.document.head.removeChild(this.stripeScript);\n window.setTimeout(() => {\n Array.from(window.document.querySelectorAll('iframe')).forEach(el => {\n if (el.src != null && el.src.indexOf('stripe') > -1) {\n try {\n window.document.body.removeChild(el);\n } catch { }\n }\n });\n }, 500);\n if (!this.hidePaypal) {\n window.document.head.removeChild(this.btScript);\n window.setTimeout(() => {\n Array.from(window.document.head.querySelectorAll('script')).forEach(el => {\n if (el.src != null && el.src.indexOf('paypal') > -1) {\n try {\n window.document.head.removeChild(el);\n } catch { }\n }\n });\n const btStylesheet = window.document.head.querySelector('#braintree-dropin-stylesheet');\n if (btStylesheet != null) {\n try {\n window.document.head.removeChild(btStylesheet);\n } catch { }\n }\n }, 500);\n }\n }\n\n changeMethod() {\n this.btInstance = null;\n\n if (this.method === PaymentMethodType.PayPal) {\n window.setTimeout(() => {\n (window as any).braintree.dropin.create({\n authorization: this.platformUtilsService.isDev() ?\n WebConstants.btSandboxKey : WebConstants.btProductionKey,\n container: '#bt-dropin-container',\n paymentOptionPriority: ['paypal'],\n paypal: {\n flow: 'vault',\n buttonStyle: {\n label: 'pay',\n size: 'medium',\n shape: 'pill',\n color: 'blue',\n },\n },\n }, (createErr: any, instance: any) => {\n if (createErr != null) {\n // tslint:disable-next-line\n console.error(createErr);\n return;\n }\n this.btInstance = instance;\n });\n }, 250);\n } else {\n this.setStripeElement();\n }\n }\n\n createPaymentToken(): Promise<[string, PaymentMethodType]> {\n return new Promise((resolve, reject) => {\n if (this.method === PaymentMethodType.Credit) {\n resolve([null, this.method]);\n } else if (this.method === PaymentMethodType.PayPal) {\n this.btInstance.requestPaymentMethod().then((payload: any) => {\n resolve([payload.nonce, this.method]);\n }).catch((err: any) => {\n reject(err.message);\n });\n } else if (this.method === PaymentMethodType.Card || this.method === PaymentMethodType.BankAccount) {\n if (this.method === PaymentMethodType.Card) {\n this.apiService.postSetupPayment().then(clientSecret =>\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement))\n .then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.setupIntent && result.setupIntent.status === 'succeeded') {\n resolve([result.setupIntent.payment_method, this.method]);\n } else {\n reject();\n }\n });\n } else {\n this.stripe.createToken('bank_account', this.bank).then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.token && result.token.id != null) {\n resolve([result.token.id, this.method]);\n } else {\n reject();\n }\n });\n }\n }\n });\n }\n\n handleStripeCardPayment(clientSecret: string, successCallback: () => Promise): Promise {\n return new Promise((resolve, reject) => {\n if (this.showMethods && this.stripeCardNumberElement == null) {\n reject();\n return;\n }\n const handleCardPayment = () => this.showMethods ?\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement) :\n this.stripe.handleCardSetup(clientSecret);\n return handleCardPayment().then(async (result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.paymentIntent && result.paymentIntent.status === 'succeeded') {\n if (successCallback != null) {\n await successCallback();\n }\n resolve();\n } else {\n reject();\n }\n });\n });\n }\n\n private setStripeElement() {\n window.setTimeout(() => {\n if (this.showMethods && this.method === PaymentMethodType.Card) {\n if (this.stripeCardNumberElement == null) {\n this.stripeCardNumberElement = this.stripeElements.create('cardNumber', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n placeholder: '',\n });\n }\n if (this.stripeCardExpiryElement == null) {\n this.stripeCardExpiryElement = this.stripeElements.create('cardExpiry', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n });\n }\n if (this.stripeCardCvcElement == null) {\n this.stripeCardCvcElement = this.stripeElements.create('cardCvc', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n placeholder: '',\n });\n }\n this.stripeCardNumberElement.mount('#stripe-card-number-element');\n this.stripeCardExpiryElement.mount('#stripe-card-expiry-element');\n this.stripeCardCvcElement.mount('#stripe-card-cvc-element');\n }\n }, 50);\n }\n}\n","
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n
\n
\n \"Visa,\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n \n {{'verifyBankAccountInitialDesc' | i18n}} {{'verifyBankAccountFailureWarning' | i18n}}\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n {{'paypalClickSubmit' | i18n}}\n
\n
\n\n \n {{'makeSureEnoughCredit' | i18n}}\n \n\n","export enum FieldType {\n Text = 0,\n Hidden = 1,\n Boolean = 2,\n}\n","import { View } from './view';\n\nimport { Folder } from '../domain/folder';\nimport { ITreeNodeObject } from '../domain/treeNode';\n\nexport class FolderView implements View, ITreeNodeObject {\n id: string = null;\n name: string = null;\n revisionDate: Date = null;\n\n constructor(f?: Folder) {\n if (!f) {\n return;\n }\n\n this.id = f.id;\n this.revisionDate = f.revisionDate;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { StateService } from 'jslib/abstractions/state.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-avatar',\n template: '',\n})\nexport class AvatarComponent implements OnChanges, OnInit {\n @Input() data: string;\n @Input() email: string;\n @Input() size = 45;\n @Input() charCount = 2;\n @Input() textColor = '#ffffff';\n @Input() fontSize = 20;\n @Input() fontWeight = 300;\n @Input() dynamic = false;\n @Input() circle = false;\n\n src: string;\n\n constructor(public sanitizer: DomSanitizer, private cryptoFunctionService: CryptoFunctionService,\n private stateService: StateService) { }\n\n ngOnInit() {\n if (!this.dynamic) {\n this.generate();\n }\n }\n\n ngOnChanges() {\n if (this.dynamic) {\n this.generate();\n }\n }\n\n private async generate() {\n const enableGravatars = await this.stateService.get('enableGravatars');\n if (enableGravatars && this.email != null) {\n const hashBytes = await this.cryptoFunctionService.hash(this.email.toLowerCase().trim(), 'md5');\n const hash = Utils.fromBufferToHex(hashBytes).toLowerCase();\n this.src = 'https://www.gravatar.com/avatar/' + hash + '?s=' + this.size + '&r=pg&d=retro';\n } else {\n let chars: string = null;\n const upperData = this.data.toUpperCase();\n\n if (this.charCount > 1) {\n chars = this.getFirstLetters(upperData, this.charCount);\n }\n if (chars == null) {\n chars = upperData.substr(0, this.charCount);\n }\n\n const charObj = this.getCharText(chars);\n const color = this.stringToColor(upperData);\n const svg = this.getSvg(this.size, color);\n svg.appendChild(charObj);\n const html = window.document.createElement('div').appendChild(svg).outerHTML;\n const svgHtml = window.btoa(unescape(encodeURIComponent(html)));\n this.src = 'data:image/svg+xml;base64,' + svgHtml;\n }\n }\n\n private stringToColor(str: string): string {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n // tslint:disable-next-line\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n let color = '#';\n for (let i = 0; i < 3; i++) {\n // tslint:disable-next-line\n const value = (hash >> (i * 8)) & 0xFF;\n color += ('00' + value.toString(16)).substr(-2);\n }\n return color;\n }\n\n private getFirstLetters(data: string, count: number): string {\n const parts = data.split(' ');\n if (parts.length > 1) {\n let text = '';\n for (let i = 0; i < count; i++) {\n text += parts[i].substr(0, 1);\n }\n return text;\n }\n return null;\n }\n\n private getSvg(size: number, color: string): HTMLElement {\n const svgTag = window.document.createElement('svg');\n svgTag.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svgTag.setAttribute('pointer-events', 'none');\n svgTag.setAttribute('width', size.toString());\n svgTag.setAttribute('height', size.toString());\n svgTag.style.backgroundColor = color;\n svgTag.style.width = size + 'px';\n svgTag.style.height = size + 'px';\n return svgTag;\n }\n\n private getCharText(character: string): HTMLElement {\n const textTag = window.document.createElement('text');\n textTag.setAttribute('text-anchor', 'middle');\n textTag.setAttribute('y', '50%');\n textTag.setAttribute('x', '50%');\n textTag.setAttribute('dy', '0.35em');\n textTag.setAttribute('pointer-events', 'auto');\n textTag.setAttribute('fill', this.textColor);\n textTag.setAttribute('font-family', '\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,' +\n 'sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"');\n textTag.textContent = character;\n textTag.style.fontWeight = this.fontWeight.toString();\n textTag.style.fontSize = this.fontSize + 'px';\n return textTag;\n }\n}\n","import { CollectionData } from '../data/collectionData';\n\nimport { CollectionView } from '../view/collectionView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nexport class Collection extends Domain {\n id: string;\n organizationId: string;\n name: EncString;\n externalId: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(obj?: CollectionData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n organizationId: null,\n name: null,\n externalId: null,\n readOnly: null,\n hidePasswords: null,\n }, alreadyEncrypted, ['id', 'organizationId', 'externalId', 'readOnly', 'hidePasswords']);\n }\n\n decrypt(): Promise {\n return this.decryptObj(new CollectionView(this), {\n name: null,\n }, this.organizationId);\n }\n}\n","export enum PolicyType {\n TwoFactorAuthentication = 0, // Requires users to have 2fa enabled\n MasterPassword = 1, // Sets minimum requirements for master password complexity\n PasswordGenerator = 2, // Sets minimum requirements/default type for generated passwords/passphrases\n SingleOrg = 3, // Allows users to only be apart of one organization\n RequireSso = 4, // Requires users to authenticate with SSO\n PersonalOwnership = 5, // Disables personal vault ownership for adding/cloning items\n DisableSend = 6, // Disables the ability to create and edit Bitwarden Sends\n SendOptions = 7, // Sets restrictions or defaults for Bitwarden Sends\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { OrganizationTaxInfoUpdateRequest } from 'jslib/models/request/organizationTaxInfoUpdateRequest';\nimport { TaxInfoUpdateRequest } from 'jslib/models/request/taxInfoUpdateRequest';\nimport { TaxRateResponse } from 'jslib/models/response/taxRateResponse';\n\n@Component({\n selector: 'app-tax-info',\n templateUrl: 'tax-info.component.html',\n})\nexport class TaxInfoComponent {\n @Output() onCountryChanged = new EventEmitter();\n\n loading: boolean = true;\n organizationId: string;\n taxInfo: any = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: 'US',\n includeTaxId: false,\n };\n\n taxRates: TaxRateResponse[];\n\n private pristine: any = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: 'US',\n includeTaxId: false,\n };\n\n constructor(private apiService: ApiService, private route: ActivatedRoute) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n if (this.organizationId) {\n try {\n const taxInfo = await this.apiService.getOrganizationTaxInfo(this.organizationId);\n if (taxInfo) {\n this.taxInfo.taxId = taxInfo.taxId;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.line1 = taxInfo.line1;\n this.taxInfo.line2 = taxInfo.line2;\n this.taxInfo.city = taxInfo.city;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || 'US';\n this.taxInfo.includeTaxId = this.taxInfo.country !== 'US' && (\n !!taxInfo.taxId\n || !!taxInfo.line1\n || !!taxInfo.line2\n || !!taxInfo.city\n || !!taxInfo.state);\n }\n } catch { }\n } else {\n const taxInfo = await this.apiService.getTaxInfo();\n if (taxInfo) {\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || 'US';\n }\n }\n this.pristine = Object.assign({}, this.taxInfo);\n // If not the default (US) then trigger onCountryChanged\n if (this.taxInfo.country !== 'US') {\n this.onCountryChanged.emit();\n }\n });\n\n const taxRates = await this.apiService.getTaxRates();\n this.taxRates = taxRates.data;\n this.loading = false;\n }\n\n get taxRate() {\n if (this.taxRates != null) {\n const localTaxRate = this.taxRates.find(x =>\n x.country === this.taxInfo.country &&\n x.postalCode === this.taxInfo.postalCode\n );\n return localTaxRate?.rate ?? null;\n }\n }\n\n getTaxInfoRequest(): TaxInfoUpdateRequest {\n if (this.organizationId) {\n const request = new OrganizationTaxInfoUpdateRequest();\n request.taxId = this.taxInfo.taxId;\n request.state = this.taxInfo.state;\n request.line1 = this.taxInfo.line1;\n request.line2 = this.taxInfo.line2;\n request.city = this.taxInfo.city;\n request.state = this.taxInfo.state;\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n } else {\n const request = new TaxInfoUpdateRequest();\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n }\n }\n\n submitTaxInfo(): Promise {\n if (!this.hasChanged()) {\n return new Promise(resolve => { resolve(); });\n }\n const request = this.getTaxInfoRequest();\n return this.organizationId ? this.apiService.putOrganizationTaxInfo(this.organizationId,\n request as OrganizationTaxInfoUpdateRequest) : this.apiService.putTaxInfo(request);\n }\n\n changeCountry() {\n if (this.taxInfo.country === 'US') {\n this.taxInfo.includeTaxId = false;\n this.taxInfo.taxId = null;\n this.taxInfo.line1 = null;\n this.taxInfo.line2 = null;\n this.taxInfo.city = null;\n this.taxInfo.state = null;\n }\n this.onCountryChanged.emit();\n }\n\n private hasChanged(): boolean {\n for (const key in this.taxInfo) {\n if (this.pristine.hasOwnProperty(key) && this.pristine[key] !== this.taxInfo[key]) {\n return true;\n }\n }\n return false;\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n","import { CipherType } from '../../enums/cipherType';\n\nimport { Cipher } from '../domain/cipher';\n\nimport { AttachmentView } from './attachmentView';\nimport { CardView } from './cardView';\nimport { FieldView } from './fieldView';\nimport { IdentityView } from './identityView';\nimport { LoginView } from './loginView';\nimport { PasswordHistoryView } from './passwordHistoryView';\nimport { SecureNoteView } from './secureNoteView';\nimport { View } from './view';\n\nexport class CipherView implements View {\n id: string = null;\n organizationId: string = null;\n folderId: string = null;\n name: string = null;\n notes: string = null;\n type: CipherType = null;\n favorite = false;\n organizationUseTotp = false;\n edit = false;\n viewPassword = true;\n localData: any;\n login = new LoginView();\n identity = new IdentityView();\n card = new CardView();\n secureNote = new SecureNoteView();\n attachments: AttachmentView[] = null;\n fields: FieldView[] = null;\n passwordHistory: PasswordHistoryView[] = null;\n collectionIds: string[] = null;\n revisionDate: Date = null;\n deletedDate: Date = null;\n\n constructor(c?: Cipher) {\n if (!c) {\n return;\n }\n\n this.id = c.id;\n this.organizationId = c.organizationId;\n this.folderId = c.folderId;\n this.favorite = c.favorite;\n this.organizationUseTotp = c.organizationUseTotp;\n this.edit = c.edit;\n this.viewPassword = c.viewPassword;\n this.type = c.type;\n this.localData = c.localData;\n this.collectionIds = c.collectionIds;\n this.revisionDate = c.revisionDate;\n this.deletedDate = c.deletedDate;\n }\n\n get subTitle(): string {\n switch (this.type) {\n case CipherType.Login:\n return this.login.subTitle;\n case CipherType.SecureNote:\n return this.secureNote.subTitle;\n case CipherType.Card:\n return this.card.subTitle;\n case CipherType.Identity:\n return this.identity.subTitle;\n default:\n break;\n }\n\n return null;\n }\n\n get hasPasswordHistory(): boolean {\n return this.passwordHistory && this.passwordHistory.length > 0;\n }\n\n get hasAttachments(): boolean {\n return this.attachments && this.attachments.length > 0;\n }\n\n get hasOldAttachments(): boolean {\n if (this.hasAttachments) {\n for (let i = 0; i < this.attachments.length; i++) {\n if (this.attachments[i].key == null) {\n return true;\n }\n }\n }\n return false;\n }\n\n get hasFields(): boolean {\n return this.fields && this.fields.length > 0;\n }\n\n get passwordRevisionDisplayDate(): Date {\n if (this.type !== CipherType.Login || this.login == null) {\n return null;\n } else if (this.login.password == null || this.login.password === '') {\n return null;\n }\n return this.login.passwordRevisionDate;\n }\n\n get isDeleted(): boolean {\n return this.deletedDate != null;\n }\n}\n","import { View } from './view';\n\nimport { Identity } from '../domain/identity';\n\nimport { Utils } from '../../misc/utils';\n\nexport class IdentityView implements View {\n title: string = null;\n middleName: string = null;\n address1: string = null;\n address2: string = null;\n address3: string = null;\n city: string = null;\n state: string = null;\n postalCode: string = null;\n country: string = null;\n company: string = null;\n email: string = null;\n phone: string = null;\n ssn: string = null;\n username: string = null;\n passportNumber: string = null;\n licenseNumber: string = null;\n\n // tslint:disable\n private _firstName: string = null;\n private _lastName: string = null;\n private _subTitle: string = null;\n // tslint:enable\n\n constructor(i?: Identity) {\n // ctor\n }\n\n get firstName(): string {\n return this._firstName;\n }\n set firstName(value: string) {\n this._firstName = value;\n this._subTitle = null;\n }\n\n get lastName(): string {\n return this._lastName;\n }\n set lastName(value: string) {\n this._lastName = value;\n this._subTitle = null;\n }\n\n get subTitle(): string {\n if (this._subTitle == null && (this.firstName != null || this.lastName != null)) {\n this._subTitle = '';\n if (this.firstName != null) {\n this._subTitle = this.firstName;\n }\n if (this.lastName != null) {\n if (this._subTitle !== '') {\n this._subTitle += ' ';\n }\n this._subTitle += this.lastName;\n }\n }\n\n return this._subTitle;\n }\n\n get fullName(): string {\n if (this.title != null || this.firstName != null || this.middleName != null || this.lastName != null) {\n let name = '';\n if (this.title != null) {\n name += (this.title + ' ');\n }\n if (this.firstName != null) {\n name += (this.firstName + ' ');\n }\n if (this.middleName != null) {\n name += (this.middleName + ' ');\n }\n if (this.lastName != null) {\n name += this.lastName;\n }\n return name.trim();\n }\n\n return null;\n }\n\n get fullAddress(): string {\n let address = this.address1;\n if (!Utils.isNullOrWhitespace(this.address2)) {\n if (!Utils.isNullOrWhitespace(address)) {\n address += ', ';\n }\n address += this.address2;\n }\n if (!Utils.isNullOrWhitespace(this.address3)) {\n if (!Utils.isNullOrWhitespace(address)) {\n address += ', ';\n }\n address += this.address3;\n }\n return address;\n }\n\n get fullAddressPart2(): string {\n if (this.city == null && this.state == null && this.postalCode == null) {\n return null;\n }\n const city = this.city || '-';\n const state = this.state;\n const postalCode = this.postalCode || '-';\n let addressPart2 = city;\n if (!Utils.isNullOrWhitespace(state)) {\n addressPart2 += ', ' + state;\n }\n addressPart2 += ', ' + postalCode;\n return addressPart2;\n }\n}\n","import { CollectionDetailsResponse } from '../response/collectionResponse';\n\nexport class CollectionData {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n readOnly: boolean;\n\n constructor(response: CollectionDetailsResponse) {\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.name = response.name;\n this.externalId = response.externalId;\n this.readOnly = response.readOnly;\n }\n}\n","import { View } from './view';\n\nimport { Collection } from '../domain/collection';\nimport { ITreeNodeObject } from '../domain/treeNode';\n\nimport { CollectionGroupDetailsResponse } from '../response/collectionResponse';\n\nexport class CollectionView implements View, ITreeNodeObject {\n id: string = null;\n organizationId: string = null;\n name: string = null;\n externalId: string = null;\n readOnly: boolean = null;\n hidePasswords: boolean = null;\n\n constructor(c?: Collection | CollectionGroupDetailsResponse) {\n if (!c) {\n return;\n }\n\n this.id = c.id;\n this.organizationId = c.organizationId;\n this.externalId = c.externalId;\n if (c instanceof Collection) {\n this.readOnly = c.readOnly;\n this.hidePasswords = c.hidePasswords;\n }\n }\n}\n","export enum OrganizationUserStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { AttachmentData } from './attachmentData';\nimport { CardData } from './cardData';\nimport { FieldData } from './fieldData';\nimport { IdentityData } from './identityData';\nimport { LoginData } from './loginData';\nimport { PasswordHistoryData } from './passwordHistoryData';\nimport { SecureNoteData } from './secureNoteData';\n\nimport { CipherResponse } from '../response/cipherResponse';\n\nexport class CipherData {\n id: string;\n organizationId: string;\n folderId: string;\n userId: string;\n edit: boolean;\n viewPassword: boolean;\n organizationUseTotp: boolean;\n favorite: boolean;\n revisionDate: string;\n type: CipherType;\n sizeName: string;\n name: string;\n notes: string;\n login?: LoginData;\n secureNote?: SecureNoteData;\n card?: CardData;\n identity?: IdentityData;\n fields?: FieldData[];\n attachments?: AttachmentData[];\n passwordHistory?: PasswordHistoryData[];\n collectionIds?: string[];\n deletedDate: string;\n\n constructor(response?: CipherResponse, userId?: string, collectionIds?: string[]) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.folderId = response.folderId;\n this.userId = userId;\n this.edit = response.edit;\n this.viewPassword = response.viewPassword;\n this.organizationUseTotp = response.organizationUseTotp;\n this.favorite = response.favorite;\n this.revisionDate = response.revisionDate;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.collectionIds = collectionIds != null ? collectionIds : response.collectionIds;\n this.deletedDate = response.deletedDate;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new LoginData(response.login);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNoteData(response.secureNote);\n break;\n case CipherType.Card:\n this.card = new CardData(response.card);\n break;\n case CipherType.Identity:\n this.identity = new IdentityData(response.identity);\n break;\n default:\n break;\n }\n\n if (response.fields != null) {\n this.fields = response.fields.map(f => new FieldData(f));\n }\n if (response.attachments != null) {\n this.attachments = response.attachments.map(a => new AttachmentData(a));\n }\n if (response.passwordHistory != null) {\n this.passwordHistory = response.passwordHistory.map(ph => new PasswordHistoryData(ph));\n }\n }\n}\n","import { LoginUriView } from './loginUriView';\nimport { View } from './view';\n\nimport { Utils } from '../../misc/utils';\nimport { Login } from '../domain/login';\n\nexport class LoginView implements View {\n username: string = null;\n password: string = null;\n passwordRevisionDate?: Date = null;\n totp: string = null;\n uris: LoginUriView[] = null;\n\n constructor(l?: Login) {\n if (!l) {\n return;\n }\n\n this.passwordRevisionDate = l.passwordRevisionDate;\n }\n\n get uri(): string {\n return this.hasUris ? this.uris[0].uri : null;\n }\n\n get maskedPassword(): string {\n return this.password != null ? '••••••••' : null;\n }\n\n get subTitle(): string {\n return this.username;\n }\n\n get canLaunch(): boolean {\n return this.hasUris && this.uris.some(u => u.canLaunch);\n }\n\n get hasTotp(): boolean {\n return !Utils.isNullOrWhitespace(this.totp);\n }\n\n get launchUri(): string {\n if (this.hasUris) {\n const uri = this.uris.find(u => u.canLaunch);\n if (uri != null) {\n return uri.launchUri;\n }\n }\n return null;\n }\n\n get hasUris(): boolean {\n return this.uris != null && this.uris.length > 0;\n }\n}\n","export enum SendType {\n Text = 0,\n File = 1,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-two-factor-verify',\n templateUrl: 'two-factor-verify.component.html',\n})\nexport class TwoFactorVerifyComponent {\n @Input() type: TwoFactorProviderType;\n @Input() organizationId: string;\n @Output() onAuthed = new EventEmitter();\n\n masterPassword: string;\n formPromise: Promise;\n\n private masterPasswordHash: string;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = this.masterPasswordHash =\n await this.cryptoService.hashPassword(this.masterPassword, null);\n\n try {\n switch (this.type) {\n case -1:\n this.formPromise = this.apiService.getTwoFactorRecover(request);\n break;\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n if (this.organizationId != null) {\n this.formPromise = this.apiService.getTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n this.formPromise = this.apiService.getTwoFactorDuo(request);\n }\n break;\n case TwoFactorProviderType.Email:\n this.formPromise = this.apiService.getTwoFactorEmail(request);\n break;\n case TwoFactorProviderType.WebAuthn:\n this.formPromise = this.apiService.getTwoFactorWebAuthn(request);\n break;\n case TwoFactorProviderType.Authenticator:\n this.formPromise = this.apiService.getTwoFactorAuthenticator(request);\n break;\n case TwoFactorProviderType.Yubikey:\n this.formPromise = this.apiService.getTwoFactorYubiKey(request);\n break;\n }\n\n const response = await this.formPromise;\n this.onAuthed.emit({\n response: response,\n masterPasswordHash: this.masterPasswordHash,\n });\n } catch { }\n }\n}\n","
\n
\n

{{'twoStepLoginAuthDesc' | i18n}}

\n \n \n
\n
\n \n \n
\n
\n","export abstract class ExportService {\n getExport: (format?: 'csv' | 'json' | 'encrypted_json') => Promise;\n getOrganizationExport: (organizationId: string, format?: 'csv' | 'json' | 'encrypted_json') => Promise;\n getFileName: (prefix?: string, extension?: string) => string;\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { CipherData } from '../data/cipherData';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Attachment } from './attachment';\nimport { Card } from './card';\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { Field } from './field';\nimport { Identity } from './identity';\nimport { Login } from './login';\nimport { Password } from './password';\nimport { SecureNote } from './secureNote';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Cipher extends Domain {\n id: string;\n organizationId: string;\n folderId: string;\n name: EncString;\n notes: EncString;\n type: CipherType;\n favorite: boolean;\n organizationUseTotp: boolean;\n edit: boolean;\n viewPassword: boolean;\n revisionDate: Date;\n localData: any;\n login: Login;\n identity: Identity;\n card: Card;\n secureNote: SecureNote;\n attachments: Attachment[];\n fields: Field[];\n passwordHistory: Password[];\n collectionIds: string[];\n deletedDate: Date;\n\n constructor(obj?: CipherData, alreadyEncrypted: boolean = false, localData: any = null) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n userId: null,\n organizationId: null,\n folderId: null,\n name: null,\n notes: null,\n }, alreadyEncrypted, ['id', 'userId', 'organizationId', 'folderId']);\n\n this.type = obj.type;\n this.favorite = obj.favorite;\n this.organizationUseTotp = obj.organizationUseTotp;\n this.edit = obj.edit;\n if (obj.viewPassword != null) {\n this.viewPassword = obj.viewPassword;\n } else {\n this.viewPassword = true; // Default for already synced Ciphers without viewPassword\n }\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n this.collectionIds = obj.collectionIds;\n this.localData = localData;\n this.deletedDate = obj.deletedDate != null ? new Date(obj.deletedDate) : null;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new Login(obj.login, alreadyEncrypted);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNote(obj.secureNote, alreadyEncrypted);\n break;\n case CipherType.Card:\n this.card = new Card(obj.card, alreadyEncrypted);\n break;\n case CipherType.Identity:\n this.identity = new Identity(obj.identity, alreadyEncrypted);\n break;\n default:\n break;\n }\n\n if (obj.attachments != null) {\n this.attachments = obj.attachments.map(a => new Attachment(a, alreadyEncrypted));\n } else {\n this.attachments = null;\n }\n\n if (obj.fields != null) {\n this.fields = obj.fields.map(f => new Field(f, alreadyEncrypted));\n } else {\n this.fields = null;\n }\n\n if (obj.passwordHistory != null) {\n this.passwordHistory = obj.passwordHistory.map(ph => new Password(ph, alreadyEncrypted));\n } else {\n this.passwordHistory = null;\n }\n }\n\n async decrypt(encKey?: SymmetricCryptoKey): Promise {\n const model = new CipherView(this);\n\n await this.decryptObj(model, {\n name: null,\n notes: null,\n }, this.organizationId, encKey);\n\n switch (this.type) {\n case CipherType.Login:\n model.login = await this.login.decrypt(this.organizationId, encKey);\n break;\n case CipherType.SecureNote:\n model.secureNote = await this.secureNote.decrypt(this.organizationId, encKey);\n break;\n case CipherType.Card:\n model.card = await this.card.decrypt(this.organizationId, encKey);\n break;\n case CipherType.Identity:\n model.identity = await this.identity.decrypt(this.organizationId, encKey);\n break;\n default:\n break;\n }\n\n const orgId = this.organizationId;\n\n if (this.attachments != null && this.attachments.length > 0) {\n const attachments: any[] = [];\n await this.attachments.reduce((promise, attachment) => {\n return promise.then(() => {\n return attachment.decrypt(orgId, encKey);\n }).then(decAttachment => {\n attachments.push(decAttachment);\n });\n }, Promise.resolve());\n model.attachments = attachments;\n }\n\n if (this.fields != null && this.fields.length > 0) {\n const fields: any[] = [];\n await this.fields.reduce((promise, field) => {\n return promise.then(() => {\n return field.decrypt(orgId, encKey);\n }).then(decField => {\n fields.push(decField);\n });\n }, Promise.resolve());\n model.fields = fields;\n }\n\n if (this.passwordHistory != null && this.passwordHistory.length > 0) {\n const passwordHistory: any[] = [];\n await this.passwordHistory.reduce((promise, ph) => {\n return promise.then(() => {\n return ph.decrypt(orgId, encKey);\n }).then(decPh => {\n passwordHistory.push(decPh);\n });\n }, Promise.resolve());\n model.passwordHistory = passwordHistory;\n }\n\n return model;\n }\n\n toCipherData(userId: string): CipherData {\n const c = new CipherData();\n c.id = this.id;\n c.organizationId = this.organizationId;\n c.folderId = this.folderId;\n c.userId = this.organizationId != null ? userId : null;\n c.edit = this.edit;\n c.viewPassword = this.viewPassword;\n c.organizationUseTotp = this.organizationUseTotp;\n c.favorite = this.favorite;\n c.revisionDate = this.revisionDate != null ? this.revisionDate.toISOString() : null;\n c.type = this.type;\n c.collectionIds = this.collectionIds;\n c.deletedDate = this.deletedDate != null ? this.deletedDate.toISOString() : null;\n\n this.buildDataModel(this, c, {\n name: null,\n notes: null,\n });\n\n switch (c.type) {\n case CipherType.Login:\n c.login = this.login.toLoginData();\n break;\n case CipherType.SecureNote:\n c.secureNote = this.secureNote.toSecureNoteData();\n break;\n case CipherType.Card:\n c.card = this.card.toCardData();\n break;\n case CipherType.Identity:\n c.identity = this.identity.toIdentityData();\n break;\n default:\n break;\n }\n\n if (this.fields != null) {\n c.fields = this.fields.map(f => f.toFieldData());\n }\n if (this.attachments != null) {\n c.attachments = this.attachments.map(a => a.toAttachmentData());\n }\n if (this.passwordHistory != null) {\n c.passwordHistory = this.passwordHistory.map(ph => ph.toPasswordHistoryData());\n }\n return c;\n }\n}\n","import { SendData } from '../models/data/sendData';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { Send } from '../models/domain/send';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { SendView } from '../models/view/sendView';\n\nexport abstract class SendService {\n decryptedSendCache: SendView[];\n\n clearCache: () => void;\n encrypt: (model: SendView, file: File | ArrayBuffer, password: string, key?: SymmetricCryptoKey) => Promise<[Send, EncArrayBuffer]>;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n saveWithServer: (sendData: [Send, EncArrayBuffer]) => Promise;\n upsert: (send: SendData | SendData[]) => Promise;\n replace: (sends: { [id: string]: SendData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n removePasswordWithServer: (id: string) => Promise;\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { View } from './view';\n\nimport { Field } from '../domain/field';\n\nexport class FieldView implements View {\n name: string = null;\n value: string = null;\n type: FieldType = null;\n newField: boolean = false; // Marks if the field is new and hasn't been saved\n showValue: boolean = false;\n\n constructor(f?: Field) {\n if (!f) {\n return;\n }\n\n this.type = f.type;\n }\n\n get maskedValue(): string {\n return this.value != null ? '••••••••' : null;\n }\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { Cipher } from '../domain/cipher';\n\nimport { CardApi } from '../api/cardApi';\nimport { FieldApi } from '../api/fieldApi';\nimport { IdentityApi } from '../api/identityApi';\nimport { LoginApi } from '../api/loginApi';\nimport { LoginUriApi } from '../api/loginUriApi';\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nimport { AttachmentRequest } from './attachmentRequest';\nimport { PasswordHistoryRequest } from './passwordHistoryRequest';\n\nexport class CipherRequest {\n type: CipherType;\n folderId: string;\n organizationId: string;\n name: string;\n notes: string;\n favorite: boolean;\n login: LoginApi;\n secureNote: SecureNoteApi;\n card: CardApi;\n identity: IdentityApi;\n fields: FieldApi[];\n passwordHistory: PasswordHistoryRequest[];\n // Deprecated, remove at some point and rename attachments2 to attachments\n attachments: { [id: string]: string; };\n attachments2: { [id: string]: AttachmentRequest; };\n lastKnownRevisionDate: Date;\n\n constructor(cipher: Cipher) {\n this.type = cipher.type;\n this.folderId = cipher.folderId;\n this.organizationId = cipher.organizationId;\n this.name = cipher.name ? cipher.name.encryptedString : null;\n this.notes = cipher.notes ? cipher.notes.encryptedString : null;\n this.favorite = cipher.favorite;\n this.lastKnownRevisionDate = cipher.revisionDate;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new LoginApi();\n this.login.uris = null;\n this.login.username = cipher.login.username ? cipher.login.username.encryptedString : null;\n this.login.password = cipher.login.password ? cipher.login.password.encryptedString : null;\n this.login.passwordRevisionDate = cipher.login.passwordRevisionDate != null ?\n cipher.login.passwordRevisionDate.toISOString() : null;\n this.login.totp = cipher.login.totp ? cipher.login.totp.encryptedString : null;\n\n if (cipher.login.uris != null) {\n this.login.uris = cipher.login.uris.map(u => {\n const uri = new LoginUriApi();\n uri.uri = u.uri != null ? u.uri.encryptedString : null;\n uri.match = u.match != null ? u.match : null;\n return uri;\n });\n }\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNoteApi();\n this.secureNote.type = cipher.secureNote.type;\n break;\n case CipherType.Card:\n this.card = new CardApi();\n this.card.cardholderName = cipher.card.cardholderName != null ?\n cipher.card.cardholderName.encryptedString : null;\n this.card.brand = cipher.card.brand != null ? cipher.card.brand.encryptedString : null;\n this.card.number = cipher.card.number != null ? cipher.card.number.encryptedString : null;\n this.card.expMonth = cipher.card.expMonth != null ? cipher.card.expMonth.encryptedString : null;\n this.card.expYear = cipher.card.expYear != null ? cipher.card.expYear.encryptedString : null;\n this.card.code = cipher.card.code != null ? cipher.card.code.encryptedString : null;\n break;\n case CipherType.Identity:\n this.identity = new IdentityApi();\n this.identity.title = cipher.identity.title != null ? cipher.identity.title.encryptedString : null;\n this.identity.firstName = cipher.identity.firstName != null ?\n cipher.identity.firstName.encryptedString : null;\n this.identity.middleName = cipher.identity.middleName != null ?\n cipher.identity.middleName.encryptedString : null;\n this.identity.lastName = cipher.identity.lastName != null ?\n cipher.identity.lastName.encryptedString : null;\n this.identity.address1 = cipher.identity.address1 != null ?\n cipher.identity.address1.encryptedString : null;\n this.identity.address2 = cipher.identity.address2 != null ?\n cipher.identity.address2.encryptedString : null;\n this.identity.address3 = cipher.identity.address3 != null ?\n cipher.identity.address3.encryptedString : null;\n this.identity.city = cipher.identity.city != null ? cipher.identity.city.encryptedString : null;\n this.identity.state = cipher.identity.state != null ? cipher.identity.state.encryptedString : null;\n this.identity.postalCode = cipher.identity.postalCode != null ?\n cipher.identity.postalCode.encryptedString : null;\n this.identity.country = cipher.identity.country != null ?\n cipher.identity.country.encryptedString : null;\n this.identity.company = cipher.identity.company != null ?\n cipher.identity.company.encryptedString : null;\n this.identity.email = cipher.identity.email != null ? cipher.identity.email.encryptedString : null;\n this.identity.phone = cipher.identity.phone != null ? cipher.identity.phone.encryptedString : null;\n this.identity.ssn = cipher.identity.ssn != null ? cipher.identity.ssn.encryptedString : null;\n this.identity.username = cipher.identity.username != null ?\n cipher.identity.username.encryptedString : null;\n this.identity.passportNumber = cipher.identity.passportNumber != null ?\n cipher.identity.passportNumber.encryptedString : null;\n this.identity.licenseNumber = cipher.identity.licenseNumber != null ?\n cipher.identity.licenseNumber.encryptedString : null;\n break;\n default:\n break;\n }\n\n if (cipher.fields != null) {\n this.fields = cipher.fields.map(f => {\n const field = new FieldApi();\n field.type = f.type;\n field.name = f.name ? f.name.encryptedString : null;\n field.value = f.value ? f.value.encryptedString : null;\n return field;\n });\n }\n\n if (cipher.passwordHistory != null) {\n this.passwordHistory = [];\n cipher.passwordHistory.forEach(ph => {\n this.passwordHistory.push({\n lastUsedDate: ph.lastUsedDate,\n password: ph.password ? ph.password.encryptedString : null,\n });\n });\n }\n\n if (cipher.attachments != null) {\n this.attachments = {};\n this.attachments2 = {};\n cipher.attachments.forEach(attachment => {\n const fileName = attachment.fileName ? attachment.fileName.encryptedString : null;\n this.attachments[attachment.id] = fileName;\n const attachmentRequest = new AttachmentRequest();\n attachmentRequest.fileName = fileName;\n if (attachment.key != null) {\n attachmentRequest.key = attachment.key.encryptedString;\n }\n this.attachments2[attachment.id] = attachmentRequest;\n });\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class ErrorResponse extends BaseResponse {\n message: string;\n validationErrors: { [key: string]: string[]; };\n statusCode: number;\n\n constructor(response: any, status: number, identityResponse?: boolean) {\n super(response);\n let errorModel = null;\n if (response != null) {\n const responseErrorModel = this.getResponseProperty('ErrorModel');\n if (responseErrorModel && identityResponse) {\n errorModel = responseErrorModel;\n } else {\n errorModel = response;\n }\n }\n\n if (errorModel) {\n this.message = this.getResponseProperty('Message', errorModel);\n this.validationErrors = this.getResponseProperty('ValidationErrors', errorModel);\n } else {\n if (status === 429) {\n this.message = 'Rate limit exceeded. Try again later.';\n }\n }\n this.statusCode = status;\n }\n\n getSingleMessage(): string {\n if (this.validationErrors == null) {\n return this.message;\n }\n for (const key in this.validationErrors) {\n if (!this.validationErrors.hasOwnProperty(key)) {\n continue;\n }\n if (this.validationErrors[key].length) {\n return this.validationErrors[key][0];\n }\n }\n return this.message;\n }\n\n getAllMessages(): string[] {\n const messages: string[] = [];\n if (this.validationErrors == null) {\n return messages;\n }\n for (const key in this.validationErrors) {\n if (!this.validationErrors.hasOwnProperty(key)) {\n continue;\n }\n this.validationErrors[key].forEach((item: string) => {\n let prefix = '';\n if (key.indexOf('[') > -1 && key.indexOf(']') > -1) {\n const lastSep = key.lastIndexOf('.');\n prefix = key.substr(0, lastSep > -1 ? lastSep : key.length) + ': ';\n }\n messages.push(prefix + item);\n });\n }\n return messages;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { ErrorResponse } from '../../models/response/errorResponse';\n\n@Injectable()\nexport class ValidationService {\n constructor(private i18nService: I18nService, private platformUtilsService: PlatformUtilsService) { }\n\n showError(data: any): string[] {\n const defaultErrorMessage = this.i18nService.t('unexpectedError');\n let errors: string[] = [];\n\n if (data != null && typeof data === 'string') {\n errors.push(data);\n } else if (data == null || typeof data !== 'object') {\n errors.push(defaultErrorMessage);\n } else if (data.validationErrors != null) {\n errors = errors.concat((data as ErrorResponse).getAllMessages());\n } else {\n errors.push(data.message ? data.message : defaultErrorMessage);\n }\n\n if (errors.length === 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), errors[0]);\n } else if (errors.length > 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), errors, {\n timeout: 5000 * errors.length,\n });\n }\n\n return errors;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport {\n ActivatedRoute,\n NavigationEnd,\n Router,\n} from '@angular/router';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Injectable()\nexport class RouterService {\n private previousUrl: string = undefined;\n private currentUrl: string = undefined;\n\n constructor(private router: Router, private activatedRoute: ActivatedRoute,\n private titleService: Title, i18nService: I18nService) {\n this.currentUrl = this.router.url;\n router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.previousUrl = this.currentUrl;\n this.currentUrl = event.url;\n\n let title = i18nService.t('pageTitle', 'Bitwarden');\n let titleId: string = null;\n let rawTitle: string = null;\n let child = this.activatedRoute.firstChild;\n while (child != null) {\n if (child.firstChild != null) {\n child = child.firstChild;\n } else if (child.snapshot.data != null && child.snapshot.data.title != null) {\n rawTitle = child.snapshot.data.title;\n break;\n } else if (child.snapshot.data != null && child.snapshot.data.titleId != null) {\n titleId = child.snapshot.data.titleId;\n break;\n } else {\n titleId = null;\n rawTitle = null;\n break;\n }\n }\n\n if (titleId != null || rawTitle != null) {\n const newTitle = rawTitle != null ? rawTitle : i18nService.t(titleId);\n if (newTitle != null && newTitle !== '') {\n title = (newTitle + ' | ' + title);\n }\n }\n this.titleService.setTitle(title);\n }\n });\n }\n\n getPreviousUrl() {\n return this.previousUrl;\n }\n\n setPreviousUrl(url: string) {\n this.previousUrl = url;\n }\n}\n","export enum KdfType {\n PBKDF2_SHA256 = 0,\n}\n","import {\n Component,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-password-strength',\n templateUrl: 'password-strength.component.html',\n})\nexport class PasswordStrengthComponent implements OnChanges {\n @Input() score?: number;\n @Input() showText = false;\n\n scoreWidth = 0;\n color = 'bg-danger';\n text: string;\n\n constructor(private i18nService: I18nService) { }\n\n ngOnChanges(): void {\n this.scoreWidth = this.score == null ? 0 : (this.score + 1) * 20;\n switch (this.score) {\n case 4:\n this.color = 'bg-success';\n this.text = this.i18nService.t('strong');\n break;\n case 3:\n this.color = 'bg-primary';\n this.text = this.i18nService.t('good');\n break;\n case 2:\n this.color = 'bg-warning';\n this.text = this.i18nService.t('weak');\n break;\n default:\n this.color = 'bg-danger';\n this.text = this.score != null ? this.i18nService.t('weak') : null;\n break;\n }\n }\n}\n","
\n
\n \n {{text}}\n \n
\n
\n","export enum OrganizationUserType {\n Owner = 0,\n Admin = 1,\n User = 2,\n Manager = 3,\n Custom = 4,\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\n@Pipe({\n name: 'search',\n})\nexport class SearchPipe implements PipeTransform {\n transform(items: any[], searchText: string, prop1?: string, prop2?: string, prop3?: string): any[] {\n if (items == null || items.length === 0) {\n return [];\n }\n\n if (searchText == null || searchText.length < 2) {\n return items;\n }\n\n searchText = searchText.trim().toLowerCase();\n return items.filter(i => {\n if (prop1 != null && i[prop1] != null && i[prop1].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (prop2 != null && i[prop2] != null && i[prop2].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (prop3 != null && i[prop3] != null && i[prop3].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n return false;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { DeviceType } from 'jslib/enums/deviceType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\n\n@Injectable()\nexport class EventService {\n constructor(private i18nService: I18nService) { }\n\n getDefaultDateFilters() {\n const d = new Date();\n const end = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59);\n d.setDate(d.getDate() - 30);\n const start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0);\n return [this.toDateTimeLocalString(start), this.toDateTimeLocalString(end)];\n }\n\n formatDateFilters(filterStart: string, filterEnd: string) {\n const start: Date = new Date(filterStart);\n const end: Date = new Date(filterEnd + ':59.999');\n if (isNaN(start.getTime()) || isNaN(end.getTime()) || end < start) {\n throw new Error('Invalid date range.');\n }\n return [start.toISOString(), end.toISOString()];\n }\n\n getEventInfo(ev: EventResponse, options = new EventOptions()): EventInfo {\n const appInfo = this.getAppInfo(ev.deviceType);\n return {\n message: this.getEventMessage(ev, options),\n appIcon: appInfo[0],\n appName: appInfo[1],\n };\n }\n\n private getEventMessage(ev: EventResponse, options: EventOptions) {\n let msg = '';\n switch (ev.type) {\n // User\n case EventType.User_LoggedIn:\n msg = this.i18nService.t('loggedIn');\n break;\n case EventType.User_ChangedPassword:\n msg = this.i18nService.t('changedPassword');\n break;\n case EventType.User_Updated2fa:\n msg = this.i18nService.t('enabledUpdated2fa');\n break;\n case EventType.User_Disabled2fa:\n msg = this.i18nService.t('disabled2fa');\n break;\n case EventType.User_Recovered2fa:\n msg = this.i18nService.t('recovered2fa');\n break;\n case EventType.User_FailedLogIn:\n msg = this.i18nService.t('failedLogin');\n break;\n case EventType.User_FailedLogIn2fa:\n msg = this.i18nService.t('failedLogin2fa');\n break;\n case EventType.User_ClientExportedVault:\n msg = this.i18nService.t('exportedVault');\n break;\n // Cipher\n case EventType.Cipher_Created:\n msg = this.i18nService.t('createdItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Updated:\n msg = this.i18nService.t('editedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Deleted:\n msg = this.i18nService.t('permanentlyDeletedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_SoftDeleted:\n msg = this.i18nService.t('deletedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Restored:\n msg = this.i18nService.t('restoredItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_AttachmentCreated:\n msg = this.i18nService.t('createdAttachmentForItem', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_AttachmentDeleted:\n msg = this.i18nService.t('deletedAttachmentForItem', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Shared:\n msg = this.i18nService.t('sharedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientViewed:\n msg = this.i18nService.t('viewedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledPasswordVisible:\n msg = this.i18nService.t('viewedPasswordItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledHiddenFieldVisible:\n msg = this.i18nService.t('viewedHiddenFieldItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledCardCodeVisible:\n msg = this.i18nService.t('viewedSecurityCodeItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedHiddenField:\n msg = this.i18nService.t('copiedHiddenFieldItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedPassword:\n msg = this.i18nService.t('copiedPasswordItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedCardCode:\n msg = this.i18nService.t('copiedSecurityCodeItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientAutofilled:\n msg = this.i18nService.t('autofilledItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_UpdatedCollections:\n msg = this.i18nService.t('editedCollectionsForItem', this.formatCipherId(ev, options));\n break;\n // Collection\n case EventType.Collection_Created:\n msg = this.i18nService.t('createdCollectionId', this.formatCollectionId(ev));\n break;\n case EventType.Collection_Updated:\n msg = this.i18nService.t('editedCollectionId', this.formatCollectionId(ev));\n break;\n case EventType.Collection_Deleted:\n msg = this.i18nService.t('deletedCollectionId', this.formatCollectionId(ev));\n break;\n // Group\n case EventType.Group_Created:\n msg = this.i18nService.t('createdGroupId', this.formatGroupId(ev));\n break;\n case EventType.Group_Updated:\n msg = this.i18nService.t('editedGroupId', this.formatGroupId(ev));\n break;\n case EventType.Group_Deleted:\n msg = this.i18nService.t('deletedGroupId', this.formatGroupId(ev));\n break;\n // Org user\n case EventType.OrganizationUser_Invited:\n msg = this.i18nService.t('invitedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Confirmed:\n msg = this.i18nService.t('confirmedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Updated:\n msg = this.i18nService.t('editedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Removed:\n msg = this.i18nService.t('removedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_UpdatedGroups:\n msg = this.i18nService.t('editedGroupsForUser', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_UnlinkedSso:\n msg = this.i18nService.t('unlinkedSsoUser', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_ResetPassword_Enroll:\n msg = this.i18nService.t('eventEnrollPasswordReset', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_ResetPassword_Withdraw:\n msg = this.i18nService.t('eventWithdrawPasswordReset', this.formatOrgUserId(ev));\n break;\n // Org\n case EventType.Organization_Updated:\n msg = this.i18nService.t('editedOrgSettings');\n break;\n case EventType.Organization_PurgedVault:\n msg = this.i18nService.t('purgedOrganizationVault');\n break;\n /*\n case EventType.Organization_ClientExportedVault:\n msg = this.i18nService.t('exportedOrganizationVault');\n break;\n */\n // Policies\n case EventType.Policy_Updated:\n msg = this.i18nService.t('modifiedPolicy', this.formatPolicyId(ev));\n break;\n\n default:\n break;\n }\n return msg === '' ? null : msg;\n }\n\n private getAppInfo(deviceType: DeviceType): [string, string] {\n switch (deviceType) {\n case DeviceType.Android:\n return ['fa-android', this.i18nService.t('mobile') + ' - Android'];\n case DeviceType.iOS:\n return ['fa-apple', this.i18nService.t('mobile') + ' - iOS'];\n case DeviceType.UWP:\n return ['fa-windows', this.i18nService.t('mobile') + ' - Windows'];\n case DeviceType.ChromeExtension:\n return ['fa-chrome', this.i18nService.t('extension') + ' - Chrome'];\n case DeviceType.FirefoxExtension:\n return ['fa-firefox', this.i18nService.t('extension') + ' - Firefox'];\n case DeviceType.OperaExtension:\n return ['fa-opera', this.i18nService.t('extension') + ' - Opera'];\n case DeviceType.EdgeExtension:\n return ['fa-edge', this.i18nService.t('extension') + ' - Edge'];\n case DeviceType.VivaldiExtension:\n return ['fa-puzzle-piece', this.i18nService.t('extension') + ' - Vivaldi'];\n case DeviceType.SafariExtension:\n return ['fa-safari', this.i18nService.t('extension') + ' - Safari'];\n case DeviceType.WindowsDesktop:\n return ['fa-windows', this.i18nService.t('desktop') + ' - Windows'];\n case DeviceType.MacOsDesktop:\n return ['fa-apple', this.i18nService.t('desktop') + ' - macOS'];\n case DeviceType.LinuxDesktop:\n return ['fa-linux', this.i18nService.t('desktop') + ' - Linux'];\n case DeviceType.ChromeBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Chrome'];\n case DeviceType.FirefoxBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Firefox'];\n case DeviceType.OperaBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Opera'];\n case DeviceType.SafariBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Safari'];\n case DeviceType.VivaldiBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Vivaldi'];\n case DeviceType.EdgeBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Edge'];\n case DeviceType.IEBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - IE'];\n case DeviceType.UnknownBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - ' + this.i18nService.t('unknown')];\n default:\n return ['fa-globe', this.i18nService.t('unknown')];\n }\n }\n\n private formatCipherId(ev: EventResponse, options: EventOptions) {\n const shortId = this.getShortId(ev.cipherId);\n if (ev.organizationId == null || !options.cipherInfo) {\n return '' + shortId + '';\n }\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/vault?search=' + shortId +\n '&viewEvents=' + ev.cipherId);\n return a.outerHTML;\n }\n\n private formatGroupId(ev: EventResponse) {\n const shortId = this.getShortId(ev.groupId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/groups?search=' + shortId);\n return a.outerHTML;\n }\n\n private formatCollectionId(ev: EventResponse) {\n const shortId = this.getShortId(ev.collectionId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/collections?search=' + shortId);\n return a.outerHTML;\n }\n\n private formatOrgUserId(ev: EventResponse) {\n const shortId = this.getShortId(ev.organizationUserId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/people?search=' + shortId +\n '&viewEvents=' + ev.organizationUserId);\n return a.outerHTML;\n }\n\n private formatPolicyId(ev: EventResponse) {\n const shortId = this.getShortId(ev.policyId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/policies?policyId=' + ev.policyId);\n return a.outerHTML;\n }\n\n private makeAnchor(shortId: string) {\n const a = document.createElement('a');\n a.title = this.i18nService.t('view');\n a.innerHTML = '' + shortId + '';\n return a;\n }\n\n private getShortId(id: string) {\n return id.substring(0, 8);\n }\n\n private toDateTimeLocalString(date: Date) {\n return date.getFullYear() +\n '-' + this.pad(date.getMonth() + 1) +\n '-' + this.pad(date.getDate()) +\n 'T' + this.pad(date.getHours()) +\n ':' + this.pad(date.getMinutes());\n }\n\n private pad(num: number) {\n const norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n }\n}\n\nexport class EventInfo {\n message: string;\n appIcon: string;\n appName: string;\n}\n\nexport class EventOptions {\n cipherInfo = true;\n}\n","export enum EventType {\n User_LoggedIn = 1000,\n User_ChangedPassword = 1001,\n User_Updated2fa = 1002,\n User_Disabled2fa = 1003,\n User_Recovered2fa = 1004,\n User_FailedLogIn = 1005,\n User_FailedLogIn2fa = 1006,\n User_ClientExportedVault = 1007,\n\n Cipher_Created = 1100,\n Cipher_Updated = 1101,\n Cipher_Deleted = 1102,\n Cipher_AttachmentCreated = 1103,\n Cipher_AttachmentDeleted = 1104,\n Cipher_Shared = 1105,\n Cipher_UpdatedCollections = 1106,\n Cipher_ClientViewed = 1107,\n Cipher_ClientToggledPasswordVisible = 1108,\n Cipher_ClientToggledHiddenFieldVisible = 1109,\n Cipher_ClientToggledCardCodeVisible = 1110,\n Cipher_ClientCopiedPassword = 1111,\n Cipher_ClientCopiedHiddenField = 1112,\n Cipher_ClientCopiedCardCode = 1113,\n Cipher_ClientAutofilled = 1114,\n Cipher_SoftDeleted = 1115,\n Cipher_Restored = 1116,\n\n Collection_Created = 1300,\n Collection_Updated = 1301,\n Collection_Deleted = 1302,\n\n Group_Created = 1400,\n Group_Updated = 1401,\n Group_Deleted = 1402,\n\n OrganizationUser_Invited = 1500,\n OrganizationUser_Confirmed = 1501,\n OrganizationUser_Updated = 1502,\n OrganizationUser_Removed = 1503,\n OrganizationUser_UpdatedGroups = 1504,\n OrganizationUser_UnlinkedSso = 1505,\n OrganizationUser_ResetPassword_Enroll = 1506,\n OrganizationUser_ResetPassword_Withdraw = 1507,\n\n Organization_Updated = 1600,\n Organization_PurgedVault = 1601,\n // Organization_ClientExportedVault = 1602,\n\n Policy_Updated = 1700,\n}\n","export enum PaymentMethodType {\n Card = 0,\n BankAccount = 1,\n PayPal = 2,\n BitPay = 3,\n Credit = 4,\n WireTransfer = 5,\n AppleInApp = 6,\n GoogleInApp = 7,\n Check = 8,\n}\n","import {\n Directive,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { TwoFactorProviderRequest } from 'jslib/models/request/twoFactorProviderRequest';\n\n@Directive()\nexport abstract class TwoFactorBaseComponent {\n @Output() onUpdated = new EventEmitter();\n\n type: TwoFactorProviderType;\n organizationId: string;\n twoFactorProviderType = TwoFactorProviderType;\n enabled = false;\n authed = false;\n\n protected masterPasswordHash: string;\n\n constructor(protected apiService: ApiService, protected i18nService: I18nService,\n protected toasterService: ToasterService, protected platformUtilsService: PlatformUtilsService) { }\n\n protected auth(authResponse: any) {\n this.masterPasswordHash = authResponse.masterPasswordHash;\n this.authed = true;\n }\n\n protected async enable(enableFunction: () => Promise) {\n try {\n await enableFunction();\n this.onUpdated.emit(true);\n } catch { }\n }\n\n protected async disable(promise: Promise) {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('twoStepDisableDesc'),\n this.i18nService.t('disable'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n const request = new TwoFactorProviderRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.type = this.type;\n if (this.organizationId != null) {\n promise = this.apiService.putTwoFactorOrganizationDisable(this.organizationId, request);\n } else {\n promise = this.apiService.putTwoFactorDisable(request);\n }\n await promise;\n this.enabled = false;\n this.toasterService.popAsync('success', null, this.i18nService.t('twoStepDisabled'));\n this.onUpdated.emit(false);\n } catch { }\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { ModalComponent } from '../modal.component';\nimport { AddEditComponent as OrgAddEditComponent } from '../organizations/vault/add-edit.component';\nimport { AddEditComponent } from '../vault/add-edit.component';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Directive()\nexport class CipherReportComponent {\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n\n loading = false;\n hasLoaded = false;\n ciphers: CipherView[] = [];\n organization: Organization;\n\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, protected userService: UserService,\n protected messagingService: MessagingService, public requiresPaid: boolean) { }\n\n async load() {\n this.loading = true;\n await this.setCiphers();\n this.loading = false;\n this.hasLoaded = true;\n }\n\n selectCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n let childComponent: OrgAddEditComponent | AddEditComponent;\n if (this.organization != null) {\n childComponent = this.modal.show(OrgAddEditComponent, this.cipherAddEditModalRef);\n (childComponent as OrgAddEditComponent).organization = this.organization;\n } else {\n childComponent = this.modal.show(AddEditComponent, this.cipherAddEditModalRef);\n }\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n if (this.organization != null) {\n childComponent.organizationId = this.organization.id;\n }\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n protected async checkAccess(): Promise {\n if (this.organization != null) {\n // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now\n // since all paid plans include useTotp\n if (this.requiresPaid && !this.organization.useTotp) {\n this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });\n return false;\n }\n } else {\n const accessPremium = await this.userService.canAccessPremium();\n if (this.requiresPaid && !accessPremium) {\n this.messagingService.send('premiumRequired');\n this.loading = false;\n return false;\n }\n }\n return true;\n }\n\n protected async setCiphers() {\n this.ciphers = [];\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { View } from './view';\n\nimport { LoginUri } from '../domain/loginUri';\n\nimport { Utils } from '../../misc/utils';\n\nconst CanLaunchWhitelist = [\n 'https://',\n 'http://',\n 'ssh://',\n 'ftp://',\n 'sftp://',\n 'irc://',\n 'vnc://',\n // https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-uri\n 'rdp://', // Legacy RDP URI scheme\n 'ms-rd:', // Preferred RDP URI scheme\n 'chrome://',\n 'iosapp://',\n 'androidapp://',\n];\n\nexport class LoginUriView implements View {\n match: UriMatchType = null;\n\n // tslint:disable\n private _uri: string = null;\n private _domain: string = null;\n private _hostname: string = null;\n private _host: string = null;\n private _canLaunch: boolean = null;\n // tslint:enable\n\n constructor(u?: LoginUri) {\n if (!u) {\n return;\n }\n\n this.match = u.match;\n }\n\n get uri(): string {\n return this._uri;\n }\n set uri(value: string) {\n this._uri = value;\n this._domain = null;\n this._canLaunch = null;\n }\n\n get domain(): string {\n if (this._domain == null && this.uri != null) {\n this._domain = Utils.getDomain(this.uri);\n if (this._domain === '') {\n this._domain = null;\n }\n }\n\n return this._domain;\n }\n\n get hostname(): string {\n if (this.match === UriMatchType.RegularExpression) {\n return null;\n }\n if (this._hostname == null && this.uri != null) {\n this._hostname = Utils.getHostname(this.uri);\n if (this._hostname === '') {\n this._hostname = null;\n }\n }\n\n return this._hostname;\n }\n\n get host(): string {\n if (this.match === UriMatchType.RegularExpression) {\n return null;\n }\n if (this._host == null && this.uri != null) {\n this._host = Utils.getHost(this.uri);\n if (this._host === '') {\n this._host = null;\n }\n }\n\n return this._host;\n }\n\n get hostnameOrUri(): string {\n return this.hostname != null ? this.hostname : this.uri;\n }\n\n get hostOrUri(): string {\n return this.host != null ? this.host : this.uri;\n }\n\n get isWebsite(): boolean {\n return this.uri != null && (this.uri.indexOf('http://') === 0 || this.uri.indexOf('https://') === 0 ||\n (this.uri.indexOf('://') < 0 && Utils.tldEndingRegex.test(this.uri)));\n }\n\n get canLaunch(): boolean {\n if (this._canLaunch != null) {\n return this._canLaunch;\n }\n if (this.uri != null && this.match !== UriMatchType.RegularExpression) {\n const uri = this.launchUri;\n for (let i = 0; i < CanLaunchWhitelist.length; i++) {\n if (uri.indexOf(CanLaunchWhitelist[i]) === 0) {\n this._canLaunch = true;\n return this._canLaunch;\n }\n }\n }\n this._canLaunch = false;\n return this._canLaunch;\n }\n\n get launchUri(): string {\n return this.uri.indexOf('://') < 0 && Utils.tldEndingRegex.test(this.uri) ? ('http://' + this.uri) : this.uri;\n }\n}\n","export enum UriMatchType {\n Domain = 0,\n Host = 1,\n StartsWith = 2,\n Exact = 3,\n RegularExpression = 4,\n Never = 5,\n}\n","import { Component } from '@angular/core';\n\nimport { CipherType } from 'jslib/enums/cipherType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component';\nimport { LoginUriView } from 'jslib/models/view/loginUriView';\n\n@Component({\n selector: 'app-vault-add-edit',\n templateUrl: 'add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n canAccessPremium: boolean;\n totpCode: string;\n totpCodeFormatted: string;\n totpDash: number;\n totpSec: number;\n totpLow: boolean;\n showRevisionDate = false;\n hasPasswordHistory = false;\n viewingPasswordHistory = false;\n viewOnly = false;\n\n protected totpInterval: number;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n protected totpService: TotpService, protected passwordGenerationService: PasswordGenerationService,\n protected messagingService: MessagingService, eventService: EventService,\n protected policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, messagingService, eventService, policyService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n await this.load();\n this.showRevisionDate = this.cipher.passwordRevisionDisplayDate != null;\n this.hasPasswordHistory = this.cipher.hasPasswordHistory;\n this.cleanUp();\n\n this.canAccessPremium = await this.userService.canAccessPremium();\n if (this.cipher.type === CipherType.Login && this.cipher.login.totp &&\n (this.cipher.organizationUseTotp || this.canAccessPremium)) {\n await this.totpUpdateCode();\n const interval = this.totpService.getTimeInterval(this.cipher.login.totp);\n await this.totpTick(interval);\n\n this.totpInterval = window.setInterval(async () => {\n await this.totpTick(interval);\n }, 1000);\n }\n }\n\n toggleFavorite() {\n this.cipher.favorite = !this.cipher.favorite;\n }\n\n launch(uri: LoginUriView) {\n if (!uri.canLaunch) {\n return;\n }\n\n this.platformUtilsService.launchUri(uri.launchUri);\n }\n\n copy(value: string, typeI18nKey: string, aType: string) {\n if (value == null) {\n return;\n }\n\n this.platformUtilsService.copyToClipboard(value, { window: window });\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));\n\n if (this.editMode) {\n if (typeI18nKey === 'password') {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId);\n } else if (typeI18nKey === 'securityCode') {\n this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, this.cipherId);\n } else if (aType === 'H_Field') {\n this.eventService.collect(EventType.Cipher_ClientCopiedHiddenField, this.cipherId);\n }\n }\n }\n\n async generatePassword(): Promise {\n const confirmed = await super.generatePassword();\n if (confirmed) {\n const options = (await this.passwordGenerationService.getOptions())[0];\n this.cipher.login.password = await this.passwordGenerationService.generatePassword(options);\n }\n return confirmed;\n }\n\n premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n upgradeOrganization() {\n this.messagingService.send('upgradeOrganization', { organizationId: this.cipher.organizationId });\n }\n\n viewHistory() {\n this.viewingPasswordHistory = !this.viewingPasswordHistory;\n }\n\n protected cleanUp() {\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n }\n\n protected async totpUpdateCode() {\n if (this.cipher == null || this.cipher.type !== CipherType.Login || this.cipher.login.totp == null) {\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n return;\n }\n\n this.totpCode = await this.totpService.getCode(this.cipher.login.totp);\n if (this.totpCode != null) {\n if (this.totpCode.length > 4) {\n const half = Math.floor(this.totpCode.length / 2);\n this.totpCodeFormatted = this.totpCode.substring(0, half) + ' ' + this.totpCode.substring(half);\n } else {\n this.totpCodeFormatted = this.totpCode;\n }\n } else {\n this.totpCodeFormatted = null;\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n }\n }\n\n protected allowOwnershipAssignment() {\n return (!this.editMode || this.cloneMode) && this.ownershipOptions != null\n && (this.ownershipOptions.length > 1 || !this.allowPersonal);\n }\n\n private async totpTick(intervalSeconds: number) {\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const mod = epoch % intervalSeconds;\n\n this.totpSec = intervalSeconds - mod;\n this.totpDash = +(Math.round((((78.6 / intervalSeconds) * mod) + 'e+2') as any) + 'e-2');\n this.totpLow = this.totpSec <= 7;\n if (mod === 0) {\n await this.totpUpdateCode();\n }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'personalOwnershipPolicyInEffect' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n {{totpSec}}\n \n \n \n \n \n \n \n {{totpCodeFormatted}}\n \n
\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n
\n
\n
\n
\n \n {{'newUri' | i18n}}\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n

{{'customFields' | i18n}}

\n
\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n {{'newCustomField' | i18n}}\n \n
\n
\n \n \n
\n
\n \n

{{'ownership' | i18n}}

\n
\n
\n \n \n
\n
\n
\n \n

{{'collections' | i18n}}

\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n
\n \n \n
\n
\n
\n \n
\n
\n {{'dateUpdated' | i18n}}:\n {{cipher.revisionDate | date:'medium'}}\n
\n
\n {{'datePasswordUpdated' | i18n}}:\n {{cipher.passwordRevisionDisplayDate | date:'medium'}}\n
\n
\n {{'passwordHistory' | i18n}}:\n \n {{cipher.passwordHistory.length}}\n \n
\n
\n
\n {{ph.lastUsedDate | date:'short'}} -\n {{ph.password}}\n
\n
\n
\n
\n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n
\n","import { Importer } from '../importers/importer';\n\nexport interface ImportOption {\n id: string;\n name: string;\n}\nexport abstract class ImportService {\n featuredImportOptions: ImportOption[];\n regularImportOptions: ImportOption[];\n getImportOptions: () => ImportOption[];\n import: (importer: Importer, fileContents: string, organizationId?: string) => Promise;\n getImporter: (format: string, organizationId: string) => Importer;\n}\n","import { AttachmentResponse } from './attachmentResponse';\nimport { BaseResponse } from './baseResponse';\nimport { PasswordHistoryResponse } from './passwordHistoryResponse';\n\nimport { CardApi } from '../api/cardApi';\nimport { FieldApi } from '../api/fieldApi';\nimport { IdentityApi } from '../api/identityApi';\nimport { LoginApi } from '../api/loginApi';\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nexport class CipherResponse extends BaseResponse {\n id: string;\n organizationId: string;\n folderId: string;\n type: number;\n name: string;\n notes: string;\n fields: FieldApi[];\n login: LoginApi;\n card: CardApi;\n identity: IdentityApi;\n secureNote: SecureNoteApi;\n favorite: boolean;\n edit: boolean;\n viewPassword: boolean;\n organizationUseTotp: boolean;\n revisionDate: string;\n attachments: AttachmentResponse[];\n passwordHistory: PasswordHistoryResponse[];\n collectionIds: string[];\n deletedDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.folderId = this.getResponseProperty('FolderId') || null;\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.notes = this.getResponseProperty('Notes');\n this.favorite = this.getResponseProperty('Favorite') || false;\n this.edit = !!this.getResponseProperty('Edit');\n if (this.getResponseProperty('ViewPassword') == null) {\n this.viewPassword = true;\n } else {\n this.viewPassword = this.getResponseProperty('ViewPassword');\n }\n this.organizationUseTotp = this.getResponseProperty('OrganizationUseTotp');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n this.collectionIds = this.getResponseProperty('CollectionIds');\n this.deletedDate = this.getResponseProperty('DeletedDate');\n\n const login = this.getResponseProperty('Login');\n if (login != null) {\n this.login = new LoginApi(login);\n }\n\n const card = this.getResponseProperty('Card');\n if (card != null) {\n this.card = new CardApi(card);\n }\n\n const identity = this.getResponseProperty('Identity');\n if (identity != null) {\n this.identity = new IdentityApi(identity);\n }\n\n const secureNote = this.getResponseProperty('SecureNote');\n if (secureNote != null) {\n this.secureNote = new SecureNoteApi(secureNote);\n }\n\n const fields = this.getResponseProperty('Fields');\n if (fields != null) {\n this.fields = fields.map((f: any) => new FieldApi(f));\n }\n\n const attachments = this.getResponseProperty('Attachments');\n if (attachments != null) {\n this.attachments = attachments.map((a: any) => new AttachmentResponse(a));\n }\n\n const passwordHistory = this.getResponseProperty('PasswordHistory');\n if (passwordHistory != null) {\n this.passwordHistory = passwordHistory.map((h: any) => new PasswordHistoryResponse(h));\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CiphersComponent as BaseCiphersComponent } from 'jslib/angular/components/ciphers.component';\n\nimport { CipherType } from 'jslib/enums/cipherType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nconst MaxCheckedCount = 500;\n\n@Component({\n selector: 'app-vault-ciphers',\n templateUrl: 'ciphers.component.html',\n})\nexport class CiphersComponent extends BaseCiphersComponent implements OnDestroy {\n @Input() showAddNew = true;\n @Output() onAttachmentsClicked = new EventEmitter();\n @Output() onShareClicked = new EventEmitter();\n @Output() onCollectionsClicked = new EventEmitter();\n @Output() onCloneClicked = new EventEmitter();\n\n cipherType = CipherType;\n actionPromise: Promise;\n userHasPremiumAccess = false;\n\n constructor(searchService: SearchService, protected toasterService: ToasterService,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected cipherService: CipherService, protected eventService: EventService,\n protected totpService: TotpService, protected userService: UserService) {\n super(searchService);\n this.pageSize = 200;\n }\n\n async ngOnInit() {\n this.userHasPremiumAccess = await this.userService.canAccessPremium();\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n launch(uri: string) {\n this.platformUtilsService.launchUri(uri);\n }\n\n attachments(c: CipherView) {\n this.onAttachmentsClicked.emit(c);\n }\n\n share(c: CipherView) {\n this.onShareClicked.emit(c);\n }\n\n collections(c: CipherView) {\n this.onCollectionsClicked.emit(c);\n }\n\n clone(c: CipherView) {\n this.onCloneClicked.emit(c);\n }\n\n async delete(c: CipherView): Promise {\n if (this.actionPromise != null) {\n return;\n }\n const permanent = c.isDeleted;\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t(permanent ? 'permanentlyDeleteItemConfirmation' : 'deleteItemConfirmation'),\n this.i18nService.t(permanent ? 'permanentlyDeleteItem' : 'deleteItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.deleteCipher(c.id, permanent);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t(permanent ? 'permanentlyDeletedItem'\n : 'deletedItem'));\n this.refresh();\n } catch { }\n this.actionPromise = null;\n }\n\n async restore(c: CipherView): Promise {\n if (this.actionPromise != null || !c.isDeleted) {\n return;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('restoreItemConfirmation'),\n this.i18nService.t('restoreItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.cipherService.restoreWithServer(c.id);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('restoredItem'));\n this.refresh();\n } catch { }\n this.actionPromise = null;\n }\n\n async copy(cipher: CipherView, value: string, typeI18nKey: string, aType: string) {\n if (value == null || aType === 'TOTP' && !this.displayTotpCopyButton(cipher)) {\n return;\n } else if (value === cipher.login.totp) {\n value = await this.totpService.getCode(value);\n }\n\n this.platformUtilsService.copyToClipboard(value, { window: window });\n this.toasterService.popAsync('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));\n\n if (typeI18nKey === 'password' || typeI18nKey === 'verificationCodeTotp') {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, cipher.id);\n } else if (typeI18nKey === 'securityCode') {\n this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, cipher.id);\n }\n }\n\n selectAll(select: boolean) {\n if (select) {\n this.selectAll(false);\n }\n const selectCount = select && this.ciphers.length > MaxCheckedCount\n ? MaxCheckedCount\n : this.ciphers.length;\n for (let i = 0; i < selectCount; i++) {\n this.checkCipher(this.ciphers[i], select);\n }\n }\n\n checkCipher(c: CipherView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n getSelected(): CipherView[] {\n if (this.ciphers == null) {\n return [];\n }\n return this.ciphers.filter(c => !!(c as any).checked);\n }\n\n getSelectedIds(): string[] {\n return this.getSelected().map(c => c.id);\n }\n\n displayTotpCopyButton(cipher: CipherView) {\n return (cipher?.login?.hasTotp ?? false) &&\n (cipher.organizationUseTotp || this.userHasPremiumAccess);\n }\n\n protected deleteCipher(id: string, permanent: boolean) {\n return permanent ? this.cipherService.deleteWithServer(id) : this.cipherService.softDeleteWithServer(id);\n }\n\n protected showFixOldAttachments(c: CipherView) {\n return c.hasOldAttachments && c.organizationId == null;\n }\n}\n","\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n \n {{'attachmentsNeedFix' | i18n}}\n \n \n
\n {{c.subTitle}}\n
\n \n
\n
\n \n \n {{'loading' | i18n}}\n \n \n

{{'noItemsInList' | i18n}}

\n \n
\n
\n
\n","export enum EncryptionType {\n AesCbc256_B64 = 0,\n AesCbc128_HmacSha256_B64 = 1,\n AesCbc256_HmacSha256_B64 = 2,\n Rsa2048_OaepSha256_B64 = 3,\n Rsa2048_OaepSha1_B64 = 4,\n Rsa2048_OaepSha256_HmacSha256_B64 = 5,\n Rsa2048_OaepSha1_HmacSha256_B64 = 6,\n}\n","import { KdfType } from '../enums/kdfType';\nimport { TwoFactorProviderType } from '../enums/twoFactorProviderType';\n\nimport { AuthResult } from '../models/domain/authResult';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { DeviceRequest } from '../models/request/deviceRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\n\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { AppIdService } from '../abstractions/appId.service';\nimport { AuthService as AuthServiceAbstraction } from '../abstractions/auth.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { LogService } from '../abstractions/log.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService } from '../abstractions/vaultTimeout.service';\n\nexport const TwoFactorProviders = {\n [TwoFactorProviderType.Authenticator]: {\n type: TwoFactorProviderType.Authenticator,\n name: null as string,\n description: null as string,\n priority: 1,\n sort: 1,\n premium: false,\n },\n [TwoFactorProviderType.Yubikey]: {\n type: TwoFactorProviderType.Yubikey,\n name: null as string,\n description: null as string,\n priority: 3,\n sort: 2,\n premium: true,\n },\n [TwoFactorProviderType.Duo]: {\n type: TwoFactorProviderType.Duo,\n name: 'Duo',\n description: null as string,\n priority: 2,\n sort: 3,\n premium: true,\n },\n [TwoFactorProviderType.OrganizationDuo]: {\n type: TwoFactorProviderType.OrganizationDuo,\n name: 'Duo (Organization)',\n description: null as string,\n priority: 10,\n sort: 4,\n premium: false,\n },\n [TwoFactorProviderType.Email]: {\n type: TwoFactorProviderType.Email,\n name: null as string,\n description: null as string,\n priority: 0,\n sort: 6,\n premium: false,\n },\n [TwoFactorProviderType.WebAuthn]: {\n type: TwoFactorProviderType.WebAuthn,\n name: null as string,\n description: null as string,\n priority: 4,\n sort: 5,\n premium: true,\n },\n};\n\nexport class AuthService implements AuthServiceAbstraction {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n ssoRedirectUrl: string;\n clientId: string;\n clientSecret: string;\n twoFactorProvidersData: Map;\n selectedTwoFactorProviderType: TwoFactorProviderType = null;\n\n private key: SymmetricCryptoKey;\n\n constructor(private cryptoService: CryptoService, private apiService: ApiService,\n private userService: UserService, private tokenService: TokenService,\n private appIdService: AppIdService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private messagingService: MessagingService,\n private vaultTimeoutService: VaultTimeoutService, private logService: LogService,\n private setCryptoKeys = true) {\n }\n\n init() {\n TwoFactorProviders[TwoFactorProviderType.Email].name = this.i18nService.t('emailTitle');\n TwoFactorProviders[TwoFactorProviderType.Email].description = this.i18nService.t('emailDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Authenticator].name = this.i18nService.t('authenticatorAppTitle');\n TwoFactorProviders[TwoFactorProviderType.Authenticator].description =\n this.i18nService.t('authenticatorAppDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Duo].description = this.i18nService.t('duoDesc');\n\n TwoFactorProviders[TwoFactorProviderType.OrganizationDuo].name =\n 'Duo (' + this.i18nService.t('organization') + ')';\n TwoFactorProviders[TwoFactorProviderType.OrganizationDuo].description =\n this.i18nService.t('duoOrganizationDesc');\n\n TwoFactorProviders[TwoFactorProviderType.WebAuthn].name = this.i18nService.t('webAuthnTitle');\n TwoFactorProviders[TwoFactorProviderType.WebAuthn].description = this.i18nService.t('webAuthnDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Yubikey].name = this.i18nService.t('yubiKeyTitle');\n TwoFactorProviders[TwoFactorProviderType.Yubikey].description = this.i18nService.t('yubiKeyDesc');\n }\n\n async logIn(email: string, masterPassword: string): Promise {\n this.selectedTwoFactorProviderType = null;\n const key = await this.makePreloginKey(masterPassword, email);\n const hashedPassword = await this.cryptoService.hashPassword(masterPassword, key);\n return await this.logInHelper(email, hashedPassword, null, null, null, null, null,\n key, null, null, null);\n }\n\n async logInSso(code: string, codeVerifier: string, redirectUrl: string): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, code, codeVerifier, redirectUrl, null, null,\n null, null, null, null);\n }\n\n async logInApiKey(clientId: string, clientSecret: string): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, null, null, null, clientId, clientSecret,\n null, null, null, null);\n }\n\n async logInTwoFactor(twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,\n remember?: boolean): Promise {\n return await this.logInHelper(this.email, this.masterPasswordHash, this.code, this.codeVerifier,\n this.ssoRedirectUrl, this.clientId, this.clientSecret, this.key, twoFactorProvider,\n twoFactorToken, remember);\n }\n\n async logInComplete(email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n const key = await this.makePreloginKey(masterPassword, email);\n const hashedPassword = await this.cryptoService.hashPassword(masterPassword, key);\n return await this.logInHelper(email, hashedPassword, null, null, null, null, null, key,\n twoFactorProvider, twoFactorToken, remember);\n }\n\n async logInSsoComplete(code: string, codeVerifier: string, redirectUrl: string,\n twoFactorProvider: TwoFactorProviderType, twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, code, codeVerifier, redirectUrl, null,\n null, null, twoFactorProvider, twoFactorToken, remember);\n }\n\n async logInApiKeyComplete(clientId: string, clientSecret: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, null, null, null, clientId, clientSecret, null,\n twoFactorProvider, twoFactorToken, remember);\n }\n\n logOut(callback: Function) {\n callback();\n this.messagingService.send('loggedOut');\n }\n\n getSupportedTwoFactorProviders(win: Window): any[] {\n const providers: any[] = [];\n if (this.twoFactorProvidersData == null) {\n return providers;\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.OrganizationDuo) &&\n this.platformUtilsService.supportsDuo()) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.OrganizationDuo]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Authenticator)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Authenticator]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Yubikey)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Yubikey]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Duo) && this.platformUtilsService.supportsDuo()) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Duo]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.WebAuthn) && this.platformUtilsService.supportsWebAuthn(win)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.WebAuthn]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Email)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Email]);\n }\n\n return providers;\n }\n\n getDefaultTwoFactorProvider(webAuthnSupported: boolean): TwoFactorProviderType {\n if (this.twoFactorProvidersData == null) {\n return null;\n }\n\n if (this.selectedTwoFactorProviderType != null &&\n this.twoFactorProvidersData.has(this.selectedTwoFactorProviderType)) {\n return this.selectedTwoFactorProviderType;\n }\n\n let providerType: TwoFactorProviderType = null;\n let providerPriority = -1;\n this.twoFactorProvidersData.forEach((value, type) => {\n const provider = (TwoFactorProviders as any)[type];\n if (provider != null && provider.priority > providerPriority) {\n if (type === TwoFactorProviderType.WebAuthn && !webAuthnSupported) {\n return;\n }\n\n providerType = type;\n providerPriority = provider.priority;\n }\n });\n\n return providerType;\n }\n\n async makePreloginKey(masterPassword: string, email: string): Promise {\n email = email.trim().toLowerCase();\n let kdf: KdfType = null;\n let kdfIterations: number = null;\n try {\n const preloginResponse = await this.apiService.postPrelogin(new PreloginRequest(email));\n if (preloginResponse != null) {\n kdf = preloginResponse.kdf;\n kdfIterations = preloginResponse.kdfIterations;\n }\n } catch (e) {\n if (e == null || e.statusCode !== 404) {\n throw e;\n }\n }\n return this.cryptoService.makeKey(masterPassword, email, kdf, kdfIterations);\n }\n\n authingWithApiKey(): boolean {\n return this.clientId != null && this.clientSecret != null;\n }\n\n authingWithSso(): boolean {\n return this.code != null && this.codeVerifier != null && this.ssoRedirectUrl != null;\n }\n\n authingWithPassword(): boolean {\n return this.email != null && this.masterPasswordHash != null;\n }\n\n private async logInHelper(email: string, hashedPassword: string, code: string, codeVerifier: string,\n redirectUrl: string, clientId: string, clientSecret: string, key: SymmetricCryptoKey,\n twoFactorProvider?: TwoFactorProviderType, twoFactorToken?: string, remember?: boolean): Promise {\n const storedTwoFactorToken = await this.tokenService.getTwoFactorToken(email);\n const appId = await this.appIdService.getAppId();\n const deviceRequest = new DeviceRequest(appId, this.platformUtilsService);\n\n let emailPassword: string[] = [];\n let codeCodeVerifier: string[] = [];\n let clientIdClientSecret: string[] = [];\n\n if (email != null && hashedPassword != null) {\n emailPassword = [email, hashedPassword];\n } else {\n emailPassword = null;\n }\n if (code != null && codeVerifier != null && redirectUrl != null) {\n codeCodeVerifier = [code, codeVerifier, redirectUrl];\n } else {\n codeCodeVerifier = null;\n }\n if (clientId != null && clientSecret != null) {\n clientIdClientSecret = [clientId, clientSecret];\n } else {\n clientIdClientSecret = null;\n }\n\n let request: TokenRequest;\n if (twoFactorToken != null && twoFactorProvider != null) {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, twoFactorProvider,\n twoFactorToken, remember, deviceRequest);\n } else if (storedTwoFactorToken != null) {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, TwoFactorProviderType.Remember,\n storedTwoFactorToken, false, deviceRequest);\n } else {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, null,\n null, false, deviceRequest);\n }\n\n const response = await this.apiService.postIdentityToken(request);\n\n this.clearState();\n const result = new AuthResult();\n result.twoFactor = !(response as any).accessToken;\n\n if (result.twoFactor) {\n // two factor required\n const twoFactorResponse = response as IdentityTwoFactorResponse;\n this.email = email;\n this.masterPasswordHash = hashedPassword;\n this.code = code;\n this.codeVerifier = codeVerifier;\n this.ssoRedirectUrl = redirectUrl;\n this.clientId = clientId;\n this.clientSecret = clientSecret;\n this.key = this.setCryptoKeys ? key : null;\n this.twoFactorProvidersData = twoFactorResponse.twoFactorProviders2;\n result.twoFactorProviders = twoFactorResponse.twoFactorProviders2;\n return result;\n }\n\n const tokenResponse = response as IdentityTokenResponse;\n result.resetMasterPassword = tokenResponse.resetMasterPassword;\n if (tokenResponse.twoFactorToken != null) {\n await this.tokenService.setTwoFactorToken(tokenResponse.twoFactorToken, email);\n }\n\n await this.tokenService.setTokens(tokenResponse.accessToken, tokenResponse.refreshToken);\n await this.userService.setInformation(this.tokenService.getUserId(), this.tokenService.getEmail(),\n tokenResponse.kdf, tokenResponse.kdfIterations);\n if (this.setCryptoKeys) {\n if (key != null) {\n await this.cryptoService.setKey(key);\n }\n if (hashedPassword != null) {\n await this.cryptoService.setKeyHash(hashedPassword);\n }\n\n // Skip this step during SSO new user flow. No key is returned from server.\n if (code == null || tokenResponse.key != null) {\n await this.cryptoService.setEncKey(tokenResponse.key);\n\n // User doesn't have a key pair yet (old account), let's generate one for them\n if (tokenResponse.privateKey == null) {\n try {\n const keyPair = await this.cryptoService.makeKeyPair();\n await this.apiService.postAccountKeys(new KeysRequest(keyPair[0], keyPair[1].encryptedString));\n tokenResponse.privateKey = keyPair[1].encryptedString;\n } catch (e) {\n // tslint:disable-next-line\n this.logService.error(e);\n }\n }\n\n await this.cryptoService.setEncPrivateKey(tokenResponse.privateKey);\n }\n }\n\n if (this.vaultTimeoutService != null) {\n this.vaultTimeoutService.biometricLocked = false;\n }\n this.messagingService.send('loggedIn');\n return result;\n }\n\n private clearState(): void {\n this.key = null;\n this.email = null;\n this.masterPasswordHash = null;\n this.code = null;\n this.codeVerifier = null;\n this.ssoRedirectUrl = null;\n this.clientId = null;\n this.clientSecret = null;\n this.twoFactorProvidersData = null;\n this.selectedTwoFactorProviderType = null;\n }\n}\n","export class SelectionReadOnlyRequest {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(id: string, readOnly: boolean, hidePasswords: boolean) {\n this.id = id;\n this.readOnly = readOnly;\n this.hidePasswords = hidePasswords;\n }\n}\n","export enum DeviceType {\n Android = 0,\n iOS = 1,\n ChromeExtension = 2,\n FirefoxExtension = 3,\n OperaExtension = 4,\n EdgeExtension = 5,\n WindowsDesktop = 6,\n MacOsDesktop = 7,\n LinuxDesktop = 8,\n ChromeBrowser = 9,\n FirefoxBrowser = 10,\n OperaBrowser = 11,\n EdgeBrowser = 12,\n IEBrowser = 13,\n UnknownBrowser = 14,\n AndroidAmazon = 15,\n UWP = 16,\n SafariBrowser = 17,\n VivaldiBrowser = 18,\n VivaldiExtension = 19,\n SafariExtension = 20,\n}\n","export abstract class SettingsService {\n clearCache: () => void;\n getEquivalentDomains: () => Promise;\n setEquivalentDomains: (equivalentDomains: string[][]) => Promise;\n clear: (userId: string) => Promise;\n}\n","export enum PlanType {\n Free = 0,\n FamiliesAnnually2019 = 1,\n TeamsMonthly2019 = 2,\n TeamsAnnually2019 = 3,\n EnterpriseMonthly2019 = 4,\n EnterpriseAnnually2019 = 5,\n Custom = 6,\n FamiliesAnnually = 7,\n TeamsMonthly = 8,\n TeamsAnnually = 9,\n EnterpriseMonthly = 10,\n EnterpriseAnnually = 11,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { PlanType } from 'jslib/enums/planType';\nimport { PolicyType } from 'jslib/enums/policyType';\nimport { ProductType } from 'jslib/enums/productType';\n\nimport { OrganizationCreateRequest } from 'jslib/models/request/organizationCreateRequest';\nimport { OrganizationUpgradeRequest } from 'jslib/models/request/organizationUpgradeRequest';\nimport { PlanResponse } from 'jslib/models/response/planResponse';\n\n@Component({\n selector: 'app-organization-plans',\n templateUrl: 'organization-plans.component.html',\n})\nexport class OrganizationPlansComponent implements OnInit {\n @ViewChild(PaymentComponent) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent) taxComponent: TaxInfoComponent;\n\n @Input() organizationId: string;\n @Input() showFree = true;\n @Input() showCancel = false;\n @Input() product: ProductType = ProductType.Free;\n @Input() plan: PlanType = PlanType.Free;\n @Output() onSuccess = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n loading: boolean = true;\n selfHosted: boolean = false;\n ownedBusiness: boolean = false;\n premiumAccessAddon: boolean = false;\n additionalStorage: number = 0;\n additionalSeats: number = 0;\n name: string;\n billingEmail: string;\n businessName: string;\n productTypes = ProductType;\n formPromise: Promise;\n singleOrgPolicyBlock: boolean = false;\n freeTrial: boolean = false;\n\n plans: PlanResponse[];\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, platformUtilsService: PlatformUtilsService,\n private cryptoService: CryptoService, private router: Router, private syncService: SyncService,\n private policyService: PolicyService, private userService: UserService) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n if (!this.selfHosted) {\n const plans = await this.apiService.getPlans();\n this.plans = plans.data;\n if (this.product === ProductType.Enterprise || this.product === ProductType.Teams) {\n this.ownedBusiness = true;\n }\n }\n this.loading = false;\n }\n\n get createOrganization() {\n return this.organizationId == null;\n }\n\n get selectedPlan() {\n return this.plans.find(plan => plan.type === this.plan);\n }\n\n get selectedPlanInterval() {\n return this.selectedPlan.isAnnual\n ? 'year'\n : 'month';\n }\n\n get selectableProducts() {\n let validPlans = this.plans.filter(plan => plan.type !== PlanType.Custom);\n\n if (this.ownedBusiness) {\n validPlans = validPlans.filter(plan => plan.canBeUsedByBusiness);\n }\n\n if (!this.showFree) {\n validPlans = validPlans.filter(plan => plan.product !== ProductType.Free);\n }\n\n validPlans = validPlans\n .filter(plan => !plan.legacyYear\n && !plan.disabled\n && (plan.isAnnual || plan.product === this.productTypes.Free));\n\n return validPlans;\n }\n\n get selectablePlans() {\n return this.plans.filter(plan => !plan.legacyYear && !plan.disabled && plan.product === this.product);\n }\n\n additionalStoragePriceMonthly(selectedPlan: PlanResponse) {\n if (!selectedPlan.isAnnual) {\n return selectedPlan.additionalStoragePricePerGb;\n }\n return selectedPlan.additionalStoragePricePerGb / 12;\n }\n\n seatPriceMonthly(selectedPlan: PlanResponse) {\n if (!selectedPlan.isAnnual) {\n return selectedPlan.seatPrice;\n }\n return selectedPlan.seatPrice / 12;\n }\n\n additionalStorageTotal(plan: PlanResponse): number {\n if (!plan.hasAdditionalStorageOption) {\n return 0;\n }\n\n return plan.additionalStoragePricePerGb * Math.abs(this.additionalStorage || 0);\n }\n\n seatTotal(plan: PlanResponse): number {\n if (!plan.hasAdditionalSeatsOption) {\n return 0;\n }\n\n return plan.seatPrice * Math.abs(this.additionalSeats || 0);\n }\n\n get subtotal() {\n let subTotal = this.selectedPlan.basePrice;\n if (this.selectedPlan.hasAdditionalSeatsOption && this.additionalSeats) {\n subTotal += this.seatTotal(this.selectedPlan);\n }\n if (this.selectedPlan.hasAdditionalStorageOption && this.additionalStorage) {\n subTotal += this.additionalStorageTotal(this.selectedPlan);\n }\n if (this.selectedPlan.hasPremiumAccessOption && this.premiumAccessAddon) {\n subTotal += this.selectedPlan.premiumAccessOptionPrice;\n }\n return subTotal;\n }\n\n get taxCharges() {\n return this.taxComponent != null && this.taxComponent.taxRate != null ?\n (this.taxComponent.taxRate / 100) * this.subtotal :\n 0;\n }\n\n get total() {\n return (this.subtotal + this.taxCharges) || 0;\n }\n\n changedProduct() {\n this.plan = this.selectablePlans[0].type;\n if (!this.selectedPlan.hasPremiumAccessOption) {\n this.premiumAccessAddon = false;\n }\n if (!this.selectedPlan.hasAdditionalStorageOption) {\n this.additionalStorage = 0;\n }\n if (!this.selectedPlan.hasAdditionalSeatsOption) {\n this.additionalSeats = 0;\n } else if (!this.additionalSeats && !this.selectedPlan.baseSeats &&\n this.selectedPlan.hasAdditionalSeatsOption) {\n this.additionalSeats = 1;\n }\n this.freeTrial = this.selectedPlan.trialPeriodDays != null;\n }\n\n changedOwnedBusiness() {\n if (!this.ownedBusiness || this.selectedPlan.canBeUsedByBusiness) {\n return;\n }\n this.product = ProductType.Teams;\n this.plan = PlanType.TeamsAnnually;\n }\n\n changedCountry() {\n this.paymentComponent.hideBank = this.taxComponent.taxInfo.country !== 'US';\n // Bank Account payments are only available for US customers\n if (this.paymentComponent.hideBank &&\n this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n async submit() {\n if (this.singleOrgPolicyBlock) {\n return;\n } else {\n const policies = await this.policyService.getAll(PolicyType.SingleOrg);\n const orgs = await this.userService.getAllOrganizations();\n\n const orgsWithSingleOrgPolicy = policies\n .filter(p => p.enabled && p.type === PolicyType.SingleOrg)\n .map(p => p.organizationId);\n\n this.singleOrgPolicyBlock = orgs.some(org =>\n org.type !== OrganizationUserType.Owner &&\n org.type !== OrganizationUserType.Admin &&\n org.status !== OrganizationUserStatusType.Invited &&\n orgsWithSingleOrgPolicy.includes(org.id));\n\n if (this.singleOrgPolicyBlock) {\n return;\n }\n }\n\n let files: FileList = null;\n if (this.createOrganization && this.selfHosted) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n }\n\n try {\n const doSubmit = async () => {\n let orgId: string = null;\n if (this.createOrganization) {\n let tokenResult: [string, PaymentMethodType] = null;\n if (!this.selfHosted && this.plan !== PlanType.Free) {\n tokenResult = await this.paymentComponent.createPaymentToken();\n }\n const shareKey = await this.cryptoService.makeShareKey();\n const key = shareKey[0].encryptedString;\n const collection = await this.cryptoService.encrypt(\n this.i18nService.t('defaultCollection'), shareKey[1]);\n const collectionCt = collection.encryptedString;\n\n if (this.selfHosted) {\n const fd = new FormData();\n fd.append('license', files[0]);\n fd.append('key', key);\n fd.append('collectionName', collectionCt);\n const response = await this.apiService.postOrganizationLicense(fd);\n orgId = response.id;\n } else {\n const request = new OrganizationCreateRequest();\n request.key = key;\n request.collectionName = collectionCt;\n request.name = this.name;\n request.billingEmail = this.billingEmail;\n\n if (this.selectedPlan.type === PlanType.Free) {\n request.planType = PlanType.Free;\n } else {\n request.paymentToken = tokenResult[0];\n request.paymentMethodType = tokenResult[1];\n request.businessName = this.ownedBusiness ? this.businessName : null;\n request.additionalSeats = this.additionalSeats;\n request.additionalStorageGb = this.additionalStorage;\n request.premiumAccessAddon = this.selectedPlan.hasPremiumAccessOption &&\n this.premiumAccessAddon;\n request.planType = this.selectedPlan.type;\n request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode;\n request.billingAddressCountry = this.taxComponent.taxInfo.country;\n if (this.taxComponent.taxInfo.includeTaxId) {\n request.taxIdNumber = this.taxComponent.taxInfo.taxId;\n request.billingAddressLine1 = this.taxComponent.taxInfo.line1;\n request.billingAddressLine2 = this.taxComponent.taxInfo.line2;\n request.billingAddressCity = this.taxComponent.taxInfo.city;\n request.billingAddressState = this.taxComponent.taxInfo.state;\n }\n }\n const response = await this.apiService.postOrganization(request);\n orgId = response.id;\n }\n } else {\n const request = new OrganizationUpgradeRequest();\n request.businessName = this.ownedBusiness ? this.businessName : null;\n request.additionalSeats = this.additionalSeats;\n request.additionalStorageGb = this.additionalStorage;\n request.premiumAccessAddon = this.selectedPlan.hasPremiumAccessOption &&\n this.premiumAccessAddon;\n request.planType = this.selectedPlan.type;\n request.billingAddressCountry = this.taxComponent.taxInfo.country;\n request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode;\n\n const result = await this.apiService.postOrganizationUpgrade(this.organizationId, request);\n if (!result.success && result.paymentIntentClientSecret != null) {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n }\n orgId = this.organizationId;\n }\n\n if (orgId != null) {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n if (this.createOrganization) {\n this.toasterService.popAsync('success',\n this.i18nService.t('organizationCreated'), this.i18nService.t('organizationReadyToGo'));\n } else {\n this.toasterService.popAsync('success', null, this.i18nService.t('organizationUpgraded'));\n }\n this.router.navigate(['/organizations/' + orgId]);\n }\n };\n\n this.formPromise = doSubmit();\n await this.formPromise;\n this.onSuccess.emit();\n } catch { }\n }\n\n}\n","\n \n {{'loading' | i18n}}\n\n\n

{{'uploadLicenseFileOrg' | i18n}}

\n
\n
\n \n \n {{'licenseFileDesc' | i18n : 'bitwarden_organization_license.json'}}\n
\n \n
\n
\n
\n

{{'generalInformation' | i18n}}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n

{{'chooseYourPlan' | i18n}}

\n
\n \n \n
\n
\n \n

{{'users' | i18n}}

\n
\n
\n \n \n {{'userSeatsHowManyDesc' | i18n}}\n
\n
\n
\n

{{'addons' | i18n}}

\n
\n
\n \n \n {{'userSeatsAdditionalDesc' | i18n : selectedPlan.baseSeats : (seatPriceMonthly(selectedPlan) | currency:'$')}}\n
\n
\n
\n
\n \n \n {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (additionalStoragePriceMonthly(selectedPlan) | currency:'$') : ('month' | i18n)}}\n
\n
\n
\n
\n
\n \n \n
\n {{'premiumAccessDesc' | i18n : (3.33 | currency:'$') : ('month' | i18n)}}\n
\n
\n

{{'summary' | i18n}}

\n
\n \n \n
\n
\n

{{ (createOrganization ? 'paymentInformation' : 'billingInformation') | i18n}}

\n \n \n
\n
\n {{ 'planPrice' | i18n }}: {{ subtotal | currency: 'USD $' }}\n
\n \n {{ 'estimatedTax' | i18n }}: {{ taxCharges | currency: 'USD $' }}\n \n
\n
\n

{{'total' | i18n}}:\n {{total | currency:'USD $'}}/{{selectedPlanInterval | i18n}}

\n
\n \n {{'paymentChargedWithTrial' | i18n : (selectedPlanInterval | i18n) }}\n \n \n \n {{'paymentCharged' | i18n : (selectedPlanInterval | i18n) }}\n \n \n \n \n \n
\n
\n {{'singleOrgBlockCreateMessage' | i18n}}\n
\n
\n \n \n
\n
\n","import { EncryptionType } from '../../enums/encryptionType';\n\nimport { Utils } from '../../misc/utils';\n\nexport class SymmetricCryptoKey {\n key: ArrayBuffer;\n encKey?: ArrayBuffer;\n macKey?: ArrayBuffer;\n encType: EncryptionType;\n\n keyB64: string;\n encKeyB64: string;\n macKeyB64: string;\n\n meta: any;\n\n constructor(key: ArrayBuffer, encType?: EncryptionType) {\n if (key == null) {\n throw new Error('Must provide key');\n }\n\n if (encType == null) {\n if (key.byteLength === 32) {\n encType = EncryptionType.AesCbc256_B64;\n } else if (key.byteLength === 64) {\n encType = EncryptionType.AesCbc256_HmacSha256_B64;\n } else {\n throw new Error('Unable to determine encType.');\n }\n }\n\n this.key = key;\n this.encType = encType;\n\n if (encType === EncryptionType.AesCbc256_B64 && key.byteLength === 32) {\n this.encKey = key;\n this.macKey = null;\n } else if (encType === EncryptionType.AesCbc128_HmacSha256_B64 && key.byteLength === 32) {\n this.encKey = key.slice(0, 16);\n this.macKey = key.slice(16, 32);\n } else if (encType === EncryptionType.AesCbc256_HmacSha256_B64 && key.byteLength === 64) {\n this.encKey = key.slice(0, 32);\n this.macKey = key.slice(32, 64);\n } else {\n throw new Error('Unsupported encType/key length.');\n }\n\n if (this.key != null) {\n this.keyB64 = Utils.fromBufferToB64(this.key);\n }\n if (this.encKey != null) {\n this.encKeyB64 = Utils.fromBufferToB64(this.encKey);\n }\n if (this.macKey != null) {\n this.macKeyB64 = Utils.fromBufferToB64(this.macKey);\n }\n }\n}\n","import { CardData } from '../data/cardData';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nimport { CardView } from '../view/cardView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Card extends Domain {\n cardholderName: EncString;\n brand: EncString;\n number: EncString;\n expMonth: EncString;\n expYear: EncString;\n code: EncString;\n\n constructor(obj?: CardData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new CardView(this), {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, orgId, encKey);\n }\n\n toCardData(): CardData {\n const c = new CardData();\n this.buildDataModel(this, c, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n });\n return c;\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldData } from '../data/fieldData';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nimport { FieldView } from '../view/fieldView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Field extends Domain {\n name: EncString;\n value: EncString;\n type: FieldType;\n\n constructor(obj?: FieldData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.type = obj.type;\n this.buildDomainModel(this, obj, {\n name: null,\n value: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new FieldView(this), {\n name: null,\n value: null,\n }, orgId, encKey);\n }\n\n toFieldData(): FieldData {\n const f = new FieldData();\n this.buildDataModel(this, f, {\n name: null,\n value: null,\n type: null,\n }, ['type']);\n return f;\n }\n}\n","import { IdentityData } from '../data/identityData';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { IdentityView } from '../view/identityView';\n\nexport class Identity extends Domain {\n title: EncString;\n firstName: EncString;\n middleName: EncString;\n lastName: EncString;\n address1: EncString;\n address2: EncString;\n address3: EncString;\n city: EncString;\n state: EncString;\n postalCode: EncString;\n country: EncString;\n company: EncString;\n email: EncString;\n phone: EncString;\n ssn: EncString;\n username: EncString;\n passportNumber: EncString;\n licenseNumber: EncString;\n\n constructor(obj?: IdentityData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new IdentityView(this), {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, orgId, encKey);\n }\n\n toIdentityData(): IdentityData {\n const i = new IdentityData();\n this.buildDataModel(this, i, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n });\n return i;\n }\n}\n","import { LoginUri } from './loginUri';\n\nimport { LoginData } from '../data/loginData';\n\nimport { LoginView } from '../view/loginView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Login extends Domain {\n uris: LoginUri[];\n username: EncString;\n password: EncString;\n passwordRevisionDate?: Date;\n totp: EncString;\n\n constructor(obj?: LoginData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.passwordRevisionDate = obj.passwordRevisionDate != null ? new Date(obj.passwordRevisionDate) : null;\n this.buildDomainModel(this, obj, {\n username: null,\n password: null,\n totp: null,\n }, alreadyEncrypted, []);\n\n if (obj.uris) {\n this.uris = [];\n obj.uris.forEach(u => {\n this.uris.push(new LoginUri(u, alreadyEncrypted));\n });\n }\n }\n\n async decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new LoginView(this), {\n username: null,\n password: null,\n totp: null,\n }, orgId, encKey);\n\n if (this.uris != null) {\n view.uris = [];\n for (let i = 0; i < this.uris.length; i++) {\n const uri = await this.uris[i].decrypt(orgId, encKey);\n view.uris.push(uri);\n }\n }\n\n return view;\n }\n\n toLoginData(): LoginData {\n const l = new LoginData();\n l.passwordRevisionDate = this.passwordRevisionDate != null ? this.passwordRevisionDate.toISOString() : null;\n this.buildDataModel(this, l, {\n username: null,\n password: null,\n totp: null,\n });\n\n if (this.uris != null && this.uris.length > 0) {\n l.uris = [];\n this.uris.forEach(u => {\n l.uris.push(u.toLoginUriData());\n });\n }\n\n return l;\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriData } from '../data/loginUriData';\n\nimport { LoginUriView } from '../view/loginUriView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class LoginUri extends Domain {\n uri: EncString;\n match: UriMatchType;\n\n constructor(obj?: LoginUriData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.match = obj.match;\n this.buildDomainModel(this, obj, {\n uri: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new LoginUriView(this), {\n uri: null,\n }, orgId, encKey);\n }\n\n toLoginUriData(): LoginUriData {\n const u = new LoginUriData();\n this.buildDataModel(this, u, {\n uri: null,\n }, ['match']);\n return u;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteData } from '../data/secureNoteData';\n\nimport Domain from './domainBase';\n\nimport { SecureNoteView } from '../view/secureNoteView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class SecureNote extends Domain {\n type: SecureNoteType;\n\n constructor(obj?: SecureNoteData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.type = obj.type;\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return Promise.resolve(new SecureNoteView(this));\n }\n\n toSecureNoteData(): SecureNoteData {\n const n = new SecureNoteData();\n n.type = this.type;\n return n;\n }\n}\n","import {\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n Renderer2,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\n// ref: https://juristr.com/blog/2018/02/ng-true-value-directive/\n@Directive({\n selector: 'input[type=checkbox][appTrueFalseValue]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TrueFalseValueDirective),\n multi: true,\n },\n ],\n})\nexport class TrueFalseValueDirective implements ControlValueAccessor {\n @Input() trueValue = true;\n @Input() falseValue = false;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('change', ['$event'])\n onHostChange(ev: any) {\n this.propagateChange(ev.target.checked ? this.trueValue : this.falseValue);\n }\n\n writeValue(obj: any): void {\n if (obj === this.trueValue) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', true);\n } else {\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', false);\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void { /* nothing */ }\n\n setDisabledState?(isDisabled: boolean): void { /* nothing */ }\n\n private propagateChange = (_: any) => { /* nothing */ };\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SelectionReadOnlyResponse extends BaseResponse {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.readOnly = this.getResponseProperty('ReadOnly');\n this.hidePasswords = this.getResponseProperty('HidePasswords');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { ProfileOrganizationResponse } from './profileOrganizationResponse';\n\nexport class ProfileResponse extends BaseResponse {\n id: string;\n name: string;\n email: string;\n emailVerified: boolean;\n masterPasswordHint: string;\n premium: boolean;\n culture: string;\n twoFactorEnabled: boolean;\n key: string;\n privateKey: string;\n securityStamp: string;\n organizations: ProfileOrganizationResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.emailVerified = this.getResponseProperty('EmailVerified');\n this.masterPasswordHint = this.getResponseProperty('MasterPasswordHint');\n this.premium = this.getResponseProperty('Premium');\n this.culture = this.getResponseProperty('Culture');\n this.twoFactorEnabled = this.getResponseProperty('TwoFactorEnabled');\n this.key = this.getResponseProperty('Key');\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.securityStamp = this.getResponseProperty('SecurityStamp');\n\n const organizations = this.getResponseProperty('Organizations');\n if (organizations != null) {\n this.organizations = organizations.map((o: any) => new ProfileOrganizationResponse(o));\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { GroupingsComponent as BaseGroupingsComponent } from 'jslib/angular/components/groupings.component';\n\n@Component({\n selector: 'app-vault-groupings',\n templateUrl: 'groupings.component.html',\n})\nexport class GroupingsComponent extends BaseGroupingsComponent {\n @Output() onSearchTextChanged = new EventEmitter();\n\n searchText: string = '';\n searchPlaceholder: string = null;\n\n constructor(collectionService: CollectionService, folderService: FolderService,\n storageService: StorageService, userService: UserService) {\n super(collectionService, folderService, storageService, userService);\n }\n\n searchTextChanged() {\n this.onSearchTextChanged.emit(this.searchText);\n }\n}\n","
\n
\n {{'filters' | i18n}}\n \n \n \n
\n
\n \n \n

{{'types' | i18n}}

\n \n

\n \n {{'loading' | i18n}}\n

\n \n \n

\n {{'folders' | i18n}}\n \n \n \n

\n \n
\n \n

{{'collections' | i18n}}

\n \n
\n
\n
\n
\n","import { OrganizationData } from '../data/organizationData';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\n\nexport class Organization {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordKey: string;\n userId: string;\n\n constructor(obj?: OrganizationData) {\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.name = obj.name;\n this.status = obj.status;\n this.type = obj.type;\n this.enabled = obj.enabled;\n this.usePolicies = obj.usePolicies;\n this.useGroups = obj.useGroups;\n this.useDirectory = obj.useDirectory;\n this.useEvents = obj.useEvents;\n this.useTotp = obj.useTotp;\n this.use2fa = obj.use2fa;\n this.useApi = obj.useApi;\n this.useBusinessPortal = obj.useBusinessPortal;\n this.useSso = obj.useSso;\n this.selfHost = obj.selfHost;\n this.usersGetPremium = obj.usersGetPremium;\n this.seats = obj.seats;\n this.maxCollections = obj.maxCollections;\n this.maxStorageGb = obj.maxStorageGb;\n this.ssoBound = obj.ssoBound;\n this.identifier = obj.identifier;\n this.permissions = obj.permissions;\n this.resetPasswordKey = obj.resetPasswordKey;\n this.userId = obj.userId;\n }\n\n get canAccess() {\n if (this.type === OrganizationUserType.Owner) {\n return true;\n }\n return this.enabled && this.status === OrganizationUserStatusType.Confirmed;\n }\n\n get isManager() {\n return this.type === OrganizationUserType.Manager || this.type === OrganizationUserType.Owner ||\n this.type === OrganizationUserType.Admin;\n }\n\n get isAdmin() {\n return this.type === OrganizationUserType.Owner || this.type === OrganizationUserType.Admin;\n }\n\n get isOwner() {\n return this.type === OrganizationUserType.Owner;\n }\n\n get canAccessBusinessPortal() {\n return this.isAdmin || this.permissions.accessBusinessPortal;\n }\n\n get canAccessEventLogs() {\n return this.isAdmin || this.permissions.accessEventLogs;\n }\n\n get canAccessImportExport() {\n return this.isAdmin || this.permissions.accessImportExport;\n }\n\n get canAccessReports() {\n return this.isAdmin || this.permissions.accessReports;\n }\n\n get canManageAllCollections() {\n return this.isAdmin || this.permissions.manageAllCollections;\n }\n\n get canManageAssignedCollections() {\n return this.isManager || this.permissions.manageAssignedCollections;\n }\n\n get canManageGroups() {\n return this.isAdmin || this.permissions.manageGroups;\n }\n\n get canManageSso() {\n return this.isAdmin || this.permissions.manageSso;\n }\n\n get canManagePolicies() {\n return this.isAdmin || this.permissions.managePolicies;\n }\n\n get canManageUsers() {\n return this.isAdmin || this.permissions.manageUsers;\n }\n\n get isResetPasswordEnrolled() {\n return this.resetPasswordKey != null;\n }\n}\n","import { View } from './view';\n\nimport { SendFile } from '../domain/sendFile';\n\nexport class SendFileView implements View {\n id: string = null;\n size: string = null;\n sizeName: string = null;\n fileName: string = null;\n\n constructor(f?: SendFile) {\n if (!f) {\n return;\n }\n\n this.id = f.id;\n this.size = f.size;\n this.sizeName = f.sizeName;\n }\n\n get fileSize(): number {\n try {\n if (this.size != null) {\n return parseInt(this.size, null);\n }\n } catch { }\n return 0;\n }\n}\n","import { View } from './view';\n\nimport { SendText } from '../domain/sendText';\n\nexport class SendTextView implements View {\n text: string = null;\n hidden: boolean;\n\n constructor(t?: SendText) {\n if (!t) {\n return;\n }\n\n this.hidden = t.hidden;\n }\n\n get maskedText(): string {\n return this.text != null ? '••••••••' : null;\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { OrganizationUserResetPasswordEnrollmentRequest } from 'jslib/models/request/organizationUserResetPasswordEnrollmentRequest';\n\n@Component({\n selector: 'app-organizations',\n templateUrl: 'organizations.component.html',\n})\nexport class OrganizationsComponent implements OnInit {\n @Input() vault = false;\n\n organizations: Organization[];\n loaded: boolean = false;\n actionPromise: Promise;\n // TODO Remove feature flag once ready for general release\n resetPasswordFeatureFlag = false;\n\n constructor(private userService: UserService, private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService, private apiService: ApiService,\n private toasterService: ToasterService, private syncService: SyncService,\n private cryptoService: CryptoService) { }\n\n async ngOnInit() {\n if (!this.vault) {\n await this.syncService.fullSync(true);\n await this.load();\n }\n }\n\n async load() {\n const orgs = await this.userService.getAllOrganizations();\n orgs.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.organizations = orgs;\n this.loaded = true;\n }\n\n async unlinkSso(org: Organization) {\n const confirmed = await this.platformUtilsService.showDialog(\n 'Are you sure you want to unlink SSO for this organization?', org.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.apiService.deleteSsoUser(org.id).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.toasterService.popAsync('success', null, 'Unlinked SSO');\n await this.load();\n } catch { }\n }\n\n async leave(org: Organization) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('leaveOrganizationConfirmation'), org.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.apiService.postLeaveOrganization(org.id).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('leftOrganization'));\n await this.load();\n } catch { }\n }\n\n async toggleResetPasswordEnrollment(org: Organization) {\n // Feature Flag\n if (!this.resetPasswordFeatureFlag) {\n return;\n }\n\n // Set variables\n let keyString: string = null;\n let toastStringRef = 'withdrawPasswordResetSuccess';\n\n // Enroll - encrpyt user's encKey.key with organization key\n if (!org.isResetPasswordEnrolled) {\n const encKey = await this.cryptoService.getEncKey();\n const orgSymKey = await this.cryptoService.getOrgKey(org.id);\n const encryptedKey = await this.cryptoService.encrypt(encKey.key, orgSymKey);\n keyString = encryptedKey.encryptedString;\n toastStringRef = 'enrollPasswordResetSuccess';\n }\n\n // Create/Execute request\n try {\n const request = new OrganizationUserResetPasswordEnrollmentRequest();\n request.resetPasswordKey = keyString;\n this.actionPromise = this.apiService.putOrganizationUserResetPasswordEnrollment(org.id, org.userId, request)\n .then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t(toastStringRef));\n await this.load();\n } catch { }\n }\n}\n","\n

\n \n {{'loading' | i18n}}\n

\n \n \n

{{'noOrganizationsList' | i18n}}

\n
\n \n \n {{'newOrganization' | i18n}}\n \n
\n\n
\n

\n {{'organizations' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n \n \n {{'newOrganization' | i18n}}\n \n
\n \n \n {{'loading' | i18n}}\n \n \n \n

{{'noOrganizationsList' | i18n}}

\n \n \n {{'newOrganization' | i18n}}\n \n
\n \n \n \n \n \n \n \n \n
\n \n \n {{o.name}}\n \n \n {{'organizationIsDisabled' | i18n}}\n \n \n \n {{'enrolledPasswordReset' | i18n}}\n \n \n \n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\n@Component({\n selector: 'app-navbar',\n templateUrl: 'navbar.component.html',\n})\nexport class NavbarComponent implements OnInit {\n selfHosted = false;\n name: string;\n email: string;\n\n constructor(private messagingService: MessagingService, private platformUtilsService: PlatformUtilsService,\n private tokenService: TokenService) {\n this.selfHosted = this.platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.name = await this.tokenService.getName();\n this.email = await this.tokenService.getEmail();\n if (this.name == null || this.name.trim() === '') {\n this.name = this.email;\n }\n }\n\n lock() {\n this.messagingService.send('lockVault');\n }\n\n logOut() {\n this.messagingService.send('logout');\n }\n}\n","\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: 'footer.component.html',\n})\nexport class FooterComponent implements OnInit {\n version: string;\n year: string = '2015';\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.year = new Date().getFullYear().toString();\n this.version = await this.platformUtilsService.getApplicationVersion();\n }\n}\n","
\n
\n
\n © {{year}}, Bitwarden Inc.\n
\n
\n
\n {{'versionNumber' | i18n : version}}\n
\n
\n
\n","export class KeysRequest {\n publicKey: string;\n encryptedPrivateKey: string;\n\n constructor(publicKey: string, encryptedPrivateKey: string) {\n this.publicKey = publicKey;\n this.encryptedPrivateKey = encryptedPrivateKey;\n }\n}\n","import { PolicyData } from '../data/policyData';\n\nimport Domain from './domainBase';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class Policy extends Domain {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(obj?: PolicyData) {\n super();\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.organizationId = obj.organizationId;\n this.type = obj.type;\n this.data = obj.data;\n this.enabled = obj.enabled;\n }\n}\n","import { PolicyResponse } from '../response/policyResponse';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class PolicyData {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(response: PolicyResponse) {\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.type = response.type;\n this.data = response.data;\n this.enabled = response.enabled;\n }\n}\n","import { OnInit } from '@angular/core';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { EncString } from '../../models/domain/encString';\nimport { MasterPasswordPolicyOptions } from '../../models/domain/masterPasswordPolicyOptions';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class ChangePasswordComponent implements OnInit {\n masterPassword: string;\n masterPasswordRetype: string;\n formPromise: Promise;\n masterPasswordScore: number;\n enforcedPolicyOptions: MasterPasswordPolicyOptions;\n\n protected email: string;\n protected kdf: KdfType;\n protected kdfIterations: number;\n\n private masterPasswordStrengthTimeout: any;\n\n constructor(protected i18nService: I18nService, protected cryptoService: CryptoService,\n protected messagingService: MessagingService, protected userService: UserService,\n protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected policyService: PolicyService) { }\n\n async ngOnInit() {\n this.email = await this.userService.getEmail();\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions();\n }\n\n getPasswordScoreAlertDisplay() {\n if (this.enforcedPolicyOptions == null) {\n return '';\n }\n\n let str: string;\n switch (this.enforcedPolicyOptions.minComplexity) {\n case 4:\n str = this.i18nService.t('strong');\n break;\n case 3:\n str = this.i18nService.t('good');\n break;\n default:\n str = this.i18nService.t('weak');\n break;\n }\n return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';\n }\n\n async submit() {\n if (!await this.strongPassword()) {\n return;\n }\n\n if (!await this.setupSubmitActions()) {\n return;\n }\n\n const email = await this.userService.getEmail();\n if (this.kdf == null) {\n this.kdf = await this.userService.getKdf();\n }\n if (this.kdfIterations == null) {\n this.kdfIterations = await this.userService.getKdfIterations();\n }\n const key = await this.cryptoService.makeKey(this.masterPassword, email.trim().toLowerCase(),\n this.kdf, this.kdfIterations);\n const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n let encKey: [SymmetricCryptoKey, EncString] = null;\n const existingEncKey = await this.cryptoService.getEncKey();\n if (existingEncKey == null) {\n encKey = await this.cryptoService.makeEncKey(key);\n } else {\n encKey = await this.cryptoService.remakeEncKey(key);\n }\n\n await this.performSubmitActions(masterPasswordHash, key, encKey);\n }\n\n async setupSubmitActions(): Promise {\n // Override in sub-class\n // Can be used for additional validation and/or other processes the should occur before changing passwords\n return true;\n }\n\n async performSubmitActions(masterPasswordHash: string, key: SymmetricCryptoKey,\n encKey: [SymmetricCryptoKey, EncString]) {\n // Override in sub-class\n }\n\n async strongPassword(): Promise {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return false;\n }\n if (this.masterPassword.length < 8) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassLength'));\n return false;\n }\n if (this.masterPassword !== this.masterPasswordRetype) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassDoesntMatch'));\n return false;\n }\n\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n\n if (this.enforcedPolicyOptions != null &&\n !this.policyService.evaluateMasterPassword(\n strengthResult.score,\n this.masterPassword,\n this.enforcedPolicyOptions)) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPasswordPolicyRequirementsNotMet'));\n return false;\n }\n\n if (strengthResult != null && strengthResult.score < 3) {\n const result = await this.platformUtilsService.showDialog(this.i18nService.t('weakMasterPasswordDesc'),\n this.i18nService.t('weakMasterPassword'), this.i18nService.t('yes'), this.i18nService.t('no'),\n 'warning');\n if (!result) {\n return false;\n }\n }\n\n return true;\n }\n\n updatePasswordStrength() {\n if (this.masterPasswordStrengthTimeout != null) {\n clearTimeout(this.masterPasswordStrengthTimeout);\n }\n this.masterPasswordStrengthTimeout = setTimeout(() => {\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;\n }, 300);\n }\n\n async logOut() {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('logOutConfirmation'),\n this.i18nService.t('logOut'), this.i18nService.t('logOut'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.messagingService.send('logout');\n }\n }\n\n private getPasswordStrengthUserInput() {\n let userInput: string[] = [];\n const atPosition = this.email.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(this.email.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/));\n }\n return userInput;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { OrganizationUserUserDetailsResponse } from 'jslib/models/response/organizationUserResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-entity-users',\n templateUrl: 'entity-users.component.html',\n})\nexport class EntityUsersComponent implements OnInit {\n @Input() entity: 'group' | 'collection';\n @Input() entityId: string;\n @Input() entityName: string;\n @Input() organizationId: string;\n @Output() onEditedUsers = new EventEmitter();\n\n organizationUserType = OrganizationUserType;\n organizationUserStatusType = OrganizationUserStatusType;\n\n showSelected = false;\n loading = true;\n formPromise: Promise;\n selectedCount = 0;\n searchText: string;\n\n private allUsers: OrganizationUserUserDetailsResponse[] = [];\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n await this.loadUsers();\n this.loading = false;\n }\n\n get users() {\n if (this.showSelected) {\n return this.allUsers.filter(u => (u as any).checked);\n } else {\n return this.allUsers;\n }\n }\n\n async loadUsers() {\n const users = await this.apiService.getOrganizationUsers(this.organizationId);\n this.allUsers = users.data.map(r => r).sort(Utils.getSortFunction(this.i18nService, 'email'));\n if (this.entity === 'group') {\n const response = await this.apiService.getGroupUsers(this.organizationId, this.entityId);\n if (response != null && users.data.length > 0) {\n response.forEach(s => {\n const user = users.data.filter(u => u.id === s);\n if (user != null && user.length > 0) {\n (user[0] as any).checked = true;\n }\n });\n }\n } else if (this.entity === 'collection') {\n const response = await this.apiService.getCollectionUsers(this.organizationId, this.entityId);\n if (response != null && users.data.length > 0) {\n response.forEach(s => {\n const user = users.data.filter(u => !u.accessAll && u.id === s.id);\n if (user != null && user.length > 0) {\n (user[0] as any).checked = true;\n (user[0] as any).readOnly = s.readOnly;\n (user[0] as any).hidePasswords = s.hidePasswords;\n }\n });\n }\n }\n\n this.allUsers.forEach(u => {\n if (this.entity === 'collection' && u.accessAll) {\n (u as any).checked = true;\n }\n if ((u as any).checked) {\n this.selectedCount++;\n }\n });\n }\n\n check(u: OrganizationUserUserDetailsResponse) {\n if (this.entity === 'collection' && u.accessAll) {\n return;\n }\n (u as any).checked = !(u as any).checked;\n this.selectedChanged(u);\n }\n\n selectedChanged(u: OrganizationUserUserDetailsResponse) {\n if ((u as any).checked) {\n this.selectedCount++;\n } else {\n if (this.entity === 'collection') {\n (u as any).readOnly = false;\n (u as any).hidePasswords = false;\n }\n this.selectedCount--;\n }\n }\n\n filterSelected(showSelected: boolean) {\n this.showSelected = showSelected;\n }\n\n async submit() {\n try {\n if (this.entity === 'group') {\n const selections = this.users.filter(u => (u as any).checked).map(u => u.id);\n this.formPromise = this.apiService.putGroupUsers(this.organizationId, this.entityId, selections);\n } else {\n const selections = this.users.filter(u => (u as any).checked && !u.accessAll)\n .map(u => new SelectionReadOnlyRequest(u.id, !!(u as any).readOnly, !!(u as any).hidePasswords));\n this.formPromise = this.apiService.putCollectionUsers(this.organizationId, this.entityId, selections);\n }\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedUsers'));\n this.onEditedUsers.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'userAccess' | i18n}}\n {{entityName}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noUsersInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
  {{'name' | i18n}} {{'userType' | i18n}}{{'hidePasswords' |\n i18n}}{{'readOnly' |\n i18n}}
\n \n \n \n \n {{u.email}}\n {{'invited'\n | i18n}}\n {{'accepted'\n | i18n}}\n {{u.name}}\n \n \n \n {{'userAccessAllItems' | i18n}}\n \n \n {{'owner' | i18n}}\n {{'admin' | i18n}}\n {{'manager' | i18n}}\n {{'user' | i18n}}\n {{'custom' | i18n}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { EventService } from '../../services/event.service';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\n\n@Component({\n selector: 'app-entity-events',\n templateUrl: 'entity-events.component.html',\n})\nexport class EntityEventsComponent implements OnInit {\n @Input() name: string;\n @Input() entity: 'user' | 'cipher';\n @Input() entityId: string;\n @Input() organizationId: string;\n @Input() showUser = false;\n\n loading = true;\n loaded = false;\n events: any[];\n start: string;\n end: string;\n continuationToken: string;\n refreshPromise: Promise;\n morePromise: Promise;\n\n private orgUsersUserIdMap = new Map();\n private orgUsersIdMap = new Map();\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private eventService: EventService, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const defaultDates = this.eventService.getDefaultDateFilters();\n this.start = defaultDates[0];\n this.end = defaultDates[1];\n await this.load();\n }\n\n async load() {\n if (this.showUser) {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n response.data.forEach(u => {\n const name = u.name == null || u.name.trim() === '' ? u.email : u.name;\n this.orgUsersIdMap.set(u.id, { name: name, email: u.email });\n this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });\n });\n }\n await this.loadEvents(true);\n this.loaded = true;\n }\n\n async loadEvents(clearExisting: boolean) {\n if (this.refreshPromise != null || this.morePromise != null) {\n return;\n }\n\n let dates: string[] = null;\n try {\n dates = this.eventService.formatDateFilters(this.start, this.end);\n } catch (e) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidDateRange'));\n return;\n }\n\n this.loading = true;\n let response: ListResponse;\n try {\n let promise: Promise;\n if (this.entity === 'user') {\n promise = this.apiService.getEventsOrganizationUser(this.organizationId, this.entityId,\n dates[0], dates[1], clearExisting ? null : this.continuationToken);\n } else {\n promise = this.apiService.getEventsCipher(this.entityId,\n dates[0], dates[1], clearExisting ? null : this.continuationToken);\n }\n if (clearExisting) {\n this.refreshPromise = promise;\n } else {\n this.morePromise = promise;\n }\n response = await promise;\n } catch { }\n\n this.continuationToken = response.continuationToken;\n const events = response.data.map(r => {\n const userId = r.actingUserId == null ? r.userId : r.actingUserId;\n const eventInfo = this.eventService.getEventInfo(r);\n const user = this.showUser && userId != null && this.orgUsersUserIdMap.has(userId) ?\n this.orgUsersUserIdMap.get(userId) : null;\n return {\n message: eventInfo.message,\n appIcon: eventInfo.appIcon,\n appName: eventInfo.appName,\n userId: userId,\n userName: user != null ? user.name : this.showUser ? this.i18nService.t('unknown') : null,\n userEmail: user != null ? user.email : this.showUser ? '' : null,\n date: r.date,\n ip: r.ipAddress,\n type: r.type,\n };\n });\n\n if (!clearExisting && this.events != null && this.events.length > 0) {\n this.events = this.events.concat(events);\n } else {\n this.events = events;\n }\n\n this.loading = false;\n this.morePromise = null;\n this.refreshPromise = null;\n }\n}\n","
\n
\n
\n
\n

\n {{'eventLogs' | i18n}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n \n \n -\n \n \n
\n \n
\n
\n
\n {{'noEventsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{'timestamp' | i18n}}\n {{'device' | i18n}}\n {{'user' | i18n}}{{'event' | i18n}}
{{e.date | date:'medium'}}\n \n {{e.appName}}, {{e.ip}}\n \n {{e.userName}}\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class PermissionsApi extends BaseResponse {\n accessBusinessPortal: boolean;\n accessEventLogs: boolean;\n accessImportExport: boolean;\n accessReports: boolean;\n manageAllCollections: boolean;\n manageAssignedCollections: boolean;\n manageCiphers: boolean;\n manageGroups: boolean;\n manageSso: boolean;\n managePolicies: boolean;\n manageUsers: boolean;\n manageResetPassword: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return this;\n }\n this.accessBusinessPortal = this.getResponseProperty('AccessBusinessPortal');\n this.accessEventLogs = this.getResponseProperty('AccessEventLogs');\n this.accessImportExport = this.getResponseProperty('AccessImportExport');\n this.accessReports = this.getResponseProperty('AccessReports');\n this.manageAllCollections = this.getResponseProperty('ManageAllCollections');\n this.manageAssignedCollections = this.getResponseProperty('ManageAssignedCollections');\n this.manageCiphers = this.getResponseProperty('ManageCiphers');\n this.manageGroups = this.getResponseProperty('ManageGroups');\n this.manageSso = this.getResponseProperty('ManageSso');\n this.managePolicies = this.getResponseProperty('ManagePolicies');\n this.manageUsers = this.getResponseProperty('ManageUsers');\n this.manageResetPassword = this.getResponseProperty('ManageResetPassword');\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\nimport { ApiKeyResponse } from 'jslib/models/response/apiKeyResponse';\n\n@Component({\n selector: 'app-api-key',\n templateUrl: 'api-key.component.html',\n})\nexport class ApiKeyComponent {\n keyType: string;\n isRotation: boolean;\n postKey: (entityId: string, request: PasswordVerificationRequest) => Promise;\n entityId: string;\n scope: string;\n grantType: string;\n apiKeyTitle: string;\n apiKeyWarning: string;\n apiKeyDescription: string;\n\n masterPassword: string;\n formPromise: Promise;\n clientId: string;\n clientSecret: string;\n\n constructor(private i18nService: I18nService, private toasterService: ToasterService,\n private cryptoService: CryptoService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.postKey(this.entityId, request);\n const response = await this.formPromise;\n this.clientSecret = response.apiKey;\n this.clientId = `${this.keyType}.${this.entityId}`;\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{apiKeyTitle | i18n}}

\n \n
\n
\n

{{apiKeyDescription | i18n}}

\n \n \n \n \n {{apiKeyWarning | i18n}}\n \n

\n client_id:
\n {{clientId}}\n

\n

\n client_secret:
\n {{clientSecret}}\n

\n

\n scope:
\n {{scope}}\n

\n

\n grant_type:
\n {{grantType}}\n

\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n Input,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-purge-vault',\n templateUrl: 'purge-vault.component.html',\n})\nexport class PurgeVaultComponent {\n @Input() organizationId?: string = null;\n\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private router: Router) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postPurgeCiphers(request, this.organizationId);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('vaultPurged'));\n if (this.organizationId != null) {\n this.router.navigate(['organizations', this.organizationId, 'vault']);\n } else {\n this.router.navigate(['vault']);\n }\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'purgeVault' | i18n}}

\n \n
\n
\n

{{(organizationId ? 'purgeOrgVaultDesc' : 'purgeVaultDesc') | i18n}}

\n {{'purgeVaultWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { BillingResponse } from 'jslib/models/response/billingResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\nimport { TransactionType } from 'jslib/enums/transactionType';\nimport { VerifyBankRequest } from 'jslib/models/request/verifyBankRequest';\n\n@Component({\n selector: 'app-user-billing',\n templateUrl: 'user-billing.component.html',\n})\nexport class UserBillingComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n showAdjustPayment = false;\n showAddCredit = false;\n billing: BillingResponse;\n paymentMethodType = PaymentMethodType;\n transactionType = TransactionType;\n organizationId: string;\n verifyAmount1: number;\n verifyAmount2: number;\n\n verifyBankPromise: Promise;\n\n constructor(protected apiService: ApiService, protected i18nService: I18nService,\n protected toasterService: ToasterService, protected platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n await this.load();\n this.firstLoaded = true;\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n if (this.organizationId != null) {\n this.billing = await this.apiService.getOrganizationBilling(this.organizationId);\n } else {\n this.billing = await this.apiService.getUserBilling();\n }\n this.loading = false;\n }\n\n async verifyBank() {\n if (this.loading) {\n return;\n }\n\n try {\n const request = new VerifyBankRequest();\n request.amount1 = this.verifyAmount1;\n request.amount2 = this.verifyAmount2;\n this.verifyBankPromise = this.apiService.postOrganizationVerifyBank(this.organizationId, request);\n await this.verifyBankPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('verifiedBankAccount'));\n this.load();\n } catch { }\n }\n\n addCredit() {\n if (this.paymentSourceInApp) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t('addCredit'), null, null, 'warning');\n return;\n }\n this.showAddCredit = true;\n }\n\n closeAddCredit(load: boolean) {\n this.showAddCredit = false;\n if (load) {\n this.load();\n }\n }\n\n changePayment() {\n if (this.paymentSourceInApp) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t('changePaymentMethod'), null, null, 'warning');\n return;\n }\n this.showAdjustPayment = true;\n }\n\n closePayment(load: boolean) {\n this.showAdjustPayment = false;\n if (load) {\n this.load();\n }\n }\n\n get isCreditBalance() {\n return this.billing == null || this.billing.balance <= 0;\n }\n\n get creditOrBalance() {\n return Math.abs(this.billing != null ? this.billing.balance : 0);\n }\n\n get paymentSource() {\n return this.billing != null ? this.billing.paymentSource : null;\n }\n\n get paymentSourceInApp() {\n return this.paymentSource != null &&\n (this.paymentSource.type === PaymentMethodType.AppleInApp ||\n this.paymentSource.type === PaymentMethodType.GoogleInApp);\n }\n\n get invoices() {\n return this.billing != null ? this.billing.invoices : null;\n }\n\n get transactions() {\n return this.billing != null ? this.billing.transactions : null;\n }\n}\n","
\n

\n {{'billing' | i18n}}\n

\n \n
\n\n \n {{'loading' | i18n}}\n\n\n

{{(isCreditBalance ? 'accountCredit' : 'accountBalance') | i18n}}

\n

{{creditOrBalance | currency:'$'}}

\n

{{'creditAppliedDesc' | i18n}}

\n \n \n \n

{{'paymentMethod' | i18n}}

\n

{{'noPaymentMethod' | i18n}}

\n \n \n

{{'verifyBankAccountDesc' | i18n}} {{'verifyBankAccountFailureWarning' | i18n}}

\n
\n \n
\n
\n
$0.
\n
\n \n
\n \n
\n
\n
$0.
\n
\n \n
\n \n
\n
\n

\n \n {{'inAppPurchase' | i18n}}\n {{paymentSource.description}}\n

\n
\n \n \n \n

{{'invoices' | i18n}}

\n

{{'noInvoices' | i18n}}

\n \n \n \n \n \n \n \n \n \n
{{i.date | date:'mediumDate'}}\n \n \n \n {{'invoiceNumber' | i18n : i.number}}\n {{i.amount | currency:'$'}}\n \n \n {{'paid' | i18n}}\n \n \n \n {{'unpaid' | i18n}}\n \n
\n

{{'transactions' | i18n}}

\n

{{'noTransactions' | i18n}}

\n \n \n \n \n \n \n \n \n \n
{{t.createdDate | date:'mediumDate'}}\n \n {{'chargeNoun' | i18n}}\n \n {{'refundNoun' | i18n}}\n \n \n {{t.details}}\n \n {{t.amount | currency:'$'}}
\n * {{'chargesStatement' | i18n : 'BITWARDEN'}}\n
\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { BitPayInvoiceRequest } from 'jslib/models/request/bitPayInvoiceRequest';\n\nimport { WebConstants } from '../../services/webConstants';\n\n@Component({\n selector: 'app-add-credit',\n templateUrl: 'add-credit.component.html',\n})\nexport class AddCreditComponent implements OnInit {\n @Input() creditAmount: string;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.PayPal;\n @Input() organizationId: string;\n @Output() onAdded = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild('ppButtonForm', { read: ElementRef, static: true }) ppButtonFormRef: ElementRef;\n\n paymentMethodType = PaymentMethodType;\n ppButtonFormAction = WebConstants.paypal.buttonActionProduction;\n ppButtonBusinessId = WebConstants.paypal.businessIdProduction;\n ppButtonCustomField: string;\n ppLoading = false;\n subject: string;\n returnUrl: string;\n formPromise: Promise;\n\n private userId: string;\n private name: string;\n private email: string;\n\n constructor(private userService: UserService, private apiService: ApiService,\n private platformUtilsService: PlatformUtilsService) {\n if (platformUtilsService.isDev()) {\n this.ppButtonFormAction = WebConstants.paypal.buttonActionSandbox;\n this.ppButtonBusinessId = WebConstants.paypal.businessIdSandbox;\n }\n }\n\n async ngOnInit() {\n if (this.organizationId != null) {\n if (this.creditAmount == null) {\n this.creditAmount = '20.00';\n }\n this.ppButtonCustomField = 'organization_id:' + this.organizationId;\n const org = await this.userService.getOrganization(this.organizationId);\n if (org != null) {\n this.subject = org.name;\n this.name = org.name;\n }\n } else {\n if (this.creditAmount == null) {\n this.creditAmount = '10.00';\n }\n this.userId = await this.userService.getUserId();\n this.subject = await this.userService.getEmail();\n this.email = this.subject;\n this.ppButtonCustomField = 'user_id:' + this.userId;\n }\n this.ppButtonCustomField += ',account_credit:1';\n this.returnUrl = window.location.href;\n }\n\n async submit() {\n if (this.creditAmount == null || this.creditAmount === '') {\n return;\n }\n\n if (this.method === PaymentMethodType.PayPal) {\n this.ppButtonFormRef.nativeElement.submit();\n this.ppLoading = true;\n return;\n }\n if (this.method === PaymentMethodType.BitPay) {\n try {\n const req = new BitPayInvoiceRequest();\n req.email = this.email;\n req.name = this.name;\n req.credit = true;\n req.amount = this.creditAmountNumber;\n req.organizationId = this.organizationId;\n req.userId = this.userId;\n req.returnUrl = this.returnUrl;\n this.formPromise = this.apiService.postBitPayInvoice(req);\n const bitPayUrl: string = await this.formPromise;\n this.platformUtilsService.launchUri(bitPayUrl);\n } catch { }\n return;\n }\n try {\n this.onAdded.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n formatAmount() {\n try {\n if (this.creditAmount != null && this.creditAmount !== '') {\n const floatAmount = Math.abs(parseFloat(this.creditAmount));\n if (floatAmount > 0) {\n this.creditAmount = parseFloat((Math.round(floatAmount * 100) / 100).toString())\n .toFixed(2).toString();\n return;\n }\n }\n } catch { }\n this.creditAmount = '';\n }\n\n get creditAmountNumber(): number {\n if (this.creditAmount != null && this.creditAmount !== '') {\n try {\n return parseFloat(this.creditAmount);\n } catch { }\n }\n return null;\n }\n}\n","
\n
\n \n

{{'addCredit' | i18n}}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
$USD
\n \n
\n
\n
\n {{'creditDelayed' | i18n}}\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PaymentRequest } from 'jslib/models/request/paymentRequest';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\n@Component({\n selector: 'app-adjust-payment',\n templateUrl: 'adjust-payment.component.html',\n})\nexport class AdjustPaymentComponent {\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent, { static: true }) taxInfoComponent: TaxInfoComponent;\n\n @Input() currentType?: PaymentMethodType;\n @Input() organizationId: string;\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n paymentMethodType = PaymentMethodType;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async submit() {\n try {\n const request = new PaymentRequest();\n this.formPromise = this.paymentComponent.createPaymentToken().then(result => {\n request.paymentToken = result[0];\n request.paymentMethodType = result[1];\n request.postalCode = this.taxInfoComponent.taxInfo.postalCode;\n request.country = this.taxInfoComponent.taxInfo.country;\n if (this.organizationId == null) {\n return this.apiService.postAccountPayment(request);\n } else {\n request.taxId = this.taxInfoComponent.taxInfo.taxId;\n request.state = this.taxInfoComponent.taxInfo.state;\n request.line1 = this.taxInfoComponent.taxInfo.line1;\n request.line2 = this.taxInfoComponent.taxInfo.line2;\n request.city = this.taxInfoComponent.taxInfo.city;\n request.state = this.taxInfoComponent.taxInfo.state;\n return this.apiService.postOrganizationPayment(this.organizationId, request);\n }\n });\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedPaymentMethod'));\n this.onAdjusted.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n changeCountry() {\n if (this.taxInfoComponent.taxInfo.country === 'US') {\n this.paymentComponent.hideBank = !this.organizationId;\n } else {\n this.paymentComponent.hideBank = true;\n if (this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n }\n}\n","
\n
\n \n

{{(currentType != null ? 'changePaymentMethod' : 'addPaymentMethod') | i18n}}

\n \n \n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-update-license',\n templateUrl: 'update-license.component.html',\n})\nexport class UpdateLicenseComponent {\n @Input() organizationId: string;\n @Output() onUpdated = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async submit() {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n try {\n const fd = new FormData();\n fd.append('license', files[0]);\n\n let updatePromise: Promise = null;\n if (this.organizationId == null) {\n updatePromise = this.apiService.postAccountLicense(fd);\n } else {\n updatePromise = this.apiService.postOrganizationLicenseUpdate(this.organizationId, fd);\n }\n\n this.formPromise = updatePromise.then(() => {\n return this.apiService.refreshIdentityToken();\n });\n\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedLicense'));\n this.onUpdated.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n \n {{'licenseFileDesc' | i18n : (!organizationId ? 'bitwarden_premium_license.json' : 'bitwarden_organization_license.json')}}\n
\n \n \n
\n","export enum ProductType {\n Free = 0,\n Families = 1,\n Teams = 2,\n Enterprise = 3,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { StorageRequest } from 'jslib/models/request/storageRequest';\n\nimport { PaymentResponse } from 'jslib/models/response/paymentResponse';\n\nimport { PaymentComponent } from './payment.component';\n\n@Component({\n selector: 'app-adjust-storage',\n templateUrl: 'adjust-storage.component.html',\n})\nexport class AdjustStorageComponent {\n @Input() storageGbPrice = 0;\n @Input() add = true;\n @Input() organizationId: string;\n @Input() interval = 'year';\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n storageAdjustment = 0;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private router: Router,\n private activatedRoute: ActivatedRoute) { }\n\n async submit() {\n try {\n const request = new StorageRequest();\n request.storageGbAdjustment = this.storageAdjustment;\n if (!this.add) {\n request.storageGbAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n let response: Promise;\n if (this.organizationId == null) {\n response = this.formPromise = this.apiService.postAccountStorage(request);\n } else {\n response = this.formPromise = this.apiService.postOrganizationStorage(this.organizationId, request);\n }\n const result = await response;\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n } catch {\n paymentFailed = true;\n }\n }\n };\n this.formPromise = action();\n await this.formPromise;\n this.onAdjusted.emit(this.storageAdjustment);\n if (paymentFailed) {\n this.toasterService.popAsync({\n body: this.i18nService.t('couldNotChargeCardPayInvoice'),\n type: 'warning',\n timeout: 10000,\n });\n this.router.navigate(['../billing'], { relativeTo: this.activatedRoute });\n } else {\n this.toasterService.popAsync('success', null,\n this.i18nService.t('adjustedStorage', request.storageGbAdjustment.toString()));\n }\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n get adjustedStorageTotal(): number {\n return this.storageGbPrice * this.storageAdjustment;\n }\n}\n","
\n
\n \n

{{(add ? 'addStorage' : 'removeStorage') | i18n}}

\n
\n
\n \n \n
\n
\n
\n {{'total' | i18n}}: {{storageAdjustment || 0}} GB × {{storageGbPrice | currency:'$'}}\n = {{adjustedStorageTotal\n | currency:'$'}} /{{interval | i18n}}\n
\n \n \n \n {{(add ? 'storageAddNote' : 'storageRemoveNote') | i18n}}\n \n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { UpdateTwoFactorDuoRequest } from 'jslib/models/request/updateTwoFactorDuoRequest';\nimport { TwoFactorDuoResponse } from 'jslib/models/response/twoFactorDuoResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-duo',\n templateUrl: 'two-factor-duo.component.html',\n})\nexport class TwoFactorDuoComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Duo;\n ikey: string;\n skey: string;\n host: string;\n formPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorDuoRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.integrationKey = this.ikey;\n request.secretKey = this.skey;\n request.host = this.host;\n\n return super.enable(async () => {\n if (this.organizationId != null) {\n this.formPromise = this.apiService.putTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n this.formPromise = this.apiService.putTwoFactorDuo(request);\n }\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private processResponse(response: TwoFactorDuoResponse) {\n this.ikey = response.integrationKey;\n this.skey = response.secretKey;\n this.host = response.host;\n this.enabled = response.enabled;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n Duo\n

\n \n
\n \n \n
\n
\n \n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \"\"\n {{'twoFactorDuoIntegrationKey' | i18n}}: {{ikey}}\n
\n {{'twoFactorDuoSecretKey' | i18n}}: {{skey}}\n
\n {{'twoFactorDuoApiHostname' | i18n}}: {{host}}\n
\n \n \"\"\n

{{'twoFactorDuoDesc' | i18n}}

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorProviders } from 'jslib/services/auth.service';\n\nimport { PolicyType } from 'jslib/enums/policyType';\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { TwoFactorAuthenticatorComponent } from './two-factor-authenticator.component';\nimport { TwoFactorDuoComponent } from './two-factor-duo.component';\nimport { TwoFactorEmailComponent } from './two-factor-email.component';\nimport { TwoFactorRecoveryComponent } from './two-factor-recovery.component';\nimport { TwoFactorWebAuthnComponent } from './two-factor-webauthn.component';\nimport { TwoFactorYubiKeyComponent } from './two-factor-yubikey.component';\n\n@Component({\n selector: 'app-two-factor-setup',\n templateUrl: 'two-factor-setup.component.html',\n})\nexport class TwoFactorSetupComponent implements OnInit {\n @ViewChild('recoveryTemplate', { read: ViewContainerRef, static: true }) recoveryModalRef: ViewContainerRef;\n @ViewChild('authenticatorTemplate', { read: ViewContainerRef, static: true }) authenticatorModalRef: ViewContainerRef;\n @ViewChild('yubikeyTemplate', { read: ViewContainerRef, static: true }) yubikeyModalRef: ViewContainerRef;\n @ViewChild('duoTemplate', { read: ViewContainerRef, static: true }) duoModalRef: ViewContainerRef;\n @ViewChild('emailTemplate', { read: ViewContainerRef, static: true }) emailModalRef: ViewContainerRef;\n @ViewChild('webAuthnTemplate', { read: ViewContainerRef, static: true }) webAuthnModalRef: ViewContainerRef;\n\n organizationId: string;\n providers: any[] = [];\n canAccessPremium: boolean;\n showPolicyWarning = false;\n loading = true;\n\n private modal: ModalComponent = null;\n\n constructor(protected apiService: ApiService, protected userService: UserService,\n protected componentFactoryResolver: ComponentFactoryResolver, protected messagingService: MessagingService,\n protected policyService: PolicyService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n\n for (const key in TwoFactorProviders) {\n if (!TwoFactorProviders.hasOwnProperty(key)) {\n continue;\n }\n\n const p = (TwoFactorProviders as any)[key];\n if (this.filterProvider(p.type)) {\n continue;\n }\n\n this.providers.push({\n type: p.type,\n name: p.name,\n description: p.description,\n enabled: false,\n premium: p.premium,\n sort: p.sort,\n });\n }\n\n this.providers.sort((a: any, b: any) => a.sort - b.sort);\n await this.load();\n }\n\n async load() {\n this.loading = true;\n const providerList = await this.getTwoFactorProviders();\n providerList.data.forEach(p => {\n this.providers.forEach(p2 => {\n if (p.type === p2.type) {\n p2.enabled = p.enabled;\n }\n });\n });\n this.evaluatePolicies();\n this.loading = false;\n }\n\n manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.Authenticator:\n const authComp = this.openModal(this.authenticatorModalRef, TwoFactorAuthenticatorComponent);\n authComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Authenticator);\n });\n break;\n case TwoFactorProviderType.Yubikey:\n const yubiComp = this.openModal(this.yubikeyModalRef, TwoFactorYubiKeyComponent);\n yubiComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Yubikey);\n });\n break;\n case TwoFactorProviderType.Duo:\n const duoComp = this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Duo);\n });\n break;\n case TwoFactorProviderType.Email:\n const emailComp = this.openModal(this.emailModalRef, TwoFactorEmailComponent);\n emailComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Email);\n });\n break;\n case TwoFactorProviderType.WebAuthn:\n const webAuthnComp = this.openModal(this.webAuthnModalRef, TwoFactorWebAuthnComponent);\n webAuthnComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.WebAuthn);\n });\n break;\n default:\n break;\n }\n }\n\n recoveryCode() {\n this.openModal(this.recoveryModalRef, TwoFactorRecoveryComponent);\n }\n\n async premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorProviders();\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type === TwoFactorProviderType.OrganizationDuo;\n }\n\n protected openModal(ref: ViewContainerRef, type: Type): T {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = ref.createComponent(factory).instance;\n const childComponent = this.modal.show(type, ref);\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return childComponent;\n }\n\n protected updateStatus(enabled: boolean, type: TwoFactorProviderType) {\n if (!enabled && this.modal != null) {\n this.modal.close();\n }\n this.providers.forEach(p => {\n if (p.type === type) {\n p.enabled = enabled;\n }\n });\n this.evaluatePolicies();\n }\n\n private async evaluatePolicies() {\n if (this.organizationId == null && this.providers.filter(p => p.enabled).length === 1) {\n const policies = await this.policyService.getAll(PolicyType.TwoFactorAuthentication);\n this.showPolicyWarning = policies != null && policies.some(p => p.enabled);\n } else {\n this.showPolicyWarning = false;\n }\n }\n}\n","
\n

{{'twoStepLogin' | i18n}}

\n
\n

{{'twoStepLoginDesc' | i18n}}

\n

{{'twoStepLoginOrganizationDesc' | i18n}}

\n\n

{{'twoStepLoginRecoveryWarning' | i18n}}

\n \n
\n

\n {{'providers' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n\n {{'twoStepLoginPolicyUserWarning' | i18n}}\n\n
    \n
  • \n
    \n \"\"\n
    \n
    \n

    \n {{p.name}}\n \n \n {{'enabled' | i18n}}\n \n \n {{'premium' | i18n}}\n \n

    \n {{p.description}}\n
    \n
    \n \n
    \n
  • \n
\n\n\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { ExportService } from 'jslib/abstractions/export.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { ExportComponent as BaseExportComponent } from 'jslib/angular/components/export.component';\n\n@Component({\n selector: 'app-export',\n templateUrl: 'export.component.html',\n})\nexport class ExportComponent extends BaseExportComponent {\n organizationId: string;\n\n constructor(cryptoService: CryptoService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, exportService: ExportService,\n eventService: EventService) {\n super(cryptoService, i18nService, platformUtilsService, exportService, eventService, window);\n }\n\n protected saved() {\n super.saved();\n this.masterPassword = null;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('exportSuccess'));\n }\n}\n","
\n
\n

{{'exportVault' | i18n}}

\n
\n

{{'exportMasterPassword' | i18n}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-exposed-passwords-report',\n templateUrl: 'exposed-passwords-report.component.html',\n})\nexport class ExposedPasswordsReportComponent extends CipherReportComponent implements OnInit {\n exposedPasswordMap = new Map();\n\n constructor(protected cipherService: CipherService, protected auditService: AuditService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n ngOnInit() {\n this.checkAccess();\n }\n\n async load() {\n if (await this.checkAccess()) {\n super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const exposedPasswordCiphers: CipherView[] = [];\n const promises: Promise[] = [];\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n const promise = this.auditService.passwordLeaked(c.login.password).then(exposedCount => {\n if (exposedCount > 0) {\n exposedPasswordCiphers.push(c);\n this.exposedPasswordMap.set(c.id, exposedCount);\n }\n });\n promises.push(promise);\n });\n await Promise.all(promises);\n this.ciphers = exposedPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from the org view;\n return true;\n }\n}\n","
\n

{{'exposedPasswordsReport' | i18n}}

\n
\n

{{'exposedPasswordsReportDesc' | i18n}}

\n\n
\n \n {{'noExposedPasswords' | i18n}}\n \n \n \n {{'exposedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'exposedXTimes' | i18n : (exposedPasswordMap.get(c.id) | number)}}\n \n
\n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherCreateRequest } from 'jslib/models/request/cipherCreateRequest';\nimport { CipherRequest } from 'jslib/models/request/cipherRequest';\n\nimport { AddEditComponent as BaseAddEditComponent } from '../../vault/add-edit.component';\n\n@Component({\n selector: 'app-org-vault-add-edit',\n templateUrl: '../../vault/add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n organization: Organization;\n originalCipher: Cipher = null;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n totpService: TotpService, passwordGenerationService: PasswordGenerationService,\n private apiService: ApiService, messagingService: MessagingService,\n eventService: EventService, policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, totpService, passwordGenerationService, messagingService,\n eventService, policyService);\n }\n\n protected allowOwnershipAssignment() {\n if (this.ownershipOptions != null && (this.ownershipOptions.length > 1 || !this.allowPersonal)) {\n if (this.organization != null) {\n return this.cloneMode && this.organization.canManageAllCollections;\n } else {\n return !this.editMode || this.cloneMode;\n }\n }\n return false;\n }\n\n protected loadCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCollections();\n }\n return Promise.resolve(this.collections);\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n const data = new CipherData(response);\n this.originalCipher = new Cipher(data);\n return new Cipher(data);\n }\n\n protected encryptCipher() {\n if (!this.organization.canManageAllCollections) {\n return super.encryptCipher();\n }\n return this.cipherService.encrypt(this.cipher, null, this.originalCipher);\n }\n\n protected async saveCipher(cipher: Cipher) {\n if (!this.organization.canManageAllCollections || cipher.organizationId == null) {\n return super.saveCipher(cipher);\n }\n if (this.editMode && !this.cloneMode) {\n const request = new CipherRequest(cipher);\n return this.apiService.putCipherAdmin(this.cipherId, request);\n } else {\n const request = new CipherCreateRequest(cipher);\n return this.apiService.postCipherAdmin(request);\n }\n }\n\n protected async deleteCipher() {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipher();\n }\n return this.cipher.isDeleted ? this.apiService.deleteCipherAdmin(this.cipherId)\n : this.apiService.putDeleteCipherAdmin(this.cipherId);\n }\n}\n","import { AttachmentResponse } from '../response/attachmentResponse';\n\nexport class AttachmentData {\n id: string;\n url: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(response?: AttachmentResponse) {\n if (response == null) {\n return;\n }\n this.id = response.id;\n this.url = response.url;\n this.fileName = response.fileName;\n this.key = response.key;\n this.size = response.size;\n this.sizeName = response.sizeName;\n }\n}\n","import { CardApi } from '../api/cardApi';\n\nexport class CardData {\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(data?: CardApi) {\n if (data == null) {\n return;\n }\n\n this.cardholderName = data.cardholderName;\n this.brand = data.brand;\n this.number = data.number;\n this.expMonth = data.expMonth;\n this.expYear = data.expYear;\n this.code = data.code;\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldApi } from '../api/fieldApi';\n\nexport class FieldData {\n type: FieldType;\n name: string;\n value: string;\n\n constructor(response?: FieldApi) {\n if (response == null) {\n return;\n }\n this.type = response.type;\n this.name = response.name;\n this.value = response.value;\n }\n}\n","import { IdentityApi } from '../api/identityApi';\n\nexport class IdentityData {\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(data?: IdentityApi) {\n if (data == null) {\n return;\n }\n\n this.title = data.title;\n this.firstName = data.firstName;\n this.middleName = data.middleName;\n this.lastName = data.lastName;\n this.address1 = data.address1;\n this.address2 = data.address2;\n this.address3 = data.address3;\n this.city = data.city;\n this.state = data.state;\n this.postalCode = data.postalCode;\n this.country = data.country;\n this.company = data.company;\n this.email = data.email;\n this.phone = data.phone;\n this.ssn = data.ssn;\n this.username = data.username;\n this.passportNumber = data.passportNumber;\n this.licenseNumber = data.licenseNumber;\n }\n}\n","import { LoginApi } from '../api/loginApi';\n\nimport { LoginUriData } from './loginUriData';\n\nexport class LoginData {\n uris: LoginUriData[];\n username: string;\n password: string;\n passwordRevisionDate: string;\n totp: string;\n\n constructor(data?: LoginApi) {\n if (data == null) {\n return;\n }\n\n this.username = data.username;\n this.password = data.password;\n this.passwordRevisionDate = data.passwordRevisionDate;\n this.totp = data.totp;\n\n if (data.uris) {\n this.uris = data.uris.map(u => new LoginUriData(u));\n }\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriApi } from '../api/loginUriApi';\n\nexport class LoginUriData {\n uri: string;\n match: UriMatchType = null;\n\n constructor(data?: LoginUriApi) {\n if (data == null) {\n return;\n }\n this.uri = data.uri;\n this.match = data.match;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nexport class SecureNoteData {\n type: SecureNoteType;\n\n constructor(data?: SecureNoteApi) {\n if (data == null) {\n return;\n }\n\n this.type = data.type;\n }\n}\n","import { AttachmentData } from '../data/attachmentData';\n\nimport { AttachmentView } from '../view/attachmentView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\n\nimport { Utils } from '../../misc/utils';\n\nexport class Attachment extends Domain {\n id: string;\n url: string;\n size: string;\n sizeName: string;\n key: EncString;\n fileName: EncString;\n\n constructor(obj?: AttachmentData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.size = obj.size;\n this.buildDomainModel(this, obj, {\n id: null,\n url: null,\n sizeName: null,\n fileName: null,\n key: null,\n }, alreadyEncrypted, ['id', 'url', 'sizeName']);\n }\n\n async decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new AttachmentView(this), {\n fileName: null,\n }, orgId, encKey);\n\n if (this.key != null) {\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n const orgKey = await cryptoService.getOrgKey(orgId);\n const decValue = await cryptoService.decryptToBytes(this.key, orgKey ?? encKey);\n view.key = new SymmetricCryptoKey(decValue);\n } catch (e) {\n // TODO: error?\n }\n }\n\n return view;\n }\n\n toAttachmentData(): AttachmentData {\n const a = new AttachmentData();\n a.size = this.size;\n this.buildDataModel(this, a, {\n id: null,\n url: null,\n sizeName: null,\n fileName: null,\n key: null,\n }, ['id', 'url', 'sizeName']);\n return a;\n }\n}\n","import { View } from './view';\n\nimport { Password } from '../domain/password';\n\nexport class PasswordHistoryView implements View {\n password: string = null;\n lastUsedDate: Date = null;\n\n constructor(ph?: Password) {\n if (!ph) {\n return;\n }\n\n this.lastUsedDate = ph.lastUsedDate;\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { ImportOption, ImportService } from 'jslib/abstractions/import.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport Swal, { SweetAlertIcon } from 'sweetalert2/dist/sweetalert2.js';\n\n@Component({\n selector: 'app-import',\n templateUrl: 'import.component.html',\n})\nexport class ImportComponent implements OnInit {\n featuredImportOptions: ImportOption[];\n importOptions: ImportOption[];\n format: string = null;\n fileContents: string;\n formPromise: Promise;\n loading: boolean = false;\n\n protected organizationId: string = null;\n protected successNavigate: any[] = ['vault'];\n\n constructor(protected i18nService: I18nService, protected toasterService: ToasterService,\n protected importService: ImportService, protected router: Router,\n protected platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.setImportOptions();\n this.importOptions.sort((a, b) => {\n if (a.name == null && b.name != null) {\n return -1;\n }\n if (a.name != null && b.name == null) {\n return 1;\n }\n if (a.name == null && b.name == null) {\n return 0;\n }\n\n return this.i18nService.collator ? this.i18nService.collator.compare(a.name, b.name) :\n a.name.localeCompare(b.name);\n });\n }\n\n async submit() {\n this.loading = true;\n\n const importer = this.importService.getImporter(this.format, this.organizationId);\n if (importer === null) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFormat'));\n this.loading = false;\n return;\n }\n\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if ((files == null || files.length === 0) && (this.fileContents == null || this.fileContents === '')) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n this.loading = false;\n return;\n }\n\n let fileContents = this.fileContents;\n if (files != null && files.length > 0) {\n try {\n const content = await this.getFileContents(files[0]);\n if (content != null) {\n fileContents = content;\n }\n } catch { }\n }\n\n if (fileContents == null || fileContents === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n this.loading = false;\n return;\n }\n\n try {\n this.formPromise = this.importService.import(importer, fileContents, this.organizationId);\n const error = await this.formPromise;\n if (error != null) {\n this.error(error);\n this.loading = false;\n return;\n }\n this.toasterService.popAsync('success', null, this.i18nService.t('importSuccess'));\n this.router.navigate(this.successNavigate);\n } catch { }\n\n this.loading = false;\n }\n\n getFormatInstructionTitle() {\n if (this.format == null) {\n return null;\n }\n\n const results = this.featuredImportOptions.concat(this.importOptions).filter(o => o.id === this.format);\n if (results.length > 0) {\n return this.i18nService.t('instructionsFor', results[0].name);\n }\n return null;\n }\n\n protected setImportOptions() {\n this.featuredImportOptions = [{\n id: null,\n name: '-- ' + this.i18nService.t('select') + ' --',\n }, ...this.importService.featuredImportOptions];\n this.importOptions = this.importService.regularImportOptions;\n }\n\n private async error(error: Error) {\n await Swal.fire({\n heightAuto: false,\n buttonsStyling: false,\n icon: 'error' as SweetAlertIcon,\n iconHtml: ``,\n input: 'textarea',\n inputValue: error.message,\n inputAttributes: {\n 'readonly': 'true',\n },\n title: this.i18nService.t('importError'),\n text: this.i18nService.t('importErrorDesc'),\n showConfirmButton: true,\n confirmButtonText: this.i18nService.t('ok'),\n onOpen: popupEl => {\n popupEl.querySelector('.swal2-textarea').scrollTo(0, 0);\n },\n });\n }\n\n private getFileContents(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = evt => {\n if (this.format === 'lastpasscsv' && file.type === 'text/html') {\n const parser = new DOMParser();\n const doc = parser.parseFromString((evt.target as any).result, 'text/html');\n const pre = doc.querySelector('pre');\n if (pre != null) {\n resolve(pre.textContent);\n return;\n }\n reject();\n return;\n }\n\n resolve((evt.target as any).result);\n };\n reader.onerror = () => {\n reject();\n };\n });\n }\n}\n","
\n

{{'importData' | i18n}}

\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/export-your-data/\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-lastpass/\n \n \n Using the KeePassX desktop application, navigate to \"Database\" → \"Export to CSV file\" and save the CSV\n file.\n \n \n In the Avira web vault, go to \"Settings\" → \"My Data\" → \"Export data\" and save the CSV file.\n \n \n In the Blur web vault, click your username at the top and go to \"Settings\" → \"Export Data\", then click\n \"Export CSV\"\n for your \"Accounts\".\n \n \n Using the SaveInCloud desktop application, navigate to \"File\" → \"Export\" → \"As XML\" and save the\n XML file.\n \n \n Using the Padlock desktop application, click the hamburger icon in the top left corner and navigate to\n \"Settings\" →\n \"Export\" button and save the file \"As CSV\".\n \n \n Using the KeePass 2 desktop application, navigate to \"File\" → \"Export\" and select the \"KeePass XML\n (2.x)\" option.\n \n \n Using the Universal Password Manager desktop application, navigate to \"Database\" → \"Export\" and save\n the CSV file.\n \n \n Using the SaferPass browser extension, click the hamburger icon in the top left corner and navigate to\n \"Settings\". Click the \"Export accounts\" button to save the CSV file.\n \n \n Using the Meldium web vault, navigate to \"Settings\". Locate the \"Export data\" function and click \"Show me my\n data\" to save the CSV file.\n \n \n Log into the Keeper web vault (keepersecurity.com/vault). Navigate to \"Backup\" (top right) and find the\n \"Export to .csv File\" option. Click \"Export Now\" to save the CSV file.\n \n \n \n The process is exactly the same as importing from Google Chrome.\n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-chrome/\n \n \n See detailed instructions on our help site at\n \n https://bitwarden.com/help/article/import-from-firefox/.\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-1password/.\n \n \n Using the Password Dragon desktop application, navigate to \"File\" → \"Export\" → \"To XML\". In the\n dialog that pops up select \"All Rows\" and check all fields. Click the \"Export\" button and save the XML file.\n \n \n Using the Enpass desktop application, navigate to \"File\" → \"Export\" → \"As CSV\". Select \"OK\" to the\n warning alert and save the CSV file. Note that the importer only supports files exported while Enpass is set\n to the English language, so adjust your settings accordingly.\n \n \n Using the Enpass 6 desktop application, click the menu button and navigate to \"File\" → \"Export\".\n Select the \".json\" file format option and save the JSON file.\n \n \n Using the Password Safe desktop application, navigate to \"File\" → \"Export To\" → \"XML format...\"\n and save the XML file.\n \n \n Using the Dashlane desktop application, navigate to \"File\" → \"Export\" → \"Unsecured archive\n (readable) in JSON format\" and save the JSON file.\n \n \n Using the mSecure desktop application, navigate to \"File\" → \"Export\" → \"CSV File...\" and save the\n CSV file.\n \n \n Using the Sticky Password desktop application, navigate to \"Menu\" (top right) → \"Export\" → \"Export\n all\". Select the unencrypted format XML option and save the XML file.\n \n \n Using the True Key desktop application, click the gear icon (top right) and then navigate to \"App Settings\".\n Click the \"Export\" button, enter your password and save the CSV file.\n \n \n Log into the Clipperz web application (clipperz.is/app). Click the hamburger menu icon in the top right to\n expand the navigation bar. Navigate to \"Data\" → \"Export\". Click the \"download HTML+JSON\" button to save\n the HTML file.\n \n \n Using the RoboForm Editor desktop application, navigate to \"RoboForm\" (top left) → \"Options\" →\n \"Account & Data\" and click the \"Export\" button. Select all of your data, change the \"Format\" to \"CSV\n file\" and then click the \"Export\" button to save the CSV file. Note: RoboForm only allows you to export\n Logins. Other items will not be exported.\n \n \n Log into the Passbolt web vault and navigate to the \"Passwords\" listing. Select all of the passwords you\n would like to export and click the \"Export\" button at the top of the listing. Choose the \"csv (lastpass)\"\n export format and click the \"Export\" button.\n \n \n Using the Ascendo DataVault desktop application, navigate to \"Tools\" → \"Export\". In the dialog that\n pops up, select the \"All Items (DVX, CSV)\" option. Click the \"Ok\" button to save the CSV file.\n \n \n Using the Password Boss desktop application, navigate to \"File\" → \"Export data\" → \"Password Boss\n JSON - not encrypted\" and save the JSON file.\n \n \n Log into the Zoho web vault (vault.zoho.com). Navigate to \"Tools\" → \"Export Secrets\". Select \"All\n Secrets\" and click the \"Zoho Vault Format CSV\" button. Highlight and copy the data from the textarea. Open a\n text editor like Notepad and paste the data. Save the data from the text editor as\n zoho_export.csv.\n \n \n Using the SplashID Safe desktop application, click on the SplashID blue lock logo in the top right corner.\n Navigate to \"Export\" → \"Export as CSV\" and save the CSV file.\n \n \n Using the PassKeep mobile app, navigate to \"Backup/Restore\". Locate the \"CSV Backup/Restore\" section and\n click \"Backup to CSV\" to save the CSV file.\n \n \n Make sure you have python-keyring and python-gnomekeyring installed. Save the\n GNOME Keyring Import/Export python\n script to your desktop as pw_helper.py. Open terminal and run\n chmod +rx Desktop/pw_helper.py and then\n python Desktop/pw_helper.py export Desktop/my_passwords.json. Then upload the resulting\n my_passwords.json file here to Bitwarden.\n \n \n Using the Password Agent desktop application navigate to \"File\" → \"Export\", select the \"Fields to\n export\" button and check all of the fields, change the \"Output format\" to \"CSV\", and then click the \"Start\"\n button to save the CSV file.\n \n \n Log into the Passpack website vault and navigate to \"Settings\" → \"Export\", then click the \"Download\"\n button to save the CSV file.\n \n \n Open your Passman vault and click on \"Settings\" in the bottom left corner. In the \"Settings\" window switch\n to the \"Export credentials\" tab and choose \"JSON\" as the export type. Enter your vault's passphrase and\n click the \"Export\" button to save the JSON file.\n \n \n Open the Avast Passwords desktop application and navigate to \"Settings\" → \"Import/export data\". Select\n the \"Export\" button for the \"Export to CSV file\" option to save the CSV file.\n \n \n Open the Avast Passwords desktop application and navigate to \"Settings\" → \"Import/export data\". Select\n the \"Export\" button for the \"Export to JSON file\" option to save the JSON file.\n \n \n Open the F-Secure KEY desktop application and navigate to \"Settings\" → \"Export Passwords\". Select the\n \"Export\" button, enter your master password, and save the FSK file.\n \n \n Open the Kaspersky Password Manager desktop application and navigate to \"Settings\" → \"Import/Export\".\n Locate the \"Export to text file\" section and select the \"Export\" button to save the TXT file.\n \n \n Open the RememBear desktop application and navigate to \"Settings\" → \"Account\" → \"Export\".\n Enter your master password and select the \"Export Anyway\" button to save the CSV file.\n \n \n Open the PasswordWallet desktop application and navigate to \"File\" → \"Export\" →\n \"Visible entries to text file\". Enter your password and select the \"Ok\" button to save the TXT file.\n \n \n Open the Myki desktop browser extension and navigate to \"Advanced\" → \"Export Accounts\" and then scan\n the QR code with your mobile device. Various CSV files will then be saved to your computer's\n downloads folder.\n \n \n Export your SecureSafe password safe to a CSV file with a comma delimiter.\n \n \n Open the LogMeOnce browser extension, then navigate to \"Open Menu\" → \"Export To\" and\n select \"CSV File\" to save the CSV file.\n \n \n Open the BlackBerry Password Keeper application, then navigate to \"Settings\" → \"Import/Export\".\n Select \"Export Passwords\" and follow the instructions on screen to save the unencrypted CSV file.\n \n \n Open the Buttercup desktop application and unlock your vault. Right click on your vault's icon and\n select \"Export\" to save the CSV file.\n \n \n Open the Codebook desktop application and log in. Navigate to \"File\" → \"Export all\", then click\n \"Yes\" on the dialog and save the CSV file.\n \n \n Open the newest version of the Encryptr desktop application and allow all of your data to sync.\n Once syncing of your data is complete, the download icon in the top right corner will turn pink. Click\n the download icon and save the CSV file.\n \n \n From the Yoti browser extension, click on \"Settings\", then \"Export Saved Logins\" and save the CSV file.\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-inactive-two-factor-report',\n templateUrl: 'inactive-two-factor-report.component.html',\n})\nexport class InactiveTwoFactorReportComponent extends CipherReportComponent implements OnInit {\n services = new Map();\n cipherDocs = new Map();\n\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n try {\n await this.load2fa();\n } catch { }\n if (this.services.size > 0) {\n const allCiphers = await this.getAllCiphers();\n const inactive2faCiphers: CipherView[] = [];\n const promises: Promise[] = [];\n const docs = new Map();\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || (c.login.totp != null && c.login.totp !== '') || !c.login.hasUris ||\n c.isDeleted) {\n return;\n }\n for (let i = 0; i < c.login.uris.length; i++) {\n const u = c.login.uris[i];\n if (u.uri != null && u.uri !== '') {\n const hostname = Utils.getHostname(u.uri);\n if (hostname != null && this.services.has(hostname)) {\n if (this.services.get(hostname) != null) {\n docs.set(c.id, this.services.get(hostname));\n }\n inactive2faCiphers.push(c);\n break;\n }\n }\n }\n });\n await Promise.all(promises);\n this.ciphers = inactive2faCiphers;\n this.cipherDocs = docs;\n }\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n private async load2fa() {\n if (this.services.size > 0) {\n return;\n }\n const response = await fetch(new Request('https://2fa.directory/api/v2/totp.json'));\n if (response.status !== 200) {\n throw new Error();\n }\n const responseJson = await response.json();\n for (const categoryName in responseJson) {\n if (responseJson.hasOwnProperty(categoryName)) {\n const category = responseJson[categoryName];\n for (const serviceName in category) {\n if (category.hasOwnProperty(serviceName)) {\n const service = category[serviceName];\n if (service.url != null) {\n const hostname = Utils.getHostname(service.url);\n if (hostname != null) {\n this.services.set(hostname, service.doc);\n }\n }\n }\n }\n }\n }\n }\n}\n","
\n

\n {{'inactive2faReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'inactive2faReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noInactive2fa' | i18n}}\n \n \n \n {{'inactive2faFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'instructions' | i18n}}\n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-reused-passwords-report',\n templateUrl: 'reused-passwords-report.component.html',\n})\nexport class ReusedPasswordsReportComponent extends CipherReportComponent implements OnInit {\n passwordUseMap: Map;\n\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const ciphersWithPasswords: CipherView[] = [];\n this.passwordUseMap = new Map();\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n ciphersWithPasswords.push(c);\n if (this.passwordUseMap.has(c.login.password)) {\n this.passwordUseMap.set(c.login.password, this.passwordUseMap.get(c.login.password) + 1);\n } else {\n this.passwordUseMap.set(c.login.password, 1);\n }\n });\n const reusedPasswordCiphers = ciphersWithPasswords.filter(c =>\n this.passwordUseMap.has(c.login.password) && this.passwordUseMap.get(c.login.password) > 1);\n this.ciphers = reusedPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from an organization view\n return true;\n }\n}\n","
\n

\n {{'reusedPasswordsReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'reusedPasswordsReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noReusedPasswords' | i18n}}\n \n \n \n {{'reusedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'reusedXTimes' | i18n : passwordUseMap.get(c.login.password)}}\n \n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-unsecured-websites-report',\n templateUrl: 'unsecured-websites-report.component.html',\n})\nexport class UnsecuredWebsitesReportComponent extends CipherReportComponent implements OnInit {\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const unsecuredCiphers = allCiphers.filter(c => {\n if (c.type !== CipherType.Login || !c.login.hasUris || c.isDeleted) {\n return false;\n }\n return c.login.uris.some(u => u.uri != null && u.uri.indexOf('http://') === 0);\n });\n this.ciphers = unsecuredCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n}\n","
\n

\n {{'unsecuredWebsitesReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'unsecuredWebsitesReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noUnsecuredWebsites' | i18n}}\n \n \n \n {{'unsecuredWebsitesFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-weak-passwords-report',\n templateUrl: 'weak-passwords-report.component.html',\n})\nexport class WeakPasswordsReportComponent extends CipherReportComponent implements OnInit {\n\n passwordStrengthMap = new Map();\n\n private passwordStrengthCache = new Map();\n\n constructor(protected cipherService: CipherService, protected passwordGenerationService: PasswordGenerationService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const weakPasswordCiphers: CipherView[] = [];\n const isUserNameNotEmpty = (c: CipherView): boolean => {\n return c.login.username != null && c.login.username.trim() !== '';\n };\n const getCacheKey = (c: CipherView): string => {\n return c.login.password + '_____' + (isUserNameNotEmpty(c) ? c.login.username : '');\n };\n\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n const hasUserName = isUserNameNotEmpty(c);\n const cacheKey = getCacheKey(c);\n if (!this.passwordStrengthCache.has(cacheKey)) {\n let userInput: string[] = [];\n if (hasUserName) {\n const atPosition = c.login.username.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(\n c.login.username.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/))\n .filter(i => i.length >= 3);\n } else {\n userInput = c.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/)\n .filter(i => i.length >= 3);\n }\n }\n const result = this.passwordGenerationService.passwordStrength(c.login.password,\n userInput.length > 0 ? userInput : null);\n this.passwordStrengthCache.set(cacheKey, result.score);\n }\n const score = this.passwordStrengthCache.get(cacheKey);\n if (score != null && score <= 2) {\n this.passwordStrengthMap.set(c.id, this.scoreKey(score));\n weakPasswordCiphers.push(c);\n }\n });\n weakPasswordCiphers.sort((a, b) => {\n return this.passwordStrengthCache.get(getCacheKey(a)) -\n this.passwordStrengthCache.get(getCacheKey(b));\n });\n this.ciphers = weakPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from the org view;\n return true;\n }\n\n private scoreKey(score: number): [string, string] {\n switch (score) {\n case 4:\n return ['strong', 'success'];\n case 3:\n return ['good', 'primary'];\n case 2:\n return ['weak', 'warning'];\n default:\n return ['veryWeak', 'danger'];\n }\n }\n}\n","
\n

\n {{'weakPasswordsReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'weakPasswordsReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noWeakPasswords' | i18n}}\n \n \n \n {{'weakPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{passwordStrengthMap.get(c.id)[0] | i18n}}\n \n
\n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from 'jslib/angular/components/attachments.component';\n\n@Component({\n selector: 'app-vault-attachments',\n templateUrl: 'attachments.component.html',\n})\nexport class AttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = false;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, apiService, window);\n }\n\n protected async reupload(attachment: AttachmentView) {\n if (this.showFixOldAttachments(attachment)) {\n await this.reuploadCipherAttachment(attachment, false);\n }\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return attachment.key == null && this.cipher.organizationId == null;\n }\n}\n","
\n
\n
\n
\n

\n {{'attachments' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n
\n {{a.fileName}}\n
\n \n \n {{'attachmentFixDesc' | i18n}}\n \n
\n
\n {{a.sizeName}}\n
\n \n
\n
\n

{{'newAttachment' | i18n}}

\n \n \n {{'maxFileSize' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { BaseResponse } from './baseResponse';\n\nexport class AttachmentResponse extends BaseResponse {\n id: string;\n url: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.url = this.getResponseProperty('Url');\n this.fileName = this.getResponseProperty('FileName');\n this.key = this.getResponseProperty('Key');\n this.size = this.getResponseProperty('Size');\n this.sizeName = this.getResponseProperty('SizeName');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nexport class CollectionResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.name = this.getResponseProperty('Name');\n this.externalId = this.getResponseProperty('ExternalId');\n }\n}\n\nexport class CollectionDetailsResponse extends CollectionResponse {\n readOnly: boolean;\n\n constructor(response: any) {\n super(response);\n this.readOnly = this.getResponseProperty('ReadOnly') || false;\n }\n}\n\nexport class CollectionGroupDetailsResponse extends CollectionResponse {\n groups: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const groups = this.getResponseProperty('Groups');\n if (groups != null) {\n this.groups = groups.map((g: any) => new SelectionReadOnlyResponse(g));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { GlobalDomainResponse } from './globalDomainResponse';\n\nexport class DomainsResponse extends BaseResponse {\n equivalentDomains: string[][];\n globalEquivalentDomains: GlobalDomainResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.equivalentDomains = this.getResponseProperty('EquivalentDomains');\n const globalEquivalentDomains = this.getResponseProperty('GlobalEquivalentDomains');\n if (globalEquivalentDomains != null) {\n this.globalEquivalentDomains = globalEquivalentDomains.map((d: any) => new GlobalDomainResponse(d));\n } else {\n this.globalEquivalentDomains = [];\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class FolderResponse extends BaseResponse {\n id: string;\n name: string;\n revisionDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nexport class SendResponse extends BaseResponse {\n id: string;\n accessId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileApi;\n text: SendTextApi;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disable: boolean;\n hideEmail: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.accessId = this.getResponseProperty('AccessId');\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.notes = this.getResponseProperty('Notes');\n this.key = this.getResponseProperty('Key');\n this.maxAccessCount = this.getResponseProperty('MaxAccessCount');\n this.accessCount = this.getResponseProperty('AccessCount');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n this.expirationDate = this.getResponseProperty('ExpirationDate');\n this.deletionDate = this.getResponseProperty('DeletionDate');\n this.password = this.getResponseProperty('Password');\n this.disable = this.getResponseProperty('Disabled') || false;\n this.hideEmail = this.getResponseProperty('HideEmail') || false;\n\n const text = this.getResponseProperty('Text');\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty('File');\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class SendFileApi extends BaseResponse {\n id: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.id = this.getResponseProperty('Id');\n this.fileName = this.getResponseProperty('FileName');\n this.key = this.getResponseProperty('Key');\n this.size = this.getResponseProperty('Size');\n this.sizeName = this.getResponseProperty('SizeName');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class SendTextApi extends BaseResponse {\n text: string;\n hidden: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.text = this.getResponseProperty('Text');\n this.hidden = this.getResponseProperty('Hidden') || false;\n }\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CiphersComponent as BaseCiphersComponent } from '../../vault/ciphers.component';\n\n@Component({\n selector: 'app-org-vault-ciphers',\n templateUrl: '../../vault/ciphers.component.html',\n})\nexport class CiphersComponent extends BaseCiphersComponent {\n @Output() onEventsClicked = new EventEmitter();\n\n organization: Organization;\n accessEvents = false;\n\n protected allCiphers: CipherView[] = [];\n\n constructor(searchService: SearchService, toasterService: ToasterService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, cipherService: CipherService,\n private apiService: ApiService, eventService: EventService, totpService: TotpService, userService: UserService) {\n super(searchService, toasterService, i18nService, platformUtilsService, cipherService,\n eventService, totpService, userService);\n }\n\n async load(filter: (cipher: CipherView) => boolean = null) {\n if (!this.organization.canManageAllCollections) {\n await super.load(filter, this.deleted);\n return;\n }\n this.accessEvents = this.organization.useEvents;\n this.allCiphers = await this.cipherService.getAllFromApiForOrganization(this.organization.id);\n await this.searchService.indexCiphers(this.organization.id, this.allCiphers);\n await this.applyFilter(filter);\n this.loaded = true;\n }\n\n async applyFilter(filter: (cipher: CipherView) => boolean = null) {\n if (this.organization.canManageAllCollections) {\n await super.applyFilter(filter);\n } else {\n const f = (c: CipherView) => c.organizationId === this.organization.id && (filter == null || filter(c));\n await super.applyFilter(f);\n }\n }\n\n async search(timeout: number = null) {\n super.search(timeout, this.allCiphers);\n }\n events(c: CipherView) {\n this.onEventsClicked.emit(c);\n }\n\n protected deleteCipher(id: string) {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipher(id, this.deleted);\n }\n return this.deleted ? this.apiService.deleteCipherAdmin(id) : this.apiService.putDeleteCipherAdmin(id);\n }\n\n protected showFixOldAttachments(c: CipherView) {\n return this.organization.canManageAllCollections && c.hasOldAttachments;\n }\n}\n","import {\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { CollectionsComponent as BaseCollectionsComponent } from 'jslib/angular/components/collections.component';\n\n@Component({\n selector: 'app-vault-collections',\n templateUrl: 'collections.component.html',\n})\nexport class CollectionsComponent extends BaseCollectionsComponent implements OnDestroy {\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, cipherService: CipherService) {\n super(collectionService, platformUtilsService, i18nService, cipherService);\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n}\n","
\n
\n
\n
\n

\n {{'collections' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n

{{'collectionsDesc' | i18n}}

\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { GroupingsComponent as BaseGroupingsComponent } from '../../vault/groupings.component';\n\n@Component({\n selector: 'app-org-vault-groupings',\n templateUrl: '../../vault/groupings.component.html',\n})\nexport class GroupingsComponent extends BaseGroupingsComponent {\n organization: Organization;\n\n constructor(collectionService: CollectionService, folderService: FolderService,\n storageService: StorageService, userService: UserService,\n private apiService: ApiService, private i18nService: I18nService) {\n super(collectionService, folderService, storageService, userService);\n }\n\n async loadCollections() {\n if (!this.organization.canManageAllCollections) {\n await super.loadCollections(this.organization.id);\n return;\n }\n\n const collections = await this.apiService.getCollections(this.organization.id);\n if (collections != null && collections.data != null && collections.data.length) {\n const collectionDomains = collections.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collectionDomains);\n } else {\n this.collections = [];\n }\n\n const unassignedCollection = new CollectionView();\n unassignedCollection.name = this.i18nService.t('unassigned');\n unassignedCollection.id = 'unassigned';\n unassignedCollection.organizationId = this.organization.id;\n unassignedCollection.readOnly = true;\n this.collections.push(unassignedCollection);\n this.nestedCollections = await this.collectionService.getAllNested(this.collections);\n }\n\n collapse(grouping: CollectionView) {\n super.collapse(grouping, 'org_');\n }\n\n isCollapsed(grouping: CollectionView) {\n return super.isCollapsed(grouping, 'org_');\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n Input,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { BulkDeleteComponent } from './bulk-delete.component';\nimport { BulkMoveComponent } from './bulk-move.component';\nimport { BulkRestoreComponent } from './bulk-restore.component';\nimport { BulkShareComponent } from './bulk-share.component';\nimport { CiphersComponent } from './ciphers.component';\n\n@Component({\n selector: 'app-vault-bulk-actions',\n templateUrl: 'bulk-actions.component.html',\n})\nexport class BulkActionsComponent {\n @Input() ciphersComponent: CiphersComponent;\n @Input() modal: ModalComponent;\n @Input() deleted: boolean;\n @Input() organization: Organization;\n\n @ViewChild('bulkDeleteTemplate', { read: ViewContainerRef, static: true }) bulkDeleteModalRef: ViewContainerRef;\n @ViewChild('bulkRestoreTemplate', { read: ViewContainerRef, static: true }) bulkRestoreModalRef: ViewContainerRef;\n @ViewChild('bulkMoveTemplate', { read: ViewContainerRef, static: true }) bulkMoveModalRef: ViewContainerRef;\n @ViewChild('bulkShareTemplate', { read: ViewContainerRef, static: true }) bulkShareModalRef: ViewContainerRef;\n\n constructor(private toasterService: ToasterService,\n private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver) { }\n\n bulkDelete() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkDeleteModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkDeleteComponent, this.bulkDeleteModalRef);\n\n childComponent.permanent = this.deleted;\n childComponent.cipherIds = selectedIds;\n childComponent.organization = this.organization;\n childComponent.onDeleted.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n bulkRestore() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkRestoreModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkRestoreComponent, this.bulkRestoreModalRef);\n\n childComponent.cipherIds = selectedIds;\n childComponent.onRestored.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n bulkShare() {\n const selectedCiphers = this.ciphersComponent.getSelected();\n if (selectedCiphers.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkShareModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkShareComponent, this.bulkShareModalRef);\n\n childComponent.ciphers = selectedCiphers;\n childComponent.onShared.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n bulkMove() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkMoveModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkMoveComponent, this.bulkMoveModalRef);\n\n childComponent.cipherIds = selectedIds;\n childComponent.onMoved.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n selectAll(select: boolean) {\n this.ciphersComponent.selectAll(select);\n }\n}\n","
\n \n
\n \n \n \n \n
\n \n \n
\n
\n\n\n\n\n\n","import Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { SendFileData } from '../data/sendFileData';\n\nimport { SendFileView } from '../view/sendFileView';\n\nexport class SendFile extends Domain {\n id: string;\n size: string;\n sizeName: string;\n fileName: EncString;\n\n constructor(obj?: SendFileData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.size = obj.size;\n this.buildDomainModel(this, obj, {\n id: null,\n sizeName: null,\n fileName: null,\n }, alreadyEncrypted, ['id', 'sizeName']);\n }\n\n async decrypt(key: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new SendFileView(this), {\n fileName: null,\n }, null, key);\n return view;\n }\n}\n","import Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { SendTextData } from '../data/sendTextData';\n\nimport { SendTextView } from '../view/sendTextView';\n\nexport class SendText extends Domain {\n text: EncString;\n hidden: boolean;\n\n constructor(obj?: SendTextData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.hidden = obj.hidden;\n this.buildDomainModel(this, obj, {\n text: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(key: SymmetricCryptoKey): Promise {\n return this.decryptObj(new SendTextView(this), {\n text: null,\n }, null, key);\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherWithIdRequest extends CipherRequest {\n id: string;\n\n constructor(cipher: Cipher) {\n super(cipher);\n this.id = cipher.id;\n }\n}\n","import { Folder } from '../domain/folder';\n\nexport class FolderRequest {\n name: string;\n\n constructor(folder: Folder) {\n this.name = folder.name ? folder.name.encryptedString : null;\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\n@Directive({\n selector: '[appSelectCopy]',\n})\nexport class SelectCopyDirective {\n constructor(private el: ElementRef, private platformUtilsService: PlatformUtilsService) { }\n\n @HostListener('copy') onCopy() {\n if (window == null) {\n return;\n }\n let copyText = '';\n const selection = window.getSelection();\n for (let i = 0; i < selection.rangeCount; i++) {\n const range = selection.getRangeAt(i);\n const text = range.toString();\n\n // The selection should only contain one line of text. In some cases however, the\n // selection contains newlines and space characters from the indentation of following\n // sibling nodes. To avoid copying passwords containing trailing newlines and spaces\n // that aren't part of the password, the selection has to be trimmed.\n let stringEndPos = text.length;\n const newLinePos = text.search(/(?:\\r\\n|\\r|\\n)/);\n if (newLinePos > -1) {\n const otherPart = text.substr(newLinePos).trim();\n if (otherPart === '') {\n stringEndPos = newLinePos;\n }\n }\n copyText += text.substring(0, stringEndPos);\n }\n this.platformUtilsService.copyToClipboard(copyText, { window: window });\n }\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\n/**\n * A pipe that sanitizes HTML and highlights numbers and special characters (in different colors each).\n */\n@Pipe({ name: 'colorPassword' })\nexport class ColorPasswordPipe implements PipeTransform {\n transform(password: string) {\n let colorizedPassword = '';\n for (let i = 0; i < password.length; i++) {\n let character = password[i];\n let isSpecial = false;\n // Sanitize HTML first.\n switch (character) {\n case '&':\n character = '&';\n isSpecial = true;\n break;\n case '<':\n character = '<';\n isSpecial = true;\n break;\n case '>':\n character = '>';\n isSpecial = true;\n break;\n case ' ':\n character = ' ';\n isSpecial = true;\n break;\n default:\n break;\n }\n let type = 'letter';\n if (isSpecial || character.match(/[^\\w ]/)) {\n type = 'special';\n } else if (character.match(/\\d/)) {\n type = 'number';\n }\n colorizedPassword += '' + character + '';\n }\n return colorizedPassword;\n }\n}\n","import { FolderResponse } from '../response/folderResponse';\n\nexport class FolderData {\n id: string;\n userId: string;\n name: string;\n revisionDate: string;\n\n constructor(response: FolderResponse, userId: string) {\n this.userId = userId;\n this.name = response.name;\n this.id = response.id;\n this.revisionDate = response.revisionDate;\n }\n}\n","import { FolderData } from '../data/folderData';\n\nimport { FolderView } from '../view/folderView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nexport class Folder extends Domain {\n id: string;\n name: EncString;\n revisionDate: Date;\n\n constructor(obj?: FolderData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n name: null,\n }, alreadyEncrypted, ['id']);\n\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n }\n\n decrypt(): Promise {\n return this.decryptObj(new FolderView(this), {\n name: null,\n }, null);\n }\n}\n","import { EnvironmentService } from './environment.service';\n\nexport abstract class NotificationsService {\n init: (environmentService: EnvironmentService) => Promise;\n updateConnection: (sync?: boolean) => Promise;\n reconnectFromActivity: () => Promise;\n disconnectFromInactivity: () => Promise;\n}\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 529;","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-frontend-layout',\n templateUrl: 'frontend-layout.component.html',\n})\nexport class FrontendLayoutComponent implements OnInit, OnDestroy {\n version: string;\n year: string = '2015';\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.year = new Date().getFullYear().toString();\n this.version = await this.platformUtilsService.getApplicationVersion();\n document.body.classList.add('layout_frontend');\n }\n\n ngOnDestroy() {\n document.body.classList.remove('layout_frontend');\n }\n}\n","\n
\n © {{year}}, Bitwarden Inc.\n
{{'versionNumber' | i18n : version}}\n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nconst BroadcasterSubscriptionId = 'OrganizationLayoutComponent';\n\n@Component({\n selector: 'app-organization-layout',\n templateUrl: 'organization-layout.component.html',\n})\nexport class OrganizationLayoutComponent implements OnInit, OnDestroy {\n organization: Organization;\n businessTokenPromise: Promise;\n private organizationId: string;\n private businessUrl: string;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private broadcasterService: BroadcasterService, private ngZone: NgZone,\n private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private environmentService: EnvironmentService) { }\n\n ngOnInit() {\n this.businessUrl = 'https://portal.bitwarden.com';\n if (this.environmentService.enterpriseUrl != null) {\n this.businessUrl = this.environmentService.enterpriseUrl;\n } else if (this.environmentService.baseUrl != null) {\n this.businessUrl = this.environmentService.baseUrl + '/portal';\n }\n\n document.body.classList.remove('layout_frontend');\n this.route.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n });\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'updatedOrgLicense':\n await this.load();\n break;\n }\n });\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async load() {\n this.organization = await this.userService.getOrganization(this.organizationId);\n }\n\n async goToBusinessPortal() {\n if (this.businessTokenPromise != null) {\n return;\n }\n try {\n this.businessTokenPromise = this.apiService.getEnterprisePortalSignInToken();\n const token = await this.businessTokenPromise;\n if (token != null) {\n const userId = await this.userService.getUserId();\n this.platformUtilsService.launchUri(this.businessUrl + '/login?userId=' + userId +\n '&token=' + (window as any).encodeURIComponent(token) + '&organizationId=' + this.organization.id);\n }\n } catch { }\n this.businessTokenPromise = null;\n }\n\n get showMenuBar() {\n return this.showManageTab || this.showToolsTab || this.organization.isOwner;\n }\n\n get showManageTab(): boolean {\n return this.organization.canManageUsers ||\n this.organization.canManageAssignedCollections ||\n this.organization.canManageAllCollections ||\n this.organization.canManageGroups ||\n this.organization.canManagePolicies ||\n this.organization.canAccessEventLogs;\n }\n\n get showToolsTab(): boolean {\n return this.organization.canAccessImportExport || this.organization.canAccessReports;\n }\n\n get showBusinessPortalButton(): boolean {\n return this.organization.useBusinessPortal && this.organization.canAccessBusinessPortal;\n }\n\n get toolsRoute(): string {\n return this.organization.canAccessImportExport ?\n 'tools/import' :\n 'tools/exposed-passwords-report';\n }\n\n get manageRoute(): string {\n let route: string;\n switch (true) {\n case this.organization.canManageUsers:\n route = 'manage/people';\n break;\n case this.organization.canManageAssignedCollections || this.organization.canManageAllCollections:\n route = 'manage/collections';\n break;\n case this.organization.canManageGroups:\n route = 'manage/groups';\n break;\n case this.organization.canManagePolicies:\n route = 'manage/policies';\n break;\n case this.organization.canAccessEventLogs:\n route = 'manage/events';\n break;\n }\n return route;\n }\n}\n","\n
\n
\n
\n
\n \n
\n {{organization.name}}\n {{'organization' | i18n}}\n
\n
\n
\n \n {{'organizationIsDisabled' | i18n}}\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\n@Component({\n selector: 'app-user-layout',\n templateUrl: 'user-layout.component.html',\n})\nexport class UserLayoutComponent implements OnInit {\n ngOnInit() {\n document.body.classList.remove('layout_frontend');\n }\n}\n","\n\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { EmergencyAccessAcceptRequest } from 'jslib/models/request/emergencyAccessAcceptRequest';\n\n@Component({\n selector: 'app-accept-emergency',\n templateUrl: 'accept-emergency.component.html',\n})\nexport class AcceptEmergencyComponent implements OnInit {\n loading = true;\n authed = false;\n name: string;\n email: string;\n actionPromise: Promise;\n\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService,\n private stateService: StateService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n await this.stateService.remove('emergencyInvitation');\n let error = qParams.id == null || qParams.name == null || qParams.email == null || qParams.token == null;\n let errorMessage: string = null;\n if (!error) {\n this.authed = await this.userService.isAuthenticated();\n if (this.authed) {\n const request = new EmergencyAccessAcceptRequest();\n request.token = qParams.token;\n try {\n this.actionPromise = this.apiService.postEmergencyAccessAccept(qParams.id, request);\n await this.actionPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('inviteAccepted'),\n body: this.i18nService.t('emergencyInviteAcceptedDesc'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/vault']);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.stateService.save('emergencyInvitation', qParams);\n this.email = qParams.email;\n this.name = qParams.name;\n if (this.name != null) {\n // Fix URL encoding of space issue with Angular\n this.name = this.name.replace(/\\+/g, ' ');\n }\n }\n }\n\n if (error) {\n const toast: Toast = {\n type: 'error',\n title: null,\n body: errorMessage != null ? this.i18nService.t('emergencyInviteAcceptFailedShort', errorMessage) :\n this.i18nService.t('emergencyInviteAcceptFailed'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/']);\n }\n\n this.loading = false;\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n
\n
\n
\n

{{'emergencyAccess' | i18n}}

\n
\n
\n

\n {{name}}\n

\n

{{'acceptEmergencyAccess' | i18n}}

\n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { OrganizationUserAcceptRequest } from 'jslib/models/request/organizationUserAcceptRequest';\n\n@Component({\n selector: 'app-accept-organization',\n templateUrl: 'accept-organization.component.html',\n})\nexport class AcceptOrganizationComponent implements OnInit {\n loading = true;\n authed = false;\n orgName: string;\n email: string;\n actionPromise: Promise;\n\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService,\n private stateService: StateService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n await this.stateService.remove('orgInvitation');\n let error = qParams.organizationId == null || qParams.organizationUserId == null || qParams.token == null;\n let errorMessage: string = null;\n if (!error) {\n this.authed = await this.userService.isAuthenticated();\n if (this.authed) {\n const request = new OrganizationUserAcceptRequest();\n request.token = qParams.token;\n try {\n this.actionPromise = this.apiService.postOrganizationUserAccept(qParams.organizationId,\n qParams.organizationUserId, request);\n await this.actionPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('inviteAccepted'),\n body: this.i18nService.t('inviteAcceptedDesc'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/vault']);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.stateService.save('orgInvitation', qParams);\n this.email = qParams.email;\n this.orgName = qParams.organizationName;\n if (this.orgName != null) {\n // Fix URL encoding of space issue with Angular\n this.orgName = this.orgName.replace(/\\+/g, ' ');\n }\n }\n }\n\n if (error) {\n const toast: Toast = {\n type: 'error',\n title: null,\n body: errorMessage != null ? this.i18nService.t('inviteAcceptFailedShort', errorMessage) :\n this.i18nService.t('inviteAcceptFailed'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/']);\n }\n\n this.loading = false;\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n
\n
\n
\n

{{'joinOrganization' | i18n}}

\n
\n
\n

\n {{orgName}}\n {{email}}\n

\n

{{'joinOrganizationDesc' | i18n}}

\n
\n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { HintComponent as BaseHintComponent } from 'jslib/angular/components/hint.component';\n\n@Component({\n selector: 'app-hint',\n templateUrl: 'hint.component.html',\n})\nexport class HintComponent extends BaseHintComponent {\n constructor(router: Router, i18nService: I18nService,\n apiService: ApiService, platformUtilsService: PlatformUtilsService) {\n super(router, i18nService, apiService, platformUtilsService);\n }\n}\n","
\n
\n
\n

{{'passwordHint' | i18n}}

\n
\n
\n
\n \n \n {{'enterEmailToGetHint' | i18n}}\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { RouterService } from '../services/router.service';\n\nimport { LockComponent as BaseLockComponent } from 'jslib/angular/components/lock.component';\n\n@Component({\n selector: 'app-lock',\n templateUrl: 'lock.component.html',\n})\nexport class LockComponent extends BaseLockComponent {\n constructor(router: Router, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, messagingService: MessagingService,\n userService: UserService, cryptoService: CryptoService,\n storageService: StorageService, vaultTimeoutService: VaultTimeoutService,\n environmentService: EnvironmentService, private routerService: RouterService,\n stateService: StateService, apiService: ApiService) {\n super(router, i18nService, platformUtilsService, messagingService, userService, cryptoService,\n storageService, vaultTimeoutService, environmentService, stateService, apiService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n this.onSuccessfulSubmit = () => {\n const previousUrl = this.routerService.getPreviousUrl();\n if (previousUrl !== '/' && previousUrl.indexOf('lock') === -1) {\n this.successRoute = previousUrl;\n }\n this.router.navigate([this.successRoute]);\n };\n }\n}\n","
\n
\n
\n

\n \n

\n

{{'yourVaultIsLocked' | i18n}}

\n
\n
\n
\n \n
\n \n \n
\n \n {{'loggedInAsEmailOn' | i18n : email : webVaultHostname}}\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { LoginComponent as BaseLoginComponent } from 'jslib/angular/components/login.component';\n\n@Component({\n selector: 'app-login',\n templateUrl: 'login.component.html',\n})\nexport class LoginComponent extends BaseLoginComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, private route: ActivatedRoute,\n storageService: StorageService, stateService: StateService,\n platformUtilsService: PlatformUtilsService, environmentService: EnvironmentService,\n passwordGenerationService: PasswordGenerationService, cryptoFunctionService: CryptoFunctionService) {\n super(authService, router,\n platformUtilsService, i18nService,\n stateService, environmentService,\n passwordGenerationService, cryptoFunctionService,\n storageService);\n this.onSuccessfulLoginNavigate = this.goAfterLogIn;\n }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.email != null && qParams.email.indexOf('@') > -1) {\n this.email = qParams.email;\n }\n if (qParams.premium != null) {\n this.stateService.save('loginRedirect', { route: '/settings/premium' });\n } else if (qParams.org != null) {\n this.stateService.save('loginRedirect',\n { route: '/settings/create-organization', qParams: { plan: qParams.org } });\n }\n await super.ngOnInit();\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async goAfterLogIn() {\n const orgInvite = await this.stateService.get('orgInvitation');\n const emergencyInvite = await this.stateService.get('emergencyInvitation');\n if (orgInvite != null) {\n this.router.navigate(['accept-organization'], { queryParams: orgInvite });\n } else if (emergencyInvite != null) {\n this.router.navigate(['accept-emergency'], { queryParams: emergencyInvite });\n } else {\n const loginRedirect = await this.stateService.get('loginRedirect');\n if (loginRedirect != null) {\n this.router.navigate([loginRedirect.route], { queryParams: loginRedirect.qParams });\n await this.stateService.remove('loginRedirect');\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n }\n}\n","
\n
\n
\n \n

{{'loginOrCreateNewAccount' | i18n}}

\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n \n {{'getMasterPasswordHint' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n \n \n {{'createAccount' | i18n}}\n \n
\n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { DeleteRecoverRequest } from 'jslib/models/request/deleteRecoverRequest';\n\n@Component({\n selector: 'app-recover-delete',\n templateUrl: 'recover-delete.component.html',\n})\nexport class RecoverDeleteComponent {\n email: string;\n formPromise: Promise;\n\n constructor(private router: Router, private apiService: ApiService,\n private toasterService: ToasterService, private i18nService: I18nService) {\n }\n\n async submit() {\n try {\n const request = new DeleteRecoverRequest();\n request.email = this.email.trim().toLowerCase();\n this.formPromise = this.apiService.postAccountRecoverDelete(request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('deleteRecoverEmailSent'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'deleteAccount' | i18n}}

\n
\n
\n

{{'deleteRecoverDesc' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { TwoFactorRecoveryRequest } from 'jslib/models/request/twoFactorRecoveryRequest';\n\n@Component({\n selector: 'app-recover-two-factor',\n templateUrl: 'recover-two-factor.component.html',\n})\nexport class RecoverTwoFactorComponent {\n email: string;\n masterPassword: string;\n recoveryCode: string;\n formPromise: Promise;\n\n constructor(private router: Router, private apiService: ApiService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private cryptoService: CryptoService, private authService: AuthService) { }\n\n async submit() {\n try {\n const request = new TwoFactorRecoveryRequest();\n request.recoveryCode = this.recoveryCode.replace(/\\s/g, '').toLowerCase();\n request.email = this.email.trim().toLowerCase();\n const key = await this.authService.makePreloginKey(this.masterPassword, request.email);\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n this.formPromise = this.apiService.postTwoFactorRecover(request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('twoStepRecoverDisabled'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'recoverAccountTwoStep' | i18n}}

\n
\n
\n

{{'recoverAccountTwoStepDesc' | i18n}}\n {{'learnMore' | i18n}}\n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\n\nimport { RegisterComponent as BaseRegisterComponent } from 'jslib/angular/components/register.component';\n\nimport { MasterPasswordPolicyOptions } from 'jslib/models/domain/masterPasswordPolicyOptions';\nimport { Policy } from 'jslib/models/domain/policy';\n\nimport { PolicyData } from 'jslib/models/data/policyData';\nimport { ReferenceEventRequest } from 'jslib/models/request/referenceEventRequest';\n\n@Component({\n selector: 'app-register',\n templateUrl: 'register.component.html',\n})\nexport class RegisterComponent extends BaseRegisterComponent {\n showCreateOrgMessage = false;\n layout = '';\n enforcedPolicyOptions: MasterPasswordPolicyOptions;\n\n private policies: Policy[];\n\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, cryptoService: CryptoService,\n apiService: ApiService, private route: ActivatedRoute,\n stateService: StateService, platformUtilsService: PlatformUtilsService,\n passwordGenerationService: PasswordGenerationService, private policyService: PolicyService) {\n super(authService, router, i18nService, cryptoService, apiService, stateService, platformUtilsService,\n passwordGenerationService);\n }\n\n getPasswordScoreAlertDisplay() {\n if (this.enforcedPolicyOptions == null) {\n return '';\n }\n\n let str: string;\n switch (this.enforcedPolicyOptions.minComplexity) {\n case 4:\n str = this.i18nService.t('strong');\n break;\n case 3:\n str = this.i18nService.t('good');\n break;\n default:\n str = this.i18nService.t('weak');\n break;\n }\n return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';\n }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(qParams => {\n this.referenceData = new ReferenceEventRequest();\n if (qParams.email != null && qParams.email.indexOf('@') > -1) {\n this.email = qParams.email;\n }\n if (qParams.premium != null) {\n this.stateService.save('loginRedirect', { route: '/settings/premium' });\n } else if (qParams.org != null) {\n this.showCreateOrgMessage = true;\n this.referenceData.flow = qParams.org;\n this.stateService.save('loginRedirect',\n { route: '/settings/create-organization', qParams: { plan: qParams.org } });\n }\n if (qParams.layout != null) {\n this.layout = this.referenceData.layout = qParams.layout;\n }\n if (qParams.reference != null) {\n this.referenceData.id = qParams.reference;\n } else {\n this.referenceData.id = ('; ' + document.cookie).split('; reference=').pop().split(';').shift();\n }\n if (this.referenceData.id === '') {\n this.referenceData.id = null;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n const invite = await this.stateService.get('orgInvitation');\n if (invite != null) {\n try {\n const policies = await this.apiService.getPoliciesByToken(invite.organizationId, invite.token,\n invite.email, invite.organizationUserId);\n if (policies.data != null) {\n const policiesData = policies.data.map(p => new PolicyData(p));\n this.policies = policiesData.map(p => new Policy(p));\n }\n } catch { }\n }\n\n if (this.policies != null) {\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(this.policies);\n }\n }\n\n async submit() {\n if (this.enforcedPolicyOptions != null &&\n !this.policyService.evaluateMasterPassword(this.masterPasswordScore, this.masterPassword,\n this.enforcedPolicyOptions)) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPasswordPolicyRequirementsNotMet'));\n return;\n }\n\n await super.submit();\n }\n}\n","
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Companies globally trust Bitwarden for password management.

\n

Start your 7-day free trial!

\n

Quickly deploy your organization

\n

Use Bitwarden across all platforms

\n

Collaborate and share securely

\n
\n
\n \n \"Wired\"\n \n
\n
\n \"Bitwarden has become a popular choice among open-source software advocates. After using\n it for a few months, I can see why.\" - February 2020\n
\n
\n
\n
\n

Enterprise 3 layout

\n
\n
\n

Enterprise 4 layout

\n
\n
\n
\n
\n
\n
\n

{{'createAccount' | i18n}}

\n
\n
\n \n {{'createOrganizationCreatePersonalAccount' | i18n}}\n \n
\n \n \n {{'emailAddressDesc' | i18n}}\n
\n
\n \n \n {{'yourNameDesc' | i18n}}\n
\n
\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n {{'masterPassDesc' | i18n}}\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n {{'masterPassHintDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n SetPasswordComponent as BaseSetPasswordComponent,\n} from 'jslib/angular/components/set-password.component';\n\n@Component({\n selector: 'app-set-password',\n templateUrl: 'set-password.component.html',\n})\nexport class SetPasswordComponent extends BaseSetPasswordComponent {\n constructor(apiService: ApiService, i18nService: I18nService,\n cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService, router: Router,\n syncService: SyncService, route: ActivatedRoute) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService, router, apiService, syncService, route);\n }\n}\n","
\n
\n
\n

{{'setMasterPassword' | i18n}}

\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n {{'ssoCompleteRegistration' | i18n}}\n
\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n {{'masterPassDesc' | i18n}}\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n {{'masterPassHintDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { SsoComponent as BaseSsoComponent } from 'jslib/angular/components/sso.component';\n\nconst IdentifierStorageKey = 'ssoOrgIdentifier';\n\n@Component({\n selector: 'app-sso',\n templateUrl: 'sso.component.html',\n})\nexport class SsoComponent extends BaseSsoComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, route: ActivatedRoute,\n storageService: StorageService, stateService: StateService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService,\n cryptoFunctionService: CryptoFunctionService,\n passwordGenerationService: PasswordGenerationService) {\n super(authService, router, i18nService, route, storageService, stateService, platformUtilsService,\n apiService, cryptoFunctionService, passwordGenerationService);\n this.redirectUri = window.location.origin + '/sso-connector.html';\n this.clientId = 'web';\n }\n\n async ngOnInit() {\n super.ngOnInit();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n } else {\n const storedIdentifier = await this.storageService.get(IdentifierStorageKey);\n if (storedIdentifier != null) {\n this.identifier = storedIdentifier;\n }\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async submit() {\n await this.storageService.save(IdentifierStorageKey, this.identifier);\n if (this.clientId === 'browser') {\n document.cookie = `ssoHandOffMessage=${this.i18nService.t('ssoHandOff')};SameSite=strict`;\n }\n super.submit();\n }\n}\n","
\n
\n
\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'ssoLogInWithOrgIdentifier' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoFunctionService } from '../../abstractions/cryptoFunction.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nimport { AuthResult } from '../../models/domain/authResult';\n\nexport class SsoComponent {\n identifier: string;\n loggingIn = false;\n\n formPromise: Promise;\n initiateSsoFormPromise: Promise;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n onSuccessfulLoginTwoFactorNavigate: () => Promise;\n onSuccessfulLoginChangePasswordNavigate: () => Promise;\n\n protected twoFactorRoute = '2fa';\n protected successRoute = 'lock';\n protected changePasswordRoute = 'set-password';\n protected clientId: string;\n protected redirectUri: string;\n protected state: string;\n protected codeChallenge: string;\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected route: ActivatedRoute,\n protected storageService: StorageService, protected stateService: StateService,\n protected platformUtilsService: PlatformUtilsService, protected apiService: ApiService,\n protected cryptoFunctionService: CryptoFunctionService,\n protected passwordGenerationService: PasswordGenerationService) { }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.code != null && qParams.state != null) {\n const codeVerifier = await this.storageService.get(ConstantsService.ssoCodeVerifierKey);\n const state = await this.storageService.get(ConstantsService.ssoStateKey);\n await this.storageService.remove(ConstantsService.ssoCodeVerifierKey);\n await this.storageService.remove(ConstantsService.ssoStateKey);\n if (qParams.code != null && codeVerifier != null && state != null && this.checkState(state, qParams.state)) {\n await this.logIn(qParams.code, codeVerifier, this.getOrgIdentiferFromState(qParams.state));\n }\n } else if (qParams.clientId != null && qParams.redirectUri != null && qParams.state != null &&\n qParams.codeChallenge != null) {\n this.redirectUri = qParams.redirectUri;\n this.state = qParams.state;\n this.codeChallenge = qParams.codeChallenge;\n this.clientId = qParams.clientId;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async submit(returnUri?: string, includeUserIdentifier?: boolean) {\n this.initiateSsoFormPromise = this.preValidate();\n if (await this.initiateSsoFormPromise) {\n const authorizeUrl = await this.buildAuthorizeUrl(returnUri, includeUserIdentifier);\n this.platformUtilsService.launchUri(authorizeUrl, { sameWindow: true });\n }\n }\n\n async preValidate(): Promise {\n if (this.identifier == null || this.identifier === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('ssoValidationFailed'),\n this.i18nService.t('ssoIdentifierRequired'));\n return false;\n }\n return await this.apiService.preValidateSso(this.identifier);\n }\n\n protected async buildAuthorizeUrl(returnUri?: string, includeUserIdentifier?: boolean): Promise {\n let codeChallenge = this.codeChallenge;\n let state = this.state;\n\n const passwordOptions: any = {\n type: 'password',\n length: 64,\n uppercase: true,\n lowercase: true,\n numbers: true,\n special: false,\n };\n\n if (codeChallenge == null) {\n const codeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions);\n const codeVerifierHash = await this.cryptoFunctionService.hash(codeVerifier, 'sha256');\n codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash);\n await this.storageService.save(ConstantsService.ssoCodeVerifierKey, codeVerifier);\n }\n\n if (state == null) {\n state = await this.passwordGenerationService.generatePassword(passwordOptions);\n if (returnUri) {\n state += `_returnUri='${returnUri}'`;\n }\n }\n\n // Add Organization Identifier to state\n state += `_identifier=${this.identifier}`;\n\n // Save state (regardless of new or existing)\n await this.storageService.save(ConstantsService.ssoStateKey, state);\n\n let authorizeUrl = this.apiService.identityBaseUrl + '/connect/authorize?' +\n 'client_id=' + this.clientId + '&redirect_uri=' + encodeURIComponent(this.redirectUri) + '&' +\n 'response_type=code&scope=api offline_access&' +\n 'state=' + state + '&code_challenge=' + codeChallenge + '&' +\n 'code_challenge_method=S256&response_mode=query&' +\n 'domain_hint=' + encodeURIComponent(this.identifier);\n\n if (includeUserIdentifier) {\n const userIdentifier = await this.apiService.getSsoUserIdentifier();\n authorizeUrl += `&user_identifier=${encodeURIComponent(userIdentifier)}`;\n }\n\n return authorizeUrl;\n }\n\n private async logIn(code: string, codeVerifier: string, orgIdFromState: string) {\n this.loggingIn = true;\n try {\n this.formPromise = this.authService.logInSso(code, codeVerifier, this.redirectUri);\n const response = await this.formPromise;\n if (response.twoFactor) {\n if (this.onSuccessfulLoginTwoFactorNavigate != null) {\n this.onSuccessfulLoginTwoFactorNavigate();\n } else {\n this.router.navigate([this.twoFactorRoute], {\n queryParams: {\n identifier: orgIdFromState,\n sso: 'true',\n },\n });\n }\n } else if (response.resetMasterPassword) {\n if (this.onSuccessfulLoginChangePasswordNavigate != null) {\n this.onSuccessfulLoginChangePasswordNavigate();\n } else {\n this.router.navigate([this.changePasswordRoute], {\n queryParams: {\n identifier: orgIdFromState,\n },\n });\n }\n } else {\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n } catch { }\n this.loggingIn = false;\n }\n\n private getOrgIdentiferFromState(state: string): string {\n if (state === null || state === undefined) {\n return null;\n }\n\n const stateSplit = state.split('_identifier=');\n return stateSplit.length > 1 ? stateSplit[1] : null;\n }\n\n private checkState(state: string, checkState: string): boolean {\n if (state === null || state === undefined) {\n return false;\n }\n if (checkState === null || checkState === undefined) {\n return false;\n }\n\n const stateSplit = state.split('_identifier=');\n const checkStateSplit = checkState.split('_identifier=');\n return stateSplit[0] === checkStateSplit[0];\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { TwoFactorOptionsComponent } from './two-factor-options.component';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { TwoFactorComponent as BaseTwoFactorComponent } from 'jslib/angular/components/two-factor.component';\n\n@Component({\n selector: 'app-two-factor',\n templateUrl: 'two-factor.component.html',\n})\nexport class TwoFactorComponent extends BaseTwoFactorComponent {\n @ViewChild('twoFactorOptions', { read: ViewContainerRef, static: true }) twoFactorOptionsModal: ViewContainerRef;\n\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, apiService: ApiService,\n platformUtilsService: PlatformUtilsService, stateService: StateService,\n environmentService: EnvironmentService, private componentFactoryResolver: ComponentFactoryResolver,\n storageService: StorageService, route: ActivatedRoute) {\n super(authService, router, i18nService, apiService, platformUtilsService, window, environmentService,\n stateService, storageService, route);\n this.onSuccessfulLoginNavigate = this.goAfterLogIn;\n }\n\n anotherMethod() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n const modal = this.twoFactorOptionsModal.createComponent(factory).instance;\n const childComponent = modal.show(TwoFactorOptionsComponent,\n this.twoFactorOptionsModal);\n\n childComponent.onProviderSelected.subscribe(async (provider: TwoFactorProviderType) => {\n modal.close();\n this.selectedProviderType = provider;\n await this.init();\n });\n childComponent.onRecoverSelected.subscribe(() => {\n modal.close();\n });\n }\n\n async goAfterLogIn() {\n const orgInvite = await this.stateService.get('orgInvitation');\n const emergencyInvite = await this.stateService.get('emergencyInvitation');\n if (orgInvite != null) {\n this.router.navigate(['accept-organization'], { queryParams: orgInvite });\n } else if (emergencyInvite != null) {\n this.router.navigate(['accept-emergency'], { queryParams: emergencyInvite });\n } else {\n const loginRedirect = await this.stateService.get('loginRedirect');\n if (loginRedirect != null) {\n this.router.navigate([loginRedirect.route], { queryParams: loginRedirect.qParams });\n await this.stateService.remove('loginRedirect');\n } else {\n this.router.navigate([this.successRoute], {\n queryParams: {\n identifier: this.identifier,\n },\n });\n }\n }\n }\n}\n","
\n
\n
\n

{{title}}

\n
\n
\n \n

\n {{'enterVerificationCodeApp' | i18n}}

\n

\n {{'enterVerificationCodeEmail' | i18n : twoFactorEmail}}\n

\n
\n \n \n \n \n {{'sendVerificationCodeEmailAgain' | i18n}}\n \n \n
\n \n \n

{{'insertYubiKey' | i18n}}

\n \"\"\n
\n \n \n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n \n \n
\n \n

{{'noTwoStepProviders' | i18n}}

\n

{{'noTwoStepProviders2' | i18n}}

\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n \n
\n
\n
\n
\n
\n\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n TwoFactorOptionsComponent as BaseTwoFactorOptionsComponent,\n} from 'jslib/angular/components/two-factor-options.component';\n\n@Component({\n selector: 'app-two-factor-options',\n templateUrl: 'two-factor-options.component.html',\n})\nexport class TwoFactorOptionsComponent extends BaseTwoFactorOptionsComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService) {\n super(authService, router, i18nService, platformUtilsService, window);\n }\n}\n","
\n
\n
\n
\n

{{'twoStepOptions' | i18n}}

\n \n
\n \n
\n \n
\n
\n
\n
\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class TwoFactorEmailRequest extends PasswordVerificationRequest {\n email: string;\n\n constructor(email: string, masterPasswordHash: string) {\n super();\n this.masterPasswordHash = masterPasswordHash;\n this.email = email;\n }\n}\n","import { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class AuthResult {\n twoFactor: boolean = false;\n resetMasterPassword: boolean = false;\n twoFactorProviders: Map = null;\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { VerifyEmailRequest } from 'jslib/models/request/verifyEmailRequest';\n\n@Component({\n selector: 'app-verify-email-token',\n templateUrl: 'verify-email-token.component.html',\n})\nexport class VerifyEmailTokenComponent implements OnInit {\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n if (qParams.userId != null && qParams.token != null) {\n try {\n await this.apiService.postAccountVerifyEmailToken(\n new VerifyEmailRequest(qParams.userId, qParams.token));\n const authed = await this.userService.isAuthenticated();\n if (authed) {\n await this.apiService.refreshIdentityToken();\n }\n this.toasterService.popAsync('success', null, this.i18nService.t('emailVerified'));\n this.router.navigate(['/']);\n return;\n } catch { }\n }\n this.toasterService.popAsync('error', null, this.i18nService.t('emailVerifiedFailed'));\n this.router.navigate(['/']);\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { VerifyDeleteRecoverRequest } from 'jslib/models/request/verifyDeleteRecoverRequest';\n\n@Component({\n selector: 'app-verify-recover-delete',\n templateUrl: 'verify-recover-delete.component.html',\n})\nexport class VerifyRecoverDeleteComponent implements OnInit {\n email: string;\n formPromise: Promise;\n\n private userId: string;\n private token: string;\n\n constructor(private router: Router, private apiService: ApiService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private route: ActivatedRoute) {\n }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n if (qParams.userId != null && qParams.token != null && qParams.email != null) {\n this.userId = qParams.userId;\n this.token = qParams.token;\n this.email = qParams.email;\n } else {\n this.router.navigate(['/']);\n }\n });\n }\n\n async submit() {\n try {\n const request = new VerifyDeleteRecoverRequest(this.userId, this.token);\n this.formPromise = this.apiService.postAccountRecoverDeleteToken(request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('accountDeleted'),\n this.i18nService.t('accountDeletedDesc'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'deleteAccount' | i18n}}

\n
\n
\n {{'deleteAccountWarning' | i18n}}\n

\n {{email}}\n

\n

{{'deleteRecoverConfirmDesc' | i18n}}

\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport {\n CollectionDetailsResponse,\n CollectionResponse,\n} from 'jslib/models/response/collectionResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { ModalComponent } from '../../modal.component';\nimport { CollectionAddEditComponent } from './collection-add-edit.component';\nimport { EntityUsersComponent } from './entity-users.component';\n\n@Component({\n selector: 'app-org-manage-collections',\n templateUrl: 'collections.component.html',\n})\nexport class CollectionsComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('usersTemplate', { read: ViewContainerRef, static: true }) usersModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n collections: CollectionView[];\n pagedCollections: CollectionView[];\n searchText: string;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedCollectionsCount = 0;\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private collectionService: CollectionService, private componentFactoryResolver: ComponentFactoryResolver,\n private toasterService: ToasterService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private userService: UserService,\n private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const organization = await this.userService.getOrganization(this.organizationId);\n let response: ListResponse;\n if (organization.canManageAllCollections) {\n response = await this.apiService.getCollections(this.organizationId);\n } else {\n response = await this.apiService.getUserCollections();\n }\n const collections = response.data.filter(c => c.organizationId === this.organizationId).map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n this.resetPaging();\n this.loading = false;\n }\n\n loadMore() {\n if (!this.collections || this.collections.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedCollections.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedCollectionsCount > this.pageSize) {\n pagedSize = this.pagedCollectionsCount;\n }\n if (this.collections.length > pagedLength) {\n this.pagedCollections =\n this.pagedCollections.concat(this.collections.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedCollectionsCount = this.pagedCollections.length;\n this.didScroll = this.pagedCollections.length > this.pageSize;\n }\n\n edit(collection: CollectionView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n CollectionAddEditComponent, this.addEditModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.collectionId = collection != null ? collection.id : null;\n childComponent.onSavedCollection.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedCollection.subscribe(() => {\n this.modal.close();\n this.removeCollection(collection);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n add() {\n this.edit(null);\n }\n\n async delete(collection: CollectionView) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteCollectionConfirmation'), collection.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteCollection(this.organizationId, collection.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedCollectionId', collection.name));\n this.removeCollection(collection);\n } catch { }\n }\n\n users(collection: CollectionView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.usersModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityUsersComponent, this.usersModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.entity = 'collection';\n childComponent.entityId = collection.id;\n childComponent.entityName = collection.name;\n\n childComponent.onEditedUsers.subscribe(() => {\n this.load();\n this.modal.close();\n });\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedCollections = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.collections && this.collections.length > this.pageSize;\n }\n\n private removeCollection(collection: CollectionView) {\n const index = this.collections.indexOf(collection);\n if (index > -1) {\n this.collections.splice(index, 1);\n this.resetPaging();\n }\n }\n}\n","
\n

{{'collections' | i18n}}

\n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noCollectionsInList' | i18n}}

\n \n \n \n \n \n \n \n
\n {{c.name}}\n \n \n
\n\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EncString } from 'jslib/models/domain/encString';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\nimport { CollectionRequest } from 'jslib/models/request/collectionRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-collection-add-edit',\n templateUrl: 'collection-add-edit.component.html',\n})\nexport class CollectionAddEditComponent implements OnInit {\n @Input() collectionId: string;\n @Input() organizationId: string;\n @Output() onSavedCollection = new EventEmitter();\n @Output() onDeletedCollection = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n accessGroups: boolean = false;\n title: string;\n name: string;\n externalId: string;\n groups: GroupResponse[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n\n private orgKey: SymmetricCryptoKey;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private platformUtilsService: PlatformUtilsService,\n private cryptoService: CryptoService, private userService: UserService) { }\n\n async ngOnInit() {\n const organization = await this.userService.getOrganization(this.organizationId);\n this.accessGroups = organization.useGroups;\n this.editMode = this.loading = this.collectionId != null;\n if (this.accessGroups) {\n const groupsResponse = await this.apiService.getGroups(this.organizationId);\n this.groups = groupsResponse.data.map(r => r).sort(Utils.getSortFunction(this.i18nService, 'name'));\n }\n this.orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editCollection');\n try {\n const collection = await this.apiService.getCollectionDetails(this.organizationId, this.collectionId);\n this.name = await this.cryptoService.decryptToUtf8(new EncString(collection.name), this.orgKey);\n this.externalId = collection.externalId;\n if (collection.groups != null && this.groups.length > 0) {\n collection.groups.forEach(s => {\n const group = this.groups.filter(g => !g.accessAll && g.id === s.id);\n if (group != null && group.length > 0) {\n (group[0] as any).checked = true;\n (group[0] as any).readOnly = s.readOnly;\n (group[0] as any).hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('addCollection');\n }\n\n this.groups.forEach(g => {\n if (g.accessAll) {\n (g as any).checked = true;\n }\n });\n\n this.loading = false;\n }\n\n check(g: GroupResponse, select?: boolean) {\n if (g.accessAll) {\n return;\n }\n (g as any).checked = select == null ? !(g as any).checked : select;\n if (!(g as any).checked) {\n (g as any).readOnly = false;\n (g as any).hidePasswords = false;\n }\n }\n\n selectAll(select: boolean) {\n this.groups.forEach(g => this.check(g, select));\n }\n\n async submit() {\n if (this.orgKey == null) {\n throw new Error('No encryption key for this organization.');\n }\n\n const request = new CollectionRequest();\n request.name = (await this.cryptoService.encrypt(this.name, this.orgKey)).encryptedString;\n request.externalId = this.externalId;\n request.groups = this.groups.filter(g => (g as any).checked && !g.accessAll)\n .map(g => new SelectionReadOnlyRequest(g.id, !!(g as any).readOnly, !!(g as any).hidePasswords));\n\n try {\n if (this.editMode) {\n this.formPromise = this.apiService.putCollection(this.organizationId, this.collectionId, request);\n } else {\n this.formPromise = this.apiService.postCollection(this.organizationId, request);\n }\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedCollectionId' : 'createdCollectionId', this.name));\n this.onSavedCollection.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteCollectionConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteCollection(this.organizationId, this.collectionId);\n await this.deletePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedCollectionId', this.name));\n this.onDeletedCollection.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n \n \n
\n
\n \n \n {{'externalIdDesc' | i18n}}\n
\n \n

\n {{'groupAccess' | i18n}}\n
\n \n \n
\n

\n
\n {{'noGroupsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{g.name}}\n \n \n {{'groupAccessAllItems' | i18n}}\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import { Collection } from '../domain/collection';\n\nimport { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nexport class CollectionRequest {\n name: string;\n externalId: string;\n groups: SelectionReadOnlyRequest[] = [];\n\n constructor(collection?: Collection) {\n if (collection == null) {\n return;\n }\n this.name = collection.name ? collection.name.encryptedString : null;\n this.externalId = collection.externalId;\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EventService } from '../../services/event.service';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\n\n@Component({\n selector: 'app-org-events',\n templateUrl: 'events.component.html',\n})\nexport class EventsComponent implements OnInit {\n loading = true;\n loaded = false;\n organizationId: string;\n events: any[];\n start: string;\n end: string;\n continuationToken: string;\n refreshPromise: Promise;\n morePromise: Promise;\n\n private orgUsersUserIdMap = new Map();\n private orgUsersIdMap = new Map();\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private eventService: EventService, private i18nService: I18nService,\n private toasterService: ToasterService, private userService: UserService,\n private router: Router) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.useEvents) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n const defaultDates = this.eventService.getDefaultDateFilters();\n this.start = defaultDates[0];\n this.end = defaultDates[1];\n await this.load();\n });\n }\n\n async load() {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n response.data.forEach(u => {\n const name = u.name == null || u.name.trim() === '' ? u.email : u.name;\n this.orgUsersIdMap.set(u.id, { name: name, email: u.email });\n this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });\n });\n await this.loadEvents(true);\n this.loaded = true;\n }\n\n async loadEvents(clearExisting: boolean) {\n if (this.refreshPromise != null || this.morePromise != null) {\n return;\n }\n\n let dates: string[] = null;\n try {\n dates = this.eventService.formatDateFilters(this.start, this.end);\n } catch (e) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidDateRange'));\n return;\n }\n\n this.loading = true;\n let response: ListResponse;\n try {\n const promise = this.apiService.getEventsOrganization(this.organizationId, dates[0], dates[1],\n clearExisting ? null : this.continuationToken);\n if (clearExisting) {\n this.refreshPromise = promise;\n } else {\n this.morePromise = promise;\n }\n response = await promise;\n } catch { }\n\n this.continuationToken = response.continuationToken;\n const events = response.data.map(r => {\n const userId = r.actingUserId == null ? r.userId : r.actingUserId;\n const eventInfo = this.eventService.getEventInfo(r);\n const user = userId != null && this.orgUsersUserIdMap.has(userId) ?\n this.orgUsersUserIdMap.get(userId) : null;\n return {\n message: eventInfo.message,\n appIcon: eventInfo.appIcon,\n appName: eventInfo.appName,\n userId: userId,\n userName: user != null ? user.name : this.i18nService.t('unknown'),\n userEmail: user != null ? user.email : '',\n date: r.date,\n ip: r.ipAddress,\n type: r.type,\n };\n });\n\n if (!clearExisting && this.events != null && this.events.length > 0) {\n this.events = this.events.concat(events);\n } else {\n this.events = events;\n }\n\n this.loading = false;\n this.morePromise = null;\n this.refreshPromise = null;\n }\n}\n","
\n

{{'eventLogs' | i18n}}

\n
\n
\n \n \n -\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noEventsInList' | i18n}}

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{'timestamp' | i18n}}\n {{'device' | i18n}}\n {{'user' | i18n}}{{'event' | i18n}}
{{e.date | date:'medium'}}\n \n {{e.appName}}, {{e.ip}}\n \n {{e.userName}}\n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { ModalComponent } from '../../modal.component';\nimport { EntityUsersComponent } from './entity-users.component';\nimport { GroupAddEditComponent } from './group-add-edit.component';\n\n@Component({\n selector: 'app-org-groups',\n templateUrl: 'groups.component.html',\n})\nexport class GroupsComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('usersTemplate', { read: ViewContainerRef, static: true }) usersModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n groups: GroupResponse[];\n pagedGroups: GroupResponse[];\n searchText: string;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedGroupsCount = 0;\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private toasterService: ToasterService, private platformUtilsService: PlatformUtilsService,\n private userService: UserService, private router: Router,\n private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.useGroups) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n await this.load();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const response = await this.apiService.getGroups(this.organizationId);\n const groups = response.data != null && response.data.length > 0 ? response.data : [];\n groups.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.groups = groups;\n this.resetPaging();\n this.loading = false;\n }\n\n loadMore() {\n if (!this.groups || this.groups.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedGroups.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedGroupsCount > this.pageSize) {\n pagedSize = this.pagedGroupsCount;\n }\n if (this.groups.length > pagedLength) {\n this.pagedGroups = this.pagedGroups.concat(this.groups.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedGroupsCount = this.pagedGroups.length;\n this.didScroll = this.pagedGroups.length > this.pageSize;\n }\n\n edit(group: GroupResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n GroupAddEditComponent, this.addEditModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.groupId = group != null ? group.id : null;\n childComponent.onSavedGroup.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedGroup.subscribe(() => {\n this.modal.close();\n this.removeGroup(group);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n add() {\n this.edit(null);\n }\n\n async delete(group: GroupResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteGroupConfirmation'), group.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteGroup(this.organizationId, group.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedGroupId', group.name));\n this.removeGroup(group);\n } catch { }\n }\n\n users(group: GroupResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.usersModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityUsersComponent, this.usersModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.entity = 'group';\n childComponent.entityId = group.id;\n childComponent.entityName = group.name;\n\n childComponent.onEditedUsers.subscribe(() => {\n this.modal.close();\n });\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedGroups = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.groups && this.groups.length > this.pageSize;\n }\n\n private removeGroup(group: GroupResponse) {\n const index = this.groups.indexOf(group);\n if (index > -1) {\n this.groups.splice(index, 1);\n this.resetPaging();\n }\n }\n}\n","
\n

{{'groups' | i18n}}

\n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noGroupsInList' | i18n}}

\n \n \n \n \n \n \n \n
\n {{g.name}}\n \n \n
\n
\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { GroupRequest } from 'jslib/models/request/groupRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\n@Component({\n selector: 'app-group-add-edit',\n templateUrl: 'group-add-edit.component.html',\n})\nexport class GroupAddEditComponent implements OnInit {\n @Input() groupId: string;\n @Input() organizationId: string;\n @Output() onSavedGroup = new EventEmitter();\n @Output() onDeletedGroup = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n title: string;\n name: string;\n externalId: string;\n access: 'all' | 'selected' = 'selected';\n collections: CollectionView[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private collectionService: CollectionService,\n private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.groupId != null;\n await this.loadCollections();\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editGroup');\n try {\n const group = await this.apiService.getGroupDetails(this.organizationId, this.groupId);\n this.access = group.accessAll ? 'all' : 'selected';\n this.name = group.name;\n this.externalId = group.externalId;\n if (group.collections != null && this.collections != null) {\n group.collections.forEach(s => {\n const collection = this.collections.filter(c => c.id === s.id);\n if (collection != null && collection.length > 0) {\n (collection[0] as any).checked = true;\n collection[0].readOnly = s.readOnly;\n collection[0].hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('addGroup');\n }\n\n this.loading = false;\n }\n\n async loadCollections() {\n const response = await this.apiService.getCollections(this.organizationId);\n const collections = response.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n if (!(c as any).checked) {\n c.readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n\n async submit() {\n const request = new GroupRequest();\n request.name = this.name;\n request.externalId = this.externalId;\n request.accessAll = this.access === 'all';\n if (!request.accessAll) {\n request.collections = this.collections.filter(c => (c as any).checked)\n .map(c => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords));\n }\n\n try {\n if (this.editMode) {\n this.formPromise = this.apiService.putGroup(this.organizationId, this.groupId, request);\n } else {\n this.formPromise = this.apiService.postGroup(this.organizationId, request);\n }\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedGroupId' : 'createdGroupId', this.name));\n this.onSavedGroup.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteGroupConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteGroup(this.organizationId, this.groupId);\n await this.deletePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedGroupId', this.name));\n this.onDeletedGroup.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n \n \n
\n
\n \n \n {{'externalIdDesc' | i18n}}\n
\n

\n
\n {{'accessControl' | i18n}}\n \n \n \n
\n
\n \n \n
\n

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{c.name}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-org-manage',\n templateUrl: 'manage.component.html',\n})\nexport class ManageComponent implements OnInit {\n organization: Organization;\n accessPolicies = false;\n accessGroups = false;\n accessEvents = false;\n\n constructor(private route: ActivatedRoute, private userService: UserService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.accessPolicies = this.organization.usePolicies;\n this.accessEvents = this.organization.useEvents;\n this.accessGroups = this.organization.useGroups;\n });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ValidationService } from 'jslib/angular/services/validation.service';\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { OrganizationUserConfirmRequest } from 'jslib/models/request/organizationUserConfirmRequest';\n\nimport { OrganizationUserUserDetailsResponse } from 'jslib/models/response/organizationUserResponse';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { ModalComponent } from '../../modal.component';\nimport { EntityEventsComponent } from './entity-events.component';\nimport { UserAddEditComponent } from './user-add-edit.component';\nimport { UserConfirmComponent } from './user-confirm.component';\nimport { UserGroupsComponent } from './user-groups.component';\n\n@Component({\n selector: 'app-org-people',\n templateUrl: 'people.component.html',\n})\nexport class PeopleComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('groupsTemplate', { read: ViewContainerRef, static: true }) groupsModalRef: ViewContainerRef;\n @ViewChild('eventsTemplate', { read: ViewContainerRef, static: true }) eventsModalRef: ViewContainerRef;\n @ViewChild('confirmTemplate', { read: ViewContainerRef, static: true }) confirmModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n users: OrganizationUserUserDetailsResponse[];\n pagedUsers: OrganizationUserUserDetailsResponse[];\n searchText: string;\n status: OrganizationUserStatusType = null;\n statusMap = new Map();\n organizationUserType = OrganizationUserType;\n organizationUserStatusType = OrganizationUserStatusType;\n actionPromise: Promise;\n accessEvents = false;\n accessGroups = false;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedUsersCount = 0;\n private modal: ModalComponent = null;\n private allUsers: OrganizationUserUserDetailsResponse[];\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService, private toasterService: ToasterService,\n private cryptoService: CryptoService, private userService: UserService, private router: Router,\n private storageService: StorageService, private searchService: SearchService,\n private validationService: ValidationService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (!organization.canManageUsers) {\n this.router.navigate(['../collections'], { relativeTo: this.route });\n return;\n }\n this.accessEvents = organization.useEvents;\n this.accessGroups = organization.useGroups;\n await this.load();\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (qParams.viewEvents != null) {\n const user = this.users.filter(u => u.id === qParams.viewEvents);\n if (user.length > 0 && user[0].status === OrganizationUserStatusType.Confirmed) {\n this.events(user[0]);\n }\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n this.statusMap.clear();\n this.allUsers = response.data != null && response.data.length > 0 ? response.data : [];\n this.allUsers.sort(Utils.getSortFunction(this.i18nService, 'email'));\n this.allUsers.forEach(u => {\n if (!this.statusMap.has(u.status)) {\n this.statusMap.set(u.status, [u]);\n } else {\n this.statusMap.get(u.status).push(u);\n }\n });\n this.filter(this.status);\n this.loading = false;\n }\n\n filter(status: OrganizationUserStatusType) {\n this.status = status;\n if (this.status != null) {\n this.users = this.statusMap.get(this.status);\n } else {\n this.users = this.allUsers;\n }\n this.resetPaging();\n }\n\n loadMore() {\n if (!this.users || this.users.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedUsers.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedUsersCount > this.pageSize) {\n pagedSize = this.pagedUsersCount;\n }\n if (this.users.length > pagedLength) {\n this.pagedUsers = this.pagedUsers.concat(this.users.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedUsersCount = this.pagedUsers.length;\n this.didScroll = this.pagedUsers.length > this.pageSize;\n }\n\n get allCount() {\n return this.allUsers != null ? this.allUsers.length : 0;\n }\n\n get invitedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Invited) ?\n this.statusMap.get(OrganizationUserStatusType.Invited).length : 0;\n }\n\n get acceptedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Accepted) ?\n this.statusMap.get(OrganizationUserStatusType.Accepted).length : 0;\n }\n\n get confirmedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Confirmed) ?\n this.statusMap.get(OrganizationUserStatusType.Confirmed).length : 0;\n }\n\n get showConfirmUsers(): boolean {\n return this.allUsers != null && this.statusMap != null && this.allUsers.length > 1 &&\n this.confirmedCount > 0 && this.confirmedCount < 3 && this.acceptedCount > 0;\n }\n\n edit(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserAddEditComponent, this.addEditModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.onSavedUser.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedUser.subscribe(() => {\n this.modal.close();\n this.removeUser(user);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n invite() {\n this.edit(null);\n }\n\n groups(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.groupsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserGroupsComponent, this.groupsModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.onSavedUser.subscribe(() => {\n this.modal.close();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async remove(user: OrganizationUserUserDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), user.name || user.email,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteOrganizationUser(this.organizationId, user.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', user.name || user.email));\n this.removeUser(user);\n } catch { }\n }\n\n async reinvite(user: OrganizationUserUserDetailsResponse) {\n if (this.actionPromise != null) {\n return;\n }\n this.actionPromise = this.apiService.postOrganizationUserReinvite(this.organizationId, user.id);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenReinvited', user.name || user.email));\n this.actionPromise = null;\n }\n\n async confirm(user: OrganizationUserUserDetailsResponse) {\n function updateUser(self: PeopleComponent) {\n user.status = OrganizationUserStatusType.Confirmed;\n const mapIndex = self.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);\n if (mapIndex > -1) {\n self.statusMap.get(OrganizationUserStatusType.Accepted).splice(mapIndex, 1);\n self.statusMap.get(OrganizationUserStatusType.Confirmed).push(user);\n }\n }\n\n const confirmUser = async (publicKey: Uint8Array) => {\n try {\n this.actionPromise = this.doConfirmation(user, publicKey);\n await this.actionPromise;\n updateUser(this);\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', user.name || user.email));\n } catch (e) {\n this.validationService.showError(e);\n throw e;\n } finally {\n this.actionPromise = null;\n }\n };\n\n if (this.actionPromise != null) {\n return;\n }\n\n const autoConfirm = await this.storageService.get(ConstantsService.autoConfirmFingerprints);\n if (autoConfirm == null || !autoConfirm) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.confirmModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserConfirmComponent, this.confirmModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.userId = user != null ? user.userId : null;\n childComponent.onConfirmedUser.subscribe(async (publicKey: Uint8Array) => {\n try {\n await confirmUser(publicKey);\n this.modal.close();\n } catch (e) {\n // tslint:disable-next-line\n console.error('Handled exception:', e);\n }\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return;\n }\n\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(user.userId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n try {\n // tslint:disable-next-line\n console.log('User\\'s fingerprint: ' +\n (await this.cryptoService.getFingerprint(user.userId, publicKey.buffer)).join('-'));\n } catch { }\n await confirmUser(publicKey);\n } catch (e) {\n // tslint:disable-next-line\n console.error('Handled exception:', e);\n }\n }\n\n async events(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.eventsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityEventsComponent, this.eventsModalRef);\n\n childComponent.name = user.name || user.email;\n childComponent.organizationId = this.organizationId;\n childComponent.entityId = user.id;\n childComponent.showUser = false;\n childComponent.entity = 'user';\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedUsers = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.users && this.users.length > this.pageSize;\n }\n\n private async doConfirmation(user: OrganizationUserUserDetailsResponse, publicKey: Uint8Array) {\n const orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey.buffer);\n const request = new OrganizationUserConfirmRequest();\n request.key = key.encryptedString;\n await this.apiService.postOrganizationUserConfirm(this.organizationId, user.id, request);\n }\n\n private removeUser(user: OrganizationUserUserDetailsResponse) {\n let index = this.users.indexOf(user);\n if (index > -1) {\n this.users.splice(index, 1);\n this.resetPaging();\n }\n if (this.statusMap.has(OrganizationUserStatusType.Accepted)) {\n index = this.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Accepted).splice(index, 1);\n }\n }\n if (this.statusMap.has(OrganizationUserStatusType.Invited)) {\n index = this.statusMap.get(OrganizationUserStatusType.Invited).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Invited).splice(index, 1);\n }\n }\n if (this.statusMap.has(OrganizationUserStatusType.Confirmed)) {\n index = this.statusMap.get(OrganizationUserStatusType.Confirmed).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Confirmed).splice(index, 1);\n }\n }\n }\n}\n","
\n

{{'people' | i18n}}

\n
\n
\n \n \n \n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noUsersInList' | i18n}}

\n \n \n {{'usersNeedConfirmed' | i18n}}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n {{u.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{u.name}}\n \n \n \n {{'userUsingTwoStep' | i18n}}\n \n \n {{'owner' | i18n}}\n {{'admin' | i18n}}\n {{'manager' | i18n}}\n {{'user' | i18n}}\n {{'custom' | i18n}}\n \n \n
\n
\n\n\n\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { OrganizationUserInviteRequest } from 'jslib/models/request/organizationUserInviteRequest';\nimport { OrganizationUserUpdateRequest } from 'jslib/models/request/organizationUserUpdateRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { PermissionsApi } from 'jslib/models/api/permissionsApi';\n\n@Component({\n selector: 'app-user-add-edit',\n templateUrl: 'user-add-edit.component.html',\n})\nexport class UserAddEditComponent implements OnInit {\n @Input() name: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onSavedUser = new EventEmitter();\n @Output() onDeletedUser = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n title: string;\n emails: string;\n type: OrganizationUserType = OrganizationUserType.User;\n permissions = new PermissionsApi();\n showCustom = false;\n access: 'all' | 'selected' = 'selected';\n collections: CollectionView[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n organizationUserType = OrganizationUserType;\n\n get customUserTypeSelected(): boolean {\n return this.type === OrganizationUserType.Custom;\n }\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private collectionService: CollectionService,\n private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.organizationUserId != null;\n await this.loadCollections();\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editUser');\n try {\n const user = await this.apiService.getOrganizationUser(this.organizationId, this.organizationUserId);\n this.access = user.accessAll ? 'all' : 'selected';\n this.type = user.type;\n if (user.type === OrganizationUserType.Custom) {\n this.permissions = user.permissions;\n }\n if (user.collections != null && this.collections != null) {\n user.collections.forEach(s => {\n const collection = this.collections.filter(c => c.id === s.id);\n if (collection != null && collection.length > 0) {\n (collection[0] as any).checked = true;\n collection[0].readOnly = s.readOnly;\n collection[0].hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('inviteUser');\n }\n\n this.loading = false;\n }\n\n async loadCollections() {\n const response = await this.apiService.getCollections(this.organizationId);\n const collections = response.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n if (!(c as any).checked) {\n c.readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n\n setRequestPermissions(p: PermissionsApi, clearPermissions: boolean) {\n p.accessBusinessPortal = clearPermissions ?\n false :\n this.permissions.accessBusinessPortal;\n p.accessEventLogs = this.permissions.accessEventLogs = clearPermissions ?\n false :\n this.permissions.accessEventLogs;\n p.accessImportExport = clearPermissions ?\n false :\n this.permissions.accessImportExport;\n p.accessReports = clearPermissions ?\n false :\n this.permissions.accessReports;\n p.manageAllCollections = clearPermissions ?\n false :\n this.permissions.manageAllCollections;\n p.manageAssignedCollections = clearPermissions ?\n false :\n this.permissions.manageAssignedCollections;\n p.manageGroups = clearPermissions ?\n false :\n this.permissions.manageGroups;\n p.manageSso = clearPermissions ?\n false :\n this.permissions.manageSso;\n p.managePolicies = clearPermissions ?\n false :\n this.permissions.managePolicies;\n p.manageUsers = clearPermissions ?\n false :\n this.permissions.manageUsers;\n p.manageResetPassword = clearPermissions ?\n false :\n this.permissions.manageResetPassword;\n return p;\n }\n\n async submit() {\n let collections: SelectionReadOnlyRequest[] = null;\n if (this.access !== 'all') {\n collections = this.collections.filter(c => (c as any).checked)\n .map(c => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords));\n }\n\n try {\n if (this.editMode) {\n const request = new OrganizationUserUpdateRequest();\n request.accessAll = this.access === 'all';\n request.type = this.type;\n request.collections = collections;\n request.permissions = this.setRequestPermissions(request.permissions ?? new PermissionsApi(), request.type !== OrganizationUserType.Custom);\n this.formPromise = this.apiService.putOrganizationUser(this.organizationId, this.organizationUserId,\n request);\n } else {\n const request = new OrganizationUserInviteRequest();\n request.emails = this.emails.trim().split(/\\s*,\\s*/);\n request.accessAll = this.access === 'all';\n request.type = this.type;\n request.permissions = this.setRequestPermissions(request.permissions ?? new PermissionsApi(), request.type !== OrganizationUserType.Custom);\n request.collections = collections;\n this.formPromise = this.apiService.postOrganizationUserInvite(this.organizationId, request);\n }\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedUserId' : 'invitedUsers', this.name));\n this.onSavedUser.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteOrganizationUser(this.organizationId, this.organizationUserId);\n await this.deletePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', this.name));\n this.onDeletedUser.emit();\n } catch { }\n }\n\n}\n","
\n
\n
\n
\n

\n {{title}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n \n

{{'inviteUserDesc' | i18n}}

\n
\n \n \n {{'inviteMultipleEmailDesc' | i18n : '20'}}\n
\n
\n

\n {{'userType' | i18n}}\n \n \n \n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n

\n {{'permissions' | i18n}}\n

\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n

\n
\n {{'accessControl' | i18n}}\n \n \n \n
\n
\n \n \n
\n

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{c.name}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-user-confirm',\n templateUrl: 'user-confirm.component.html',\n})\nexport class UserConfirmComponent implements OnInit {\n @Input() name: string;\n @Input() userId: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onConfirmedUser = new EventEmitter();\n\n dontAskAgain = false;\n loading = true;\n fingerprint: string;\n\n private publicKey: Uint8Array = null;\n\n constructor(private apiService: ApiService, private cryptoService: CryptoService,\n private storageService: StorageService) { }\n\n async ngOnInit() {\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId);\n if (publicKeyResponse != null) {\n this.publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n const fingerprint = await this.cryptoService.getFingerprint(this.userId, this.publicKey.buffer);\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n } catch { }\n this.loading = false;\n }\n\n async submit() {\n if (this.loading) {\n return;\n }\n\n if (this.dontAskAgain) {\n await this.storageService.save(ConstantsService.autoConfirmFingerprints, true);\n }\n\n this.onConfirmedUser.emit(this.publicKey);\n }\n}\n","
\n
\n
\n
\n

\n {{'confirmUser' | i18n}}\n {{name}}\n

\n \n
\n
\n

\n {{'fingerprintEnsureIntegrityVerify' | i18n}}\n \n {{'learnMore' | i18n}}\n

\n

{{fingerprint}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { OrganizationUserUpdateGroupsRequest } from 'jslib/models/request/organizationUserUpdateGroupsRequest';\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-user-groups',\n templateUrl: 'user-groups.component.html',\n})\nexport class UserGroupsComponent implements OnInit {\n @Input() name: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onSavedUser = new EventEmitter();\n\n loading = true;\n groups: GroupResponse[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const groupsResponse = await this.apiService.getGroups(this.organizationId);\n const groups = groupsResponse.data.map(r => r);\n groups.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.groups = groups;\n\n try {\n const userGroups = await this.apiService.getOrganizationUserGroups(\n this.organizationId, this.organizationUserId);\n if (userGroups != null && this.groups != null) {\n userGroups.forEach(ug => {\n const group = this.groups.filter(g => g.id === ug);\n if (group != null && group.length > 0) {\n (group[0] as any).checked = true;\n }\n });\n }\n } catch { }\n\n this.loading = false;\n }\n\n check(g: GroupResponse, select?: boolean) {\n (g as any).checked = select == null ? !(g as any).checked : select;\n if (!(g as any).checked) {\n (g as any).readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.groups.forEach(g => this.check(g, select));\n }\n\n async submit() {\n const request = new OrganizationUserUpdateGroupsRequest();\n request.groupIds = this.groups.filter(g => (g as any).checked).map(g => g.id);\n\n try {\n this.formPromise = this.apiService.putOrganizationUserGroups(this.organizationId, this.organizationUserId,\n request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('editedGroupsForUser', this.name));\n this.onSavedUser.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'groupAccess' | i18n}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'groupAccessUserDesc' | i18n}}

\n
\n {{'noGroupsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{g.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { PolicyType } from 'jslib/enums/policyType';\n\nimport { EnvironmentService } from 'jslib/abstractions';\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\nimport { ModalComponent } from '../../modal.component';\n\nimport { PolicyEditComponent } from './policy-edit.component';\n\n@Component({\n selector: 'app-org-policies',\n templateUrl: 'policies.component.html',\n})\nexport class PoliciesComponent implements OnInit {\n @ViewChild('editTemplate', { read: ViewContainerRef, static: true }) editModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n policies: any[];\n\n // Remove when removing deprecation warning\n enterpriseTokenPromise: Promise;\n userCanAccessBusinessPortal = false;\n\n private enterpriseUrl: string;\n\n private modal: ModalComponent = null;\n private orgPolicies: PolicyResponse[];\n private policiesEnabledMap: Map = new Map();\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService, private userService: UserService,\n private router: Router, private environmentService: EnvironmentService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.usePolicies) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n this.userCanAccessBusinessPortal = organization.canAccessBusinessPortal;\n this.policies = [\n {\n name: this.i18nService.t('twoStepLogin'),\n description: this.i18nService.t('twoStepLoginPolicyDesc'),\n type: PolicyType.TwoFactorAuthentication,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('masterPass'),\n description: this.i18nService.t('masterPassPolicyDesc'),\n type: PolicyType.MasterPassword,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('passwordGenerator'),\n description: this.i18nService.t('passwordGeneratorPolicyDesc'),\n type: PolicyType.PasswordGenerator,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('singleOrg'),\n description: this.i18nService.t('singleOrgDesc'),\n type: PolicyType.SingleOrg,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('requireSso'),\n description: this.i18nService.t('requireSsoPolicyDesc'),\n type: PolicyType.RequireSso,\n enabled: false,\n display: organization.useSso,\n },\n {\n name: this.i18nService.t('personalOwnership'),\n description: this.i18nService.t('personalOwnershipPolicyDesc'),\n type: PolicyType.PersonalOwnership,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('disableSend'),\n description: this.i18nService.t('disableSendPolicyDesc'),\n type: PolicyType.DisableSend,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('sendOptions'),\n description: this.i18nService.t('sendOptionsPolicyDesc'),\n type: PolicyType.SendOptions,\n enabled: false,\n display: true,\n },\n ];\n await this.load();\n\n // Handle policies component launch from Event message\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.policyId != null) {\n const policyIdFromEvents: string = qParams.policyId;\n for (const orgPolicy of this.orgPolicies) {\n if (orgPolicy.id === policyIdFromEvents) {\n for (let i = 0; i < this.policies.length; i++) {\n if (this.policies[i].type === orgPolicy.type) {\n this.edit(this.policies[i]);\n break;\n }\n }\n break;\n }\n }\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n\n // Remove when removing deprecation warning\n this.enterpriseUrl = 'https://portal.bitwarden.com';\n if (this.environmentService.enterpriseUrl != null) {\n this.enterpriseUrl = this.environmentService.enterpriseUrl;\n } else if (this.environmentService.baseUrl != null) {\n this.enterpriseUrl = this.environmentService.baseUrl + '/portal';\n }\n }\n\n async load() {\n const response = await this.apiService.getPolicies(this.organizationId);\n this.orgPolicies = response.data != null && response.data.length > 0 ? response.data : [];\n this.orgPolicies.forEach(op => {\n this.policiesEnabledMap.set(op.type, op.enabled);\n });\n this.policies.forEach(p => {\n p.enabled = this.policiesEnabledMap.has(p.type) && this.policiesEnabledMap.get(p.type);\n });\n this.loading = false;\n }\n\n edit(p: any) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.editModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n PolicyEditComponent, this.editModalRef);\n\n childComponent.name = p.name;\n childComponent.description = p.description;\n childComponent.type = p.type;\n childComponent.organizationId = this.organizationId;\n childComponent.policiesEnabledMap = this.policiesEnabledMap;\n childComponent.onSavedPolicy.subscribe(() => {\n this.modal.close();\n this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n\n // Remove when removing deprecation warning\n async goToEnterprisePortal() {\n if (this.enterpriseTokenPromise != null) {\n return;\n }\n try {\n this.enterpriseTokenPromise = this.apiService.getEnterprisePortalSignInToken();\n const token = await this.enterpriseTokenPromise;\n if (token != null) {\n const userId = await this.userService.getUserId();\n this.platformUtilsService.launchUri(this.enterpriseUrl + '/login?userId=' + userId +\n '&token=' + (window as any).encodeURIComponent(token) + '&organizationId=' + this.organizationId);\n }\n } catch { }\n this.enterpriseTokenPromise = null;\n }\n}\n","\n

{{'webPoliciesDeprecationWarning' | i18n}}

\n \n
\n
\n

{{'policies' | i18n}}

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n \n \n \n \n
\n {{p.name}}\n {{'enabled' | i18n}}\n {{p.description}}\n
\n\n","// Using index.ts is deprecated, please do not extend\nexport { ApiService } from './api.service';\nexport { AppIdService } from './appId.service';\nexport { AuditService } from './audit.service';\nexport { AuthService } from './auth.service';\nexport { CipherService } from './cipher.service';\nexport { CollectionService } from './collection.service';\nexport { CryptoService } from './crypto.service';\nexport { EnvironmentService } from './environment.service';\nexport { FolderService } from './folder.service';\nexport { I18nService } from './i18n.service';\nexport { LogService } from './log.service';\nexport { MessagingService } from './messaging.service';\nexport { PasswordGenerationService } from './passwordGeneration.service';\nexport { PlatformUtilsService } from './platformUtils.service';\nexport { SearchService } from './search.service';\nexport { SettingsService } from './settings.service';\nexport { StorageService } from './storage.service';\nexport { StateService } from './state.service';\nexport { SyncService } from './sync.service';\nexport { TokenService } from './token.service';\nexport { TotpService } from './totp.service';\nexport { UserService } from './user.service';\nexport { VaultTimeoutService } from './vaultTimeout.service';\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PolicyType } from 'jslib/enums/policyType';\n\nimport { PolicyRequest } from 'jslib/models/request/policyRequest';\n\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\n@Component({\n selector: 'app-policy-edit',\n templateUrl: 'policy-edit.component.html',\n})\nexport class PolicyEditComponent implements OnInit {\n @Input() name: string;\n @Input() description: string;\n @Input() type: PolicyType;\n @Input() organizationId: string;\n @Input() policiesEnabledMap: Map = new Map();\n @Output() onSavedPolicy = new EventEmitter();\n\n policyType = PolicyType;\n loading = true;\n enabled = false;\n formPromise: Promise;\n passwordScores: any[];\n defaultTypes: any[];\n\n // Master password\n masterPassMinComplexity?: number = null;\n masterPassMinLength?: number;\n masterPassRequireUpper?: number;\n masterPassRequireLower?: number;\n masterPassRequireNumbers?: number;\n masterPassRequireSpecial?: number;\n\n // Password generator\n passGenDefaultType?: string;\n passGenMinLength?: number;\n passGenUseUpper?: boolean;\n passGenUseLower?: boolean;\n passGenUseNumbers?: boolean;\n passGenUseSpecial?: boolean;\n passGenMinNumbers?: number;\n passGenMinSpecial?: number;\n passGenMinNumberWords?: number;\n passGenCapitalize?: boolean;\n passGenIncludeNumber?: boolean;\n\n // Send options\n sendDisableHideEmail?: boolean;\n\n private policy: PolicyResponse;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) {\n this.passwordScores = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: i18nService.t('weak') + ' (0)', value: 0 },\n { name: i18nService.t('weak') + ' (1)', value: 1 },\n { name: i18nService.t('weak') + ' (2)', value: 2 },\n { name: i18nService.t('good') + ' (3)', value: 3 },\n { name: i18nService.t('strong') + ' (4)', value: 4 },\n ];\n this.defaultTypes = [\n { name: i18nService.t('userPreference'), value: null },\n { name: i18nService.t('password'), value: 'password' },\n { name: i18nService.t('passphrase'), value: 'passphrase' },\n ];\n }\n\n async ngOnInit() {\n await this.load();\n this.loading = false;\n }\n\n async load() {\n try {\n this.policy = await this.apiService.getPolicy(this.organizationId, this.type);\n\n if (this.policy != null) {\n this.enabled = this.policy.enabled;\n if (this.policy.data != null) {\n switch (this.type) {\n case PolicyType.PasswordGenerator:\n this.passGenDefaultType = this.policy.data.defaultType;\n this.passGenMinLength = this.policy.data.minLength;\n this.passGenUseUpper = this.policy.data.useUpper;\n this.passGenUseLower = this.policy.data.useLower;\n this.passGenUseNumbers = this.policy.data.useNumbers;\n this.passGenUseSpecial = this.policy.data.useSpecial;\n this.passGenMinNumbers = this.policy.data.minNumbers;\n this.passGenMinSpecial = this.policy.data.minSpecial;\n this.passGenMinNumberWords = this.policy.data.minNumberWords;\n this.passGenCapitalize = this.policy.data.capitalize;\n this.passGenIncludeNumber = this.policy.data.includeNumber;\n break;\n case PolicyType.MasterPassword:\n this.masterPassMinComplexity = this.policy.data.minComplexity;\n this.masterPassMinLength = this.policy.data.minLength;\n this.masterPassRequireUpper = this.policy.data.requireUpper;\n this.masterPassRequireLower = this.policy.data.requireLower;\n this.masterPassRequireNumbers = this.policy.data.requireNumbers;\n this.masterPassRequireSpecial = this.policy.data.requireSpecial;\n break;\n case PolicyType.SendOptions:\n this.sendDisableHideEmail = this.policy.data.disableHideEmail;\n break;\n default:\n break;\n }\n }\n }\n } catch (e) {\n if (e.statusCode === 404) {\n this.enabled = false;\n } else {\n throw e;\n }\n }\n }\n\n async submit() {\n if (this.preValidate()) {\n const request = new PolicyRequest();\n request.enabled = this.enabled;\n request.type = this.type;\n request.data = null;\n switch (this.type) {\n case PolicyType.PasswordGenerator:\n request.data = {\n defaultType: this.passGenDefaultType,\n minLength: this.passGenMinLength || null,\n useUpper: this.passGenUseUpper,\n useLower: this.passGenUseLower,\n useNumbers: this.passGenUseNumbers,\n useSpecial: this.passGenUseSpecial,\n minNumbers: this.passGenMinNumbers || null,\n minSpecial: this.passGenMinSpecial || null,\n minNumberWords: this.passGenMinNumberWords || null,\n capitalize: this.passGenCapitalize,\n includeNumber: this.passGenIncludeNumber,\n };\n break;\n case PolicyType.MasterPassword:\n request.data = {\n minComplexity: this.masterPassMinComplexity || null,\n minLength: this.masterPassMinLength || null,\n requireUpper: this.masterPassRequireUpper,\n requireLower: this.masterPassRequireLower,\n requireNumbers: this.masterPassRequireNumbers,\n requireSpecial: this.masterPassRequireSpecial,\n };\n break;\n case PolicyType.SendOptions:\n request.data = {\n disableHideEmail: this.sendDisableHideEmail,\n };\n break;\n default:\n break;\n }\n try {\n this.formPromise = this.apiService.putPolicy(this.organizationId, this.type, request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('editedPolicyId', this.name));\n this.onSavedPolicy.emit();\n } catch { }\n }\n }\n\n get checkboxDesc(): string {\n return this.type === PolicyType.PersonalOwnership ? this.i18nService.t('personalOwnershipCheckboxDesc') :\n this.i18nService.t('enabled');\n }\n\n private preValidate(): boolean {\n switch (this.type) {\n case PolicyType.RequireSso:\n // Don't need prevalidation checks if submitting to disable\n if (!this.enabled) {\n return true;\n }\n // Have SingleOrg policy enabled?\n if (!(this.policiesEnabledMap.has(PolicyType.SingleOrg)\n && this.policiesEnabledMap.get(PolicyType.SingleOrg))) {\n this.toasterService.popAsync('error', null, this.i18nService.t('requireSsoPolicyReqError'));\n return false;\n }\n return true;\n\n case PolicyType.SingleOrg:\n // Don't need prevalidation checks if submitting to enable\n if (this.enabled) {\n return true;\n }\n // If RequireSso Policy is enabled prevent submittal\n if (this.policiesEnabledMap.has(PolicyType.RequireSso)\n && this.policiesEnabledMap.get(PolicyType.RequireSso)) {\n this.toasterService.popAsync('error', null, this.i18nService.t('disableRequireSsoError'));\n return false;\n }\n return true;\n\n default:\n return true;\n }\n }\n}\n","
\n
\n
\n
\n

{{'editPolicy' | i18n}} - {{name}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{description}}

\n \n {{'twoStepLoginPolicyWarning' | i18n}}\n \n \n {{'singleOrgPolicyWarning' | i18n}}\n \n \n \n {{'requireSsoPolicyReq' | i18n}}\n \n \n {{'requireSsoExemption' | i18n}}\n \n \n \n {{'personalOwnershipExemption' | i18n}}\n \n \n {{'disableSendExemption' | i18n}}\n \n \n {{'sendOptionsExemption' | i18n}}\n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n

{{'password' | i18n}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n

{{'passphrase' | i18n}}

\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n

{{'options' | i18n}}

\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\n\nimport { OrganizationUpdateRequest } from 'jslib/models/request/organizationUpdateRequest';\nimport { OrganizationResponse } from 'jslib/models/response/organizationResponse';\n\nimport { ModalComponent } from '../../modal.component';\nimport { ApiKeyComponent } from '../../settings/api-key.component';\nimport { PurgeVaultComponent } from '../../settings/purge-vault.component';\nimport { TaxInfoComponent } from '../../settings/tax-info.component';\nimport { DeleteOrganizationComponent } from './delete-organization.component';\n\n@Component({\n selector: 'app-org-account',\n templateUrl: 'account.component.html',\n})\nexport class AccountComponent {\n @ViewChild('deleteOrganizationTemplate', { read: ViewContainerRef, static: true }) deleteModalRef: ViewContainerRef;\n @ViewChild('purgeOrganizationTemplate', { read: ViewContainerRef, static: true }) purgeModalRef: ViewContainerRef;\n @ViewChild('apiKeyTemplate', { read: ViewContainerRef, static: true }) apiKeyModalRef: ViewContainerRef;\n @ViewChild('rotateApiKeyTemplate', { read: ViewContainerRef, static: true }) rotateApiKeyModalRef: ViewContainerRef;\n @ViewChild(TaxInfoComponent) taxInfo: TaxInfoComponent;\n\n selfHosted = false;\n loading = true;\n canUseApi = false;\n org: OrganizationResponse;\n formPromise: Promise;\n taxFormPromise: Promise;\n\n private organizationId: string;\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private route: ActivatedRoute,\n private syncService: SyncService, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.selfHosted = this.platformUtilsService.isSelfHost();\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n try {\n this.org = await this.apiService.getOrganization(this.organizationId);\n this.canUseApi = this.org.useApi;\n } catch { }\n });\n this.loading = false;\n }\n\n async submit() {\n try {\n const request = new OrganizationUpdateRequest();\n request.name = this.org.name;\n request.businessName = this.org.businessName;\n request.billingEmail = this.org.billingEmail;\n request.identifier = this.org.identifier;\n this.formPromise = this.apiService.putOrganization(this.organizationId, request).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('organizationUpdated'));\n } catch { }\n }\n\n async submitTaxInfo() {\n this.taxFormPromise = this.taxInfo.submitTaxInfo();\n await this.taxFormPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('taxInfoUpdated'));\n }\n\n deleteOrganization() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deleteModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n DeleteOrganizationComponent, this.deleteModalRef);\n childComponent.organizationId = this.organizationId;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n purgeVault() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.purgeModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(PurgeVaultComponent, this.purgeModalRef);\n childComponent.organizationId = this.organizationId;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n viewApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.apiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.apiKeyModalRef);\n childComponent.keyType = 'organization';\n childComponent.entityId = this.organizationId;\n childComponent.postKey = this.apiService.postOrganizationApiKey.bind(this.apiService);\n childComponent.scope = 'api.organization';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'apiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n rotateApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.rotateApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.rotateApiKeyModalRef);\n childComponent.keyType = 'organization';\n childComponent.isRotation = true;\n childComponent.entityId = this.organizationId;\n childComponent.postKey = this.apiService.postOrganizationRotateApiKey.bind(this.apiService);\n childComponent.scope = 'api.organization';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'apiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyRotateDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n}\n","
\n

{{'myOrganization' | i18n}}

\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n\n
\n

{{'apiKey' | i18n}}

\n
\n

\n {{'apiKeyDesc' | i18n}}\n \n {{'learnMore' | i18n}}\n \n

\n \n \n
\n
\n

{{'taxInformation' | i18n}}

\n
\n

{{'taxInformationDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n \n
\n
\n

{{'dangerZone' | i18n}}

\n
\n
\n
\n

{{'dangerZoneDesc' | i18n}}

\n \n \n
\n
\n\n\n\n\n","import { TaxInfoUpdateRequest } from './taxInfoUpdateRequest';\n\nexport class OrganizationTaxInfoUpdateRequest extends TaxInfoUpdateRequest {\n taxId: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n}\n","export class TaxInfoUpdateRequest {\n country: string;\n postalCode: string;\n}\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-delete-organization',\n templateUrl: 'delete-organization.component.html',\n})\nexport class DeleteOrganizationComponent {\n organizationId: string;\n\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private router: Router) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.deleteOrganization(this.organizationId, request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('organizationDeleted'),\n this.i18nService.t('organizationDeletedDesc'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deleteOrganization' | i18n}}

\n \n
\n
\n

{{'deleteOrganizationDesc' | i18n}}

\n {{'deleteOrganizationWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { UserBillingComponent } from '../../settings/user-billing.component';\n\n@Component({\n selector: 'app-org-billing',\n templateUrl: '../../settings/user-billing.component.html',\n})\nexport class OrganizationBillingComponent extends UserBillingComponent implements OnInit {\n constructor(apiService: ApiService, i18nService: I18nService, toasterService: ToasterService,\n private route: ActivatedRoute, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n this.firstLoaded = true;\n });\n }\n}\n","export class WebConstants {\n static readonly stripeTestKey = 'pk_test_KPoCfZXu7mznb9uSCPZ2JpTD';\n static readonly stripeLiveKey = 'pk_live_bpN0P37nMxrMQkcaHXtAybJk';\n static readonly btSandboxKey = 'sandbox_r72q8jq6_9pnxkwm75f87sdc2';\n static readonly btProductionKey = 'production_qfbsv8kc_njj2zjtyngtjmbjd';\n static readonly paypal = {\n businessIdProduction: '4ZDA7DLUUJGMN',\n businessIdSandbox: 'AD3LAUZSNVPJY',\n buttonActionProduction: 'https://www.paypal.com/cgi-bin/webscr',\n buttonActionSandbox: 'https://www.sandbox.paypal.com/cgi-bin/webscr',\n };\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { OrganizationSubscriptionResponse } from 'jslib/models/response/organizationSubscriptionResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PlanType } from 'jslib/enums/planType';\n\n@Component({\n selector: 'app-org-subscription',\n templateUrl: 'organization-subscription.component.html',\n})\nexport class OrganizationSubscriptionComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n organizationId: string;\n adjustSeatsAdd = true;\n showAdjustSeats = false;\n adjustStorageAdd = true;\n showAdjustStorage = false;\n showUpdateLicense = false;\n showDownloadLicense = false;\n showChangePlan = false;\n sub: OrganizationSubscriptionResponse;\n selfHosted = false;\n\n cancelPromise: Promise;\n reinstatePromise: Promise;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService, private toasterService: ToasterService,\n private messagingService: MessagingService, private route: ActivatedRoute) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n this.firstLoaded = true;\n });\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n this.sub = await this.apiService.getOrganizationSubscription(this.organizationId);\n this.loading = false;\n }\n\n async reinstate() {\n if (this.loading) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('reinstateConfirmation'),\n this.i18nService.t('reinstateSubscription'), this.i18nService.t('yes'), this.i18nService.t('cancel'));\n if (!confirmed) {\n return;\n }\n\n try {\n this.reinstatePromise = this.apiService.postOrganizationReinstate(this.organizationId);\n await this.reinstatePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('reinstated'));\n this.load();\n } catch { }\n }\n\n async cancel() {\n if (this.loading) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('cancelConfirmation'),\n this.i18nService.t('cancelSubscription'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.cancelPromise = this.apiService.postOrganizationCancel(this.organizationId);\n await this.cancelPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('canceledSubscription'));\n this.load();\n } catch { }\n }\n\n async changePlan() {\n if (this.subscription == null && this.sub.planType === PlanType.Free) {\n this.showChangePlan = !this.showChangePlan;\n return;\n }\n const contactSupport = await this.platformUtilsService.showDialog(this.i18nService.t('changeBillingPlanDesc'),\n this.i18nService.t('changeBillingPlan'), this.i18nService.t('contactSupport'), this.i18nService.t('close'));\n if (contactSupport) {\n this.platformUtilsService.launchUri('https://bitwarden.com/contact');\n }\n }\n\n closeChangePlan(changed: boolean) {\n this.showChangePlan = false;\n }\n\n downloadLicense() {\n this.showDownloadLicense = !this.showDownloadLicense;\n }\n\n closeDownloadLicense() {\n this.showDownloadLicense = false;\n }\n\n updateLicense() {\n if (this.loading) {\n return;\n }\n this.showUpdateLicense = true;\n }\n\n closeUpdateLicense(updated: boolean) {\n this.showUpdateLicense = false;\n if (updated) {\n this.load();\n this.messagingService.send('updatedOrgLicense');\n }\n }\n\n adjustSeats(add: boolean) {\n this.adjustSeatsAdd = add;\n this.showAdjustSeats = true;\n }\n\n closeSeats(load: boolean) {\n this.showAdjustSeats = false;\n if (load) {\n this.load();\n }\n }\n\n adjustStorage(add: boolean) {\n this.adjustStorageAdd = add;\n this.showAdjustStorage = true;\n }\n\n closeStorage(load: boolean) {\n this.showAdjustStorage = false;\n if (load) {\n this.load();\n }\n }\n\n get isExpired() {\n return this.sub != null && this.sub.expiration != null &&\n new Date(this.sub.expiration) < new Date();\n }\n\n get subscriptionMarkedForCancel() {\n return this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate;\n }\n\n get subscription() {\n return this.sub != null ? this.sub.subscription : null;\n }\n\n get nextInvoice() {\n return this.sub != null ? this.sub.upcomingInvoice : null;\n }\n\n get storagePercentage() {\n return this.sub != null && this.sub.maxStorageGb ?\n +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) : 0;\n }\n\n get storageProgressWidth() {\n return this.storagePercentage < 5 ? 5 : 0;\n }\n\n get billingInterval() {\n const monthly = !this.sub.plan.isAnnual;\n return monthly ? 'month' : 'year';\n }\n\n get storageGbPrice() {\n return this.sub.plan.additionalStoragePricePerGb;\n }\n\n get seatPrice() {\n return this.sub.plan.seatPrice;\n }\n\n get canAdjustSeats() {\n return this.sub.plan.hasAdditionalSeatsOption;\n }\n\n get canDownloadLicense() {\n return (this.sub.planType !== PlanType.Free && this.subscription == null) ||\n (this.subscription != null && !this.subscription.cancelled);\n }\n}\n","
\n

\n {{'subscription' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n {{'subscriptionCanceled' | i18n}}\n \n

{{'subscriptionPendingCanceled' | i18n}}

\n \n
\n
\n
{{'billingPlan' | i18n}}
\n
{{sub.plan.name}}
\n
{{'expiration' | i18n}}
\n
\n {{sub.expiration | date:'mediumDate'}}\n \n \n {{'licenseIsExpired' | i18n}}\n \n
\n
{{'neverExpires' | i18n}}
\n
\n
\n
\n
\n
{{'billingPlan' | i18n}}
\n
{{sub.plan.name}}
\n \n
{{'status' | i18n}}
\n
\n {{subscription.status || '-'}}\n {{'pendingCancellation' | i18n}}\n
\n
{{'nextCharge' | i18n}}
\n
{{nextInvoice ? ((nextInvoice.date | date: 'mediumDate') + ', ' + (nextInvoice.amount | currency:'$'))\n : '-'}}\n
\n
\n
\n
\n
\n {{'details' | i18n}}\n \n \n \n \n \n \n \n
\n {{i.name}} {{i.quantity > 1 ? '×' + i.quantity : ''}} @ {{i.amount | currency:'$'}}\n \n {{(i.quantity * i.amount) | currency:'$'}} /{{i.interval | i18n}}\n
\n
\n
\n \n
\n \n \n {{'manageSubscription' | i18n}}\n \n
\n
\n
\n \n

{{'updateLicense' | i18n}}

\n \n
\n
\n
\n \n
\n \n \n \n
\n \n
\n \n
\n

{{'userSeats' | i18n}}

\n

{{'subscriptionUserSeats' | i18n : sub.seats}}

\n \n
\n
\n \n \n
\n \n
\n
\n

{{'storage' | i18n}}

\n

{{'subscriptionStorage' | i18n : sub.maxStorageGb || 0 : sub.storageName || '0 MB'}}

\n
\n
\n {{(storagePercentage / 100) | percent}}
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PlanType } from 'jslib/enums/planType';\nimport { ProductType } from 'jslib/enums/productType';\n\n@Component({\n selector: 'app-change-plan',\n templateUrl: 'change-plan.component.html',\n})\nexport class ChangePlanComponent {\n @Input() organizationId: string;\n @Output() onChanged = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n formPromise: Promise;\n defaultUpgradePlan: PlanType = PlanType.FamiliesAnnually;\n defaultUpgradeProduct: ProductType = ProductType.Families;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n try {\n this.onChanged.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n

{{'changeBillingPlan' | i18n}}

\n

{{'changeBillingPlanUpgrade' | i18n}}

\n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-download-license',\n templateUrl: 'download-license.component.html',\n})\nexport class DownloadLicenseComponent {\n @Input() organizationId: string;\n @Output() onDownloaded = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n installationId: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n if (this.installationId == null || this.installationId === '') {\n return;\n }\n\n try {\n this.formPromise = this.apiService.getOrganizationLicense(this.organizationId, this.installationId);\n const license = await this.formPromise;\n const licenseString = JSON.stringify(license, null, 2);\n this.platformUtilsService.saveFile(window, licenseString, null, 'bitwarden_organization_license.json');\n this.onDownloaded.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n

{{'downloadLicense' | i18n}}

\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { SeatRequest } from 'jslib/models/request/seatRequest';\n\nimport { PaymentComponent } from '../../settings/payment.component';\n\n@Component({\n selector: 'app-adjust-seats',\n templateUrl: 'adjust-seats.component.html',\n})\nexport class AdjustSeatsComponent {\n @Input() seatPrice = 0;\n @Input() add = true;\n @Input() organizationId: string;\n @Input() interval = 'year';\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n seatAdjustment = 0;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private router: Router,\n private activatedRoute: ActivatedRoute) { }\n\n async submit() {\n try {\n const request = new SeatRequest();\n request.seatAdjustment = this.seatAdjustment;\n if (!this.add) {\n request.seatAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n const result = await this.apiService.postOrganizationSeat(this.organizationId, request);\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n } catch {\n paymentFailed = true;\n }\n }\n };\n this.formPromise = action();\n await this.formPromise;\n this.onAdjusted.emit(this.seatAdjustment);\n if (paymentFailed) {\n this.toasterService.popAsync({\n body: this.i18nService.t('couldNotChargeCardPayInvoice'),\n type: 'warning',\n timeout: 10000,\n });\n this.router.navigate(['../billing'], { relativeTo: this.activatedRoute });\n } else {\n this.toasterService.popAsync('success', null,\n this.i18nService.t('adjustedSeats', request.seatAdjustment.toString()));\n }\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n get adjustedSeatTotal(): number {\n return this.seatAdjustment * this.seatPrice;\n }\n}\n","
\n
\n \n

{{(add ? 'addSeats' : 'removeSeats') | i18n}}

\n
\n
\n \n \n
\n
\n
\n {{'total' | i18n}}: {{seatAdjustment || 0}} × {{seatPrice | currency:'$'}} = {{adjustedSeatTotal\n | currency:'$'}} /{{interval | i18n}}\n
\n \n \n \n {{(add ? 'seatsAddNote' : 'seatsRemoveNote') | i18n}}\n \n
\n
\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-org-settings',\n templateUrl: 'settings.component.html',\n})\nexport class SettingsComponent {\n access2fa = false;\n selfHosted: boolean;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.selfHosted = await this.platformUtilsService.isSelfHost();\n const organization = await this.userService.getOrganization(params.organizationId);\n this.access2fa = organization.use2fa;\n });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorDuoComponent } from '../../settings/two-factor-duo.component';\nimport { TwoFactorSetupComponent as BaseTwoFactorSetupComponent } from '../../settings/two-factor-setup.component';\n\n@Component({\n selector: 'app-two-factor-setup',\n templateUrl: '../../settings/two-factor-setup.component.html',\n})\nexport class TwoFactorSetupComponent extends BaseTwoFactorSetupComponent {\n constructor(apiService: ApiService, userService: UserService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n policyService: PolicyService, private route: ActivatedRoute) {\n super(apiService, userService, componentFactoryResolver, messagingService, policyService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await super.ngOnInit();\n });\n }\n\n manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.OrganizationDuo:\n const duoComp = this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.type = TwoFactorProviderType.OrganizationDuo;\n duoComp.organizationId = this.organizationId;\n duoComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.OrganizationDuo);\n });\n break;\n default:\n break;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorOrganizationProviders(this.organizationId);\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type !== TwoFactorProviderType.OrganizationDuo;\n }\n}\n","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { UpdateTwoFactorAuthenticatorRequest } from 'jslib/models/request/updateTwoFactorAuthenticatorRequest';\nimport { TwoFactorAuthenticatorResponse } from 'jslib/models/response/twoFactorAuthenticatorResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-authenticator',\n templateUrl: 'two-factor-authenticator.component.html',\n})\nexport class TwoFactorAuthenticatorComponent extends TwoFactorBaseComponent implements OnInit, OnDestroy {\n type = TwoFactorProviderType.Authenticator;\n key: string;\n token: string;\n formPromise: Promise;\n\n private qrScript: HTMLScriptElement;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, private userService: UserService,\n platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n this.qrScript = window.document.createElement('script');\n this.qrScript.src = 'scripts/qrious.min.js';\n this.qrScript.async = true;\n }\n\n ngOnInit() {\n window.document.body.appendChild(this.qrScript);\n }\n\n ngOnDestroy() {\n window.document.body.removeChild(this.qrScript);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorAuthenticatorRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.token = this.token;\n request.key = this.key;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorAuthenticator(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorAuthenticatorResponse) {\n this.token = null;\n this.enabled = response.enabled;\n this.key = response.key;\n const email = await this.userService.getEmail();\n window.setTimeout(() => {\n const qr = new (window as any).QRious({\n element: document.getElementById('qr'),\n value: 'otpauth://totp/Bitwarden:' + encodeURIComponent(email) +\n '?secret=' + encodeURIComponent(this.key) + '&issuer=Bitwarden',\n size: 160,\n });\n }, 100);\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'authenticatorAppTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n \"\"\n

{{'twoStepAuthenticatorDesc' | i18n}}

\n

\n 1. {{'twoStepAuthenticatorDownloadApp' | i18n}}\n

\n
\n \n \n

{{'twoStepLoginProviderEnabled' | i18n}}

\n {{'twoStepAuthenticatorReaddDesc' | i18n}}\n
\n \"\"\n

{{'twoStepAuthenticatorNeedApp' | i18n}}

\n
\n \n

{{'twoStepAuthenticatorAppsRecommended' | i18n}}

\n

\n 2. {{'twoStepAuthenticatorScanCode' | i18n}}\n

\n
\n

\n
\n {{key}}\n

\n \n \n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorEmailRequest } from 'jslib/models/request/twoFactorEmailRequest';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { UpdateTwoFactorEmailRequest } from 'jslib/models/request/updateTwoFactorEmailRequest';\nimport { TwoFactorEmailResponse } from 'jslib/models/response/twoFactorEmailResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-email',\n templateUrl: 'two-factor-email.component.html',\n})\nexport class TwoFactorEmailComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Email;\n email: string;\n token: string;\n sentEmail: string;\n formPromise: Promise;\n emailPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, platformUtilsService: PlatformUtilsService,\n private userService: UserService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n async sendEmail() {\n try {\n const request = new TwoFactorEmailRequest(this.email, this.masterPasswordHash);\n this.emailPromise = this.apiService.postTwoFactorEmailSetup(request);\n await this.emailPromise;\n this.sentEmail = this.email;\n } catch { }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorEmailRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.email = this.email;\n request.token = this.token;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorEmail(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorEmailResponse) {\n this.token = null;\n this.email = response.email;\n this.enabled = response.enabled;\n if (!this.enabled && (this.email == null || this.email === '')) {\n this.email = await this.userService.getEmail();\n }\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'emailTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n {{'email' | i18n}}: {{email}}\n \n \n

\n {{'twoFactorEmailDesc' | i18n}}\n \"\"\n

\n
\n \n \n
\n
\n \n \n {{'verificationCodeEmailSent' | i18n : sentEmail}}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { TwoFactorRecoverResponse } from 'jslib/models/response/twoFactorRescoverResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\n@Component({\n selector: 'app-two-factor-recovery',\n templateUrl: 'two-factor-recovery.component.html',\n})\nexport class TwoFactorRecoveryComponent {\n type = -1;\n code: string;\n authed: boolean;\n twoFactorProviderType = TwoFactorProviderType;\n\n constructor(private i18nService: I18nService) { }\n\n auth(authResponse: any) {\n this.authed = true;\n this.processResponse(authResponse.response);\n }\n\n print() {\n const w = window.open();\n w.document.write('
' +\n '

' + this.i18nService.t('twoFactorRecoveryYourCode') + ':

' +\n '' +\n this.code + '
' +\n '

' + new Date() + '

');\n w.onafterprint = () => w.close();\n w.print();\n }\n\n private formatString(s: string) {\n if (s == null) {\n return null;\n }\n return s.replace(/(.{4})/g, '$1 ').trim().toUpperCase();\n }\n\n private processResponse(response: TwoFactorRecoverResponse) {\n this.code = this.formatString(response.code);\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'recoveryCodeTitle' | i18n}}\n

\n \n
\n \n \n \n
\n \n

{{'twoFactorRecoveryYourCode' | i18n}}:

\n {{code}}\n
\n \n {{'twoFactorRecoveryNoCode' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n
\n
\n","import {\n Component,\n NgZone,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\nimport { UpdateTwoFactorWebAuthnDeleteRequest } from 'jslib/models/request/updateTwoFactorWebAuthnDeleteRequest';\nimport { UpdateTwoFactorWebAuthnRequest } from 'jslib/models/request/updateTwoFactorWebAuthnRequest';\nimport {\n ChallengeResponse,\n TwoFactorWebAuthnResponse,\n} from 'jslib/models/response/twoFactorWebAuthnResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-webauthn',\n templateUrl: 'two-factor-webauthn.component.html',\n})\nexport class TwoFactorWebAuthnComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.WebAuthn;\n name: string;\n keys: any[];\n keyIdAvailable: number = null;\n keysConfiguredCount = 0;\n webAuthnError: boolean;\n webAuthnListening: boolean;\n webAuthnResponse: PublicKeyCredential;\n challengePromise: Promise;\n formPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, platformUtilsService: PlatformUtilsService,\n private ngZone: NgZone) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.webAuthnResponse == null || this.keyIdAvailable == null) {\n // Should never happen.\n return Promise.reject();\n }\n const request = new UpdateTwoFactorWebAuthnRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.deviceResponse = this.webAuthnResponse;\n request.id = this.keyIdAvailable;\n request.name = this.name;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorWebAuthn(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n disable() {\n return super.disable(this.formPromise);\n }\n\n async remove(key: any) {\n if (this.keysConfiguredCount <= 1 || key.removePromise != null) {\n return;\n }\n const name = key.name != null ? key.name : this.i18nService.t('webAuthnkeyX', key.id);\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeU2fConfirmation'), name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n const request = new UpdateTwoFactorWebAuthnDeleteRequest();\n request.id = key.id;\n request.masterPasswordHash = this.masterPasswordHash;\n try {\n key.removePromise = this.apiService.deleteTwoFactorWebAuthn(request);\n const response = await key.removePromise;\n key.removePromise = null;\n await this.processResponse(response);\n } catch { }\n }\n\n async readKey() {\n if (this.keyIdAvailable == null) {\n return;\n }\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n try {\n this.challengePromise = this.apiService.getTwoFactorWebAuthnChallenge(request);\n const challenge = await this.challengePromise;\n this.readDevice(challenge);\n } catch { }\n }\n\n private readDevice(webAuthnChallenge: ChallengeResponse) {\n // tslint:disable-next-line\n console.log('listening for key...');\n this.resetWebAuthn(true);\n\n navigator.credentials.create({\n publicKey: webAuthnChallenge,\n }).then((data: PublicKeyCredential) => {\n this.ngZone.run(() => {\n this.webAuthnListening = false;\n this.webAuthnResponse = data;\n });\n }).catch(err => {\n // tslint:disable-next-line\n console.error(err);\n this.resetWebAuthn(false);\n // TODO: Should we display the actual error?\n this.webAuthnError = true;\n });\n }\n\n private resetWebAuthn(listening = false) {\n this.webAuthnResponse = null;\n this.webAuthnError = false;\n this.webAuthnListening = listening;\n }\n\n private processResponse(response: TwoFactorWebAuthnResponse) {\n this.resetWebAuthn();\n this.keys = [];\n this.keyIdAvailable = null;\n this.name = null;\n this.keysConfiguredCount = 0;\n for (let i = 1; i <= 5; i++) {\n if (response.keys != null) {\n const key = response.keys.filter(k => k.id === i);\n if (key.length > 0) {\n this.keysConfiguredCount++;\n this.keys.push({\n id: i, name: key[0].name,\n configured: true,\n migrated: key[0].migrated,\n removePromise: null,\n });\n continue;\n }\n }\n this.keys.push({ id: i, name: null, configured: false, removePromise: null });\n if (this.keyIdAvailable == null) {\n this.keyIdAvailable = i;\n }\n }\n this.enabled = response.enabled;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'webAuthnTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \n

{{'twoFactorWebAuthnWarning' | i18n}}

\n
    \n
  • {{'twoFactorWebAuthnSupportWeb' | i18n}}
  • \n
\n
\n \"\"\n
    \n
  • \n \n {{'webAuthnkeyX' | i18n : i + 1}}\n {{k.name}}\n \n \n {{'webAuthnMigrated' | i18n}}\n \n \n 1 && k.configured\">\n \n -\n {{'remove' | i18n}}\n \n
  • \n
\n
\n

{{'twoFactorWebAuthnAdd' | i18n}}:

\n
    \n
  1. {{'twoFactorU2fGiveName' | i18n}}
  2. \n
  3. {{'twoFactorU2fPlugInReadKey' | i18n}}
  4. \n
  5. {{'twoFactorU2fTouchButton' | i18n}}
  6. \n
  7. {{'twoFactorU2fSaveForm' | i18n}}
  8. \n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n {{'twoFactorU2fWaiting' | i18n}}...\n \n \n \n {{'twoFactorU2fClickSave' | i18n}}\n \n \n \n {{'twoFactorU2fProblemReadingTryAgain' | i18n}}\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { UpdateTwoFactorYubioOtpRequest } from 'jslib/models/request/updateTwoFactorYubioOtpRequest';\nimport { TwoFactorYubiKeyResponse } from 'jslib/models/response/twoFactorYubiKeyResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-yubikey',\n templateUrl: 'two-factor-yubikey.component.html',\n})\nexport class TwoFactorYubiKeyComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Yubikey;\n keys: any[];\n nfc = false;\n\n formPromise: Promise;\n disablePromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n const request = new UpdateTwoFactorYubioOtpRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.key1 = this.keys != null && this.keys.length > 0 ? this.keys[0].key : null;\n request.key2 = this.keys != null && this.keys.length > 1 ? this.keys[1].key : null;\n request.key3 = this.keys != null && this.keys.length > 2 ? this.keys[2].key : null;\n request.key4 = this.keys != null && this.keys.length > 3 ? this.keys[3].key : null;\n request.key5 = this.keys != null && this.keys.length > 4 ? this.keys[4].key : null;\n request.nfc = this.nfc;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorYubiKey(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n this.toasterService.popAsync('success', null, this.i18nService.t('yubikeysUpdated'));\n });\n }\n\n disable() {\n return super.disable(this.disablePromise);\n }\n\n remove(key: any) {\n key.existingKey = null;\n key.key = null;\n }\n\n private processResponse(response: TwoFactorYubiKeyResponse) {\n this.enabled = response.enabled;\n this.keys = [\n { key: response.key1, existingKey: this.padRight(response.key1) },\n { key: response.key2, existingKey: this.padRight(response.key2) },\n { key: response.key3, existingKey: this.padRight(response.key3) },\n { key: response.key4, existingKey: this.padRight(response.key4) },\n { key: response.key5, existingKey: this.padRight(response.key5) },\n ];\n this.nfc = response.nfc || !response.enabled;\n }\n\n private padRight(str: string, character = '•', size = 44) {\n if (str == null || character == null || str.length >= size) {\n return str;\n }\n const max = (size - str.length) / character.length;\n for (let i = 0; i < max; i++) {\n str += character;\n }\n return str;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n YubiKey\n

\n \n
\n \n \n
\n
\n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \n

{{'twoFactorYubikeyWarning' | i18n}}

\n
    \n
  • {{'twoFactorYubikeySupportUsb' | i18n}}
  • \n
  • {{'twoFactorYubikeySupportMobile' | i18n}}
  • \n
\n
\n \"\"\n

{{'twoFactorYubikeyAdd' | i18n}}:

\n
    \n
  1. {{'twoFactorYubikeyPlugIn' | i18n}}
  2. \n
  3. {{'twoFactorYubikeySelectKey' | i18n}}
  4. \n
  5. {{'twoFactorYubikeyTouchButton' | i18n}}
  6. \n
  7. {{'twoFactorYubikeySaveForm' | i18n}}
  8. \n
\n
\n
\n
\n \n \n
\n {{k.existingKey}}\n \n
\n
\n
\n {{'nfcSupport' | i18n}}\n
\n \n \n
\n {{'twoFactorYubikeySupportsNfcDesc' | i18n}}\n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { ExportService } from 'jslib/abstractions/export.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { ExportComponent as BaseExportComponent } from '../../tools/export.component';\n\nimport { EventType } from 'jslib/enums/eventType';\n\n@Component({\n selector: 'app-org-export',\n templateUrl: '../../tools/export.component.html',\n})\nexport class ExportComponent extends BaseExportComponent {\n constructor(cryptoService: CryptoService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, exportService: ExportService,\n eventService: EventService, private route: ActivatedRoute) {\n super(cryptoService, i18nService, platformUtilsService, exportService, eventService);\n }\n\n ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n });\n }\n\n getExportData() {\n return this.exportService.getOrganizationExport(this.organizationId, this.format);\n }\n\n getFileName() {\n return super.getFileName('org');\n }\n\n async collectEvent(): Promise {\n // TODO\n // await this.eventService.collect(EventType.Organization_ClientExportedVault);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n ExposedPasswordsReportComponent as BaseExposedPasswordsReportComponent,\n} from '../../tools/exposed-passwords-report.component';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-exposed-passwords-report',\n templateUrl: '../../tools/exposed-passwords-report.component.html',\n})\nexport class ExposedPasswordsReportComponent extends BaseExposedPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, auditService: AuditService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService, private route: ActivatedRoute) {\n super(cipherService, auditService, componentFactoryResolver, messagingService, userService);\n }\n\n ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import { PasswordHistoryResponse } from '../response/passwordHistoryResponse';\n\nexport class PasswordHistoryData {\n password: string;\n lastUsedDate: string;\n\n constructor(response?: PasswordHistoryResponse) {\n if (response == null) {\n return;\n }\n\n this.password = response.password;\n this.lastUsedDate = response.lastUsedDate;\n }\n}\n","import { View } from './view';\n\nimport { Attachment } from '../domain/attachment';\nimport { SymmetricCryptoKey } from '../domain/symmetricCryptoKey';\n\nexport class AttachmentView implements View {\n id: string = null;\n url: string = null;\n size: string = null;\n sizeName: string = null;\n fileName: string = null;\n key: SymmetricCryptoKey = null;\n\n constructor(a?: Attachment) {\n if (!a) {\n return;\n }\n\n this.id = a.id;\n this.url = a.url;\n this.size = a.size;\n this.sizeName = a.sizeName;\n }\n\n get fileSize(): number {\n try {\n if (this.size != null) {\n return parseInt(this.size, null);\n }\n } catch { }\n return 0;\n }\n}\n","import { PasswordHistoryData } from '../data/passwordHistoryData';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nimport { PasswordHistoryView } from '../view/passwordHistoryView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Password extends Domain {\n password: EncString;\n lastUsedDate: Date;\n\n constructor(obj?: PasswordHistoryData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n password: null,\n }, alreadyEncrypted);\n this.lastUsedDate = new Date(obj.lastUsedDate);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new PasswordHistoryView(this), {\n password: null,\n }, orgId, encKey);\n }\n\n toPasswordHistoryData(): PasswordHistoryData {\n const ph = new PasswordHistoryData();\n ph.lastUsedDate = this.lastUsedDate.toISOString();\n this.buildDataModel(this, ph, {\n password: null,\n });\n return ph;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherCreateRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class CardApi extends BaseResponse {\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.cardholderName = this.getResponseProperty('CardholderName');\n this.brand = this.getResponseProperty('Brand');\n this.number = this.getResponseProperty('Number');\n this.expMonth = this.getResponseProperty('ExpMonth');\n this.expYear = this.getResponseProperty('ExpYear');\n this.code = this.getResponseProperty('Code');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { FieldType } from '../../enums/fieldType';\n\nexport class FieldApi extends BaseResponse {\n name: string;\n value: string;\n type: FieldType;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.value = this.getResponseProperty('Value');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class IdentityApi extends BaseResponse {\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.title = this.getResponseProperty('Title');\n this.firstName = this.getResponseProperty('FirstName');\n this.middleName = this.getResponseProperty('MiddleName');\n this.lastName = this.getResponseProperty('LastName');\n this.address1 = this.getResponseProperty('Address1');\n this.address2 = this.getResponseProperty('Address2');\n this.address3 = this.getResponseProperty('Address3');\n this.city = this.getResponseProperty('City');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.country = this.getResponseProperty('Country');\n this.company = this.getResponseProperty('Company');\n this.email = this.getResponseProperty('Email');\n this.phone = this.getResponseProperty('Phone');\n this.ssn = this.getResponseProperty('SSN');\n this.username = this.getResponseProperty('Username');\n this.passportNumber = this.getResponseProperty('PassportNumber');\n this.licenseNumber = this.getResponseProperty('LicenseNumber');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { LoginUriApi } from './loginUriApi';\n\nexport class LoginApi extends BaseResponse {\n uris: LoginUriApi[];\n username: string;\n password: string;\n passwordRevisionDate: string;\n totp: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.username = this.getResponseProperty('Username');\n this.password = this.getResponseProperty('Password');\n this.passwordRevisionDate = this.getResponseProperty('PasswordRevisionDate');\n this.totp = this.getResponseProperty('Totp');\n\n const uris = this.getResponseProperty('Uris');\n if (uris != null) {\n this.uris = uris.map((u: any) => new LoginUriApi(u));\n }\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { UriMatchType } from '../../enums/uriMatchType';\n\nexport class LoginUriApi extends BaseResponse {\n uri: string;\n match: UriMatchType = null;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.uri = this.getResponseProperty('Uri');\n const match = this.getResponseProperty('Match');\n this.match = match != null ? match : null;\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { SecureNoteType } from '../../enums/secureNoteType';\n\nexport class SecureNoteApi extends BaseResponse {\n type: SecureNoteType;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.type = this.getResponseProperty('Type');\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[appFallbackSrc]',\n})\nexport class FallbackSrcDirective {\n @Input('appFallbackSrc') appFallbackSrc: string;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('error') onError() {\n this.el.nativeElement.src = this.appFallbackSrc;\n }\n}\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { ImportService } from 'jslib/abstractions/import.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { ImportComponent as BaseImportComponent } from '../../tools/import.component';\n\n@Component({\n selector: 'app-org-import',\n templateUrl: '../../tools/import.component.html',\n})\nexport class ImportComponent extends BaseImportComponent {\n organizationName: string;\n\n constructor(i18nService: I18nService, toasterService: ToasterService,\n importService: ImportService, router: Router, private route: ActivatedRoute,\n platformUtilsService: PlatformUtilsService,\n private userService: UserService) {\n super(i18nService, toasterService, importService, router, platformUtilsService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n this.successNavigate = ['organizations', this.organizationId, 'vault'];\n super.ngOnInit();\n });\n const organization = await this.userService.getOrganization(this.organizationId);\n this.organizationName = organization.name;\n }\n\n async submit() {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('importWarning', this.organizationName),\n this.i18nService.t('warning'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n super.submit();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n InactiveTwoFactorReportComponent as BaseInactiveTwoFactorReportComponent,\n} from '../../tools/inactive-two-factor-report.component';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-inactive-two-factor-report',\n templateUrl: '../../tools/inactive-two-factor-report.component.html',\n})\nexport class InactiveTwoFactorReportComponent extends BaseInactiveTwoFactorReportComponent {\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport {\n ReusedPasswordsReportComponent as BaseReusedPasswordsReportComponent,\n} from '../../tools/reused-passwords-report.component';\n\n@Component({\n selector: 'app-reused-passwords-report',\n templateUrl: '../../tools/reused-passwords-report.component.html',\n})\nexport class ReusedPasswordsReportComponent extends BaseReusedPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-org-tools',\n templateUrl: 'tools.component.html',\n})\nexport class ToolsComponent {\n organization: Organization;\n accessReports = false;\n loading = true;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private messagingService: MessagingService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now\n // since all paid plans include useTotp\n this.accessReports = this.organization.useTotp;\n this.loading = false;\n });\n }\n\n upgradeOrganization() {\n this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n UnsecuredWebsitesReportComponent as BaseUnsecuredWebsitesReportComponent,\n} from '../../tools/unsecured-websites-report.component';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-unsecured-websites-report',\n templateUrl: '../../tools/unsecured-websites-report.component.html',\n})\nexport class UnsecuredWebsitesReportComponent extends BaseUnsecuredWebsitesReportComponent {\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport {\n WeakPasswordsReportComponent as BaseWeakPasswordsReportComponent,\n} from '../../tools/weak-passwords-report.component';\n\n@Component({\n selector: 'app-weak-passwords-report',\n templateUrl: '../../tools/weak-passwords-report.component.html',\n})\nexport class WeakPasswordsReportComponent extends BaseWeakPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, passwordGenerationService: PasswordGenerationService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService, private route: ActivatedRoute) {\n super(cipherService, passwordGenerationService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { ModalComponent } from '../../modal.component';\n\nimport { EntityEventsComponent } from '../manage/entity-events.component';\nimport { AddEditComponent } from './add-edit.component';\nimport { AttachmentsComponent } from './attachments.component';\nimport { CiphersComponent } from './ciphers.component';\nimport { CollectionsComponent } from './collections.component';\nimport { GroupingsComponent } from './groupings.component';\n\nconst BroadcasterSubscriptionId = 'OrgVaultComponent';\n\n@Component({\n selector: 'app-org-vault',\n templateUrl: 'vault.component.html',\n})\nexport class VaultComponent implements OnInit, OnDestroy {\n @ViewChild(GroupingsComponent, { static: true }) groupingsComponent: GroupingsComponent;\n @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('collections', { read: ViewContainerRef, static: true }) collectionsModalRef: ViewContainerRef;\n @ViewChild('eventsTemplate', { read: ViewContainerRef, static: true }) eventsModalRef: ViewContainerRef;\n\n organization: Organization;\n collectionId: string = null;\n type: CipherType = null;\n deleted: boolean = false;\n trashCleanupWarning: string = null;\n\n modal: ModalComponent = null;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private router: Router, private changeDetectorRef: ChangeDetectorRef,\n private syncService: SyncService, private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver, private messagingService: MessagingService,\n private broadcasterService: BroadcasterService, private ngZone: NgZone,\n private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.trashCleanupWarning = this.i18nService.t(\n this.platformUtilsService.isSelfHost() ? 'trashCleanupWarningSelfHosted' : 'trashCleanupWarning'\n );\n\n const queryParams = this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.groupingsComponent.organization = this.organization;\n this.ciphersComponent.organization = this.organization;\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.ciphersComponent.searchText = this.groupingsComponent.searchText = qParams.search;\n if (!this.organization.canManageAllCollections) {\n await this.syncService.fullSync(false);\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await Promise.all([\n this.groupingsComponent.load(),\n this.ciphersComponent.refresh(),\n ]);\n this.changeDetectorRef.detectChanges();\n }\n break;\n }\n });\n });\n }\n await this.groupingsComponent.load();\n\n if (qParams == null) {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n } else {\n if (qParams.deleted) {\n this.groupingsComponent.selectedTrash = true;\n await this.filterDeleted(true);\n } else if (qParams.type) {\n const t = parseInt(qParams.type, null);\n this.groupingsComponent.selectedType = t;\n await this.filterCipherType(t, true);\n } else if (qParams.collectionId) {\n this.groupingsComponent.selectedCollectionId = qParams.collectionId;\n await this.filterCollection(qParams.collectionId, true);\n } else {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n }\n }\n\n if (qParams.viewEvents != null) {\n const cipher = this.ciphersComponent.ciphers.filter(c => c.id === qParams.viewEvents);\n if (cipher.length > 0) {\n this.viewEvents(cipher[0]);\n }\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n if (queryParams != null) {\n queryParams.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async clearGroupingFilters() {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchVault');\n await this.ciphersComponent.applyFilter();\n this.clearFilters();\n this.go();\n }\n\n async filterCipherType(type: CipherType, load = false) {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchType');\n const filter = (c: CipherView) => c.type === type;\n if (load) {\n await this.ciphersComponent.reload(filter);\n } else {\n await this.ciphersComponent.applyFilter(filter);\n }\n this.clearFilters();\n this.type = type;\n this.go();\n }\n\n async filterCollection(collectionId: string, load = false) {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchCollection');\n const filter = (c: CipherView) => {\n if (collectionId === 'unassigned') {\n return c.collectionIds == null || c.collectionIds.length === 0;\n } else {\n return c.collectionIds != null && c.collectionIds.indexOf(collectionId) > -1;\n }\n };\n if (load) {\n await this.ciphersComponent.reload(filter);\n } else {\n await this.ciphersComponent.applyFilter(filter);\n }\n this.clearFilters();\n this.collectionId = collectionId;\n this.go();\n }\n\n async filterDeleted(load: boolean = false) {\n this.ciphersComponent.showAddNew = false;\n this.ciphersComponent.deleted = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchTrash');\n if (load) {\n await this.ciphersComponent.reload(null, true);\n } else {\n await this.ciphersComponent.applyFilter(null);\n }\n this.clearFilters();\n this.deleted = true;\n this.go();\n }\n\n filterSearchText(searchText: string) {\n this.ciphersComponent.searchText = searchText;\n this.ciphersComponent.search(200);\n }\n\n editCipherAttachments(cipher: CipherView) {\n if (this.organization.maxStorageGb == null || this.organization.maxStorageGb === 0) {\n this.messagingService.send('upgradeOrganization', { organizationId: cipher.organizationId });\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher.id;\n let madeAttachmentChanges = false;\n childComponent.onUploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onDeletedAttachment.subscribe(() => madeAttachmentChanges = true);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n if (madeAttachmentChanges) {\n await this.ciphersComponent.refresh();\n }\n madeAttachmentChanges = false;\n });\n }\n\n editCipherCollections(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.collectionsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(CollectionsComponent, this.collectionsModalRef);\n\n if (this.organization.canManageAllCollections) {\n childComponent.collectionIds = cipher.collectionIds;\n childComponent.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher.id;\n childComponent.onSavedCollections.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n addCipher() {\n const component = this.editCipher(null);\n component.organizationId = this.organization.id;\n component.type = this.type;\n if (this.organization.canManageAllCollections) {\n component.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n if (this.collectionId != null) {\n component.collectionIds = [this.collectionId];\n }\n }\n\n editCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n cloneCipher(cipher: CipherView) {\n const component = this.editCipher(cipher);\n component.cloneMode = true;\n component.organizationId = this.organization.id;\n if (this.organization.canManageAllCollections) {\n component.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n // Regardless of Admin state, the collection Ids need to passed manually as they are not assigned value\n // in the add-edit componenet\n component.collectionIds = cipher.collectionIds;\n }\n\n async viewEvents(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.eventsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityEventsComponent, this.eventsModalRef);\n\n childComponent.name = cipher.name;\n childComponent.organizationId = this.organization.id;\n childComponent.entityId = cipher.id;\n childComponent.showUser = true;\n childComponent.entity = 'cipher';\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private clearFilters() {\n this.collectionId = null;\n this.type = null;\n this.deleted = false;\n }\n\n private go(queryParams: any = null) {\n if (queryParams == null) {\n queryParams = {\n type: this.type,\n collectionId: this.collectionId,\n deleted: this.deleted ? true : null,\n };\n }\n\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: queryParams,\n replaceUrl: true,\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n

\n {{'vault' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n \n \n
\n
\n \n {{trashCleanupWarning}}\n \n \n \n
\n
\n
\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from '../../vault/attachments.component';\n\n@Component({\n selector: 'app-org-vault-attachments',\n templateUrl: '../../vault/attachments.component.html',\n})\nexport class AttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = false;\n organization: Organization;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, apiService);\n }\n\n protected async reupload(attachment: AttachmentView) {\n if (this.organization.canManageAllCollections && this.showFixOldAttachments(attachment)) {\n await super.reuploadCipherAttachment(attachment, true);\n }\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n return new Cipher(new CipherData(response));\n }\n\n protected saveCipherAttachment(file: File) {\n return this.cipherService.saveAttachmentWithServer(this.cipherDomain, file, this.organization.canManageAllCollections);\n }\n\n protected deleteCipherAttachment(attachmentId: string) {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipherAttachment(attachmentId);\n }\n return this.apiService.deleteCipherAttachmentAdmin(this.cipherId, attachmentId);\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return attachment.key == null && this.organization.canManageAllCollections;\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Cipher } from '../../models/domain/cipher';\nimport { ErrorResponse } from '../../models/response';\n\nimport { AttachmentView } from '../../models/view/attachmentView';\nimport { CipherView } from '../../models/view/cipherView';\n\n@Directive()\nexport class AttachmentsComponent implements OnInit {\n @Input() cipherId: string;\n @Output() onUploadedAttachment = new EventEmitter();\n @Output() onDeletedAttachment = new EventEmitter();\n @Output() onReuploadedAttachment = new EventEmitter();\n\n cipher: CipherView;\n cipherDomain: Cipher;\n hasUpdatedKey: boolean;\n canAccessAttachments: boolean;\n formPromise: Promise;\n deletePromises: { [id: string]: Promise; } = {};\n reuploadPromises: { [id: string]: Promise; } = {};\n emergencyAccessId?: string = null;\n\n constructor(protected cipherService: CipherService, protected i18nService: I18nService,\n protected cryptoService: CryptoService, protected userService: UserService,\n protected platformUtilsService: PlatformUtilsService, protected apiService: ApiService,\n protected win: Window) { }\n\n async ngOnInit() {\n await this.init();\n }\n\n async submit() {\n if (!this.hasUpdatedKey) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('updateKey'));\n return;\n }\n\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n if (files[0].size > 524288000) { // 500 MB\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('maxFileSize'));\n return;\n }\n\n try {\n this.formPromise = this.saveCipherAttachment(files[0]);\n this.cipherDomain = await this.formPromise;\n this.cipher = await this.cipherDomain.decrypt();\n this.platformUtilsService.showToast('success', null, this.i18nService.t('attachmentSaved'));\n this.onUploadedAttachment.emit();\n } catch { }\n\n // reset file input\n // ref: https://stackoverflow.com/a/20552042\n fileEl.type = '';\n fileEl.type = 'file';\n fileEl.value = '';\n }\n\n async delete(attachment: AttachmentView) {\n if (this.deletePromises[attachment.id] != null) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteAttachmentConfirmation'), this.i18nService.t('deleteAttachment'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.deletePromises[attachment.id] = this.deleteCipherAttachment(attachment.id);\n await this.deletePromises[attachment.id];\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedAttachment'));\n const i = this.cipher.attachments.indexOf(attachment);\n if (i > -1) {\n this.cipher.attachments.splice(i, 1);\n }\n } catch { }\n\n this.deletePromises[attachment.id] = null;\n this.onDeletedAttachment.emit();\n }\n\n async download(attachment: AttachmentView) {\n const a = (attachment as any);\n if (a.downloading) {\n return;\n }\n\n if (!this.canAccessAttachments) {\n this.platformUtilsService.showToast('error', this.i18nService.t('premiumRequired'),\n this.i18nService.t('premiumRequiredDesc'));\n return;\n }\n\n let url: string;\n try {\n const attachmentDownloadResponse = await this.apiService.getAttachmentData(this.cipher.id, attachment.id,\n this.emergencyAccessId);\n url = attachmentDownloadResponse.url;\n } catch (e) {\n if (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404) {\n url = attachment.url;\n } else if (e instanceof ErrorResponse) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n } else {\n throw e;\n }\n }\n\n a.downloading = true;\n const response = await fetch(new Request(url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n a.downloading = false;\n return;\n }\n\n try {\n const buf = await response.arrayBuffer();\n const key = attachment.key != null ? attachment.key :\n await this.cryptoService.getOrgKey(this.cipher.organizationId);\n const decBuf = await this.cryptoService.decryptFromBytes(buf, key);\n this.platformUtilsService.saveFile(this.win, decBuf, null, attachment.fileName);\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n a.downloading = false;\n }\n\n protected async init() {\n this.cipherDomain = await this.loadCipher();\n this.cipher = await this.cipherDomain.decrypt();\n\n this.hasUpdatedKey = await this.cryptoService.hasEncKey();\n const canAccessPremium = await this.userService.canAccessPremium();\n this.canAccessAttachments = canAccessPremium || this.cipher.organizationId != null;\n\n if (!this.canAccessAttachments) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.platformUtilsService.launchUri('https://vault.bitwarden.com/#/?premium=purchase');\n }\n } else if (!this.hasUpdatedKey) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('updateKey'), this.i18nService.t('featureUnavailable'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'), 'warning');\n if (confirmed) {\n this.platformUtilsService.launchUri('https://help.bitwarden.com/article/update-encryption-key/');\n }\n }\n }\n\n protected async reuploadCipherAttachment(attachment: AttachmentView, admin: boolean) {\n const a = (attachment as any);\n if (attachment.key != null || a.downloading || this.reuploadPromises[attachment.id] != null) {\n return;\n }\n\n try {\n this.reuploadPromises[attachment.id] = Promise.resolve().then(async () => {\n // 1. Download\n a.downloading = true;\n const response = await fetch(new Request(attachment.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n a.downloading = false;\n return;\n }\n\n try {\n // 2. Resave\n const buf = await response.arrayBuffer();\n const key = attachment.key != null ? attachment.key :\n await this.cryptoService.getOrgKey(this.cipher.organizationId);\n const decBuf = await this.cryptoService.decryptFromBytes(buf, key);\n this.cipherDomain = await this.cipherService.saveAttachmentRawWithServer(\n this.cipherDomain, attachment.fileName, decBuf, admin);\n this.cipher = await this.cipherDomain.decrypt();\n\n // 3. Delete old\n this.deletePromises[attachment.id] = this.deleteCipherAttachment(attachment.id);\n await this.deletePromises[attachment.id];\n const foundAttachment = this.cipher.attachments.filter(a2 => a2.id === attachment.id);\n if (foundAttachment.length > 0) {\n const i = this.cipher.attachments.indexOf(foundAttachment[0]);\n if (i > -1) {\n this.cipher.attachments.splice(i, 1);\n }\n }\n\n this.platformUtilsService.showToast('success', null, this.i18nService.t('attachmentSaved'));\n this.onReuploadedAttachment.emit();\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n a.downloading = false;\n });\n await this.reuploadPromises[attachment.id];\n } catch { }\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected saveCipherAttachment(file: File) {\n return this.cipherService.saveAttachmentWithServer(this.cipherDomain, file);\n }\n\n protected deleteCipherAttachment(attachmentId: string) {\n return this.cipherService.deleteAttachmentWithServer(this.cipher.id, attachmentId);\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class GlobalDomainResponse extends BaseResponse {\n type: number;\n domains: string[];\n excluded: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.domains = this.getResponseProperty('Domains');\n this.excluded = this.getResponseProperty('Excluded');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class IdentityTokenResponse extends BaseResponse {\n accessToken: string;\n expiresIn: number;\n refreshToken: string;\n tokenType: string;\n\n resetMasterPassword: boolean;\n privateKey: string;\n key: string;\n twoFactorToken: string;\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n this.accessToken = response.access_token;\n this.expiresIn = response.expires_in;\n this.refreshToken = response.refresh_token;\n this.tokenType = response.token_type;\n\n this.resetMasterPassword = this.getResponseProperty('ResetMasterPassword');\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.key = this.getResponseProperty('Key');\n this.twoFactorToken = this.getResponseProperty('TwoFactorToken');\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class IdentityTwoFactorResponse extends BaseResponse {\n twoFactorProviders: TwoFactorProviderType[];\n twoFactorProviders2 = new Map();\n\n constructor(response: any) {\n super(response);\n this.twoFactorProviders = this.getResponseProperty('TwoFactorProviders');\n const twoFactorProviders2 = this.getResponseProperty('TwoFactorProviders2');\n if (twoFactorProviders2 != null) {\n for (const prop in twoFactorProviders2) {\n if (twoFactorProviders2.hasOwnProperty(prop)) {\n this.twoFactorProviders2.set(parseInt(prop, null), twoFactorProviders2[prop]);\n }\n }\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class ListResponse extends BaseResponse {\n data: T[];\n continuationToken: string;\n\n constructor(response: any, t: new (dataResponse: any) => T) {\n super(response);\n const data = this.getResponseProperty('Data');\n this.data = data == null ? [] : data.map((dr: any) => new t(dr));\n this.continuationToken = this.getResponseProperty('ContinuationToken');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class ProfileOrganizationResponse extends BaseResponse {\n id: string;\n name: string;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n key: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordKey: string;\n userId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.usePolicies = this.getResponseProperty('UsePolicies');\n this.useGroups = this.getResponseProperty('UseGroups');\n this.useDirectory = this.getResponseProperty('UseDirectory');\n this.useEvents = this.getResponseProperty('UseEvents');\n this.useTotp = this.getResponseProperty('UseTotp');\n this.use2fa = this.getResponseProperty('Use2fa');\n this.useApi = this.getResponseProperty('UseApi');\n this.useBusinessPortal = this.getResponseProperty('UseBusinessPortal');\n this.useSso = this.getResponseProperty('UseSso');\n this.selfHost = this.getResponseProperty('SelfHost');\n this.usersGetPremium = this.getResponseProperty('UsersGetPremium');\n this.seats = this.getResponseProperty('Seats');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.key = this.getResponseProperty('Key');\n this.status = this.getResponseProperty('Status');\n this.type = this.getResponseProperty('Type');\n this.enabled = this.getResponseProperty('Enabled');\n this.ssoBound = this.getResponseProperty('SsoBound');\n this.identifier = this.getResponseProperty('Identifier');\n this.permissions = new PermissionsApi(this.getResponseProperty('permissions'));\n this.resetPasswordKey = this.getResponseProperty('ResetPasswordKey');\n this.userId = this.getResponseProperty('UserId');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\nimport { CollectionDetailsResponse } from './collectionResponse';\nimport { DomainsResponse } from './domainsResponse';\nimport { FolderResponse } from './folderResponse';\nimport { PolicyResponse } from './policyResponse';\nimport { ProfileResponse } from './profileResponse';\nimport { SendResponse } from './sendResponse';\n\nexport class SyncResponse extends BaseResponse {\n profile?: ProfileResponse;\n folders: FolderResponse[] = [];\n collections: CollectionDetailsResponse[] = [];\n ciphers: CipherResponse[] = [];\n domains?: DomainsResponse;\n policies?: PolicyResponse[] = [];\n sends: SendResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n const profile = this.getResponseProperty('Profile');\n if (profile != null) {\n this.profile = new ProfileResponse(profile);\n }\n\n const folders = this.getResponseProperty('Folders');\n if (folders != null) {\n this.folders = folders.map((f: any) => new FolderResponse(f));\n }\n\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new CollectionDetailsResponse(c));\n }\n\n const ciphers = this.getResponseProperty('Ciphers');\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n\n const domains = this.getResponseProperty('Domains');\n if (domains != null) {\n this.domains = new DomainsResponse(domains);\n }\n\n const policies = this.getResponseProperty('Policies');\n if (policies != null) {\n this.policies = policies.map((p: any) => new PolicyResponse(p));\n }\n\n const sends = this.getResponseProperty('Sends');\n if (sends != null) {\n this.sends = sends.map((s: any) => new SendResponse(s));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class PolicyResponse extends BaseResponse {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.type = this.getResponseProperty('Type');\n this.data = this.getResponseProperty('Data');\n this.enabled = this.getResponseProperty('Enabled');\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherCollectionsRequest } from 'jslib/models/request/cipherCollectionsRequest';\n\nimport { CollectionsComponent as BaseCollectionsComponent } from '../../vault/collections.component';\n\n@Component({\n selector: 'app-org-vault-collections',\n templateUrl: '../../vault/collections.component.html',\n})\nexport class CollectionsComponent extends BaseCollectionsComponent {\n organization: Organization;\n\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, cipherService: CipherService,\n private apiService: ApiService) {\n super(collectionService, platformUtilsService, i18nService, cipherService);\n this.allowSelectNone = true;\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n return new Cipher(new CipherData(response));\n }\n\n protected loadCipherCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCipherCollections();\n }\n return this.collectionIds;\n }\n\n protected loadCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCollections();\n }\n return Promise.resolve(this.collections);\n }\n\n protected saveCollections() {\n if (this.organization.canManageAllCollections) {\n const request = new CipherCollectionsRequest(this.cipherDomain.collectionIds);\n return this.apiService.putCipherCollectionsAdmin(this.cipherId, request);\n } else {\n return super.saveCollections();\n }\n }\n}\n","export class CipherCollectionsRequest {\n collectionIds: string[];\n\n constructor(collectionIds: string[]) {\n this.collectionIds = collectionIds == null ? [] : collectionIds;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherBulkDeleteRequest } from 'jslib/models/request/cipherBulkDeleteRequest';\n\n@Component({\n selector: 'app-vault-bulk-delete',\n templateUrl: 'bulk-delete.component.html',\n})\nexport class BulkDeleteComponent {\n @Input() cipherIds: string[] = [];\n @Input() permanent: boolean = false;\n @Input() organization: Organization;\n @Output() onDeleted = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private cipherService: CipherService, private toasterService: ToasterService,\n private i18nService: I18nService, private apiService: ApiService) { }\n\n async submit() {\n if (!this.organization || !this.organization.canManageAllCollections) {\n await this.deleteCiphers();\n } else {\n await this.deleteCiphersAdmin();\n }\n\n await this.formPromise;\n\n this.onDeleted.emit();\n this.toasterService.popAsync('success', null, this.i18nService.t(this.permanent ? 'permanentlyDeletedItems'\n : 'deletedItems'));\n }\n\n private async deleteCiphers() {\n if (this.permanent) {\n this.formPromise = await this.cipherService.deleteManyWithServer(this.cipherIds);\n } else {\n this.formPromise = await this.cipherService.softDeleteManyWithServer(this.cipherIds);\n }\n }\n\n private async deleteCiphersAdmin() {\n const deleteRequest = new CipherBulkDeleteRequest(this.cipherIds, this.organization.id);\n if (this.permanent) {\n this.formPromise = await this.apiService.deleteManyCiphersAdmin(deleteRequest);\n } else {\n this.formPromise = await this.apiService.putDeleteManyCiphersAdmin(deleteRequest);\n }\n }\n}\n","
\n
\n
\n
\n

\n {{(permanent ? 'permanentlyDeleteSelected' : 'deleteSelected') | i18n}}\n

\n \n
\n
\n {{(permanent ? 'permanentlyDeleteSelectedItemsDesc' : 'deleteSelectedItemsDesc') | i18n: cipherIds.length}}\n
\n
\n \n \n
\n
\n
\n
\n","export class CipherBulkDeleteRequest {\n ids: string[];\n organizationId: string;\n\n constructor(ids: string[], organizationId?: string) {\n this.ids = ids == null ? [] : ids;\n this.organizationId = organizationId;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { FolderView } from 'jslib/models/view/folderView';\n\n@Component({\n selector: 'app-vault-bulk-move',\n templateUrl: 'bulk-move.component.html',\n})\nexport class BulkMoveComponent implements OnInit {\n @Input() cipherIds: string[] = [];\n @Output() onMoved = new EventEmitter();\n\n folderId: string = null;\n folders: FolderView[] = [];\n formPromise: Promise;\n\n constructor(private cipherService: CipherService, private toasterService: ToasterService,\n private i18nService: I18nService, private folderService: FolderService) { }\n\n async ngOnInit() {\n this.folders = await this.folderService.getAllDecrypted();\n this.folderId = this.folders[0].id;\n }\n\n async submit() {\n this.formPromise = this.cipherService.moveManyWithServer(this.cipherIds, this.folderId);\n await this.formPromise;\n this.onMoved.emit();\n this.toasterService.popAsync('success', null, this.i18nService.t('movedItems'));\n }\n}\n","
\n
\n
\n
\n

\n {{'moveSelected' | i18n}}\n

\n \n
\n
\n

{{'moveSelectedItemsDesc' | i18n: cipherIds.length}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-vault-bulk-restore',\n templateUrl: 'bulk-restore.component.html',\n})\nexport class BulkRestoreComponent {\n @Input() cipherIds: string[] = [];\n @Output() onRestored = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private cipherService: CipherService, private toasterService: ToasterService,\n private i18nService: I18nService) { }\n\n async submit() {\n this.formPromise = this.cipherService.restoreManyWithServer(this.cipherIds);\n await this.formPromise;\n this.onRestored.emit();\n this.toasterService.popAsync('success', null, this.i18nService.t('restoredItems'));\n }\n}\n","
\n
\n
\n
\n

\n {{'restoreSelected' | i18n}}\n

\n \n
\n
\n {{'restoreSelectedItemsDesc' | i18n: cipherIds.length}}\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-vault-bulk-share',\n templateUrl: 'bulk-share.component.html',\n})\nexport class BulkShareComponent implements OnInit {\n @Input() ciphers: CipherView[] = [];\n @Input() organizationId: string;\n @Output() onShared = new EventEmitter();\n\n nonShareableCount = 0;\n collections: CollectionView[] = [];\n organizations: Organization[] = [];\n shareableCiphers: CipherView[] = [];\n formPromise: Promise;\n\n private writeableCollections: CollectionView[] = [];\n\n constructor(private cipherService: CipherService, private toasterService: ToasterService,\n private i18nService: I18nService, private collectionService: CollectionService,\n private userService: UserService) { }\n\n async ngOnInit() {\n this.shareableCiphers = this.ciphers.filter(c => !c.hasOldAttachments && c.organizationId == null);\n this.nonShareableCount = this.ciphers.length - this.shareableCiphers.length;\n const allCollections = await this.collectionService.getAllDecrypted();\n this.writeableCollections = allCollections.filter(c => !c.readOnly);\n this.organizations = await this.userService.getAllOrganizations();\n if (this.organizationId == null && this.organizations.length > 0) {\n this.organizationId = this.organizations[0].id;\n }\n this.filterCollections();\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n filterCollections() {\n this.selectAll(false);\n if (this.organizationId == null || this.writeableCollections.length === 0) {\n this.collections = [];\n } else {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.organizationId);\n }\n }\n\n async submit() {\n const checkedCollectionIds = this.collections.filter(c => (c as any).checked).map(c => c.id);\n try {\n this.formPromise = this.cipherService.shareManyWithServer(this.shareableCiphers, this.organizationId,\n checkedCollectionIds);\n await this.formPromise;\n this.onShared.emit();\n this.toasterService.popAsync('success', null, this.i18nService.t('sharedItems'));\n } catch { }\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n const collections = select ? this.collections : this.writeableCollections;\n collections.forEach(c => this.check(c, select));\n }\n\n get canSave() {\n if (this.shareableCiphers != null && this.shareableCiphers.length > 0 && this.collections != null) {\n for (let i = 0; i < this.collections.length; i++) {\n if ((this.collections[i] as any).checked) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","
\n
\n
\n
\n

\n {{'shareSelected' | i18n}}\n

\n \n
\n
\n

{{'shareManyDesc' | i18n}}

\n

{{'shareSelectedItemsCountDesc' | i18n: this.ciphers.length : shareableCiphers.length : nonShareableCount}}\n

\n
\n \n \n
\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { SendAccess } from 'jslib/models/domain/sendAccess';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\n\nimport { SendAccessView } from 'jslib/models/view/sendAccessView';\n\nimport { SendType } from 'jslib/enums/sendType';\nimport { SendAccessRequest } from 'jslib/models/request/sendAccessRequest';\nimport { ErrorResponse } from 'jslib/models/response/errorResponse';\n\nimport { SendAccessResponse } from 'jslib/models/response/sendAccessResponse';\n\n@Component({\n selector: 'app-send-access',\n templateUrl: 'access.component.html',\n})\nexport class AccessComponent implements OnInit {\n send: SendAccessView;\n sendType = SendType;\n downloading = false;\n loading = true;\n passwordRequired = false;\n formPromise: Promise;\n password: string;\n showText = false;\n unavailable = false;\n error = false;\n hideEmail = false;\n\n private id: string;\n private key: string;\n private decKey: SymmetricCryptoKey;\n private accessRequest: SendAccessRequest;\n\n constructor(private i18nService: I18nService, private cryptoFunctionService: CryptoFunctionService,\n private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private route: ActivatedRoute, private cryptoService: CryptoService) {\n }\n\n get sendText() {\n if (this.send == null || this.send.text == null) {\n return null;\n }\n return this.showText ? this.send.text.text : this.send.text.maskedText;\n }\n\n get expirationDate() {\n if (this.send == null || this.send.expirationDate == null) {\n return null;\n }\n return this.send.expirationDate;\n }\n\n get creatorIdentifier() {\n if (this.send == null || this.send.creatorIdentifier == null) {\n return null;\n }\n return this.send.creatorIdentifier;\n }\n\n ngOnInit() {\n this.route.params.subscribe(async params => {\n this.id = params.sendId;\n this.key = params.key;\n if (this.key == null || this.id == null) {\n return;\n }\n await this.load();\n });\n }\n\n async download() {\n if (this.send == null || this.decKey == null) {\n return;\n }\n\n if (this.downloading) {\n return;\n }\n\n\n const downloadData = await this.apiService.getSendFileDownloadData(this.send, this.accessRequest);\n\n if (Utils.isNullOrWhitespace(downloadData.url)) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('missingSendFile'));\n return;\n }\n\n this.downloading = true;\n const response = await fetch(new Request(downloadData.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n this.downloading = false;\n return;\n }\n\n try {\n const buf = await response.arrayBuffer();\n const decBuf = await this.cryptoService.decryptFromBytes(buf, this.decKey);\n this.platformUtilsService.saveFile(window, decBuf, null, this.send.file.fileName);\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n this.downloading = false;\n }\n\n copyText() {\n this.platformUtilsService.copyToClipboard(this.send.text.text);\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('valueCopied', this.i18nService.t('sendTypeText')));\n }\n\n toggleText() {\n this.showText = !this.showText;\n }\n\n async load() {\n this.unavailable = false;\n this.error = false;\n this.hideEmail = false;\n const keyArray = Utils.fromUrlB64ToArray(this.key);\n this.accessRequest = new SendAccessRequest();\n if (this.password != null) {\n const passwordHash = await this.cryptoFunctionService.pbkdf2(this.password, keyArray, 'sha256', 100000);\n this.accessRequest.password = Utils.fromBufferToB64(passwordHash);\n }\n try {\n let sendResponse: SendAccessResponse = null;\n if (this.loading) {\n sendResponse = await this.apiService.postSendAccess(this.id, this.accessRequest);\n } else {\n this.formPromise = this.apiService.postSendAccess(this.id, this.accessRequest);\n sendResponse = await this.formPromise;\n }\n this.passwordRequired = false;\n const sendAccess = new SendAccess(sendResponse);\n this.decKey = await this.cryptoService.makeSendKey(keyArray);\n this.send = await sendAccess.decrypt(this.decKey);\n this.showText = this.send.text != null ? !this.send.text.hidden : true;\n } catch (e) {\n if (e instanceof ErrorResponse) {\n if (e.statusCode === 401) {\n this.passwordRequired = true;\n } else if (e.statusCode === 404) {\n this.unavailable = true;\n } else {\n this.error = true;\n }\n }\n }\n this.loading = false;\n this.hideEmail = this.creatorIdentifier == null && !this.passwordRequired && !this.loading && !this.unavailable;\n }\n}\n","
\n
\n
\n

Bitwarden Send

\n
\n
\n

{{'sendCreatorIdentifier' | i18n: creatorIdentifier }}

\n
\n
\n \n {{'viewSendHiddenEmailWarning' | i18n }} \n {{'learnMore' | i18n}}.\n \n
\n
\n
\n
\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'sendProtectedPassword' | i18n}}

\n

{{'sendProtectedPasswordDontKnow' | i18n}}

\n
\n \n \n
\n
\n \n
\n
\n
\n {{'sendAccessUnavailable' | i18n}}\n
\n
\n {{'unexpectedError' | i18n}}\n
\n
\n

{{send.name}}

\n
\n \n \n {{'sendHiddenByDefault' | i18n}}\n
\n \n
\n \n \n
\n \n \n

{{send.file.fileName}}

\n \n \n
\n

Expires:\n {{expirationDate | date: 'medium'}}

\n
\n
\n
\n
\n

{{'sendAccessTaglineProductDesc' | i18n}}
\n {{'sendAccessTaglineLearnMore' | i18n}} Bitwarden Send\n {{'sendAccessTaglineOr' | i18n}} {{'sendAccessTaglineSignUp' | i18n}}\n {{'sendAccessTaglineTryToday' | i18n}}\n

\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n NgZone,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { SendView } from 'jslib/models/view/sendView';\n\nimport { SendComponent as BaseSendComponent } from 'jslib/angular/components/send/send.component';\n\nimport { AddEditComponent } from './add-edit.component';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { SendService } from 'jslib/abstractions/send.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'SendComponent';\n\n@Component({\n selector: 'app-send',\n templateUrl: 'send.component.html',\n})\nexport class SendComponent extends BaseSendComponent {\n @ViewChild('sendAddEdit', { read: ViewContainerRef, static: true }) sendAddEditModalRef: ViewContainerRef;\n\n modal: ModalComponent = null;\n\n constructor(sendService: SendService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, environmentService: EnvironmentService,\n ngZone: NgZone, searchService: SearchService, policyService: PolicyService, userService: UserService,\n private componentFactoryResolver: ComponentFactoryResolver, private broadcasterService: BroadcasterService) {\n super(sendService, i18nService, platformUtilsService, environmentService, ngZone, searchService,\n policyService, userService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n await this.load();\n\n // Broadcaster subscription - load if sync completes in the background\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await this.load();\n }\n break;\n }\n });\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n addSend() {\n if (this.disableSend) {\n return;\n }\n\n const component = this.editSend(null);\n component.type = this.type;\n }\n\n editSend(send: SendView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.sendAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n AddEditComponent, this.sendAddEditModalRef);\n\n childComponent.sendId = send == null ? null : send.id;\n childComponent.onSavedSend.subscribe(async (s: SendView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onDeletedSend.subscribe(async (s: SendView) => {\n this.modal.close();\n await this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n}\n","
\n
\n
\n {{'sendDisabled' | i18n}}\n
\n
\n {{'sendDisabledWarning' | i18n}}\n
\n
\n
\n
\n
\n
\n {{'filters' | i18n}}\n
\n
\n \n \n

{{'types' | i18n}}

\n \n
\n
\n
\n
\n
\n

\n {{'send' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n {{s.name}}\n \n \n {{'disabled' | i18n}}\n \n \n \n {{'password' | i18n}}\n \n \n \n {{'maxAccessCountReached' | i18n}}\n \n \n \n {{'expired' | i18n}}\n \n \n \n {{'pendingDeletion' | i18n}}\n \n
\n {{s.deletionDate | date:'medium'}}\n
\n \n
\n
\n \n \n {{'loading' | i18n}}\n \n \n

{{'noSendsInList' | i18n}}

\n \n
\n
\n
\n
\n
\n\n","import { DatePipe } from '@angular/common';\n\nimport { Component } from '@angular/core';\n\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SendService } from 'jslib/abstractions/send.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/send/add-edit.component';\n\n@Component({\n selector: 'app-send-add-edit',\n templateUrl: 'add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n constructor(i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n environmentService: EnvironmentService, datePipe: DatePipe,\n sendService: SendService, userService: UserService,\n messagingService: MessagingService, policyService: PolicyService) {\n super(i18nService, platformUtilsService, environmentService, datePipe, sendService, userService,\n messagingService, policyService);\n }\n\n copyLinkToClipboard(link: string) {\n // Copy function on web depends on the modal being open or not. Since this event occurs during a transition\n // of the modal closing we need to add a small delay to make sure state of the DOM is consistent.\n window.setTimeout(() => super.copyLinkToClipboard(link), 500);\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'sendDisabledWarning' | i18n}}\n \n \n {{'sendOptionsPolicyInEffect' | i18n}}\n
    \n
  • {{'sendDisableHideEmailInEffect' | i18n}}
  • \n
\n
\n
\n
\n \n \n {{'sendNameDesc' | i18n}}\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n \n \n {{'sendTextDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n {{'file' | i18n}}\n {{send.file.fileName}} ({{send.file.sizeName}})\n
\n
\n \n \n {{'sendFileDesc' | i18n}} {{'maxFileSize' |\n i18n}}\n
\n
\n
\n

{{'share' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n

{{'options' | i18n}}

\n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
{{'deletionDateDesc' | i18n}}
\n
\n
\n
\n \n \n {{'clear' | i18n}}\n \n
\n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
{{'expirationDateDesc' | i18n}}
\n
\n
\n
\n
\n \n \n
{{'maxAccessCountDesc' | i18n}}
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n \n
\n
\n
{{'sendPasswordDesc' | i18n}}
\n
\n
\n
\n \n \n
{{'sendNotesDesc' | i18n}}
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n","import { SendType } from '../../enums/sendType';\nimport { Utils } from '../../misc/utils';\n\nimport { Send } from '../domain/send';\nimport { SymmetricCryptoKey } from '../domain/symmetricCryptoKey';\n\nimport { SendFileView } from './sendFileView';\nimport { SendTextView } from './sendTextView';\nimport { View } from './view';\n\nexport class SendView implements View {\n id: string = null;\n accessId: string = null;\n name: string = null;\n notes: string = null;\n key: ArrayBuffer;\n cryptoKey: SymmetricCryptoKey;\n type: SendType = null;\n text = new SendTextView();\n file = new SendFileView();\n maxAccessCount?: number = null;\n accessCount: number = 0;\n revisionDate: Date = null;\n deletionDate: Date = null;\n expirationDate: Date = null;\n password: string = null;\n disabled: boolean = false;\n hideEmail: boolean = false;\n\n constructor(s?: Send) {\n if (!s) {\n return;\n }\n\n this.id = s.id;\n this.accessId = s.accessId;\n this.type = s.type;\n this.maxAccessCount = s.maxAccessCount;\n this.accessCount = s.accessCount;\n this.revisionDate = s.revisionDate;\n this.deletionDate = s.deletionDate;\n this.expirationDate = s.expirationDate;\n this.disabled = s.disabled;\n this.password = s.password;\n this.hideEmail = s.hideEmail;\n }\n\n get urlB64Key(): string {\n return Utils.fromBufferToUrlB64(this.key);\n }\n\n get maxAccessCountReached(): boolean {\n if (this.maxAccessCount == null) {\n return false;\n }\n return this.accessCount >= this.maxAccessCount;\n }\n\n get expired(): boolean {\n if (this.expirationDate == null) {\n return false;\n }\n return this.expirationDate <= new Date();\n }\n\n get pendingDelete(): boolean {\n return this.deletionDate <= new Date();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ModalComponent } from '../modal.component';\nimport { ApiKeyComponent } from './api-key.component';\nimport { DeauthorizeSessionsComponent } from './deauthorize-sessions.component';\nimport { DeleteAccountComponent } from './delete-account.component';\nimport { PurgeVaultComponent } from './purge-vault.component';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-account',\n templateUrl: 'account.component.html',\n})\nexport class AccountComponent {\n @ViewChild('deauthorizeSessionsTemplate', { read: ViewContainerRef, static: true }) deauthModalRef: ViewContainerRef;\n @ViewChild('purgeVaultTemplate', { read: ViewContainerRef, static: true }) purgeModalRef: ViewContainerRef;\n @ViewChild('deleteAccountTemplate', { read: ViewContainerRef, static: true }) deleteModalRef: ViewContainerRef;\n @ViewChild('viewUserApiKeyTemplate', { read: ViewContainerRef, static: true }) viewUserApiKeyModalRef: ViewContainerRef;\n @ViewChild('rotateUserApiKeyTemplate', { read: ViewContainerRef, static: true }) rotateUserApiKeyModalRef: ViewContainerRef;\n\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private apiService: ApiService,\n private userService: UserService) { }\n\n deauthorizeSessions() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deauthModalRef.createComponent(factory).instance;\n this.modal.show(DeauthorizeSessionsComponent, this.deauthModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n purgeVault() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.purgeModalRef.createComponent(factory).instance;\n this.modal.show(PurgeVaultComponent, this.purgeModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n deleteAccount() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deleteModalRef.createComponent(factory).instance;\n this.modal.show(DeleteAccountComponent, this.deleteModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async viewUserApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.viewUserApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.viewUserApiKeyModalRef);\n childComponent.keyType = 'user';\n childComponent.entityId = await this.userService.getUserId();\n childComponent.postKey = this.apiService.postUserApiKey.bind(this.apiService);\n childComponent.scope = 'api';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'userApiKeyWarning';\n childComponent.apiKeyDescription = 'userApiKeyDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async rotateUserApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.rotateUserApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.rotateUserApiKeyModalRef);\n childComponent.keyType = 'user';\n childComponent.isRotation = true;\n childComponent.entityId = await this.userService.getUserId();\n childComponent.postKey = this.apiService.postUserRotateApiKey.bind(this.apiService);\n childComponent.scope = 'api';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'userApiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyRotateDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n}\n","
\n

{{'myAccount' | i18n}}

\n
\n\n
\n

{{'changeEmail' | i18n}}

\n
\n\n
\n

{{'changeMasterPassword' | i18n}}

\n
\n\n
\n

{{'encKeySettings' | i18n}}

\n
\n\n
\n

{{'apiKey' | i18n}}

\n
\n

\n {{'userApiKeyDesc' | i18n}}\n

\n\n\n
\n

{{'dangerZone' | i18n}}

\n
\n
\n
\n

{{'dangerZoneDesc' | i18n}}

\n \n \n \n
\n
\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-deauthorize-sessions',\n templateUrl: 'deauthorize-sessions.component.html',\n})\nexport class DeauthorizeSessionsComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postSecurityStamp(request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('sessionsDeauthorized'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deauthorizeSessions' | i18n}}

\n \n
\n
\n

{{'deauthorizeSessionsDesc' | i18n}}

\n {{'deauthorizeSessionsWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-delete-account',\n templateUrl: 'delete-account.component.html',\n})\nexport class DeleteAccountComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.deleteAccount(request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('accountDeleted'),\n this.i18nService.t('accountDeletedDesc'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deleteAccount' | i18n}}

\n \n
\n
\n

{{'deleteAccountDesc' | i18n}}

\n {{'deleteAccountWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { UpdateProfileRequest } from 'jslib/models/request/updateProfileRequest';\n\nimport { ProfileResponse } from 'jslib/models/response/profileResponse';\n\n@Component({\n selector: 'app-profile',\n templateUrl: 'profile.component.html',\n})\nexport class ProfileComponent implements OnInit {\n loading = true;\n profile: ProfileResponse;\n fingerprint: string;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private userService: UserService,\n private cryptoService: CryptoService) { }\n\n async ngOnInit() {\n this.profile = await this.apiService.getProfile();\n this.loading = false;\n const fingerprint = await this.cryptoService.getFingerprint(await this.userService.getUserId());\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n\n async submit() {\n try {\n const request = new UpdateProfileRequest(this.profile.name, this.profile.masterPasswordHint);\n this.formPromise = this.apiService.putProfile(request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('accountUpdated'));\n } catch { }\n }\n}\n","
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n

\n {{'yourAccountsFingerprint' | i18n}}:\n \n
\n {{fingerprint}}\n

\n
\n
\n \n
\n","import {\n Component,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EmailRequest } from 'jslib/models/request/emailRequest';\nimport { EmailTokenRequest } from 'jslib/models/request/emailTokenRequest';\n\n@Component({\n selector: 'app-change-email',\n templateUrl: 'change-email.component.html',\n})\nexport class ChangeEmailComponent {\n masterPassword: string;\n newEmail: string;\n token: string;\n tokenSent = false;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private userService: UserService) { }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.toasterService.popAsync('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n this.newEmail = this.newEmail.trim().toLowerCase();\n if (!this.tokenSent) {\n const request = new EmailTokenRequest();\n request.newEmail = this.newEmail;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postEmailToken(request);\n await this.formPromise;\n this.tokenSent = true;\n } catch { }\n } else {\n const request = new EmailRequest();\n request.token = this.token;\n request.newEmail = this.newEmail;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const kdf = await this.userService.getKdf();\n const kdfIterations = await this.userService.getKdfIterations();\n const newKey = await this.cryptoService.makeKey(this.masterPassword, this.newEmail, kdf, kdfIterations);\n request.newMasterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, newKey);\n const newEncKey = await this.cryptoService.remakeEncKey(newKey);\n request.key = newEncKey[1].encryptedString;\n try {\n this.formPromise = this.apiService.postEmail(request);\n await this.formPromise;\n this.reset();\n this.toasterService.popAsync('success', this.i18nService.t('emailChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n }\n\n reset() {\n this.token = this.newEmail = this.masterPassword = null;\n this.tokenSent = false;\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n

{{'changeEmailDesc' | i18n : newEmail}}

\n {{'loggedOutWarning' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class EmailTokenRequest extends PasswordVerificationRequest {\n newEmail: string;\n masterPasswordHash: string;\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n ChangePasswordComponent as BaseChangePasswordComponent,\n} from 'jslib/angular/components/change-password.component';\n\nimport { EmergencyAccessStatusType } from 'jslib/enums/emergencyAccessStatusType';\nimport { Utils } from 'jslib/misc/utils';\n\nimport { EncString } from 'jslib/models/domain/encString';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\n\nimport { CipherWithIdRequest } from 'jslib/models/request/cipherWithIdRequest';\nimport { EmergencyAccessUpdateRequest } from 'jslib/models/request/emergencyAccessUpdateRequest';\nimport { FolderWithIdRequest } from 'jslib/models/request/folderWithIdRequest';\nimport { OrganizationUserResetPasswordEnrollmentRequest } from 'jslib/models/request/organizationUserResetPasswordEnrollmentRequest';\nimport { PasswordRequest } from 'jslib/models/request/passwordRequest';\nimport { UpdateKeyRequest } from 'jslib/models/request/updateKeyRequest';\n\n@Component({\n selector: 'app-change-password',\n templateUrl: 'change-password.component.html',\n})\nexport class ChangePasswordComponent extends BaseChangePasswordComponent {\n rotateEncKey = false;\n currentMasterPassword: string;\n\n constructor(i18nService: I18nService,\n cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService,\n private folderService: FolderService, private cipherService: CipherService,\n private syncService: SyncService, private apiService: ApiService) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async rotateEncKeyClicked() {\n if (this.rotateEncKey) {\n const ciphers = await this.cipherService.getAllDecrypted();\n let hasOldAttachments = false;\n if (ciphers != null) {\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId == null && ciphers[i].hasOldAttachments) {\n hasOldAttachments = true;\n break;\n }\n }\n }\n\n if (hasOldAttachments) {\n const learnMore = await this.platformUtilsService.showDialog(\n this.i18nService.t('oldAttachmentsNeedFixDesc'), null,\n this.i18nService.t('learnMore'), this.i18nService.t('close'), 'warning');\n if (learnMore) {\n this.platformUtilsService.launchUri(\n 'https://help.bitwarden.com/article/attachments/#fixing-old-attachments');\n }\n this.rotateEncKey = false;\n return;\n }\n\n const result = await this.platformUtilsService.showDialog(\n this.i18nService.t('updateEncryptionKeyWarning') + ' ' +\n this.i18nService.t('updateEncryptionKeyExportWarning') + ' ' +\n this.i18nService.t('rotateEncKeyConfirmation'), this.i18nService.t('rotateEncKeyTitle'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!result) {\n this.rotateEncKey = false;\n }\n }\n }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n await super.submit();\n }\n\n async setupSubmitActions() {\n if (this.currentMasterPassword == null || this.currentMasterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return false;\n }\n\n if (this.rotateEncKey) {\n await this.syncService.fullSync(true);\n }\n\n return super.setupSubmitActions();\n }\n\n async performSubmitActions(newMasterPasswordHash: string, newKey: SymmetricCryptoKey,\n newEncKey: [SymmetricCryptoKey, EncString]) {\n const request = new PasswordRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.currentMasterPassword, null);\n request.newMasterPasswordHash = newMasterPasswordHash;\n request.key = newEncKey[1].encryptedString;\n\n try {\n if (this.rotateEncKey) {\n this.formPromise = this.apiService.postPassword(request).then(() => {\n return this.updateKey(newKey, request.newMasterPasswordHash);\n });\n } else {\n this.formPromise = this.apiService.postPassword(request);\n }\n\n await this.formPromise;\n\n this.platformUtilsService.showToast('success', this.i18nService.t('masterPasswordChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n }\n\n private async updateKey(key: SymmetricCryptoKey, masterPasswordHash: string) {\n const encKey = await this.cryptoService.makeEncKey(key);\n const privateKey = await this.cryptoService.getPrivateKey();\n let encPrivateKey: EncString = null;\n if (privateKey != null) {\n encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]);\n }\n const request = new UpdateKeyRequest();\n request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHash = masterPasswordHash;\n\n const folders = await this.folderService.getAllDecrypted();\n for (let i = 0; i < folders.length; i++) {\n if (folders[i].id == null) {\n continue;\n }\n const folder = await this.folderService.encrypt(folders[i], encKey[0]);\n request.folders.push(new FolderWithIdRequest(folder));\n }\n\n const ciphers = await this.cipherService.getAllDecrypted();\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId != null) {\n continue;\n }\n\n const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]);\n request.ciphers.push(new CipherWithIdRequest(cipher));\n }\n\n await this.apiService.postAccountKey(request);\n\n await this.updateEmergencyAccesses(encKey[0]);\n\n await this.updateAllResetPasswordKeys(encKey[0]);\n }\n\n private async updateEmergencyAccesses(encKey: SymmetricCryptoKey) {\n const emergencyAccess = await this.apiService.getEmergencyAccessTrusted();\n const allowedStatuses = [\n EmergencyAccessStatusType.Confirmed,\n EmergencyAccessStatusType.RecoveryInitiated,\n EmergencyAccessStatusType.RecoveryApproved,\n ];\n\n const filteredAccesses = emergencyAccess.data.filter(d => allowedStatuses.includes(d.status));\n\n for (const details of filteredAccesses) {\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);\n\n const updateRequest = new EmergencyAccessUpdateRequest();\n updateRequest.type = details.type;\n updateRequest.waitTimeDays = details.waitTimeDays;\n updateRequest.keyEncrypted = encryptedKey.encryptedString;\n\n await this.apiService.putEmergencyAccess(details.id, updateRequest);\n }\n }\n\n private async updateAllResetPasswordKeys(encKey: SymmetricCryptoKey) {\n const orgs = await this.userService.getAllOrganizations();\n\n for (const org of orgs) {\n // If not already enrolled, skip\n if (!org.isResetPasswordEnrolled) {\n continue;\n }\n\n // Re-enroll - encrpyt user's encKey.key with organization key\n const orgSymKey = await this.cryptoService.getOrgKey(org.id);\n const encryptedKey = await this.cryptoService.encrypt(encKey.key, orgSymKey);\n\n // Create/Execute request\n const request = new OrganizationUserResetPasswordEnrollmentRequest();\n request.resetPasswordKey = encryptedKey.encryptedString;\n\n await this.apiService.putOrganizationUserResetPasswordEnrollment(org.id, org.userId, request);\n }\n }\n}\n","{{'loggedOutWarning' | i18n}}\n\n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • {{'policyInEffectUppercase' | i18n}}
  • \n
  • {{'policyInEffectLowercase' | i18n}}
  • \n
  • {{'policyInEffectNumbers' | i18n}}
  • \n
  • {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n \n
\n","export enum EmergencyAccessStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n RecoveryInitiated = 3,\n RecoveryApproved = 4,\n}\n","import { EmergencyAccessType } from '../../enums/emergencyAccessType';\n\nexport class EmergencyAccessUpdateRequest {\n type: EmergencyAccessType;\n waitTimeDays: number;\n keyEncrypted?: string;\n}\n","import { FolderRequest } from './folderRequest';\n\nimport { Folder } from '../domain/folder';\n\nexport class FolderWithIdRequest extends FolderRequest {\n id: string;\n\n constructor(folder: Folder) {\n super(folder);\n this.id = folder.id;\n }\n}\n","export class OrganizationUserResetPasswordEnrollmentRequest {\n resetPasswordKey: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class PasswordRequest extends PasswordVerificationRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import { CipherWithIdRequest } from './cipherWithIdRequest';\nimport { FolderWithIdRequest } from './folderWithIdRequest';\n\nexport class UpdateKeyRequest {\n ciphers: CipherWithIdRequest[] = [];\n folders: FolderWithIdRequest[] = [];\n masterPasswordHash: string;\n privateKey: string;\n key: string;\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { KdfRequest } from 'jslib/models/request/kdfRequest';\n\nimport { KdfType } from 'jslib/enums/kdfType';\n\n@Component({\n selector: 'app-change-kdf',\n templateUrl: 'change-kdf.component.html',\n})\nexport class ChangeKdfComponent implements OnInit {\n masterPassword: string;\n kdfIterations: number;\n kdf = KdfType.PBKDF2_SHA256;\n kdfOptions: any[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private userService: UserService) {\n this.kdfOptions = [\n { name: 'PBKDF2 SHA-256', value: KdfType.PBKDF2_SHA256 },\n ];\n }\n\n async ngOnInit() {\n this.kdf = await this.userService.getKdf();\n this.kdfIterations = await this.userService.getKdfIterations();\n }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.toasterService.popAsync('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n const request = new KdfRequest();\n request.kdf = this.kdf;\n request.kdfIterations = this.kdfIterations;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const email = await this.userService.getEmail();\n const newKey = await this.cryptoService.makeKey(this.masterPassword, email, this.kdf, this.kdfIterations);\n request.newMasterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, newKey);\n const newEncKey = await this.cryptoService.remakeEncKey(newKey);\n request.key = newEncKey[1].encryptedString;\n try {\n this.formPromise = this.apiService.postAccountKdf(request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('encKeySettingsChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","{{'loggedOutWarning' | i18n}}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n

{{'kdfIterationsDesc' | i18n : (100000 | number)}}

\n {{'warning' | i18n}}: {{'kdfIterationsWarning' | i18n : (50000 | number)}}\n
\n
\n
\n
\n \n
\n","import {\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PlanType } from 'jslib/enums/planType';\nimport { ProductType } from 'jslib/enums/productType';\n\nimport { OrganizationPlansComponent } from './organization-plans.component';\n\n@Component({\n selector: 'app-create-organization',\n templateUrl: 'create-organization.component.html',\n})\nexport class CreateOrganizationComponent implements OnInit {\n @ViewChild(OrganizationPlansComponent, { static: true }) orgPlansComponent: OrganizationPlansComponent;\n\n constructor(private route: ActivatedRoute) { }\n\n ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.plan === 'families') {\n this.orgPlansComponent.plan = PlanType.FamiliesAnnually;\n this.orgPlansComponent.product = ProductType.Families;\n } else if (qParams.plan === 'teams') {\n this.orgPlansComponent.plan = PlanType.TeamsAnnually;\n this.orgPlansComponent.product = ProductType.Teams;\n } else if (qParams.plan === 'enterprise') {\n this.orgPlansComponent.plan = PlanType.EnterpriseAnnually;\n this.orgPlansComponent.product = ProductType.Enterprise;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n}\n","
\n

{{'newOrganization' | i18n}}

\n
\n

{{'newOrganizationDesc' | i18n}}

\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { UpdateDomainsRequest } from 'jslib/models/request/updateDomainsRequest';\n\n@Component({\n selector: 'app-domain-rules',\n templateUrl: 'domain-rules.component.html',\n})\nexport class DomainRulesComponent implements OnInit {\n loading = true;\n custom: string[] = [];\n global: any[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const response = await this.apiService.getSettingsDomains();\n this.loading = false;\n if (response.equivalentDomains != null) {\n this.custom = response.equivalentDomains.map(d => d.join(', '));\n }\n if (response.globalEquivalentDomains != null) {\n this.global = response.globalEquivalentDomains.map(d => {\n return {\n domains: d.domains.join(', '),\n excluded: d.excluded,\n key: d.type,\n };\n });\n }\n }\n\n toggleExcluded(globalDomain: any) {\n globalDomain.excluded = !globalDomain.excluded;\n }\n\n customize(globalDomain: any) {\n globalDomain.excluded = true;\n this.custom.push(globalDomain.domains);\n }\n\n remove(index: number) {\n this.custom.splice(index, 1);\n }\n\n add() {\n this.custom.push('');\n }\n\n async submit() {\n const request = new UpdateDomainsRequest();\n request.excludedGlobalEquivalentDomains = this.global.filter(d => d.excluded)\n .map(d => d.key);\n if (request.excludedGlobalEquivalentDomains.length === 0) {\n request.excludedGlobalEquivalentDomains = null;\n }\n request.equivalentDomains = this.custom.filter(d => d != null && d.trim() !== '')\n .map(d => d.split(',').map(d2 => d2.trim()));\n if (request.equivalentDomains.length === 0) {\n request.equivalentDomains = null;\n }\n\n try {\n this.formPromise = this.apiService.putSettingsDomains(request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('domainsUpdated'));\n } catch { }\n }\n\n indexTrackBy(index: number, obj: any): any {\n return index;\n }\n}\n","
\n

{{'domainRules' | i18n}}

\n
\n

{{'domainRulesDesc' | i18n}}

\n
\n

{{'customEqDomains' | i18n}}

\n

\n \n {{'loading' | i18n}}\n

\n \n
\n
\n \n \n
\n \n
\n \n {{'newCustomDomainDesc' | i18n}}\n
\n \n

{{'globalEqDomains' | i18n}}

\n

\n \n {{'loading' | i18n}}\n

\n 0\">\n \n \n \n \n \n \n
{{d.domains}}\n \n
\n \n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-options',\n templateUrl: 'options.component.html',\n})\nexport class OptionsComponent implements OnInit {\n vaultTimeout: number = null;\n vaultTimeoutAction: string = 'lock';\n disableIcons: boolean;\n enableGravatars: boolean;\n enableFullWidth: boolean;\n locale: string;\n vaultTimeouts: any[];\n localeOptions: any[];\n\n private startingLocale: string;\n\n constructor(private storageService: StorageService, private stateService: StateService,\n private i18nService: I18nService, private toasterService: ToasterService,\n private vaultTimeoutService: VaultTimeoutService, private platformUtilsService: PlatformUtilsService,\n private messagingService: MessagingService) {\n this.vaultTimeouts = [\n { name: i18nService.t('oneMinute'), value: 1 },\n { name: i18nService.t('fiveMinutes'), value: 5 },\n { name: i18nService.t('fifteenMinutes'), value: 15 },\n { name: i18nService.t('thirtyMinutes'), value: 30 },\n { name: i18nService.t('oneHour'), value: 60 },\n { name: i18nService.t('fourHours'), value: 240 },\n { name: i18nService.t('onRefresh'), value: -1 },\n ];\n if (this.platformUtilsService.isDev()) {\n this.vaultTimeouts.push({ name: i18nService.t('never'), value: null });\n }\n\n const localeOptions: any[] = [];\n i18nService.supportedTranslationLocales.forEach(locale => {\n let name = locale;\n if (i18nService.localeNames.has(locale)) {\n name += (' - ' + i18nService.localeNames.get(locale));\n }\n localeOptions.push({ name: name, value: locale });\n });\n localeOptions.sort(Utils.getSortFunction(i18nService, 'name'));\n localeOptions.splice(0, 0, { name: i18nService.t('default'), value: null });\n this.localeOptions = localeOptions;\n }\n\n async ngOnInit() {\n this.vaultTimeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n this.vaultTimeoutAction = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n this.disableIcons = await this.storageService.get(ConstantsService.disableFaviconKey);\n this.enableGravatars = await this.storageService.get('enableGravatars');\n this.enableFullWidth = await this.storageService.get('enableFullWidth');\n this.locale = this.startingLocale = await this.storageService.get(ConstantsService.localeKey);\n }\n\n async submit() {\n await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout != null ? this.vaultTimeout : null,\n this.vaultTimeoutAction);\n await this.storageService.save(ConstantsService.disableFaviconKey, this.disableIcons);\n await this.stateService.save(ConstantsService.disableFaviconKey, this.disableIcons);\n await this.storageService.save('enableGravatars', this.enableGravatars);\n await this.stateService.save('enableGravatars', this.enableGravatars);\n await this.storageService.save('enableFullWidth', this.enableFullWidth);\n this.messagingService.send('setFullWidth');\n await this.storageService.save(ConstantsService.localeKey, this.locale);\n if (this.locale !== this.startingLocale) {\n window.location.reload();\n } else {\n this.toasterService.popAsync('success', null, this.i18nService.t('optionsUpdated'));\n }\n }\n\n async vaultTimeoutActionChanged(newValue: string) {\n if (newValue === 'logOut') {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('vaultTimeoutLogOutConfirmation'),\n this.i18nService.t('vaultTimeoutLogOutConfirmationTitle'),\n this.i18nService.t('yes'), this.i18nService.t('cancel'), 'warning');\n if (!confirmed) {\n this.vaultTimeoutAction = 'lock';\n return;\n }\n }\n this.vaultTimeoutAction = newValue;\n }\n}\n","
\n

{{'options' | i18n}}

\n
\n

{{'optionsDesc' | i18n}}

\n
\n
\n
\n
\n \n \n {{'vaultTimeoutDesc' | i18n}}\n
\n
\n
\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n \n {{'languageDesc' | i18n}}\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n {{'disableIconsDesc' | i18n}}\n
\n
\n
\n \n \n \n \n \n
\n {{'enableGravatarsDesc' | i18n}}\n
\n\t
\n
\n \n \n
\n {{'enableFullWidthDesc' | i18n}}\n
\n \n
\n","import {\n AfterContentInit,\n Component,\n Input,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { SsoComponent } from 'jslib/angular/components/sso.component';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-link-sso',\n templateUrl: 'link-sso.component.html',\n})\nexport class LinkSsoComponent extends SsoComponent implements AfterContentInit {\n @Input() organization: Organization;\n returnUri: string = '/settings/organizations';\n\n constructor(platformUtilsService: PlatformUtilsService, i18nService: I18nService,\n apiService: ApiService, authService: AuthService,\n router: Router, route: ActivatedRoute,\n cryptoFunctionService: CryptoFunctionService, passwordGenerationService: PasswordGenerationService,\n storageService: StorageService, stateService: StateService) {\n super(authService, router,\n i18nService, route,\n storageService, stateService,\n platformUtilsService, apiService,\n cryptoFunctionService, passwordGenerationService);\n\n this.returnUri = '/settings/organizations';\n this.redirectUri = window.location.origin + '/sso-connector.html';\n this.clientId = 'web';\n }\n\n async ngAfterContentInit() {\n this.identifier = this.organization.identifier;\n }\n}\n","\n \n {{'linkSso' | i18n}}\n\n","import {\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\n@Component({\n selector: 'app-premium',\n templateUrl: 'premium.component.html',\n})\nexport class PremiumComponent implements OnInit {\n @ViewChild(PaymentComponent) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent) taxInfoComponent: TaxInfoComponent;\n\n canAccessPremium = false;\n selfHosted = false;\n premiumPrice = 10;\n storageGbPrice = 4;\n additionalStorage = 0;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, platformUtilsService: PlatformUtilsService,\n private tokenService: TokenService, private router: Router,\n private messagingService: MessagingService, private syncService: SyncService,\n private userService: UserService) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n const premium = await this.tokenService.getPremium();\n if (premium) {\n this.router.navigate(['/settings/subscription']);\n return;\n }\n }\n\n async submit() {\n let files: FileList = null;\n if (this.selfHosted) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n }\n\n try {\n if (this.selfHosted) {\n if (!this.tokenService.getEmailVerified()) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('verifyEmailFirst'));\n return;\n }\n\n const fd = new FormData();\n fd.append('license', files[0]);\n this.formPromise = this.apiService.postAccountLicense(fd).then(() => {\n return this.finalizePremium();\n });\n } else {\n this.formPromise = this.paymentComponent.createPaymentToken().then(result => {\n const fd = new FormData();\n fd.append('paymentMethodType', result[1].toString());\n if (result[0] != null) {\n fd.append('paymentToken', result[0]);\n }\n fd.append('additionalStorageGb', (this.additionalStorage || 0).toString());\n fd.append('country', this.taxInfoComponent.taxInfo.country);\n fd.append('postalCode', this.taxInfoComponent.taxInfo.postalCode);\n return this.apiService.postPremium(fd);\n }).then(paymentResponse => {\n if (!paymentResponse.success && paymentResponse.paymentIntentClientSecret != null) {\n return this.paymentComponent.handleStripeCardPayment(paymentResponse.paymentIntentClientSecret,\n () => this.finalizePremium());\n } else {\n return this.finalizePremium();\n }\n });\n }\n await this.formPromise;\n } catch { }\n }\n\n async finalizePremium() {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n this.toasterService.popAsync('success', null, this.i18nService.t('premiumUpdated'));\n this.messagingService.send('purchasedPremium');\n this.router.navigate(['/settings/subscription']);\n }\n\n get additionalStorageTotal(): number {\n return this.storageGbPrice * Math.abs(this.additionalStorage || 0);\n }\n\n get subtotal(): number {\n return this.premiumPrice + this.additionalStorageTotal;\n }\n\n get taxCharges(): number {\n return this.taxInfoComponent != null && this.taxInfoComponent.taxRate != null ?\n (this.taxInfoComponent.taxRate / 100) * this.subtotal :\n 0;\n }\n\n get total(): number {\n return (this.subtotal + this.taxCharges) || 0;\n }\n}\n","
\n

{{'goPremium' | i18n}}

\n
\n\n {{'alreadyPremiumFromOrg' | i18n}}\n\n\n

{{'premiumUpgradeUnlockFeatures' | i18n}}

\n
    \n
  • \n \n {{'premiumSignUpStorage' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpTwoStep' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpEmergency' |i18n}}\n
  • \n
  • \n \n {{'premiumSignUpReports' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpTotp' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpSupport' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpFuture' | i18n}}\n
  • \n
\n

{{'premiumPrice' | i18n : (premiumPrice | currency:'$')}}

\n \n {{'purchasePremium' | i18n}}\n \n
\n\n

{{'uploadLicenseFilePremium' | i18n}}

\n
\n
\n \n \n {{'licenseFileDesc' | i18n : 'bitwarden_premium_license.json'}}\n
\n \n
\n
\n
\n

{{'addons' | i18n}}

\n
\n
\n \n \n {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (storageGbPrice | currency:'$') : ('year' | i18n)}}\n
\n
\n

{{'summary' | i18n}}

\n {{'premiumMembership' | i18n}}: {{premiumPrice | currency:'$'}}\n
{{'additionalStorageGb' | i18n}}: {{additionalStorage || 0}} GB × {{storageGbPrice | currency:'$'}} = {{additionalStorageTotal\n | currency:'$'}}\n
\n

{{'paymentInformation' | i18n}}

\n \n \n
\n
\n {{ 'planPrice' | i18n }}: {{ subtotal | currency: 'USD $' }}\n
\n \n {{ 'estimatedTax' | i18n }}: {{ taxCharges | currency: 'USD $' }}\n \n
\n
\n

{{'total' | i18n}}:\n {{total | currency:'USD $'}}/{{'year' | i18n}}

\n
\n {{'paymentChargedAnnually' | i18n}}\n \n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'SettingsComponent';\n\n@Component({\n selector: 'app-settings',\n templateUrl: 'settings.component.html',\n})\nexport class SettingsComponent implements OnInit, OnDestroy {\n premium: boolean;\n selfHosted: boolean;\n\n constructor(private tokenService: TokenService, private broadcasterService: BroadcasterService,\n private ngZone: NgZone, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'purchasedPremium':\n await this.load();\n break;\n default:\n }\n });\n });\n\n this.selfHosted = await this.platformUtilsService.isSelfHost();\n await this.load();\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async load() {\n this.premium = await this.tokenService.getPremium();\n }\n}\n","\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { SubscriptionResponse } from 'jslib/models/response/subscriptionResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\n@Component({\n selector: 'app-user-subscription',\n templateUrl: 'user-subscription.component.html',\n})\nexport class UserSubscriptionComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n adjustStorageAdd = true;\n showAdjustStorage = false;\n showUpdateLicense = false;\n sub: SubscriptionResponse;\n selfHosted = false;\n\n cancelPromise: Promise;\n reinstatePromise: Promise;\n\n constructor(private tokenService: TokenService, private apiService: ApiService,\n private platformUtilsService: PlatformUtilsService, private i18nService: I18nService,\n private toasterService: ToasterService, private router: Router) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n await this.load();\n this.firstLoaded = true;\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n\n if (this.tokenService.getPremium()) {\n this.loading = true;\n this.sub = await this.apiService.getUserSubscription();\n } else {\n this.router.navigate(['/settings/premium']);\n return;\n }\n\n this.loading = false;\n }\n\n async reinstate() {\n if (this.loading) {\n return;\n }\n\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('manageSubscriptionFromStore'),\n this.i18nService.t('cancelSubscription'), null, null, 'warning');\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('reinstateConfirmation'),\n this.i18nService.t('reinstateSubscription'), this.i18nService.t('yes'), this.i18nService.t('cancel'));\n if (!confirmed) {\n return;\n }\n\n try {\n this.reinstatePromise = this.apiService.postReinstatePremium();\n await this.reinstatePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('reinstated'));\n this.load();\n } catch { }\n }\n\n async cancel() {\n if (this.loading) {\n return;\n }\n\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('manageSubscriptionFromStore'),\n this.i18nService.t('cancelSubscription'), null, null, 'warning');\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('cancelConfirmation'),\n this.i18nService.t('cancelSubscription'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.cancelPromise = this.apiService.postCancelPremium();\n await this.cancelPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('canceledSubscription'));\n this.load();\n } catch { }\n }\n\n downloadLicense() {\n if (this.loading) {\n return;\n }\n\n const licenseString = JSON.stringify(this.sub.license, null, 2);\n this.platformUtilsService.saveFile(window, licenseString, null, 'bitwarden_premium_license.json');\n }\n\n updateLicense() {\n if (this.loading) {\n return;\n }\n this.showUpdateLicense = true;\n }\n\n closeUpdateLicense(load: boolean) {\n this.showUpdateLicense = false;\n if (load) {\n this.load();\n }\n }\n\n adjustStorage(add: boolean) {\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t(add ? 'addStorage' : 'removeStorage'), null, null, 'warning');\n return;\n }\n this.adjustStorageAdd = add;\n this.showAdjustStorage = true;\n }\n\n closeStorage(load: boolean) {\n this.showAdjustStorage = false;\n if (load) {\n this.load();\n }\n }\n\n get subscriptionMarkedForCancel() {\n return this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate;\n }\n\n get subscription() {\n return this.sub != null ? this.sub.subscription : null;\n }\n\n get nextInvoice() {\n return this.sub != null ? this.sub.upcomingInvoice : null;\n }\n\n get storagePercentage() {\n return this.sub != null && this.sub.maxStorageGb ?\n +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) : 0;\n }\n\n get storageProgressWidth() {\n return this.storagePercentage < 5 ? 5 : 0;\n }\n\n get usingInAppPurchase() {\n return this.sub != null ? this.sub.usingInAppPurchase : false;\n }\n}\n","
\n

\n {{'premiumMembership' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n {{'subscriptionCanceled' | i18n}}\n \n

{{'subscriptionPendingCanceled' | i18n}}

\n \n
\n
\n
{{'expiration' | i18n}}
\n
{{sub.expiration | date:'mediumDate'}}
\n
{{'neverExpires' | i18n}}
\n
\n
\n
\n
\n
{{'status' | i18n}}
\n
\n {{(subscription && subscription.status) || '-'}}\n {{'pendingCancellation' | i18n}}\n
\n
{{'nextCharge' | i18n}}
\n
{{nextInvoice ? ((nextInvoice.date | date: 'mediumDate') + ', ' + (nextInvoice.amount | currency:'$')) :\n '-'}}\n
\n
\n
\n
\n {{'details' | i18n}}\n \n \n \n \n \n \n \n
\n {{i.name}} {{i.quantity > 1 ? '×' + i.quantity : ''}} @ {{i.amount | currency:'$'}}\n \n {{(i.quantity * i.amount) | currency:'$'}} /{{i.interval | i18n}}\n
\n
\n
\n \n
\n \n \n {{'manageSubscription' | i18n}}\n \n
\n
\n
\n \n

{{'updateLicense' | i18n}}

\n \n \n
\n
\n
\n \n
\n \n \n
\n

{{'storage' | i18n}}

\n

{{'subscriptionStorage' | i18n : sub.maxStorageGb || 0 : sub.storageName || '0 MB'}}

\n
\n
\n {{(storagePercentage / 100) | percent}}
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { BreachAccountResponse } from 'jslib/models/response/breachAccountResponse';\n\n@Component({\n selector: 'app-breach-report',\n templateUrl: 'breach-report.component.html',\n})\nexport class BreachReportComponent implements OnInit {\n error = false;\n username: string;\n checkedUsername: string;\n breachedAccounts: BreachAccountResponse[] = [];\n formPromise: Promise;\n\n constructor(private auditService: AuditService, private userService: UserService) { }\n\n async ngOnInit() {\n this.username = await this.userService.getEmail();\n }\n\n async submit() {\n this.error = false;\n this.username = this.username.toLowerCase();\n try {\n this.formPromise = this.auditService.breachedAccounts(this.username);\n this.breachedAccounts = await this.formPromise;\n } catch {\n this.error = true;\n }\n this.checkedUsername = this.username;\n }\n}\n","
\n

{{'dataBreachReport' | i18n}}

\n
\n

{{'breachDesc' | i18n}}

\n
\n
\n
\n \n \n {{'breachCheckUsernameEmail' | i18n}}\n
\n
\n \n
\n
\n

{{'reportError' | i18n}}...

\n \n \n {{'breachUsernameNotFound' | i18n : checkedUsername}}\n \n \n {{'breachUsernameFound' | i18n : checkedUsername : breachedAccounts.length}}\n \n
    \n
  • \n
    \n
    \n \"\"\n
    \n
    \n

    {{a.title}}

    \n

    \n

    {{'compromisedData' | i18n}}:

    \n
      \n
    • {{d}}
    • \n
    \n
    \n
    \n
    \n
    {{'website' | i18n}}
    \n
    {{a.domain}}
    \n
    {{'affectedUsers' | i18n}}
    \n
    {{a.pwnCount | number}}
    \n
    {{'breachOccurred' | i18n}}
    \n
    {{a.breachDate | date: 'mediumDate'}}
    \n
    {{'breachReported' | i18n}}
    \n
    {{a.addedDate | date: 'mediumDate'}}
    \n
    \n
    \n
    \n
  • \n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n PasswordGeneratorComponent as BasePasswordGeneratorComponent,\n} from 'jslib/angular/components/password-generator.component';\n\nimport { ModalComponent } from '../modal.component';\nimport { PasswordGeneratorHistoryComponent } from './password-generator-history.component';\n\n@Component({\n selector: 'app-password-generator',\n templateUrl: 'password-generator.component.html',\n})\nexport class PasswordGeneratorComponent extends BasePasswordGeneratorComponent {\n @ViewChild('historyTemplate', { read: ViewContainerRef, static: true }) historyModalRef: ViewContainerRef;\n\n private modal: ModalComponent = null;\n\n constructor(passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver) {\n super(passwordGenerationService, platformUtilsService, i18nService, window);\n }\n\n history() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.historyModalRef.createComponent(factory).instance;\n this.modal.show(PasswordGeneratorHistoryComponent, this.historyModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n lengthChanged() {\n document.getElementById('length').focus();\n }\n\n minNumberChanged() {\n document.getElementById('min-number').focus();\n }\n\n minSpecialChanged() {\n document.getElementById('min-special').focus();\n }\n}\n","
\n

{{'passwordGenerator' | i18n}}

\n
\n\n {{'passwordGeneratorPolicyInEffect' | i18n}}\n\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n PasswordGeneratorHistoryComponent as BasePasswordGeneratorHistoryComponent,\n} from 'jslib/angular/components/password-generator-history.component';\n\n@Component({\n selector: 'app-password-generator-history',\n templateUrl: 'password-generator-history.component.html',\n})\nexport class PasswordGeneratorHistoryComponent extends BasePasswordGeneratorHistoryComponent {\n constructor(passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService) {\n super(passwordGenerationService, platformUtilsService, i18nService, window);\n }\n}\n","
\n
\n
\n
\n

{{'passwordHistory' | i18n}}

\n \n
\n
    \n
  • \n
    \n
    \n {{h.date | date:'medium'}}\n
    \n
    \n \n
    \n
  • \n
\n
\n {{'noPasswordsInList' | i18n}}\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-tools',\n templateUrl: 'tools.component.html',\n})\nexport class ToolsComponent implements OnInit {\n canAccessPremium = false;\n\n constructor(private userService: UserService, private messagingService: MessagingService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n }\n\n premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n}\n","\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { OrganizationsComponent } from '../settings/organizations.component';\nimport { UpdateKeyComponent } from '../settings/update-key.component';\nimport { AddEditComponent } from './add-edit.component';\nimport { AttachmentsComponent } from './attachments.component';\nimport { CiphersComponent } from './ciphers.component';\nimport { CollectionsComponent } from './collections.component';\nimport { FolderAddEditComponent } from './folder-add-edit.component';\nimport { GroupingsComponent } from './groupings.component';\nimport { ShareComponent } from './share.component';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'VaultComponent';\n\n@Component({\n selector: 'app-vault',\n templateUrl: 'vault.component.html',\n})\nexport class VaultComponent implements OnInit, OnDestroy {\n @ViewChild(GroupingsComponent, { static: true }) groupingsComponent: GroupingsComponent;\n @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent;\n @ViewChild(OrganizationsComponent, { static: true }) organizationsComponent: OrganizationsComponent;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n @ViewChild('folderAddEdit', { read: ViewContainerRef, static: true }) folderAddEditModalRef: ViewContainerRef;\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('share', { read: ViewContainerRef, static: true }) shareModalRef: ViewContainerRef;\n @ViewChild('collections', { read: ViewContainerRef, static: true }) collectionsModalRef: ViewContainerRef;\n @ViewChild('updateKeyTemplate', { read: ViewContainerRef, static: true }) updateKeyModalRef: ViewContainerRef;\n\n favorites: boolean = false;\n type: CipherType = null;\n folderId: string = null;\n collectionId: string = null;\n showVerifyEmail = false;\n showBrowserOutdated = false;\n showUpdateKey = false;\n showPremiumCallout = false;\n deleted: boolean = false;\n trashCleanupWarning: string = null;\n\n modal: ModalComponent = null;\n\n constructor(private syncService: SyncService, private route: ActivatedRoute,\n private router: Router, private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private tokenService: TokenService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private userService: UserService,\n private platformUtilsService: PlatformUtilsService, private broadcasterService: BroadcasterService,\n private ngZone: NgZone) { }\n\n async ngOnInit() {\n this.showVerifyEmail = !(await this.tokenService.getEmailVerified());\n this.showBrowserOutdated = window.navigator.userAgent.indexOf('MSIE') !== -1;\n this.trashCleanupWarning = this.i18nService.t(\n this.platformUtilsService.isSelfHost() ? 'trashCleanupWarningSelfHosted' : 'trashCleanupWarning'\n );\n\n const queryParamsSub = this.route.queryParams.subscribe(async params => {\n await this.syncService.fullSync(false);\n\n this.showUpdateKey = !(await this.cryptoService.hasEncKey());\n const canAccessPremium = await this.userService.canAccessPremium();\n this.showPremiumCallout = !this.showVerifyEmail && !canAccessPremium &&\n !this.platformUtilsService.isSelfHost();\n\n await Promise.all([\n this.groupingsComponent.load(),\n this.organizationsComponent.load(),\n ]);\n\n if (params == null) {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n } else {\n if (params.deleted) {\n this.groupingsComponent.selectedTrash = true;\n await this.filterDeleted();\n } else if (params.favorites) {\n this.groupingsComponent.selectedFavorites = true;\n await this.filterFavorites();\n } else if (params.type) {\n const t = parseInt(params.type, null);\n this.groupingsComponent.selectedType = t;\n await this.filterCipherType(t);\n } else if (params.folderId) {\n this.groupingsComponent.selectedFolder = true;\n this.groupingsComponent.selectedFolderId = params.folderId;\n await this.filterFolder(params.folderId);\n } else if (params.collectionId) {\n this.groupingsComponent.selectedCollectionId = params.collectionId;\n await this.filterCollection(params.collectionId);\n } else {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n }\n }\n\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await Promise.all([\n this.groupingsComponent.load(),\n this.organizationsComponent.load(),\n this.ciphersComponent.load(this.ciphersComponent.filter),\n ]);\n this.changeDetectorRef.detectChanges();\n }\n break;\n }\n });\n });\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async clearGroupingFilters() {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchVault');\n await this.ciphersComponent.reload();\n this.clearFilters();\n this.go();\n }\n\n async filterFavorites() {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchFavorites');\n await this.ciphersComponent.reload(c => c.favorite);\n this.clearFilters();\n this.favorites = true;\n this.go();\n }\n\n async filterDeleted() {\n this.ciphersComponent.showAddNew = false;\n this.ciphersComponent.deleted = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchTrash');\n await this.ciphersComponent.reload(null, true);\n this.clearFilters();\n this.deleted = true;\n this.go();\n }\n\n async filterCipherType(type: CipherType) {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchType');\n await this.ciphersComponent.reload(c => c.type === type);\n this.clearFilters();\n this.type = type;\n this.go();\n }\n\n async filterFolder(folderId: string) {\n this.ciphersComponent.showAddNew = true;\n folderId = folderId === 'none' ? null : folderId;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchFolder');\n await this.ciphersComponent.reload(c => c.folderId === folderId);\n this.clearFilters();\n this.folderId = folderId == null ? 'none' : folderId;\n this.go();\n }\n\n async filterCollection(collectionId: string) {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchCollection');\n await this.ciphersComponent.reload(c => c.collectionIds != null &&\n c.collectionIds.indexOf(collectionId) > -1);\n this.clearFilters();\n this.collectionId = collectionId;\n this.go();\n }\n\n filterSearchText(searchText: string) {\n this.ciphersComponent.searchText = searchText;\n this.ciphersComponent.search(200);\n }\n\n async editCipherAttachments(cipher: CipherView) {\n const canAccessPremium = await this.userService.canAccessPremium();\n if (cipher.organizationId == null && !canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n } else if (cipher.organizationId != null) {\n const org = await this.userService.getOrganization(cipher.organizationId);\n if (org != null && (org.maxStorageGb == null || org.maxStorageGb === 0)) {\n this.messagingService.send('upgradeOrganization', { organizationId: cipher.organizationId });\n return;\n }\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.cipherId = cipher.id;\n let madeAttachmentChanges = false;\n childComponent.onUploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onDeletedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onReuploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n if (madeAttachmentChanges) {\n await this.ciphersComponent.refresh();\n }\n madeAttachmentChanges = false;\n });\n }\n\n shareCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.shareModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ShareComponent, this.shareModalRef);\n\n childComponent.cipherId = cipher.id;\n childComponent.onSharedCipher.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n editCipherCollections(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.collectionsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(CollectionsComponent, this.collectionsModalRef);\n\n childComponent.cipherId = cipher.id;\n childComponent.onSavedCollections.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async addFolder() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.folderAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n FolderAddEditComponent, this.folderAddEditModalRef);\n\n childComponent.folderId = null;\n childComponent.onSavedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async editFolder(folderId: string) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.folderAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n FolderAddEditComponent, this.folderAddEditModalRef);\n\n childComponent.folderId = folderId;\n childComponent.onSavedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n });\n childComponent.onDeletedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n await this.filterFolder('none');\n this.groupingsComponent.selectedFolderId = null;\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n addCipher() {\n const component = this.editCipher(null);\n component.type = this.type;\n component.folderId = this.folderId === 'none' ? null : this.folderId;\n if (this.collectionId != null) {\n const collection = this.groupingsComponent.collections.filter(c => c.id === this.collectionId);\n if (collection.length > 0) {\n component.organizationId = collection[0].organizationId;\n component.collectionIds = [this.collectionId];\n }\n }\n }\n\n editCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n AddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n cloneCipher(cipher: CipherView) {\n const component = this.editCipher(cipher);\n component.cloneMode = true;\n }\n\n updateKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.updateKeyModalRef.createComponent(factory).instance;\n this.modal.show(UpdateKeyComponent, this.updateKeyModalRef);\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private clearFilters() {\n this.folderId = null;\n this.collectionId = null;\n this.favorites = false;\n this.type = null;\n this.deleted = false;\n }\n\n private go(queryParams: any = null) {\n if (queryParams == null) {\n queryParams = {\n favorites: this.favorites ? true : null,\n type: this.type,\n folderId: this.folderId,\n collectionId: this.collectionId,\n deleted: this.deleted ? true : null,\n };\n }\n\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: queryParams,\n replaceUrl: true,\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n

\n {{'myVault' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n \n \n
\n
\n \n {{trashCleanupWarning}}\n \n \n \n
\n
\n
\n
\n {{'updateKeyTitle' | i18n}}\n
\n
\n

{{'updateEncryptionKeyShortDesc' | i18n}}

\n \n
\n
\n \n \n
\n
\n {{'updateBrowser' | i18n}}\n
\n
\n

{{'updateBrowserDesc' | i18n}}

\n \n {{'updateBrowser' | i18n}}\n \n
\n
\n
\n
\n {{'goPremium' | i18n}}\n
\n
\n

{{'premiumUpgradeUnlockFeatures' | i18n}}

\n \n {{'goPremium' | i18n}}\n \n
\n
\n
\n
\n {{'organizations' | i18n}}\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\n\nimport { EncString } from 'jslib/models/domain/encString';\n\nimport { CipherWithIdRequest } from 'jslib/models/request/cipherWithIdRequest';\nimport { FolderWithIdRequest } from 'jslib/models/request/folderWithIdRequest';\nimport { UpdateKeyRequest } from 'jslib/models/request/updateKeyRequest';\n\n@Component({\n selector: 'app-update-key',\n templateUrl: 'update-key.component.html',\n})\nexport class UpdateKeyComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private syncService: SyncService,\n private folderService: FolderService, private cipherService: CipherService) { }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (hasEncKey) {\n return;\n }\n\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n try {\n this.formPromise = this.makeRequest().then(request => {\n return this.apiService.postAccountKey(request);\n });\n await this.formPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('keyUpdated'),\n body: this.i18nService.t('logBackInOthersToo'),\n timeout: 15000,\n };\n this.toasterService.popAsync(toast);\n this.messagingService.send('logout');\n } catch { }\n }\n\n private async makeRequest(): Promise {\n const key = await this.cryptoService.getKey();\n const encKey = await this.cryptoService.makeEncKey(key);\n const privateKey = await this.cryptoService.getPrivateKey();\n let encPrivateKey: EncString = null;\n if (privateKey != null) {\n encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]);\n }\n const request = new UpdateKeyRequest();\n request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n\n await this.syncService.fullSync(true);\n\n const folders = await this.folderService.getAllDecrypted();\n for (let i = 0; i < folders.length; i++) {\n if (folders[i].id == null) {\n continue;\n }\n const folder = await this.folderService.encrypt(folders[i], encKey[0]);\n request.folders.push(new FolderWithIdRequest(folder));\n }\n\n const ciphers = await this.cipherService.getAllDecrypted();\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId != null) {\n continue;\n }\n const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]);\n request.ciphers.push(new CipherWithIdRequest(cipher));\n }\n\n return request;\n }\n}\n","
\n
\n
\n
\n

{{'updateEncryptionKey' | i18n}}

\n \n
\n
\n

{{'updateEncryptionKeyShortDesc' | i18n}} {{'updateEncryptionKeyDesc' | i18n}}\n {{'learnMore' | i18n}}\n

\n {{'updateEncryptionKeyWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n FolderAddEditComponent as BaseFolderAddEditComponent,\n} from 'jslib/angular/components/folder-add-edit.component';\n\n@Component({\n selector: 'app-folder-add-edit',\n templateUrl: 'folder-add-edit.component.html',\n})\nexport class FolderAddEditComponent extends BaseFolderAddEditComponent {\n constructor(folderService: FolderService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService) {\n super(folderService, i18nService, platformUtilsService);\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { ShareComponent as BaseShareComponent } from 'jslib/angular/components/share.component';\n\n@Component({\n selector: 'app-vault-share',\n templateUrl: 'share.component.html',\n})\nexport class ShareComponent extends BaseShareComponent implements OnDestroy {\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, userService: UserService,\n cipherService: CipherService) {\n super(collectionService, platformUtilsService, i18nService, userService, cipherService);\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n const collections = select ? this.collections : this.writeableCollections;\n collections.forEach(c => this.check(c, select));\n }\n}\n","
\n
\n
\n
\n

\n {{'share' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n {{'noOrganizationsList' | i18n}}\n
\n
\n

{{'shareDesc' | i18n}}

\n
\n \n \n
\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n {{'newOrganization' | i18n}}\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-send-info',\n templateUrl: 'send-info.component.html',\n})\nexport class SendInfoComponent { }\n","
\n \n
\n {{'sendVaultCardProductDesc' | i18n}}\n {{'sendVaultCardLearnMore' |\n i18n}},\n {{'sendVaultCardSee' | i18n}}\n {{'sendVaultCardHowItWorks' | i18n}},\n {{'sendVaultCardOr' | i18n}}\n {{'sendVaultCardTryItNow' | i18n}}.\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-verify-email',\n templateUrl: 'verify-email.component.html',\n})\nexport class VerifyEmailComponent {\n actionPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async send() {\n if (this.actionPromise != null) {\n return;\n }\n try {\n this.actionPromise = this.apiService.postAccountVerifyEmail();\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('checkInboxForVerification'));\n } catch { }\n this.actionPromise = null;\n }\n}\n","
\n
\n {{'verifyEmail' | i18n}}\n
\n
\n

{{'verifyEmailDesc' | i18n}}

\n \n
\n
\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Injectable()\nexport class OrganizationGuardService implements CanActivate {\n constructor(private userService: UserService, private router: Router,\n private toasterService: ToasterService, private i18nService: I18nService) { }\n\n async canActivate(route: ActivatedRouteSnapshot) {\n const org = await this.userService.getOrganization(route.params.organizationId);\n if (org == null) {\n this.router.navigate(['/']);\n return false;\n }\n if (!org.isOwner && !org.enabled) {\n this.toasterService.popAsync('error', null, this.i18nService.t('organizationIsDisabled'));\n this.router.navigate(['/']);\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Permissions } from 'jslib/enums/permissions';\n\n@Injectable()\nexport class OrganizationTypeGuardService implements CanActivate {\n constructor(private userService: UserService, private router: Router) { }\n\n async canActivate(route: ActivatedRouteSnapshot) {\n const org = await this.userService.getOrganization(route.params.organizationId);\n const permissions = route.data == null ? null : route.data.permissions as Permissions[];\n\n if (\n (permissions.indexOf(Permissions.AccessBusinessPortal) !== -1 && org.canAccessBusinessPortal) ||\n (permissions.indexOf(Permissions.AccessEventLogs) !== -1 && org.canAccessEventLogs) ||\n (permissions.indexOf(Permissions.AccessImportExport) !== -1 && org.canAccessImportExport) ||\n (permissions.indexOf(Permissions.AccessReports) !== -1 && org.canAccessReports) ||\n (permissions.indexOf(Permissions.ManageAllCollections) !== -1 && org.canManageAllCollections) ||\n (permissions.indexOf(Permissions.ManageAssignedCollections) !== -1 && org.canManageAssignedCollections) ||\n (permissions.indexOf(Permissions.ManageGroups) !== -1 && org.canManageGroups) ||\n (permissions.indexOf(Permissions.ManageOrganization) !== -1 && org.isOwner) ||\n (permissions.indexOf(Permissions.ManagePolicies) !== -1 && org.canManagePolicies) ||\n (permissions.indexOf(Permissions.ManageUsers) !== -1 && org.canManageUsers)\n ) {\n return true;\n }\n\n this.router.navigate(['/organizations', org.id]);\n return false;\n }\n}\n","export enum Permissions {\n AccessBusinessPortal,\n AccessEventLogs,\n AccessImportExport,\n AccessReports,\n ManageAllCollections,\n ManageAssignedCollections,\n ManageGroups,\n ManageOrganization,\n ManagePolicies,\n ManageUsers,\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\n\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class AuthGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router, private messagingService: MessagingService) { }\n\n async canActivate(route: ActivatedRouteSnapshot, routerState: RouterStateSnapshot) {\n const isAuthed = await this.userService.isAuthenticated();\n if (!isAuthed) {\n this.messagingService.send('authBlocked');\n return false;\n }\n\n const locked = await this.vaultTimeoutService.isLocked();\n if (locked) {\n if (routerState != null) {\n this.messagingService.send('lockedUrl', { url: routerState.url });\n }\n this.router.navigate(['lock'], { queryParams: { promptBiometric: true }});\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class LockGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router) { }\n\n async canActivate() {\n const locked = await this.vaultTimeoutService.isLocked();\n if (!locked) {\n const isAuthed = await this.userService.isAuthenticated();\n if (!isAuthed) {\n this.router.navigate(['login']);\n } else {\n this.router.navigate(['vault']);\n }\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class UnauthGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router) { }\n\n async canActivate() {\n const isAuthed = await this.userService.isAuthenticated();\n if (isAuthed) {\n const locked = await this.vaultTimeoutService.isLocked();\n if (locked) {\n this.router.navigate(['lock']);\n } else {\n this.router.navigate(['vault']);\n }\n return false;\n }\n\n return true;\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\n\nimport { CipherData } from 'jslib/models/data';\nimport { Cipher, SymmetricCryptoKey } from 'jslib/models/domain';\nimport { EmergencyAccessViewResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { EmergencyAccessAttachmentsComponent } from './emergency-access-attachments.component';\nimport { EmergencyAddEditComponent } from './emergency-add-edit.component';\n\n@Component({\n selector: 'emergency-access-view',\n templateUrl: 'emergency-access-view.component.html',\n})\nexport class EmergencyAccessViewComponent implements OnInit {\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n\n id: string;\n ciphers: CipherView[] = [];\n\n private modal: ModalComponent = null;\n\n constructor(private cipherService: CipherService, private cryptoService: CryptoService,\n private componentFactoryResolver: ComponentFactoryResolver, private router: Router,\n private route: ActivatedRoute, private apiService: ApiService) { }\n\n ngOnInit() {\n this.route.params.subscribe(qParams => {\n if (qParams.id == null) {\n return this.router.navigate(['settings/emergency-access']);\n }\n\n this.id = qParams.id;\n\n this.load();\n });\n }\n\n selectCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(EmergencyAddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.cipher = cipher;\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n async load() {\n const response = await this.apiService.postEmergencyAccessView(this.id);\n this.ciphers = await this.getAllCiphers(response);\n }\n\n async viewAttachments(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(EmergencyAccessAttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.cipher = cipher;\n childComponent.emergencyAccessId = this.id;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n protected async getAllCiphers(response: EmergencyAccessViewResponse): Promise {\n const ciphers = response.ciphers;\n\n const decCiphers: CipherView[] = [];\n const oldKeyBuffer = await this.cryptoService.rsaDecrypt(response.keyEncrypted);\n const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer);\n\n const promises: any[] = [];\n ciphers.forEach(cipherResponse => {\n const cipherData = new CipherData(cipherResponse);\n const cipher = new Cipher(cipherData);\n promises.push(cipher.decrypt(oldEncKey).then(c => decCiphers.push(c)));\n });\n\n await Promise.all(promises);\n decCiphers.sort(this.cipherService.getLocaleSortingFunction());\n\n return decCiphers;\n }\n}\n","
\n

{{'vault' | i18n}}

\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n
\n
\n
\n\n\n","import { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class EncryptedObject {\n iv: ArrayBuffer;\n data: ArrayBuffer;\n mac: ArrayBuffer;\n key: SymmetricCryptoKey;\n}\n","export class EnvironmentUrls {\n base: string;\n api: string;\n identity: string;\n events: string;\n}\n","export class GeneratedPasswordHistory {\n password: string;\n date: number;\n\n constructor(password: string, date: number) {\n this.password = password;\n this.date = date;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from 'jslib/angular/components/attachments.component';\n\n@Component({\n selector: 'emergency-access-attachments',\n templateUrl: '../vault/attachments.component.html',\n})\nexport class EmergencyAccessAttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = true;\n canAccessAttachments = true;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, apiService, window);\n }\n\n protected async init() {\n // Do nothing since cipher is already decoded\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return false;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { AddEditComponent as BaseAddEditComponent } from '../vault/add-edit.component';\n\n@Component({\n selector: 'app-org-vault-add-edit',\n templateUrl: '../vault/add-edit.component.html',\n})\nexport class EmergencyAddEditComponent extends BaseAddEditComponent {\n originalCipher: Cipher = null;\n viewOnly = true;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n totpService: TotpService, passwordGenerationService: PasswordGenerationService,\n messagingService: MessagingService, eventService: EventService, policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, totpService, passwordGenerationService, messagingService,\n eventService, policyService);\n }\n\n async load() {\n this.title = this.i18nService.t('viewItem');\n }\n\n protected async loadCipher() {\n return Promise.resolve(this.originalCipher);\n }\n}\n","import { Component, ComponentFactoryResolver, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EmergencyAccessStatusType } from 'jslib/enums/emergencyAccessStatusType';\nimport { EmergencyAccessType } from 'jslib/enums/emergencyAccessType';\nimport { Utils } from 'jslib/misc/utils';\nimport { EmergencyAccessConfirmRequest } from 'jslib/models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessGranteeDetailsResponse, EmergencyAccessGrantorDetailsResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ModalComponent } from '../modal.component';\nimport { EmergencyAccessAddEditComponent } from './emergency-access-add-edit.component';\nimport { EmergencyAccessConfirmComponent } from './emergency-access-confirm.component';\nimport { EmergencyAccessTakeoverComponent } from './emergency-access-takeover.component';\n\n@Component({\n selector: 'emergency-access',\n templateUrl: 'emergency-access.component.html',\n})\nexport class EmergencyAccessComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('takeoverTemplate', { read: ViewContainerRef, static: true}) takeoverModalRef: ViewContainerRef;\n @ViewChild('confirmTemplate', { read: ViewContainerRef, static: true }) confirmModalRef: ViewContainerRef;\n\n canAccessPremium: boolean;\n trustedContacts: EmergencyAccessGranteeDetailsResponse[];\n grantedContacts: EmergencyAccessGrantorDetailsResponse[];\n emergencyAccessType = EmergencyAccessType;\n emergencyAccessStatusType = EmergencyAccessStatusType;\n actionPromise: Promise;\n isOrganizationOwner: boolean;\n\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private storageService: StorageService, private userService: UserService,\n private messagingService: MessagingService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n const orgs = await this.userService.getAllOrganizations();\n this.isOrganizationOwner = orgs.some(o => o.isOwner);\n this.load();\n }\n\n async load() {\n this.trustedContacts = (await this.apiService.getEmergencyAccessTrusted()).data;\n this.grantedContacts = (await this.apiService.getEmergencyAccessGranted()).data;\n }\n\n async premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n edit(details: EmergencyAccessGranteeDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessAddEditComponent, this.addEditModalRef);\n\n childComponent.name = details?.name ?? details?.email;\n childComponent.emergencyAccessId = details?.id;\n childComponent.readOnly = !this.canAccessPremium;\n childComponent.onSaved.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeleted.subscribe(() => {\n this.modal.close();\n this.remove(details);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n invite() {\n this.edit(null);\n }\n\n async reinvite(contact: EmergencyAccessGranteeDetailsResponse) {\n if (this.actionPromise != null) {\n return;\n }\n this.actionPromise = this.apiService.postEmergencyAccessReinvite(contact.id);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenReinvited', contact.email));\n this.actionPromise = null;\n }\n\n async confirm(contact: EmergencyAccessGranteeDetailsResponse) {\n function updateUser() {\n contact.status = EmergencyAccessStatusType.Confirmed;\n }\n\n if (this.actionPromise != null) {\n return;\n }\n\n const autoConfirm = await this.storageService.get(ConstantsService.autoConfirmFingerprints);\n if (autoConfirm == null || !autoConfirm) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.confirmModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessConfirmComponent, this.confirmModalRef);\n\n childComponent.name = contact?.name ?? contact?.email;\n childComponent.emergencyAccessId = contact.id;\n childComponent.userId = contact?.granteeId;\n childComponent.onConfirmed.subscribe(async () => {\n this.modal.close();\n\n childComponent.formPromise = this.doConfirmation(contact);\n await childComponent.formPromise;\n\n updateUser();\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', contact.name || contact.email));\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return;\n }\n\n this.actionPromise = this.doConfirmation(contact);\n await this.actionPromise;\n updateUser();\n\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', contact.name || contact.email));\n this.actionPromise = null;\n }\n\n async remove(details: EmergencyAccessGranteeDetailsResponse | EmergencyAccessGrantorDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), details.name || details.email,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteEmergencyAccess(details.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', details.name || details.email));\n\n if (details instanceof EmergencyAccessGranteeDetailsResponse) {\n this.removeGrantee(details);\n } else {\n this.removeGrantor(details);\n }\n } catch { }\n }\n\n async requestAccess(details: EmergencyAccessGrantorDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('requestAccessConfirmation', details.waitTimeDays.toString()),\n details.name || details.email,\n this.i18nService.t('requestAccess'),\n this.i18nService.t('no'),\n 'warning',\n );\n\n if (!confirmed) {\n return false;\n }\n\n await this.apiService.postEmergencyAccessInitiate(details.id);\n\n details.status = EmergencyAccessStatusType.RecoveryInitiated;\n this.toasterService.popAsync('success', null, this.i18nService.t('requestSent', details.name || details.email));\n }\n\n async approve(details: EmergencyAccessGranteeDetailsResponse) {\n const type = this.i18nService.t(details.type === EmergencyAccessType.View ? 'view' : 'takeover');\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('approveAccessConfirmation', details.name || details.email, type),\n details.name || details.email,\n this.i18nService.t('approve'),\n this.i18nService.t('no'),\n 'warning',\n );\n\n if (!confirmed) {\n return false;\n }\n\n await this.apiService.postEmergencyAccessApprove(details.id);\n details.status = EmergencyAccessStatusType.RecoveryApproved;\n\n this.toasterService.popAsync('success', null, this.i18nService.t('emergencyApproved', details.name || details.email));\n }\n\n async reject(details: EmergencyAccessGranteeDetailsResponse) {\n await this.apiService.postEmergencyAccessReject(details.id);\n details.status = EmergencyAccessStatusType.Confirmed;\n\n this.toasterService.popAsync('success', null, this.i18nService.t('emergencyRejected', details.name || details.email));\n }\n\n async takeover(details: EmergencyAccessGrantorDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessTakeoverComponent, this.takeoverModalRef);\n\n childComponent.name = details != null ? details.name || details.email : null;\n childComponent.email = details.email;\n childComponent.emergencyAccessId = details != null ? details.id : null;\n\n childComponent.onDone.subscribe(() => {\n this.modal.close();\n this.toasterService.popAsync('success', null, this.i18nService.t('passwordResetFor', details.name || details.email));\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private removeGrantee(details: EmergencyAccessGranteeDetailsResponse) {\n const index = this.trustedContacts.indexOf(details);\n if (index > -1) {\n this.trustedContacts.splice(index, 1);\n }\n }\n\n private removeGrantor(details: EmergencyAccessGrantorDetailsResponse) {\n const index = this.grantedContacts.indexOf(details);\n if (index > -1) {\n this.grantedContacts.splice(index, 1);\n }\n }\n\n // Encrypt the master password hash using the grantees public key, and send it to bitwarden for escrow.\n private async doConfirmation(details: EmergencyAccessGranteeDetailsResponse) {\n const encKey = await this.cryptoService.getEncKey();\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n try {\n // tslint:disable-next-line\n console.log('User\\'s fingerprint: ' +\n (await this.cryptoService.getFingerprint(details.granteeId, publicKey.buffer)).join('-'));\n } catch { }\n\n const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);\n const request = new EmergencyAccessConfirmRequest();\n request.key = encryptedKey.encryptedString;\n await this.apiService.postEmergencyAccessConfirm(details.id, request);\n }\n}\n","
\n

{{'emergencyAccess' | i18n}}

\n
\n

\n {{'emergencyAccessDesc' | i18n}}\n \n {{'learnMore' | i18n}}.\n \n

\n\n

\n {{'warning' | i18n }}: {{'emergencyAccessOwnerWarning' | i18n}}\n

\n\n
\n

\n {{'trustedEmergencyContacts' | i18n}}\n \n {{'premium' | i18n}}\n \n

\n
\n \n
\n
\n\n\n \n \n \n \n \n \n \n
\n \n \n {{c.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{'emergencyAccessRecoveryInitiated' | i18n}}\n {{'emergencyAccessRecoveryApproved' | i18n}}\n \n {{'view' | i18n}}\n {{'takeover' | i18n}}\n\n {{c.name}}\n \n \n
\n\n

{{'noTrustedContacts' | i18n}}

\n\n
\n

{{'designatedEmergencyContacts' | i18n}}

\n
\n\n\n \n \n \n \n \n \n \n
\n \n \n {{c.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{'emergencyAccessRecoveryInitiated' | i18n}}\n {{'emergencyAccessRecoveryApproved' | i18n}}\n \n {{'view' | i18n}}\n {{'takeover' | i18n}}\n\n {{c.name}}\n \n \n
\n\n

{{'noGrantedAccess' | i18n}}

\n\n\n\n\n","export enum EmergencyAccessType\n{\n View = 0,\n Takeover = 1,\n}\n","import { EmergencyAccessStatusType } from '../../enums/emergencyAccessStatusType';\nimport { EmergencyAccessType } from '../../enums/emergencyAccessType';\nimport { KdfType } from '../../enums/kdfType';\nimport { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\n\nexport class EmergencyAccessGranteeDetailsResponse extends BaseResponse {\n id: string;\n granteeId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.granteeId = this.getResponseProperty('GranteeId');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.waitTimeDays = this.getResponseProperty('WaitTimeDays');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n\nexport class EmergencyAccessGrantorDetailsResponse extends BaseResponse {\n id: string;\n grantorId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.grantorId = this.getResponseProperty('GrantorId');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.waitTimeDays = this.getResponseProperty('WaitTimeDays');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n\nexport class EmergencyAccessTakeoverResponse extends BaseResponse {\n keyEncrypted: string;\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty('KeyEncrypted');\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n\nexport class EmergencyAccessViewResponse extends BaseResponse {\n keyEncrypted: string;\n ciphers: CipherResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty('KeyEncrypted');\n\n const ciphers = this.getResponseProperty('Ciphers');\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { EmergencyAccessType } from 'jslib/enums/emergencyAccessType';\nimport { EmergencyAccessInviteRequest } from 'jslib/models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessUpdateRequest } from 'jslib/models/request/emergencyAccessUpdateRequest';\n\n@Component({\n selector: 'emergency-access-add-edit',\n templateUrl: 'emergency-access-add-edit.component.html',\n})\nexport class EmergencyAccessAddEditComponent implements OnInit {\n @Input() name: string;\n @Input() emergencyAccessId: string;\n @Output() onSaved = new EventEmitter();\n @Output() onDeleted = new EventEmitter();\n\n loading = true;\n readOnly: boolean = false;\n editMode: boolean = false;\n title: string;\n email: string;\n type: EmergencyAccessType = EmergencyAccessType.View;\n\n formPromise: Promise;\n\n emergencyAccessType = EmergencyAccessType;\n waitTimes: { name: string; value: number; }[];\n waitTime: number;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.emergencyAccessId != null;\n\n this.waitTimes = [\n { name: this.i18nService.t('oneDay'), value: 1 },\n { name: this.i18nService.t('days', '2'), value: 2 },\n { name: this.i18nService.t('days', '7'), value: 7 },\n { name: this.i18nService.t('days', '14'), value: 14 },\n { name: this.i18nService.t('days', '30'), value: 30 },\n { name: this.i18nService.t('days', '90'), value: 90 },\n ];\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editEmergencyContact');\n try {\n const emergencyAccess = await this.apiService.getEmergencyAccess(this.emergencyAccessId);\n this.type = emergencyAccess.type;\n this.waitTime = emergencyAccess.waitTimeDays;\n } catch { }\n } else {\n this.title = this.i18nService.t('inviteEmergencyContact');\n this.waitTime = this.waitTimes[2].value;\n }\n\n this.loading = false;\n }\n\n async submit() {\n try {\n if (this.editMode) {\n const request = new EmergencyAccessUpdateRequest();\n request.type = this.type;\n request.waitTimeDays = this.waitTime;\n\n this.formPromise = this.apiService.putEmergencyAccess(this.emergencyAccessId, request);\n } else {\n const request = new EmergencyAccessInviteRequest();\n request.email = this.email.trim();\n request.type = this.type;\n request.waitTimeDays = this.waitTime;\n\n this.formPromise = this.apiService.postEmergencyAccessInvite(request);\n }\n\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedUserId' : 'invitedUsers', this.name));\n this.onSaved.emit();\n } catch { }\n }\n\n async delete() {\n this.onDeleted.emit();\n }\n}\n","
\n
\n
\n
\n

\n {{'premium' | i18n}}\n {{title}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n \n

{{'inviteEmergencyContactDesc' | i18n}}

\n
\n \n \n
\n
\n

\n {{'userAccess' | i18n}}\n \n \n \n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{'waitTimeDesc' | i18n}}\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'emergency-access-confirm',\n templateUrl: 'emergency-access-confirm.component.html',\n})\nexport class EmergencyAccessConfirmComponent implements OnInit {\n @Input() name: string;\n @Input() userId: string;\n @Input() emergencyAccessId: string;\n @Input() formPromise: Promise;\n @Output() onConfirmed = new EventEmitter();\n\n dontAskAgain = false;\n loading = true;\n fingerprint: string;\n\n constructor(private apiService: ApiService, private cryptoService: CryptoService,\n private storageService: StorageService) { }\n\n async ngOnInit() {\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId);\n if (publicKeyResponse != null) {\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n const fingerprint = await this.cryptoService.getFingerprint(this.userId, publicKey.buffer);\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n } catch { }\n this.loading = false;\n }\n\n async submit() {\n if (this.loading) {\n return;\n }\n\n if (this.dontAskAgain) {\n await this.storageService.save(ConstantsService.autoConfirmFingerprints, true);\n }\n\n try {\n this.onConfirmed.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'confirmUser' | i18n}}\n {{name}}\n

\n \n
\n
\n

\n {{'fingerprintEnsureIntegrityVerify' | i18n}}\n \n {{'learnMore' | i18n}}\n

\n

{{fingerprint}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { ChangePasswordComponent } from 'jslib/angular/components/change-password.component';\n\nimport { KdfType } from 'jslib/enums/kdfType';\nimport { PolicyData } from 'jslib/models/data/policyData';\nimport { Policy } from 'jslib/models/domain/policy';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\nimport { EmergencyAccessPasswordRequest } from 'jslib/models/request/emergencyAccessPasswordRequest';\nimport { ListResponse } from 'jslib/models/response';\nimport { EmergencyAccessTakeoverResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\n@Component({\n selector: 'emergency-access-takeover',\n templateUrl: 'emergency-access-takeover.component.html',\n})\nexport class EmergencyAccessTakeoverComponent extends ChangePasswordComponent implements OnInit {\n @Output() onDone = new EventEmitter();\n @Input() emergencyAccessId: string;\n @Input() name: string;\n @Input() email: string;\n @Input() kdf: KdfType;\n @Input() kdfIterations: number;\n\n formPromise: Promise;\n\n constructor(i18nService: I18nService, cryptoService: CryptoService,\n messagingService: MessagingService, userService: UserService,\n passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService,\n private apiService: ApiService, private toasterService: ToasterService) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async ngOnInit() {\n const response = await this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId);\n if (response.data != null && response.data.length > 0) {\n const policies = response.data.map((policyResponse: PolicyResponse) => new Policy(new PolicyData(policyResponse)));\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(policies);\n }\n }\n\n async submit() {\n if (!await this.strongPassword()) {\n return;\n }\n\n const takeoverResponse = await this.apiService.postEmergencyAccessTakeover(this.emergencyAccessId);\n\n const oldKeyBuffer = await this.cryptoService.rsaDecrypt(takeoverResponse.keyEncrypted);\n const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer);\n\n if (oldEncKey == null) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), this.i18nService.t('unexpectedError'));\n return;\n }\n\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, takeoverResponse.kdf, takeoverResponse.kdfIterations);\n const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n const encKey = await this.cryptoService.remakeEncKey(key, oldEncKey);\n\n const request = new EmergencyAccessPasswordRequest();\n request.newMasterPasswordHash = masterPasswordHash;\n request.key = encKey[1].encryptedString;\n\n this.apiService.postEmergencyAccessPassword(this.emergencyAccessId, request);\n\n try {\n this.onDone.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'takeover' | i18n}}\n {{name}}\n

\n \n
\n
\n {{'loggedOutWarning' | i18n}}\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { DeviceType } from '../enums/deviceType';\nimport { PolicyType } from '../enums/policyType';\n\nimport { ApiService as ApiServiceAbstraction } from '../abstractions/api.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { TokenService } from '../abstractions/token.service';\n\nimport { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { AttachmentRequest } from '../models/request/attachmentRequest';\nimport { BitPayInvoiceRequest } from '../models/request/bitPayInvoiceRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { DeleteRecoverRequest } from '../models/request/deleteRecoverRequest';\nimport { EmailRequest } from '../models/request/emailRequest';\nimport { EmailTokenRequest } from '../models/request/emailTokenRequest';\nimport { EmergencyAccessAcceptRequest } from '../models/request/emergencyAccessAcceptRequest';\nimport { EmergencyAccessConfirmRequest } from '../models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessInviteRequest } from '../models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessPasswordRequest } from '../models/request/emergencyAccessPasswordRequest';\nimport { EmergencyAccessUpdateRequest } from '../models/request/emergencyAccessUpdateRequest';\nimport { EventRequest } from '../models/request/eventRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { GroupRequest } from '../models/request/groupRequest';\nimport { IapCheckRequest } from '../models/request/iapCheckRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportDirectoryRequest } from '../models/request/importDirectoryRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KdfRequest } from '../models/request/kdfRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { OrganizationCreateRequest } from '../models/request/organizationCreateRequest';\nimport { OrganizationTaxInfoUpdateRequest } from '../models/request/organizationTaxInfoUpdateRequest';\nimport { OrganizationUpdateRequest } from '../models/request/organizationUpdateRequest';\nimport { OrganizationUpgradeRequest } from '../models/request/organizationUpgradeRequest';\nimport { OrganizationUserAcceptRequest } from '../models/request/organizationUserAcceptRequest';\nimport { OrganizationUserConfirmRequest } from '../models/request/organizationUserConfirmRequest';\nimport { OrganizationUserInviteRequest } from '../models/request/organizationUserInviteRequest';\nimport { OrganizationUserResetPasswordEnrollmentRequest } from '../models/request/organizationUserResetPasswordEnrollmentRequest';\nimport { OrganizationUserUpdateGroupsRequest } from '../models/request/organizationUserUpdateGroupsRequest';\nimport { OrganizationUserUpdateRequest } from '../models/request/organizationUserUpdateRequest';\nimport { PasswordHintRequest } from '../models/request/passwordHintRequest';\nimport { PasswordRequest } from '../models/request/passwordRequest';\nimport { PasswordVerificationRequest } from '../models/request/passwordVerificationRequest';\nimport { PaymentRequest } from '../models/request/paymentRequest';\nimport { PolicyRequest } from '../models/request/policyRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { RegisterRequest } from '../models/request/registerRequest';\nimport { SeatRequest } from '../models/request/seatRequest';\nimport { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';\nimport { SendAccessRequest } from '../models/request/sendAccessRequest';\nimport { SendRequest } from '../models/request/sendRequest';\nimport { SetPasswordRequest } from '../models/request/setPasswordRequest';\nimport { StorageRequest } from '../models/request/storageRequest';\nimport { TaxInfoUpdateRequest } from '../models/request/taxInfoUpdateRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\nimport { TwoFactorEmailRequest } from '../models/request/twoFactorEmailRequest';\nimport { TwoFactorProviderRequest } from '../models/request/twoFactorProviderRequest';\nimport { TwoFactorRecoveryRequest } from '../models/request/twoFactorRecoveryRequest';\nimport { UpdateDomainsRequest } from '../models/request/updateDomainsRequest';\nimport { UpdateKeyRequest } from '../models/request/updateKeyRequest';\nimport { UpdateProfileRequest } from '../models/request/updateProfileRequest';\nimport { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';\nimport { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';\nimport { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';\nimport { UpdateTwoFactorWebAuthnDeleteRequest } from '../models/request/updateTwoFactorWebAuthnDeleteRequest';\nimport { UpdateTwoFactorWebAuthnRequest } from '../models/request/updateTwoFactorWebAuthnRequest';\nimport { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';\nimport { VerifyBankRequest } from '../models/request/verifyBankRequest';\nimport { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest';\nimport { VerifyEmailRequest } from '../models/request/verifyEmailRequest';\n\nimport { Utils } from '../misc/utils';\nimport { ApiKeyResponse } from '../models/response/apiKeyResponse';\nimport { AttachmentResponse } from '../models/response/attachmentResponse';\nimport { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';\nimport { BillingResponse } from '../models/response/billingResponse';\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport {\n CollectionGroupDetailsResponse,\n CollectionResponse,\n} from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse\n} from '../models/response/emergencyAccessResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { EventResponse } from '../models/response/eventResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n GroupDetailsResponse,\n GroupResponse,\n} from '../models/response/groupResponse';\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\nimport { ListResponse } from '../models/response/listResponse';\nimport { OrganizationResponse } from '../models/response/organizationResponse';\nimport { OrganizationSubscriptionResponse } from '../models/response/organizationSubscriptionResponse';\nimport {\n OrganizationUserDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from '../models/response/organizationUserResponse';\nimport { PaymentResponse } from '../models/response/paymentResponse';\nimport { PlanResponse } from '../models/response/planResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { PreloginResponse } from '../models/response/preloginResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';\nimport { SendAccessResponse } from '../models/response/sendAccessResponse';\nimport { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';\nimport { SendFileUploadDataResponse } from '../models/response/sendFileUploadDataResponse';\nimport { SendResponse } from '../models/response/sendResponse';\nimport { SubscriptionResponse } from '../models/response/subscriptionResponse';\nimport { SyncResponse } from '../models/response/syncResponse';\nimport { TaxInfoResponse } from '../models/response/taxInfoResponse';\nimport { TaxRateResponse } from '../models/response/taxRateResponse';\nimport { TwoFactorAuthenticatorResponse } from '../models/response/twoFactorAuthenticatorResponse';\nimport { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';\nimport { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';\nimport { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';\nimport { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';\nimport { TwoFactorWebAuthnResponse } from '../models/response/twoFactorWebAuthnResponse';\nimport { ChallengeResponse } from '../models/response/twoFactorWebAuthnResponse';\nimport { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';\nimport { UserKeyResponse } from '../models/response/userKeyResponse';\n\nimport { SendAccessView } from '../models/view/sendAccessView';\n\nexport class ApiService implements ApiServiceAbstraction {\n urlsSet: boolean = false;\n apiBaseUrl: string;\n identityBaseUrl: string;\n eventsBaseUrl: string;\n\n private device: DeviceType;\n private deviceType: string;\n private isWebClient = false;\n private isDesktopClient = false;\n private usingBaseUrl = false;\n\n constructor(private tokenService: TokenService, private platformUtilsService: PlatformUtilsService,\n private logoutCallback: (expired: boolean) => Promise, private customUserAgent: string = null) {\n this.device = platformUtilsService.getDevice();\n this.deviceType = this.device.toString();\n this.isWebClient = this.device === DeviceType.IEBrowser || this.device === DeviceType.ChromeBrowser ||\n this.device === DeviceType.EdgeBrowser || this.device === DeviceType.FirefoxBrowser ||\n this.device === DeviceType.OperaBrowser || this.device === DeviceType.SafariBrowser ||\n this.device === DeviceType.UnknownBrowser || this.device === DeviceType.VivaldiBrowser;\n this.isDesktopClient = this.device === DeviceType.WindowsDesktop || this.device === DeviceType.MacOsDesktop ||\n this.device === DeviceType.LinuxDesktop;\n }\n\n setUrls(urls: EnvironmentUrls): void {\n this.urlsSet = true;\n\n if (urls.base != null) {\n this.usingBaseUrl = true;\n this.apiBaseUrl = urls.base + '/api';\n this.identityBaseUrl = urls.base + '/identity';\n this.eventsBaseUrl = urls.base + '/events';\n return;\n }\n\n this.apiBaseUrl = urls.api;\n this.identityBaseUrl = urls.identity;\n this.eventsBaseUrl = urls.events;\n\n // Production\n if (this.apiBaseUrl == null) {\n this.apiBaseUrl = 'https://api.bitwarden.com';\n }\n if (this.identityBaseUrl == null) {\n this.identityBaseUrl = 'https://identity.bitwarden.com';\n }\n if (this.eventsBaseUrl == null) {\n this.eventsBaseUrl = 'https://events.bitwarden.com';\n }\n }\n\n // Auth APIs\n\n async postIdentityToken(request: TokenRequest): Promise {\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n const response = await this.fetch(new Request(this.identityBaseUrl + '/connect/token', {\n body: this.qsStringify(request.toIdentityToken(request.clientId ?? this.platformUtilsService.identityClientId)),\n credentials: this.getCredentials(),\n cache: 'no-store',\n headers: headers,\n method: 'POST',\n }));\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n }\n\n if (responseJson != null) {\n if (response.status === 200) {\n return new IdentityTokenResponse(responseJson);\n } else if (response.status === 400 && responseJson.TwoFactorProviders2 &&\n Object.keys(responseJson.TwoFactorProviders2).length) {\n await this.tokenService.clearTwoFactorToken(request.email);\n return new IdentityTwoFactorResponse(responseJson);\n }\n }\n\n return Promise.reject(new ErrorResponse(responseJson, response.status, true));\n }\n\n async refreshIdentityToken(): Promise {\n try {\n await this.doRefreshToken();\n } catch (e) {\n return Promise.reject(null);\n }\n }\n\n // Account APIs\n\n async getProfile(): Promise {\n const r = await this.send('GET', '/accounts/profile', null, true, true);\n return new ProfileResponse(r);\n }\n\n async getUserBilling(): Promise {\n const r = await this.send('GET', '/accounts/billing', null, true, true);\n return new BillingResponse(r);\n }\n\n async getUserSubscription(): Promise {\n const r = await this.send('GET', '/accounts/subscription', null, true, true);\n return new SubscriptionResponse(r);\n }\n\n async getTaxInfo(): Promise {\n const r = await this.send('GET', '/accounts/tax', null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async putProfile(request: UpdateProfileRequest): Promise {\n const r = await this.send('PUT', '/accounts/profile', request, true, true);\n return new ProfileResponse(r);\n }\n\n putTaxInfo(request: TaxInfoUpdateRequest): Promise {\n return this.send('PUT', '/accounts/tax', request, true, false);\n }\n\n async postPrelogin(request: PreloginRequest): Promise {\n const r = await this.send('POST', '/accounts/prelogin', request, false, true);\n return new PreloginResponse(r);\n }\n\n postEmailToken(request: EmailTokenRequest): Promise {\n return this.send('POST', '/accounts/email-token', request, true, false);\n }\n\n postEmail(request: EmailRequest): Promise {\n return this.send('POST', '/accounts/email', request, true, false);\n }\n\n postPassword(request: PasswordRequest): Promise {\n return this.send('POST', '/accounts/password', request, true, false);\n }\n\n setPassword(request: SetPasswordRequest): Promise {\n return this.send('POST', '/accounts/set-password', request, true, false);\n }\n\n postSecurityStamp(request: PasswordVerificationRequest): Promise {\n return this.send('POST', '/accounts/security-stamp', request, true, false);\n }\n\n deleteAccount(request: PasswordVerificationRequest): Promise {\n return this.send('DELETE', '/accounts', request, true, false);\n }\n\n async getAccountRevisionDate(): Promise {\n const r = await this.send('GET', '/accounts/revision-date', null, true, true);\n return r as number;\n }\n\n postPasswordHint(request: PasswordHintRequest): Promise {\n return this.send('POST', '/accounts/password-hint', request, false, false);\n }\n\n postRegister(request: RegisterRequest): Promise {\n return this.send('POST', '/accounts/register', request, false, false);\n }\n\n async postPremium(data: FormData): Promise {\n const r = await this.send('POST', '/accounts/premium', data, true, true);\n return new PaymentResponse(r);\n }\n\n async postIapCheck(request: IapCheckRequest): Promise {\n return this.send('POST', '/accounts/iap-check', request, true, false);\n }\n\n postReinstatePremium(): Promise {\n return this.send('POST', '/accounts/reinstate-premium', null, true, false);\n }\n\n postCancelPremium(): Promise {\n return this.send('POST', '/accounts/cancel-premium', null, true, false);\n }\n\n async postAccountStorage(request: StorageRequest): Promise {\n const r = await this.send('POST', '/accounts/storage', request, true, true);\n return new PaymentResponse(r);\n }\n\n postAccountPayment(request: PaymentRequest): Promise {\n return this.send('POST', '/accounts/payment', request, true, false);\n }\n\n postAccountLicense(data: FormData): Promise {\n return this.send('POST', '/accounts/license', data, true, false);\n }\n\n postAccountKeys(request: KeysRequest): Promise {\n return this.send('POST', '/accounts/keys', request, true, false);\n }\n\n postAccountKey(request: UpdateKeyRequest): Promise {\n return this.send('POST', '/accounts/key', request, true, false);\n }\n\n postAccountVerifyEmail(): Promise {\n return this.send('POST', '/accounts/verify-email', null, true, false);\n }\n\n postAccountVerifyEmailToken(request: VerifyEmailRequest): Promise {\n return this.send('POST', '/accounts/verify-email-token', request, false, false);\n }\n\n postAccountVerifyPassword(request: PasswordVerificationRequest): Promise {\n return this.send('POST', '/accounts/verify-password', request, true, false);\n }\n\n postAccountRecoverDelete(request: DeleteRecoverRequest): Promise {\n return this.send('POST', '/accounts/delete-recover', request, false, false);\n }\n\n postAccountRecoverDeleteToken(request: VerifyDeleteRecoverRequest): Promise {\n return this.send('POST', '/accounts/delete-recover-token', request, false, false);\n }\n\n postAccountKdf(request: KdfRequest): Promise {\n return this.send('POST', '/accounts/kdf', request, true, false);\n }\n\n async getEnterprisePortalSignInToken(): Promise {\n const r = await this.send('GET', '/accounts/enterprise-portal-signin-token', null, true, true);\n return r as string;\n }\n\n async deleteSsoUser(organizationId: string): Promise {\n return this.send('DELETE', '/accounts/sso/' + organizationId, null, true, false);\n }\n\n async getSsoUserIdentifier(): Promise {\n return this.send('GET', '/accounts/sso/user-identifier', null, true, true);\n }\n\n async postUserApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/accounts/api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postUserRotateApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/accounts/rotate-api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n // Folder APIs\n\n async getFolder(id: string): Promise {\n const r = await this.send('GET', '/folders/' + id, null, true, true);\n return new FolderResponse(r);\n }\n\n async postFolder(request: FolderRequest): Promise {\n const r = await this.send('POST', '/folders', request, true, true);\n return new FolderResponse(r);\n }\n\n async putFolder(id: string, request: FolderRequest): Promise {\n const r = await this.send('PUT', '/folders/' + id, request, true, true);\n return new FolderResponse(r);\n }\n\n deleteFolder(id: string): Promise {\n return this.send('DELETE', '/folders/' + id, null, true, false);\n }\n\n // Send APIs\n\n async getSend(id: string): Promise {\n const r = await this.send('GET', '/sends/' + id, null, true, true);\n return new SendResponse(r);\n }\n\n async postSendAccess(id: string, request: SendAccessRequest, apiUrl?: string): Promise {\n const r = await this.send('POST', '/sends/access/' + id, request, false, true, apiUrl);\n return new SendAccessResponse(r);\n }\n\n\n async getSendFileDownloadData(send: SendAccessView, request: SendAccessRequest, apiUrl?: string): Promise {\n const r = await this.send('POST', '/sends/' + send.id + '/access/file/' + send.file.id, request, false, true, apiUrl);\n return new SendFileDownloadDataResponse(r);\n }\n\n async getSends(): Promise> {\n const r = await this.send('GET', '/sends', null, true, true);\n return new ListResponse(r, SendResponse);\n }\n\n async postSend(request: SendRequest): Promise {\n const r = await this.send('POST', '/sends', request, true, true);\n return new SendResponse(r);\n }\n\n async postFileTypeSend(request: SendRequest): Promise {\n const r = await this.send('POST', '/sends/file/v2', request, true, true);\n return new SendFileUploadDataResponse(r);\n }\n\n async renewSendFileUploadUrl(sendId: string, fileId: string): Promise {\n const r = await this.send('GET', '/sends/' + sendId + '/file/' + fileId, null, true, true);\n return new SendFileUploadDataResponse(r);\n }\n\n postSendFile(sendId: string, fileId: string, data: FormData): Promise {\n return this.send('POST', '/sends/' + sendId + '/file/' + fileId, data, true, false);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postSendFileLegacy(data: FormData): Promise {\n const r = await this.send('POST', '/sends/file', data, true, true);\n return new SendResponse(r);\n }\n\n async putSend(id: string, request: SendRequest): Promise {\n const r = await this.send('PUT', '/sends/' + id, request, true, true);\n return new SendResponse(r);\n }\n\n async putSendRemovePassword(id: string): Promise {\n const r = await this.send('PUT', '/sends/' + id + '/remove-password', null, true, true);\n return new SendResponse(r);\n }\n\n deleteSend(id: string): Promise {\n return this.send('DELETE', '/sends/' + id, null, true, false);\n }\n\n // Cipher APIs\n\n async getCipher(id: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id, null, true, true);\n return new CipherResponse(r);\n }\n\n async getCipherAdmin(id: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id + '/admin', null, true, true);\n return new CipherResponse(r);\n }\n\n async getCiphersOrganization(organizationId: string): Promise> {\n const r = await this.send('GET', '/ciphers/organization-details?organizationId=' + organizationId,\n null, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n async postCipher(request: CipherRequest): Promise {\n const r = await this.send('POST', '/ciphers', request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherCreate(request: CipherCreateRequest): Promise {\n const r = await this.send('POST', '/ciphers/create', request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherAdmin(request: CipherCreateRequest): Promise {\n const r = await this.send('POST', '/ciphers/admin', request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipher(id: string, request: CipherRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id, request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipherAdmin(id: string, request: CipherRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/admin', request, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipher(id: string): Promise {\n return this.send('DELETE', '/ciphers/' + id, null, true, false);\n }\n\n deleteCipherAdmin(id: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/admin', null, true, false);\n }\n\n deleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send('DELETE', '/ciphers', request, true, false);\n }\n\n deleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send('DELETE', '/ciphers/admin', request, true, false);\n }\n\n putMoveCiphers(request: CipherBulkMoveRequest): Promise {\n return this.send('PUT', '/ciphers/move', request, true, false);\n }\n\n async putShareCipher(id: string, request: CipherShareRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/share', request, true, true);\n return new CipherResponse(r);\n }\n\n putShareCiphers(request: CipherBulkShareRequest): Promise {\n return this.send('PUT', '/ciphers/share', request, true, false);\n }\n\n putCipherCollections(id: string, request: CipherCollectionsRequest): Promise {\n return this.send('PUT', '/ciphers/' + id + '/collections', request, true, false);\n }\n\n putCipherCollectionsAdmin(id: string, request: CipherCollectionsRequest): Promise {\n return this.send('PUT', '/ciphers/' + id + '/collections-admin', request, true, false);\n }\n\n postPurgeCiphers(request: PasswordVerificationRequest, organizationId: string = null): Promise {\n let path = '/ciphers/purge';\n if (organizationId != null) {\n path += '?organizationId=' + organizationId;\n }\n return this.send('POST', path, request, true, false);\n }\n\n postImportCiphers(request: ImportCiphersRequest): Promise {\n return this.send('POST', '/ciphers/import', request, true, false);\n }\n\n postImportOrganizationCiphers(organizationId: string, request: ImportOrganizationCiphersRequest): Promise {\n return this.send('POST', '/ciphers/import-organization?organizationId=' + organizationId, request, true, false);\n }\n\n putDeleteCipher(id: string): Promise {\n return this.send('PUT', '/ciphers/' + id + '/delete', null, true, false);\n }\n\n putDeleteCipherAdmin(id: string): Promise {\n return this.send('PUT', '/ciphers/' + id + '/delete-admin', null, true, false);\n }\n\n putDeleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send('PUT', '/ciphers/delete', request, true, false);\n }\n\n putDeleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send('PUT', '/ciphers/delete-admin', request, true, false);\n }\n\n async putRestoreCipher(id: string): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/restore', null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreCipherAdmin(id: string): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/restore-admin', null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreManyCiphers(request: CipherBulkDeleteRequest): Promise> {\n const r = await this.send('PUT', '/ciphers/restore', request, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n // Attachments APIs\n\n async getAttachmentData(cipherId: string, attachmentId: string, emergencyAccessId?: string): Promise {\n const path = (emergencyAccessId != null ?\n '/emergency-access/' + emergencyAccessId + '/' :\n '/ciphers/') + cipherId + '/attachment/' + attachmentId;\n const r = await this.send('GET', path, null, true, true);\n return new AttachmentResponse(r);\n }\n\n async postCipherAttachment(id: string, request: AttachmentRequest): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment/v2', request, true, true);\n return new AttachmentUploadDataResponse(r);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postCipherAttachmentLegacy(id: string, data: FormData): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment', data, true, true);\n return new CipherResponse(r);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postCipherAttachmentAdminLegacy(id: string, data: FormData): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment-admin', data, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipherAttachment(id: string, attachmentId: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/attachment/' + attachmentId, null, true, false);\n }\n\n deleteCipherAttachmentAdmin(id: string, attachmentId: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/attachment/' + attachmentId + '/admin', null, true, false);\n }\n\n postShareCipherAttachment(id: string, attachmentId: string, data: FormData,\n organizationId: string): Promise {\n return this.send('POST', '/ciphers/' + id + '/attachment/' +\n attachmentId + '/share?organizationId=' + organizationId, data, true, false);\n }\n\n async renewAttachmentUploadUrl(id: string, attachmentId: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id + '/attachment/' + attachmentId + '/renew', null, true, true);\n return new AttachmentUploadDataResponse(r);\n }\n\n postAttachmentFile(id: string, attachmentId: string, data: FormData): Promise {\n return this.send('POST', '/ciphers/' + id + '/attachment/' + attachmentId, data, true, false);\n }\n\n // Collections APIs\n\n async getCollectionDetails(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections/' + id + '/details',\n null, true, true);\n return new CollectionGroupDetailsResponse(r);\n }\n\n async getUserCollections(): Promise> {\n const r = await this.send('GET', '/collections', null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollections(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections', null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollectionUsers(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections/' + id + '/users',\n null, true, true);\n return r.map((dr: any) => new SelectionReadOnlyResponse(dr));\n }\n\n async postCollection(organizationId: string, request: CollectionRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/collections', request, true, true);\n return new CollectionResponse(r);\n }\n\n async putCollection(organizationId: string, id: string, request: CollectionRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/collections/' + id,\n request, true, true);\n return new CollectionResponse(r);\n }\n\n async putCollectionUsers(organizationId: string, id: string, request: SelectionReadOnlyRequest[]): Promise {\n await this.send('PUT', '/organizations/' + organizationId + '/collections/' + id + '/users',\n request, true, false);\n }\n\n deleteCollection(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/collections/' + id, null, true, false);\n }\n\n deleteCollectionUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send('DELETE',\n '/organizations/' + organizationId + '/collections/' + id + '/user/' + organizationUserId,\n null, true, false);\n }\n\n // Groups APIs\n\n async getGroupDetails(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups/' + id + '/details',\n null, true, true);\n return new GroupDetailsResponse(r);\n }\n\n async getGroups(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups', null, true, true);\n return new ListResponse(r, GroupResponse);\n }\n\n async getGroupUsers(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups/' + id + '/users',\n null, true, true);\n return r;\n }\n\n async postGroup(organizationId: string, request: GroupRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/groups', request, true, true);\n return new GroupResponse(r);\n }\n\n async putGroup(organizationId: string, id: string, request: GroupRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/groups/' + id, request, true, true);\n return new GroupResponse(r);\n }\n\n async putGroupUsers(organizationId: string, id: string, request: string[]): Promise {\n await this.send('PUT', '/organizations/' + organizationId + '/groups/' + id + '/users', request, true, false);\n }\n\n deleteGroup(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/groups/' + id, null, true, false);\n }\n\n deleteGroupUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send('DELETE',\n '/organizations/' + organizationId + '/groups/' + id + '/user/' + organizationUserId, null, true, false);\n }\n\n // Policy APIs\n\n async getPolicy(organizationId: string, type: PolicyType): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies/' + type, null, true, true);\n return new PolicyResponse(r);\n }\n\n async getPolicies(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies', null, true, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n async getPoliciesByToken(organizationId: string, token: string, email: string, organizationUserId: string):\n Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies/token?' +\n 'token=' + encodeURIComponent(token) + '&email=' + encodeURIComponent(email) +\n '&organizationUserId=' + organizationUserId, null, false, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n async putPolicy(organizationId: string, type: PolicyType, request: PolicyRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/policies/' + type, request, true, true);\n return new PolicyResponse(r);\n }\n\n // Organization User APIs\n\n async getOrganizationUser(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users/' + id, null, true, true);\n return new OrganizationUserDetailsResponse(r);\n }\n\n async getOrganizationUserGroups(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users/' + id + '/groups',\n null, true, true);\n return r;\n }\n\n async getOrganizationUsers(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users', null, true, true);\n return new ListResponse(r, OrganizationUserUserDetailsResponse);\n }\n\n postOrganizationUserInvite(organizationId: string, request: OrganizationUserInviteRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/invite', request, true, false);\n }\n\n postOrganizationUserReinvite(organizationId: string, id: string): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/reinvite', null, true, false);\n }\n\n postOrganizationUserAccept(organizationId: string, id: string,\n request: OrganizationUserAcceptRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/accept', request, true, false);\n }\n\n postOrganizationUserConfirm(organizationId: string, id: string,\n request: OrganizationUserConfirmRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/confirm',\n request, true, false);\n }\n\n putOrganizationUser(organizationId: string, id: string, request: OrganizationUserUpdateRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + id, request, true, false);\n }\n\n putOrganizationUserGroups(organizationId: string, id: string,\n request: OrganizationUserUpdateGroupsRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + id + '/groups', request, true, false);\n }\n\n putOrganizationUserResetPasswordEnrollment(organizationId: string, userId: string,\n request: OrganizationUserResetPasswordEnrollmentRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + userId + '/reset-password-enrollment',\n request, true, false);\n }\n\n deleteOrganizationUser(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/users/' + id, null, true, false);\n }\n\n // Plan APIs\n\n async getPlans(): Promise> {\n const r = await this.send('GET', '/plans/', null, true, true);\n return new ListResponse(r, PlanResponse);\n }\n\n async postImportDirectory(organizationId: string, request: ImportDirectoryRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/import', request, true, false);\n }\n\n async getTaxRates(): Promise> {\n const r = await this.send('GET', '/plans/sales-tax-rates/', null, true, true);\n return new ListResponse(r, TaxRateResponse);\n }\n\n // Settings APIs\n\n async getSettingsDomains(): Promise {\n const r = await this.send('GET', '/settings/domains', null, true, true);\n return new DomainsResponse(r);\n }\n\n async putSettingsDomains(request: UpdateDomainsRequest): Promise {\n const r = await this.send('PUT', '/settings/domains', request, true, true);\n return new DomainsResponse(r);\n }\n\n // Sync APIs\n\n async getSync(): Promise {\n const path = this.isDesktopClient || this.isWebClient ? '/sync?excludeDomains=true' : '/sync';\n const r = await this.send('GET', path, null, true, true);\n return new SyncResponse(r);\n }\n\n // Two-factor APIs\n\n async getTwoFactorProviders(): Promise> {\n const r = await this.send('GET', '/two-factor', null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorOrganizationProviders(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/two-factor', null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorAuthenticator(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-authenticator', request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async getTwoFactorEmail(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-email', request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async getTwoFactorDuo(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorOrganizationDuo(organizationId: string,\n request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/two-factor/get-duo',\n request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorYubiKey(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-yubikey', request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async getTwoFactorWebAuthn(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-webauthn', request, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async getTwoFactorWebAuthnChallenge(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-webauthn-challenge', request, true, true);\n return new ChallengeResponse(r);\n }\n\n async getTwoFactorRecover(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-recover', request, true, true);\n return new TwoFactorRecoverResponse(r);\n }\n\n async putTwoFactorAuthenticator(\n request: UpdateTwoFactorAuthenticatorRequest): Promise {\n const r = await this.send('PUT', '/two-factor/authenticator', request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async putTwoFactorEmail(request: UpdateTwoFactorEmailRequest): Promise {\n const r = await this.send('PUT', '/two-factor/email', request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async putTwoFactorDuo(request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send('PUT', '/two-factor/duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorOrganizationDuo(organizationId: string,\n request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/two-factor/duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorYubiKey(request: UpdateTwoFactorYubioOtpRequest): Promise {\n const r = await this.send('PUT', '/two-factor/yubikey', request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async putTwoFactorWebAuthn(request: UpdateTwoFactorWebAuthnRequest): Promise {\n const response = request.deviceResponse.response as AuthenticatorAttestationResponse;\n const data: any = Object.assign({}, request);\n\n data.deviceResponse = {\n id: request.deviceResponse.id,\n rawId: btoa(request.deviceResponse.id),\n type: request.deviceResponse.type,\n extensions: request.deviceResponse.getClientExtensionResults(),\n response: {\n AttestationObject: Utils.fromBufferToB64(response.attestationObject),\n clientDataJson: Utils.fromBufferToB64(response.clientDataJSON),\n },\n };\n\n const r = await this.send('PUT', '/two-factor/webauthn', data, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async deleteTwoFactorWebAuthn(request: UpdateTwoFactorWebAuthnDeleteRequest): Promise {\n const r = await this.send('DELETE', '/two-factor/webauthn', request, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async putTwoFactorDisable(request: TwoFactorProviderRequest): Promise {\n const r = await this.send('PUT', '/two-factor/disable', request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n async putTwoFactorOrganizationDisable(organizationId: string,\n request: TwoFactorProviderRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/two-factor/disable',\n request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n postTwoFactorRecover(request: TwoFactorRecoveryRequest): Promise {\n return this.send('POST', '/two-factor/recover', request, false, false);\n }\n\n postTwoFactorEmailSetup(request: TwoFactorEmailRequest): Promise {\n return this.send('POST', '/two-factor/send-email', request, true, false);\n }\n\n postTwoFactorEmail(request: TwoFactorEmailRequest): Promise {\n return this.send('POST', '/two-factor/send-email-login', request, false, false);\n }\n\n // Emergency Access APIs\n\n async getEmergencyAccessTrusted(): Promise> {\n const r = await this.send('GET', '/emergency-access/trusted', null, true, true);\n return new ListResponse(r, EmergencyAccessGranteeDetailsResponse);\n }\n\n async getEmergencyAccessGranted(): Promise> {\n const r = await this.send('GET', '/emergency-access/granted', null, true, true);\n return new ListResponse(r, EmergencyAccessGrantorDetailsResponse);\n }\n\n async getEmergencyAccess(id: string): Promise {\n const r = await this.send('GET', '/emergency-access/' + id, null, true, true);\n return new EmergencyAccessGranteeDetailsResponse(r);\n }\n\n async getEmergencyGrantorPolicies(id: string): Promise> {\n const r = await this.send('GET', '/emergency-access/' + id + '/policies', null, true, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n putEmergencyAccess(id: string, request: EmergencyAccessUpdateRequest): Promise {\n return this.send('PUT', '/emergency-access/' + id, request, true, false);\n }\n\n deleteEmergencyAccess(id: string): Promise {\n return this.send('DELETE', '/emergency-access/' + id, null, true, false);\n }\n\n postEmergencyAccessInvite(request: EmergencyAccessInviteRequest): Promise {\n return this.send('POST', '/emergency-access/invite', request, true, false);\n }\n\n postEmergencyAccessReinvite(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/reinvite', null, true, false);\n }\n\n postEmergencyAccessAccept(id: string, request: EmergencyAccessAcceptRequest): Promise {\n return this.send('POST', '/emergency-access/' + id + '/accept', request, true, false);\n }\n\n postEmergencyAccessConfirm(id: string, request: EmergencyAccessConfirmRequest): Promise {\n return this.send('POST', '/emergency-access/' + id + '/confirm', request, true, false);\n }\n\n postEmergencyAccessInitiate(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/initiate', null, true, false);\n }\n\n postEmergencyAccessApprove(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/approve', null, true, false);\n }\n\n postEmergencyAccessReject(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/reject', null, true, false);\n }\n\n async postEmergencyAccessTakeover(id: string): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/takeover', null, true, true);\n return new EmergencyAccessTakeoverResponse(r);\n }\n\n async postEmergencyAccessPassword(id: string, request: EmergencyAccessPasswordRequest): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/password', request, true, true);\n }\n\n async postEmergencyAccessView(id: string): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/view', null, true, true);\n return new EmergencyAccessViewResponse(r);\n }\n\n // Organization APIs\n\n async getOrganization(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id, null, true, true);\n return new OrganizationResponse(r);\n }\n\n async getOrganizationBilling(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/billing', null, true, true);\n return new BillingResponse(r);\n }\n\n async getOrganizationSubscription(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/subscription', null, true, true);\n return new OrganizationSubscriptionResponse(r);\n }\n\n async getOrganizationLicense(id: string, installationId: string): Promise {\n return this.send('GET', '/organizations/' + id + '/license?installationId=' + installationId,\n null, true, true);\n }\n\n async getOrganizationTaxInfo(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/tax', null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async postOrganization(request: OrganizationCreateRequest): Promise {\n const r = await this.send('POST', '/organizations', request, true, true);\n return new OrganizationResponse(r);\n }\n\n async putOrganization(id: string, request: OrganizationUpdateRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + id, request, true, true);\n return new OrganizationResponse(r);\n }\n\n async putOrganizationTaxInfo(id: string, request: OrganizationTaxInfoUpdateRequest): Promise {\n return this.send('PUT', '/organizations/' + id + '/tax', request, true, false);\n }\n\n postLeaveOrganization(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/leave', null, true, false);\n }\n\n async postOrganizationLicense(data: FormData): Promise {\n const r = await this.send('POST', '/organizations/license', data, true, true);\n return new OrganizationResponse(r);\n }\n\n async postOrganizationLicenseUpdate(id: string, data: FormData): Promise {\n return this.send('POST', '/organizations/' + id + '/license', data, true, false);\n }\n\n async postOrganizationApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postOrganizationRotateApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/rotate-api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postOrganizationUpgrade(id: string, request: OrganizationUpgradeRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/upgrade', request, true, true);\n return new PaymentResponse(r);\n }\n\n async postOrganizationSeat(id: string, request: SeatRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/seat', request, true, true);\n return new PaymentResponse(r);\n }\n\n async postOrganizationStorage(id: string, request: StorageRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/storage', request, true, true);\n return new PaymentResponse(r);\n }\n\n postOrganizationPayment(id: string, request: PaymentRequest): Promise {\n return this.send('POST', '/organizations/' + id + '/payment', request, true, false);\n }\n\n postOrganizationVerifyBank(id: string, request: VerifyBankRequest): Promise {\n return this.send('POST', '/organizations/' + id + '/verify-bank', request, true, false);\n }\n\n postOrganizationCancel(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/cancel', null, true, false);\n }\n\n postOrganizationReinstate(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/reinstate', null, true, false);\n }\n\n deleteOrganization(id: string, request: PasswordVerificationRequest): Promise {\n return this.send('DELETE', '/organizations/' + id, request, true, false);\n }\n\n // Event APIs\n\n async getEvents(start: string, end: string, token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/events', start, end, token), null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsCipher(id: string, start: string, end: string,\n token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/ciphers/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganization(id: string, start: string, end: string,\n token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/organizations/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganizationUser(organizationId: string, id: string,\n start: string, end: string, token: string): Promise> {\n const r = await this.send('GET',\n this.addEventParameters('/organizations/' + organizationId + '/users/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async postEventsCollect(request: EventRequest[]): Promise {\n const authHeader = await this.getActiveBearerToken();\n const headers = new Headers({\n 'Device-Type': this.deviceType,\n 'Authorization': 'Bearer ' + authHeader,\n 'Content-Type': 'application/json; charset=utf-8',\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n const response = await this.fetch(new Request(this.eventsBaseUrl + '/collect', {\n cache: 'no-store',\n credentials: this.getCredentials(),\n method: 'POST',\n body: JSON.stringify(request),\n headers: headers,\n }));\n if (response.status !== 200) {\n return Promise.reject('Event post failed.');\n }\n }\n\n // User APIs\n\n async getUserPublicKey(id: string): Promise {\n const r = await this.send('GET', '/users/' + id + '/public-key', null, true, true);\n return new UserKeyResponse(r);\n }\n\n // HIBP APIs\n\n async getHibpBreach(username: string): Promise {\n const r = await this.send('GET', '/hibp/breach?username=' + username, null, true, true);\n return r.map((a: any) => new BreachAccountResponse(a));\n }\n\n // Misc\n\n async postBitPayInvoice(request: BitPayInvoiceRequest): Promise {\n const r = await this.send('POST', '/bitpay-invoice', request, true, true);\n return r as string;\n }\n\n async postSetupPayment(): Promise {\n const r = await this.send('POST', '/setup-payment', null, true, true);\n return r as string;\n }\n\n // Helpers\n\n async getActiveBearerToken(): Promise {\n let accessToken = await this.tokenService.getToken();\n if (this.tokenService.tokenNeedsRefresh()) {\n const tokenResponse = await this.doRefreshToken();\n accessToken = tokenResponse.accessToken;\n }\n return accessToken;\n }\n\n fetch(request: Request): Promise {\n if (request.method === 'GET') {\n request.headers.set('Cache-Control', 'no-store');\n request.headers.set('Pragma', 'no-cache');\n }\n return this.nativeFetch(request);\n }\n\n nativeFetch(request: Request): Promise {\n return fetch(request);\n }\n\n async preValidateSso(identifier: string): Promise {\n if (identifier == null || identifier === '') {\n throw new Error('Organization Identifier was not provided.');\n }\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const path = `/account/prevalidate?domainHint=${encodeURIComponent(identifier)}`;\n const response = await this.fetch(new Request(this.identityBaseUrl + path, {\n cache: 'no-store',\n credentials: this.getCredentials(),\n headers: headers,\n method: 'GET',\n }));\n\n if (response.status === 200) {\n return true;\n } else {\n const error = await this.handleError(response, false, true);\n return Promise.reject(error);\n }\n }\n\n private async send(method: 'GET' | 'POST' | 'PUT' | 'DELETE', path: string, body: any,\n authed: boolean, hasResponse: boolean, apiUrl?: string): Promise {\n apiUrl = Utils.isNullOrWhitespace(apiUrl) ? this.apiBaseUrl : apiUrl;\n const headers = new Headers({\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const requestInit: RequestInit = {\n cache: 'no-store',\n credentials: this.getCredentials(),\n method: method,\n };\n\n if (authed) {\n const authHeader = await this.getActiveBearerToken();\n headers.set('Authorization', 'Bearer ' + authHeader);\n }\n if (body != null) {\n if (typeof body === 'string') {\n requestInit.body = body;\n headers.set('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');\n } else if (typeof body === 'object') {\n if (body instanceof FormData) {\n requestInit.body = body;\n } else {\n headers.set('Content-Type', 'application/json; charset=utf-8');\n requestInit.body = JSON.stringify(body);\n }\n }\n }\n if (hasResponse) {\n headers.set('Accept', 'application/json');\n }\n\n requestInit.headers = headers;\n const response = await this.fetch(new Request(apiUrl + path, requestInit));\n\n if (hasResponse && response.status === 200) {\n const responseJson = await response.json();\n return responseJson;\n } else if (response.status !== 200) {\n const error = await this.handleError(response, false, authed);\n return Promise.reject(error);\n }\n }\n\n private async handleError(response: Response, tokenError: boolean, authed: boolean): Promise {\n if (authed && ((tokenError && response.status === 400) || response.status === 401 || response.status === 403)) {\n await this.logoutCallback(true);\n return null;\n }\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n } else if (this.isTextResponse(response)) {\n responseJson = { Message: await response.text() };\n }\n\n return new ErrorResponse(responseJson, response.status, tokenError);\n }\n\n private async doRefreshToken(): Promise {\n const refreshToken = await this.tokenService.getRefreshToken();\n if (refreshToken == null || refreshToken === '') {\n throw new Error();\n }\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const decodedToken = this.tokenService.decodeToken();\n const response = await this.fetch(new Request(this.identityBaseUrl + '/connect/token', {\n body: this.qsStringify({\n grant_type: 'refresh_token',\n client_id: decodedToken.client_id,\n refresh_token: refreshToken,\n }),\n cache: 'no-store',\n credentials: this.getCredentials(),\n headers: headers,\n method: 'POST',\n }));\n\n if (response.status === 200) {\n const responseJson = await response.json();\n const tokenResponse = new IdentityTokenResponse(responseJson);\n await this.tokenService.setTokens(tokenResponse.accessToken, tokenResponse.refreshToken);\n return tokenResponse;\n } else {\n const error = await this.handleError(response, true, true);\n return Promise.reject(error);\n }\n }\n\n private qsStringify(params: any): string {\n return Object.keys(params).map(key => {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n\n private getCredentials(): RequestCredentials {\n if (!this.isWebClient || this.usingBaseUrl) {\n return 'include';\n }\n return undefined;\n }\n\n private addEventParameters(base: string, start: string, end: string, token: string) {\n if (start != null) {\n base += ('?start=' + start);\n }\n if (end != null) {\n base += (base.indexOf('?') > -1 ? '&' : '?');\n base += ('end=' + end);\n }\n if (token != null) {\n base += (base.indexOf('?') > -1 ? '&' : '?');\n base += ('continuationToken=' + token);\n }\n return base;\n }\n\n private isJsonResponse(response: Response): boolean {\n const typeHeader = response.headers.get('content-type');\n return typeHeader != null && typeHeader.indexOf('application/json') > -1;\n }\n\n private isTextResponse(response: Response): boolean {\n const typeHeader = response.headers.get('content-type');\n return typeHeader != null && typeHeader.indexOf('text') > -1;\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { PlanResponse } from './planResponse';\n\nimport { PlanType } from '../../enums/planType';\n\nexport class OrganizationResponse extends BaseResponse {\n id: string;\n identifier: string;\n name: string;\n businessName: string;\n businessAddress1: string;\n businessAddress2: string;\n businessAddress3: string;\n businessCountry: string;\n businessTaxNumber: string;\n billingEmail: string;\n plan: PlanResponse;\n planType: PlanType;\n seats: number;\n maxCollections: number;\n maxStorageGb: number;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.identifier = this.getResponseProperty('Identifier');\n this.name = this.getResponseProperty('Name');\n this.businessName = this.getResponseProperty('BusinessName');\n this.businessAddress1 = this.getResponseProperty('BusinessAddress1');\n this.businessAddress2 = this.getResponseProperty('BusinessAddress2');\n this.businessAddress3 = this.getResponseProperty('BusinessAddress3');\n this.businessCountry = this.getResponseProperty('BusinessCountry');\n this.businessTaxNumber = this.getResponseProperty('BusinessTaxNumber');\n this.billingEmail = this.getResponseProperty('BillingEmail');\n const plan = this.getResponseProperty('Plan');\n this.plan = plan == null ? null : new PlanResponse(plan);\n this.planType = this.getResponseProperty('PlanType');\n this.seats = this.getResponseProperty('Seats');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.useGroups = this.getResponseProperty('UseGroups');\n this.useDirectory = this.getResponseProperty('UseDirectory');\n this.useEvents = this.getResponseProperty('UseEvents');\n this.useTotp = this.getResponseProperty('UseTotp');\n this.use2fa = this.getResponseProperty('Use2fa');\n this.useApi = this.getResponseProperty('UseApi');\n }\n}\n","import { PlanType } from '../../enums/planType';\nimport { ProductType } from '../../enums/productType';\n\nimport { BaseResponse } from './baseResponse';\n\nexport class PlanResponse extends BaseResponse {\n type: PlanType;\n product: ProductType;\n name: string;\n isAnnual: boolean;\n nameLocalizationKey: string;\n descriptionLocalizationKey: string;\n canBeUsedByBusiness: boolean;\n baseSeats: number;\n baseStorageGb: number;\n maxCollections: number;\n maxUsers: number;\n\n hasAdditionalSeatsOption: boolean;\n maxAdditionalSeats: number;\n hasAdditionalStorageOption: boolean;\n maxAdditionalStorage: number;\n hasPremiumAccessOption: boolean;\n trialPeriodDays: number;\n\n hasSelfHost: boolean;\n hasPolicies: boolean;\n hasGroups: boolean;\n hasDirectory: boolean;\n hasEvents: boolean;\n hasTotp: boolean;\n has2fa: boolean;\n hasApi: boolean;\n hasSso: boolean;\n usersGetPremium: boolean;\n\n upgradeSortOrder: number;\n displaySortOrder: number;\n legacyYear: number;\n disabled: boolean;\n\n stripePlanId: string;\n stripeSeatPlanId: string;\n stripeStoragePlanId: string;\n stripePremiumAccessPlanId: string;\n basePrice: number;\n seatPrice: number;\n additionalStoragePricePerGb: number;\n premiumAccessOptionPrice: number;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.product = this.getResponseProperty('Product');\n this.name = this.getResponseProperty('Name');\n this.isAnnual = this.getResponseProperty('IsAnnual');\n this.nameLocalizationKey = this.getResponseProperty('NameLocalizationKey');\n this.descriptionLocalizationKey = this.getResponseProperty('DescriptionLocalizationKey');\n this.canBeUsedByBusiness = this.getResponseProperty('CanBeUsedByBusiness');\n this.baseSeats = this.getResponseProperty('BaseSeats');\n this.baseStorageGb = this.getResponseProperty('BaseStorageGb');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxUsers = this.getResponseProperty('MaxUsers');\n this.hasAdditionalSeatsOption = this.getResponseProperty('HasAdditionalSeatsOption');\n this.maxAdditionalSeats = this.getResponseProperty('MaxAdditionalSeats');\n this.hasAdditionalStorageOption = this.getResponseProperty('HasAdditionalStorageOption');\n this.maxAdditionalStorage = this.getResponseProperty('MaxAdditionalStorage');\n this.hasPremiumAccessOption = this.getResponseProperty('HasPremiumAccessOption');\n this.trialPeriodDays = this.getResponseProperty('TrialPeriodDays');\n this.hasSelfHost = this.getResponseProperty('HasSelfHost');\n this.hasPolicies = this.getResponseProperty('HasPolicies');\n this.hasGroups = this.getResponseProperty('HasGroups');\n this.hasDirectory = this.getResponseProperty('HasDirectory');\n this.hasEvents = this.getResponseProperty('HasEvents');\n this.hasTotp = this.getResponseProperty('HasTotp');\n this.has2fa = this.getResponseProperty('Has2fa');\n this.hasApi = this.getResponseProperty('HasApi');\n this.hasSso = this.getResponseProperty('HasSso');\n this.usersGetPremium = this.getResponseProperty('UsersGetPremium');\n this.upgradeSortOrder = this.getResponseProperty('UpgradeSortOrder');\n this.displaySortOrder = this.getResponseProperty('SortOrder');\n this.legacyYear = this.getResponseProperty('LegacyYear');\n this.disabled = this.getResponseProperty('Disabled');\n this.stripePlanId = this.getResponseProperty('StripePlanId');\n this.stripeSeatPlanId = this.getResponseProperty('StripeSeatPlanId');\n this.stripeStoragePlanId = this.getResponseProperty('StripeStoragePlanId');\n this.stripePremiumAccessPlanId = this.getResponseProperty('StripePremiumAccessPlanId');\n this.basePrice = this.getResponseProperty('BasePrice');\n this.seatPrice = this.getResponseProperty('SeatPrice');\n this.additionalStoragePricePerGb = this.getResponseProperty('AdditionalStoragePricePerGb');\n this.premiumAccessOptionPrice = this.getResponseProperty('PremiumAccessOptionPrice');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SubscriptionResponse extends BaseResponse {\n storageName: string;\n storageGb: number;\n maxStorageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n license: any;\n expiration: string;\n usingInAppPurchase: boolean;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty('StorageName');\n this.storageGb = this.getResponseProperty('StorageGb');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.license = this.getResponseProperty('License');\n this.expiration = this.getResponseProperty('Expiration');\n this.usingInAppPurchase = this.getResponseProperty('UsingInAppPurchase');\n const subscription = this.getResponseProperty('Subscription');\n const upcomingInvoice = this.getResponseProperty('UpcomingInvoice');\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n this.upcomingInvoice = upcomingInvoice == null ? null :\n new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n }\n}\n\nexport class BillingSubscriptionResponse extends BaseResponse {\n trialStartDate: string;\n trialEndDate: string;\n periodStartDate: string;\n periodEndDate: string;\n cancelledDate: string;\n cancelAtEndDate: boolean;\n status: string;\n cancelled: boolean;\n items: BillingSubscriptionItemResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.trialEndDate = this.getResponseProperty('TrialStartDate');\n this.trialEndDate = this.getResponseProperty('TrialEndDate');\n this.periodStartDate = this.getResponseProperty('PeriodStartDate');\n this.periodEndDate = this.getResponseProperty('PeriodEndDate');\n this.cancelledDate = this.getResponseProperty('CancelledDate');\n this.cancelAtEndDate = this.getResponseProperty('CancelAtEndDate');\n this.status = this.getResponseProperty('Status');\n this.cancelled = this.getResponseProperty('Cancelled');\n const items = this.getResponseProperty('Items');\n if (items != null) {\n this.items = items.map((i: any) => new BillingSubscriptionItemResponse(i));\n }\n }\n}\n\nexport class BillingSubscriptionItemResponse extends BaseResponse {\n name: string;\n amount: number;\n quantity: number;\n interval: string;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.amount = this.getResponseProperty('Amount');\n this.quantity = this.getResponseProperty('Quantity');\n this.interval = this.getResponseProperty('Interval');\n }\n}\n\nexport class BillingSubscriptionUpcomingInvoiceResponse extends BaseResponse {\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.date = this.getResponseProperty('Date');\n this.amount = this.getResponseProperty('Amount');\n }\n}\n","import { Utils } from '../../misc/utils';\nimport { BaseResponse } from './baseResponse';\n\nexport class TwoFactorWebAuthnResponse extends BaseResponse {\n enabled: boolean;\n keys: KeyResponse[];\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n const keys = this.getResponseProperty('Keys');\n this.keys = keys == null ? null : keys.map((k: any) => new KeyResponse(k));\n }\n}\n\nexport class KeyResponse extends BaseResponse {\n name: string;\n id: number;\n migrated: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.id = this.getResponseProperty('Id');\n this.migrated = this.getResponseProperty('Migrated');\n }\n}\n\nexport class ChallengeResponse extends BaseResponse implements PublicKeyCredentialCreationOptions {\n attestation?: AttestationConveyancePreference;\n authenticatorSelection?: AuthenticatorSelectionCriteria;\n challenge: BufferSource;\n excludeCredentials?: PublicKeyCredentialDescriptor[];\n extensions?: AuthenticationExtensionsClientInputs;\n pubKeyCredParams: PublicKeyCredentialParameters[];\n rp: PublicKeyCredentialRpEntity;\n timeout?: number;\n user: PublicKeyCredentialUserEntity;\n\n constructor(response: any) {\n super(response);\n this.attestation = this.getResponseProperty('attestation');\n this.authenticatorSelection = this.getResponseProperty('authenticatorSelection');\n this.challenge = Utils.fromUrlB64ToArray(this.getResponseProperty('challenge'));\n this.excludeCredentials = this.getResponseProperty('excludeCredentials').map((c: any) => {\n c.id = Utils.fromUrlB64ToArray(c.id).buffer;\n return c;\n });\n this.extensions = this.getResponseProperty('extensions');\n this.pubKeyCredParams = this.getResponseProperty('pubKeyCredParams');\n this.rp = this.getResponseProperty('rp');\n this.timeout = this.getResponseProperty('timeout');\n\n const user = this.getResponseProperty('user');\n user.id = Utils.fromUrlB64ToArray(user.id);\n\n this.user = user;\n }\n}\n","import { Utils } from '../misc/utils';\n\nimport { AppIdService as AppIdServiceAbstraction } from '../abstractions/appId.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nexport class AppIdService implements AppIdServiceAbstraction {\n constructor(private storageService: StorageService) {\n }\n\n getAppId(): Promise {\n return this.makeAndGetAppId('appId');\n }\n\n getAnonymousAppId(): Promise {\n return this.makeAndGetAppId('anonymousAppId');\n }\n\n private async makeAndGetAppId(key: string) {\n const existingId = await this.storageService.get(key);\n if (existingId != null) {\n return existingId;\n }\n\n const guid = Utils.newGuid();\n await this.storageService.save(key, guid);\n return guid;\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { AuditService as AuditServiceAbstraction } from '../abstractions/audit.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\n\nimport { throttle } from '../misc/throttle';\nimport { Utils } from '../misc/utils';\n\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\n\nconst PwnedPasswordsApi = 'https://api.pwnedpasswords.com/range/';\n\nexport class AuditService implements AuditServiceAbstraction {\n constructor(private cryptoFunctionService: CryptoFunctionService, private apiService: ApiService) { }\n\n @throttle(100, () => 'passwordLeaked')\n async passwordLeaked(password: string): Promise {\n const hashBytes = await this.cryptoFunctionService.hash(password, 'sha1');\n const hash = Utils.fromBufferToHex(hashBytes).toUpperCase();\n const hashStart = hash.substr(0, 5);\n const hashEnding = hash.substr(5);\n\n const response = await this.apiService.nativeFetch(new Request(PwnedPasswordsApi + hashStart));\n const leakedHashes = await response.text();\n const match = leakedHashes.split(/\\r?\\n/).find(v => {\n return v.split(':')[0] === hashEnding;\n });\n\n return match != null ? parseInt(match.split(':')[1], 10) : 0;\n }\n\n async breachedAccounts(username: string): Promise {\n try {\n return await this.apiService.getHibpBreach(username);\n } catch (e) {\n const error = e as ErrorResponse;\n if (error.statusCode === 404) {\n return [];\n }\n throw new Error();\n }\n }\n}\n","import { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { UriMatchType } from '../enums/uriMatchType';\n\nimport { CipherData } from '../models/data/cipherData';\n\nimport { Attachment } from '../models/domain/attachment';\nimport { Card } from '../models/domain/card';\nimport { Cipher } from '../models/domain/cipher';\nimport Domain from '../models/domain/domainBase';\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\nimport { Field } from '../models/domain/field';\nimport { Identity } from '../models/domain/identity';\nimport { Login } from '../models/domain/login';\nimport { LoginUri } from '../models/domain/loginUri';\nimport { Password } from '../models/domain/password';\nimport { SecureNote } from '../models/domain/secureNote';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { AttachmentRequest } from '../models/request/attachmentRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkRestoreRequest } from '../models/request/cipherBulkRestoreRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\n\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\n\nimport { AttachmentView } from '../models/view/attachmentView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FieldView } from '../models/view/fieldView';\nimport { PasswordHistoryView } from '../models/view/passwordHistoryView';\nimport { View } from '../models/view/view';\n\nimport { SortedCiphersCache } from '../models/domain/sortedCiphersCache';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService as CipherServiceAbstraction } from '../abstractions/cipher.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FileUploadService } from '../abstractions/fileUpload.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { SearchService } from '../abstractions/search.service';\nimport { SettingsService } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ConstantsService } from './constants.service';\n\nimport { sequentialize } from '../misc/sequentialize';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n ciphersPrefix: 'ciphers_',\n localData: 'sitesLocalData',\n neverDomains: 'neverDomains',\n};\n\nconst DomainMatchBlacklist = new Map>([\n ['google.com', new Set(['script.google.com'])],\n]);\n\nexport class CipherService implements CipherServiceAbstraction {\n // tslint:disable-next-line\n _decryptedCipherCache: CipherView[];\n\n private sortedCiphersCache: SortedCiphersCache = new SortedCiphersCache(this.sortCiphersByLastUsed);\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private settingsService: SettingsService, private apiService: ApiService,\n private fileUploadService: FileUploadService, private storageService: StorageService,\n private i18nService: I18nService, private searchService: () => SearchService) {\n }\n\n get decryptedCipherCache() {\n return this._decryptedCipherCache;\n }\n set decryptedCipherCache(value: CipherView[]) {\n this._decryptedCipherCache = value;\n if (this.searchService != null) {\n if (value == null) {\n this.searchService().clearIndex();\n } else {\n this.searchService().indexCiphers();\n }\n }\n }\n\n clearCache(): void {\n this.decryptedCipherCache = null;\n this.sortedCiphersCache.clear();\n }\n\n async encrypt(model: CipherView, key?: SymmetricCryptoKey, originalCipher: Cipher = null): Promise {\n // Adjust password history\n if (model.id != null) {\n if (originalCipher == null) {\n originalCipher = await this.get(model.id);\n }\n if (originalCipher != null) {\n const existingCipher = await originalCipher.decrypt();\n model.passwordHistory = existingCipher.passwordHistory || [];\n if (model.type === CipherType.Login && existingCipher.type === CipherType.Login) {\n if (existingCipher.login.password != null && existingCipher.login.password !== '' &&\n existingCipher.login.password !== model.login.password) {\n const ph = new PasswordHistoryView();\n ph.password = existingCipher.login.password;\n ph.lastUsedDate = model.login.passwordRevisionDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n } else {\n model.login.passwordRevisionDate = existingCipher.login.passwordRevisionDate;\n }\n }\n if (existingCipher.hasFields) {\n const existingHiddenFields = existingCipher.fields.filter(f => f.type === FieldType.Hidden &&\n f.name != null && f.name !== '' && f.value != null && f.value !== '');\n const hiddenFields = model.fields == null ? [] :\n model.fields.filter(f => f.type === FieldType.Hidden && f.name != null && f.name !== '');\n existingHiddenFields.forEach(ef => {\n const matchedField = hiddenFields.find(f => f.name === ef.name);\n if (matchedField == null || matchedField.value !== ef.value) {\n const ph = new PasswordHistoryView();\n ph.password = ef.name + ': ' + ef.value;\n ph.lastUsedDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n }\n });\n }\n }\n if (model.passwordHistory != null && model.passwordHistory.length === 0) {\n model.passwordHistory = null;\n } else if (model.passwordHistory != null && model.passwordHistory.length > 5) {\n // only save last 5 history\n model.passwordHistory = model.passwordHistory.slice(0, 5);\n }\n }\n\n const cipher = new Cipher();\n cipher.id = model.id;\n cipher.folderId = model.folderId;\n cipher.favorite = model.favorite;\n cipher.organizationId = model.organizationId;\n cipher.type = model.type;\n cipher.collectionIds = model.collectionIds;\n cipher.revisionDate = model.revisionDate;\n\n if (key == null && cipher.organizationId != null) {\n key = await this.cryptoService.getOrgKey(cipher.organizationId);\n if (key == null) {\n throw new Error('Cannot encrypt cipher for organization. No key.');\n }\n }\n await Promise.all([\n this.encryptObjProperty(model, cipher, {\n name: null,\n notes: null,\n }, key),\n this.encryptCipherData(cipher, model, key),\n this.encryptFields(model.fields, key).then(fields => {\n cipher.fields = fields;\n }),\n this.encryptPasswordHistories(model.passwordHistory, key).then(ph => {\n cipher.passwordHistory = ph;\n }),\n this.encryptAttachments(model.attachments, key).then(attachments => {\n cipher.attachments = attachments;\n }),\n ]);\n\n return cipher;\n }\n\n async encryptAttachments(attachmentsModel: AttachmentView[], key: SymmetricCryptoKey): Promise {\n if (attachmentsModel == null || attachmentsModel.length === 0) {\n return null;\n }\n\n const promises: Promise[] = [];\n const encAttachments: Attachment[] = [];\n attachmentsModel.forEach(async model => {\n const attachment = new Attachment();\n attachment.id = model.id;\n attachment.size = model.size;\n attachment.sizeName = model.sizeName;\n attachment.url = model.url;\n const promise = this.encryptObjProperty(model, attachment, {\n fileName: null,\n }, key).then(async () => {\n if (model.key != null) {\n attachment.key = await this.cryptoService.encrypt(model.key.key, key);\n }\n encAttachments.push(attachment);\n });\n promises.push(promise);\n });\n\n await Promise.all(promises);\n return encAttachments;\n }\n\n async encryptFields(fieldsModel: FieldView[], key: SymmetricCryptoKey): Promise {\n if (!fieldsModel || !fieldsModel.length) {\n return null;\n }\n\n const self = this;\n const encFields: Field[] = [];\n await fieldsModel.reduce((promise, field) => {\n return promise.then(() => {\n return self.encryptField(field, key);\n }).then((encField: Field) => {\n encFields.push(encField);\n });\n }, Promise.resolve());\n\n return encFields;\n }\n\n async encryptField(fieldModel: FieldView, key: SymmetricCryptoKey): Promise {\n const field = new Field();\n field.type = fieldModel.type;\n // normalize boolean type field values\n if (fieldModel.type === FieldType.Boolean && fieldModel.value !== 'true') {\n fieldModel.value = 'false';\n }\n\n await this.encryptObjProperty(fieldModel, field, {\n name: null,\n value: null,\n }, key);\n\n return field;\n }\n\n async encryptPasswordHistories(phModels: PasswordHistoryView[], key: SymmetricCryptoKey): Promise {\n if (!phModels || !phModels.length) {\n return null;\n }\n\n const self = this;\n const encPhs: Password[] = [];\n await phModels.reduce((promise, ph) => {\n return promise.then(() => {\n return self.encryptPasswordHistory(ph, key);\n }).then((encPh: Password) => {\n encPhs.push(encPh);\n });\n }, Promise.resolve());\n\n return encPhs;\n }\n\n async encryptPasswordHistory(phModel: PasswordHistoryView, key: SymmetricCryptoKey): Promise {\n const ph = new Password();\n ph.lastUsedDate = phModel.lastUsedDate;\n\n await this.encryptObjProperty(phModel, ph, {\n password: null,\n }, key);\n\n return ph;\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const localData = await this.storageService.get(Keys.localData);\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null || !ciphers.hasOwnProperty(id)) {\n return null;\n }\n\n return new Cipher(ciphers[id], false, localData ? localData[id] : null);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const localData = await this.storageService.get(Keys.localData);\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n const response: Cipher[] = [];\n for (const id in ciphers) {\n if (ciphers.hasOwnProperty(id)) {\n response.push(new Cipher(ciphers[id], false, localData ? localData[id] : null));\n }\n }\n return response;\n }\n\n @sequentialize(() => 'getAllDecrypted')\n async getAllDecrypted(): Promise {\n if (this.decryptedCipherCache != null) {\n const userId = await this.userService.getUserId();\n if ((this.searchService().indexedEntityId ?? userId) !== userId)\n {\n await this.searchService().indexCiphers(userId, this.decryptedCipherCache);\n }\n return this.decryptedCipherCache;\n }\n\n const decCiphers: CipherView[] = [];\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const promises: any[] = [];\n const ciphers = await this.getAll();\n ciphers.forEach(cipher => {\n promises.push(cipher.decrypt().then(c => decCiphers.push(c)));\n });\n\n await Promise.all(promises);\n decCiphers.sort(this.getLocaleSortingFunction());\n this.decryptedCipherCache = decCiphers;\n return this.decryptedCipherCache;\n }\n\n async getAllDecryptedForGrouping(groupingId: string, folder: boolean = true): Promise {\n const ciphers = await this.getAllDecrypted();\n\n return ciphers.filter(cipher => {\n if (cipher.isDeleted) {\n return false;\n }\n if (folder && cipher.folderId === groupingId) {\n return true;\n } else if (!folder && cipher.collectionIds != null && cipher.collectionIds.indexOf(groupingId) > -1) {\n return true;\n }\n\n return false;\n });\n }\n\n async getAllDecryptedForUrl(url: string, includeOtherTypes?: CipherType[],\n defaultMatch: UriMatchType = null): Promise {\n if (url == null && includeOtherTypes == null) {\n return Promise.resolve([]);\n }\n\n const domain = Utils.getDomain(url);\n const eqDomainsPromise = domain == null ? Promise.resolve([]) :\n this.settingsService.getEquivalentDomains().then((eqDomains: any[][]) => {\n let matches: any[] = [];\n eqDomains.forEach(eqDomain => {\n if (eqDomain.length && eqDomain.indexOf(domain) >= 0) {\n matches = matches.concat(eqDomain);\n }\n });\n\n if (!matches.length) {\n matches.push(domain);\n }\n\n return matches;\n });\n\n const result = await Promise.all([eqDomainsPromise, this.getAllDecrypted()]);\n const matchingDomains = result[0];\n const ciphers = result[1];\n\n if (defaultMatch == null) {\n defaultMatch = await this.storageService.get(ConstantsService.defaultUriMatch);\n if (defaultMatch == null) {\n defaultMatch = UriMatchType.Domain;\n }\n }\n\n return ciphers.filter(cipher => {\n if (cipher.deletedDate != null) {\n return false;\n }\n if (includeOtherTypes != null && includeOtherTypes.indexOf(cipher.type) > -1) {\n return true;\n }\n\n if (url != null && cipher.type === CipherType.Login && cipher.login.uris != null) {\n for (let i = 0; i < cipher.login.uris.length; i++) {\n const u = cipher.login.uris[i];\n if (u.uri == null) {\n continue;\n }\n\n const match = u.match == null ? defaultMatch : u.match;\n switch (match) {\n case UriMatchType.Domain:\n if (domain != null && u.domain != null && matchingDomains.indexOf(u.domain) > -1) {\n if (DomainMatchBlacklist.has(u.domain)) {\n const domainUrlHost = Utils.getHost(url);\n if (!DomainMatchBlacklist.get(u.domain).has(domainUrlHost)) {\n return true;\n }\n } else {\n return true;\n }\n }\n break;\n case UriMatchType.Host:\n const urlHost = Utils.getHost(url);\n if (urlHost != null && urlHost === Utils.getHost(u.uri)) {\n return true;\n }\n break;\n case UriMatchType.Exact:\n if (url === u.uri) {\n return true;\n }\n break;\n case UriMatchType.StartsWith:\n if (url.startsWith(u.uri)) {\n return true;\n }\n break;\n case UriMatchType.RegularExpression:\n try {\n const regex = new RegExp(u.uri, 'i');\n if (regex.test(url)) {\n return true;\n }\n } catch { }\n break;\n case UriMatchType.Never:\n default:\n break;\n }\n }\n }\n\n return false;\n });\n }\n\n async getAllFromApiForOrganization(organizationId: string): Promise {\n const ciphers = await this.apiService.getCiphersOrganization(organizationId);\n if (ciphers != null && ciphers.data != null && ciphers.data.length) {\n const decCiphers: CipherView[] = [];\n const promises: any[] = [];\n ciphers.data.forEach(r => {\n const data = new CipherData(r);\n const cipher = new Cipher(data);\n promises.push(cipher.decrypt().then(c => decCiphers.push(c)));\n });\n await Promise.all(promises);\n decCiphers.sort(this.getLocaleSortingFunction());\n return decCiphers;\n } else {\n return [];\n }\n }\n\n async getLastUsedForUrl(url: string): Promise {\n return this.getCipherForUrl(url, true, false);\n }\n\n async getLastLaunchedForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, true);\n }\n\n async getNextCipherForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, false);\n }\n\n updateLastUsedIndexForUrl(url: string) {\n this.sortedCiphersCache.updateLastUsedIndex(url);\n }\n\n async updateLastUsedDate(id: string): Promise {\n let ciphersLocalData = await this.storageService.get(Keys.localData);\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n if (ciphersLocalData[id]) {\n ciphersLocalData[id].lastUsedDate = new Date().getTime();\n } else {\n ciphersLocalData[id] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.storageService.save(Keys.localData, ciphersLocalData);\n\n if (this.decryptedCipherCache == null) {\n return;\n }\n\n for (let i = 0; i < this.decryptedCipherCache.length; i++) {\n const cached = this.decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id];\n break;\n }\n }\n }\n\n async updateLastLaunchedDate(id: string): Promise {\n let ciphersLocalData = await this.storageService.get(Keys.localData);\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n if (ciphersLocalData[id]) {\n ciphersLocalData[id].lastLaunched = new Date().getTime();\n } else {\n ciphersLocalData[id] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.storageService.save(Keys.localData, ciphersLocalData);\n\n if (this.decryptedCipherCache == null) {\n return;\n }\n\n for (let i = 0; i < this.decryptedCipherCache.length; i++) {\n const cached = this.decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id];\n break;\n }\n }\n }\n\n async saveNeverDomain(domain: string): Promise {\n if (domain == null) {\n return;\n }\n\n let domains = await this.storageService.get<{ [id: string]: any; }>(Keys.neverDomains);\n if (!domains) {\n domains = {};\n }\n domains[domain] = null;\n await this.storageService.save(Keys.neverDomains, domains);\n }\n\n async saveWithServer(cipher: Cipher): Promise {\n let response: CipherResponse;\n if (cipher.id == null) {\n if (cipher.collectionIds != null) {\n const request = new CipherCreateRequest(cipher);\n response = await this.apiService.postCipherCreate(request);\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.postCipher(request);\n }\n cipher.id = response.id;\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.putCipher(cipher.id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new CipherData(response, userId, cipher.collectionIds);\n await this.upsert(data);\n }\n\n async shareWithServer(cipher: CipherView, organizationId: string, collectionIds: string[]): Promise {\n const attachmentPromises: Promise[] = [];\n if (cipher.attachments != null) {\n cipher.attachments.forEach(attachment => {\n if (attachment.key == null) {\n attachmentPromises.push(this.shareAttachmentWithServer(attachment, cipher.id, organizationId));\n }\n });\n }\n await Promise.all(attachmentPromises);\n\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n const encCipher = await this.encrypt(cipher);\n const request = new CipherShareRequest(encCipher);\n const response = await this.apiService.putShareCipher(cipher.id, request);\n const userId = await this.userService.getUserId();\n const data = new CipherData(response, userId, collectionIds);\n await this.upsert(data);\n }\n\n async shareManyWithServer(ciphers: CipherView[], organizationId: string, collectionIds: string[]): Promise {\n const promises: Promise[] = [];\n const encCiphers: Cipher[] = [];\n for (const cipher of ciphers) {\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n promises.push(this.encrypt(cipher).then(c => {\n encCiphers.push(c);\n }));\n }\n await Promise.all(promises);\n const request = new CipherBulkShareRequest(encCiphers, collectionIds);\n await this.apiService.putShareCiphers(request);\n const userId = await this.userService.getUserId();\n await this.upsert(encCiphers.map(c => c.toCipherData(userId)));\n }\n\n saveAttachmentWithServer(cipher: Cipher, unencryptedFile: any, admin = false): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(unencryptedFile);\n reader.onload = async (evt: any) => {\n try {\n const cData = await this.saveAttachmentRawWithServer(cipher,\n unencryptedFile.name, evt.target.result, admin);\n resolve(cData);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = evt => {\n reject('Error reading file.');\n };\n });\n }\n\n async saveAttachmentRawWithServer(cipher: Cipher, filename: string,\n data: ArrayBuffer, admin = false): Promise {\n const key = await this.cryptoService.getOrgKey(cipher.organizationId);\n const encFileName = await this.cryptoService.encrypt(filename, key);\n\n const dataEncKey = await this.cryptoService.makeEncKey(key);\n const encData = await this.cryptoService.encryptToBytes(data, dataEncKey[0]);\n\n const request: AttachmentRequest = {\n key: dataEncKey[1].encryptedString,\n fileName: encFileName.encryptedString,\n fileSize: encData.buffer.byteLength,\n adminRequest: admin,\n };\n\n let response: CipherResponse;\n try {\n const uploadDataResponse = await this.apiService.postCipherAttachment(cipher.id, request);\n response = admin ? uploadDataResponse.cipherMiniResponse : uploadDataResponse.cipherResponse;\n await this.fileUploadService.uploadCipherAttachment(admin, uploadDataResponse, filename, encData);\n } catch (e) {\n if (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404 || (e as ErrorResponse).statusCode === 405) {\n response = await this.legacyServerAttachmentFileUpload(admin, cipher.id, encFileName, encData, dataEncKey[1]);\n } else if (e instanceof ErrorResponse) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n } else {\n throw e;\n }\n }\n\n const userId = await this.userService.getUserId();\n const cData = new CipherData(response, userId, cipher.collectionIds);\n if (!admin) {\n await this.upsert(cData);\n }\n return new Cipher(cData);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async legacyServerAttachmentFileUpload(admin: boolean, cipherId: string, encFileName: EncString,\n encData: EncArrayBuffer, key: EncString) {\n const fd = new FormData();\n try {\n const blob = new Blob([encData.buffer], { type: 'application/octet-stream' });\n fd.append('key', key.encryptedString);\n fd.append('data', blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('key', key.encryptedString);\n fd.append('data', Buffer.from(encData.buffer) as any, {\n filepath: encFileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n let response: CipherResponse;\n try {\n if (admin) {\n response = await this.apiService.postCipherAttachmentAdminLegacy(cipherId, fd);\n } else {\n response = await this.apiService.postCipherAttachmentLegacy(cipherId, fd);\n }\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n\n return response;\n }\n\n async saveCollectionsWithServer(cipher: Cipher): Promise {\n const request = new CipherCollectionsRequest(cipher.collectionIds);\n await this.apiService.putCipherCollections(cipher.id, request);\n const userId = await this.userService.getUserId();\n const data = cipher.toCipherData(userId);\n await this.upsert(data);\n }\n\n async upsert(cipher: CipherData | CipherData[]): Promise {\n const userId = await this.userService.getUserId();\n let ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n ciphers = {};\n }\n\n if (cipher instanceof CipherData) {\n const c = cipher as CipherData;\n ciphers[c.id] = c;\n } else {\n (cipher as CipherData[]).forEach(c => {\n ciphers[c.id] = c;\n });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async replace(ciphers: { [id: string]: CipherData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.ciphersPrefix + userId);\n this.clearCache();\n }\n\n async moveManyWithServer(ids: string[], folderId: string): Promise {\n await this.apiService.putMoveCiphers(new CipherBulkMoveRequest(ids, folderId));\n\n const userId = await this.userService.getUserId();\n let ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n ciphers = {};\n }\n\n ids.forEach(id => {\n if (ciphers.hasOwnProperty(id)) {\n ciphers[id].folderId = folderId;\n }\n });\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (ciphers[id] == null) {\n return;\n }\n delete ciphers[id];\n } else {\n (id as string[]).forEach(i => {\n delete ciphers[i];\n });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteCipher(id);\n await this.delete(id);\n }\n\n async deleteManyWithServer(ids: string[]): Promise {\n await this.apiService.deleteManyCiphers(new CipherBulkDeleteRequest(ids));\n await this.delete(ids);\n }\n\n async deleteAttachment(id: string, attachmentId: string): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n\n if (ciphers == null || !ciphers.hasOwnProperty(id) || ciphers[id].attachments == null) {\n return;\n }\n\n for (let i = 0; i < ciphers[id].attachments.length; i++) {\n if (ciphers[id].attachments[i].id === attachmentId) {\n ciphers[id].attachments.splice(i, 1);\n }\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async deleteAttachmentWithServer(id: string, attachmentId: string): Promise {\n try {\n await this.apiService.deleteCipherAttachment(id, attachmentId);\n } catch (e) {\n return Promise.reject((e as ErrorResponse).getSingleMessage());\n }\n await this.deleteAttachment(id, attachmentId);\n }\n\n sortCiphersByLastUsed(a: CipherView, b: CipherView): number {\n const aLastUsed = a.localData && a.localData.lastUsedDate ? a.localData.lastUsedDate as number : null;\n const bLastUsed = b.localData && b.localData.lastUsedDate ? b.localData.lastUsedDate as number : null;\n\n const bothNotNull = aLastUsed != null && bLastUsed != null;\n if (bothNotNull && aLastUsed < bLastUsed) {\n return 1;\n }\n if (aLastUsed != null && bLastUsed == null) {\n return -1;\n }\n\n if (bothNotNull && aLastUsed > bLastUsed) {\n return -1;\n }\n if (bLastUsed != null && aLastUsed == null) {\n return 1;\n }\n\n return 0;\n }\n\n sortCiphersByLastUsedThenName(a: CipherView, b: CipherView): number {\n const result = this.sortCiphersByLastUsed(a, b);\n if (result !== 0) {\n return result;\n }\n\n return this.getLocaleSortingFunction()(a, b);\n }\n\n getLocaleSortingFunction(): (a: CipherView, b: CipherView) => number {\n return (a, b) => {\n let aName = a.name;\n let bName = b.name;\n\n if (aName == null && bName != null) {\n return -1;\n }\n if (aName != null && bName == null) {\n return 1;\n }\n if (aName == null && bName == null) {\n return 0;\n }\n\n const result = this.i18nService.collator ? this.i18nService.collator.compare(aName, bName) :\n aName.localeCompare(bName);\n\n if (result !== 0 || a.type !== CipherType.Login || b.type !== CipherType.Login) {\n return result;\n }\n\n if (a.login.username != null) {\n aName += a.login.username;\n }\n\n if (b.login.username != null) {\n bName += b.login.username;\n }\n\n return this.i18nService.collator ? this.i18nService.collator.compare(aName, bName) :\n aName.localeCompare(bName);\n };\n }\n\n async softDelete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n const setDeletedDate = (cipherId: string) => {\n if (ciphers[cipherId] == null) {\n return;\n }\n ciphers[cipherId].deletedDate = new Date().toISOString();\n };\n\n if (typeof id === 'string') {\n setDeletedDate(id);\n } else {\n (id as string[]).forEach(setDeletedDate);\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async softDeleteWithServer(id: string): Promise {\n await this.apiService.putDeleteCipher(id);\n await this.softDelete(id);\n }\n\n async softDeleteManyWithServer(ids: string[]): Promise {\n await this.apiService.putDeleteManyCiphers(new CipherBulkDeleteRequest(ids));\n await this.softDelete(ids);\n }\n\n async restore(cipher: { id: string, revisionDate: string; } | { id: string, revisionDate: string; }[]) {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n const clearDeletedDate = (c: { id: string, revisionDate: string; }) => {\n if (ciphers[c.id] == null) {\n return;\n }\n ciphers[c.id].deletedDate = null;\n ciphers[c.id].revisionDate = c.revisionDate;\n };\n\n\n if (cipher.constructor.name === 'Array') {\n (cipher as { id: string, revisionDate: string; }[]).forEach(clearDeletedDate);\n } else {\n clearDeletedDate(cipher as { id: string, revisionDate: string; });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async restoreWithServer(id: string): Promise {\n const response = await this.apiService.putRestoreCipher(id);\n await this.restore({ id: id, revisionDate: response.revisionDate });\n }\n\n async restoreManyWithServer(ids: string[]): Promise {\n const response = await this.apiService.putRestoreManyCiphers(new CipherBulkRestoreRequest(ids));\n const restores: { id: string, revisionDate: string; }[] = [];\n for (const cipher of response.data) {\n restores.push({ id: cipher.id, revisionDate: cipher.revisionDate });\n }\n await this.restore(restores);\n }\n\n // Helpers\n\n private async shareAttachmentWithServer(attachmentView: AttachmentView, cipherId: string,\n organizationId: string): Promise {\n const attachmentResponse = await this.apiService.nativeFetch(\n new Request(attachmentView.url, { cache: 'no-store' }));\n if (attachmentResponse.status !== 200) {\n throw Error('Failed to download attachment: ' + attachmentResponse.status.toString());\n }\n\n const buf = await attachmentResponse.arrayBuffer();\n const decBuf = await this.cryptoService.decryptFromBytes(buf, null);\n const key = await this.cryptoService.getOrgKey(organizationId);\n const encFileName = await this.cryptoService.encrypt(attachmentView.fileName, key);\n\n const dataEncKey = await this.cryptoService.makeEncKey(key);\n const encData = await this.cryptoService.encryptToBytes(decBuf, dataEncKey[0]);\n\n const fd = new FormData();\n try {\n const blob = new Blob([encData.buffer], { type: 'application/octet-stream' });\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', Buffer.from(encData.buffer) as any, {\n filepath: encFileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n try {\n await this.apiService.postShareCipherAttachment(cipherId, attachmentView.id, fd, organizationId);\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n }\n\n private async encryptObjProperty(model: V, obj: D,\n map: any, key: SymmetricCryptoKey): Promise {\n const promises = [];\n const self = this;\n\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n // tslint:disable-next-line\n (function (theProp, theObj) {\n const p = Promise.resolve().then(() => {\n const modelProp = (model as any)[(map[theProp] || theProp)];\n if (modelProp && modelProp !== '') {\n return self.cryptoService.encrypt(modelProp, key);\n }\n return null;\n }).then((val: EncString) => {\n (theObj as any)[theProp] = val;\n });\n promises.push(p);\n })(prop, obj);\n }\n\n await Promise.all(promises);\n }\n\n private async encryptCipherData(cipher: Cipher, model: CipherView, key: SymmetricCryptoKey) {\n switch (cipher.type) {\n case CipherType.Login:\n cipher.login = new Login();\n cipher.login.passwordRevisionDate = model.login.passwordRevisionDate;\n await this.encryptObjProperty(model.login, cipher.login, {\n username: null,\n password: null,\n totp: null,\n }, key);\n\n if (model.login.uris != null) {\n cipher.login.uris = [];\n for (let i = 0; i < model.login.uris.length; i++) {\n const loginUri = new LoginUri();\n loginUri.match = model.login.uris[i].match;\n await this.encryptObjProperty(model.login.uris[i], loginUri, {\n uri: null,\n }, key);\n cipher.login.uris.push(loginUri);\n }\n }\n return;\n case CipherType.SecureNote:\n cipher.secureNote = new SecureNote();\n cipher.secureNote.type = model.secureNote.type;\n return;\n case CipherType.Card:\n cipher.card = new Card();\n await this.encryptObjProperty(model.card, cipher.card, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, key);\n return;\n case CipherType.Identity:\n cipher.identity = new Identity();\n await this.encryptObjProperty(model.identity, cipher.identity, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, key);\n return;\n default:\n throw new Error('Unknown cipher type.');\n }\n }\n\n private async getCipherForUrl(url: string, lastUsed: boolean, lastLaunched: boolean): Promise {\n if (!this.sortedCiphersCache.isCached(url)) {\n const ciphers = await this.getAllDecryptedForUrl(url);\n if (!ciphers) {\n return null;\n }\n this.sortedCiphersCache.addCiphers(url, ciphers);\n }\n\n if (lastLaunched) {\n return this.sortedCiphersCache.getLastLaunched(url);\n } else if (lastUsed) {\n return this.sortedCiphersCache.getLastUsed(url);\n } else {\n return this.sortedCiphersCache.getNext(url);\n }\n }\n}\n","/**\n * Use as a Decorator on async functions, it will prevent multiple 'active' calls as the same time\n *\n * If a promise was returned from a previous call to this function, that hasn't yet resolved it will\n * be returned, instead of calling the original function again\n *\n * Results are not cached, once the promise has returned, the next call will result in a fresh call\n *\n * Read more at https://github.com/bitwarden/jslib/pull/7\n */\nexport function sequentialize(cacheKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod: () => Promise = descriptor.value;\n const caches = new Map>>();\n\n const getCache = (obj: any) => {\n let cache = caches.get(obj);\n if (cache != null) {\n return cache;\n }\n cache = new Map>();\n caches.set(obj, cache);\n return cache;\n };\n\n return {\n value: function(...args: any[]) {\n const cache = getCache(this);\n const argsCacheKey = cacheKey(args);\n let response = cache.get(argsCacheKey);\n if (response != null) {\n return response;\n }\n\n const onFinally = () => {\n cache.delete(argsCacheKey);\n if (cache.size === 0) {\n caches.delete(this);\n }\n };\n response = originalMethod.apply(this, args).then((val: any) => {\n onFinally();\n return val;\n }).catch((err: any) => {\n onFinally();\n throw err;\n });\n\n cache.set(argsCacheKey, response);\n return response;\n },\n };\n };\n}\n","import { CollectionData } from '../models/data/collectionData';\n\nimport { Collection } from '../models/domain/collection';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nimport { CollectionService as CollectionServiceAbstraction } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ServiceUtils } from '../misc/serviceUtils';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n collectionsPrefix: 'collections_',\n};\nconst NestingDelimiter = '/';\n\nexport class CollectionService implements CollectionServiceAbstraction {\n decryptedCollectionCache: CollectionView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private storageService: StorageService, private i18nService: I18nService) {\n }\n\n clearCache(): void {\n this.decryptedCollectionCache = null;\n }\n\n async encrypt(model: CollectionView): Promise {\n if (model.organizationId == null) {\n throw new Error('Collection has no organization id.');\n }\n const key = await this.cryptoService.getOrgKey(model.organizationId);\n if (key == null) {\n throw new Error('No key for this collection\\'s organization.');\n }\n const collection = new Collection();\n collection.id = model.id;\n collection.organizationId = model.organizationId;\n collection.readOnly = model.readOnly;\n collection.name = await this.cryptoService.encrypt(model.name, key);\n return collection;\n }\n\n async decryptMany(collections: Collection[]): Promise {\n if (collections == null) {\n return [];\n }\n const decCollections: CollectionView[] = [];\n const promises: Promise[] = [];\n collections.forEach(collection => {\n promises.push(collection.decrypt().then(c => decCollections.push(c)));\n });\n await Promise.all(promises);\n return decCollections.sort(Utils.getSortFunction(this.i18nService, 'name'));\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null || !collections.hasOwnProperty(id)) {\n return null;\n }\n\n return new Collection(collections[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n const response: Collection[] = [];\n for (const id in collections) {\n if (collections.hasOwnProperty(id)) {\n response.push(new Collection(collections[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedCollectionCache != null) {\n return this.decryptedCollectionCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const collections = await this.getAll();\n this.decryptedCollectionCache = await this.decryptMany(collections);\n return this.decryptedCollectionCache;\n }\n\n async getAllNested(collections: CollectionView[] = null): Promise[]> {\n if (collections == null) {\n collections = await this.getAllDecrypted();\n }\n const nodes: TreeNode[] = [];\n collections.forEach(c => {\n const collectionCopy = new CollectionView();\n collectionCopy.id = c.id;\n collectionCopy.organizationId = c.organizationId;\n const parts = c.name != null ? c.name.replace(/^\\/+|\\/+$/g, '').split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, collectionCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n async getNested(id: string): Promise> {\n const collections = await this.getAllNested();\n return ServiceUtils.getTreeNodeObject(collections, id) as TreeNode;\n }\n\n async upsert(collection: CollectionData | CollectionData[]): Promise {\n const userId = await this.userService.getUserId();\n let collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null) {\n collections = {};\n }\n\n if (collection instanceof CollectionData) {\n const c = collection as CollectionData;\n collections[c.id] = c;\n } else {\n (collection as CollectionData[]).forEach(c => {\n collections[c.id] = c;\n });\n }\n\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n\n async replace(collections: { [id: string]: CollectionData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.collectionsPrefix + userId);\n this.decryptedCollectionCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null) {\n return;\n }\n\n if (typeof id === 'string') {\n const i = id as string;\n delete collections[id];\n } else {\n (id as string[]).forEach(i => {\n delete collections[i];\n });\n }\n\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n}\n","import {\n ITreeNodeObject,\n TreeNode,\n} from '../models/domain/treeNode';\n\nexport class ServiceUtils {\n static nestedTraverse(nodeTree: TreeNode[], partIndex: number, parts: string[],\n obj: ITreeNodeObject, parent: ITreeNodeObject, delimiter: string) {\n if (parts.length <= partIndex) {\n return;\n }\n\n const end = partIndex === parts.length - 1;\n const partName = parts[partIndex];\n\n for (let i = 0; i < nodeTree.length; i++) {\n if (nodeTree[i].node.name !== parts[partIndex]) {\n continue;\n }\n if (end && nodeTree[i].node.id !== obj.id) {\n // Another node with the same name.\n nodeTree.push(new TreeNode(obj, partName, parent));\n return;\n }\n ServiceUtils.nestedTraverse(nodeTree[i].children, partIndex + 1, parts,\n obj, nodeTree[i].node, delimiter);\n return;\n }\n\n if (nodeTree.filter(n => n.node.name === partName).length === 0) {\n if (end) {\n nodeTree.push(new TreeNode(obj, partName, parent));\n return;\n }\n const newPartName = parts[partIndex] + delimiter + parts[partIndex + 1];\n ServiceUtils.nestedTraverse(nodeTree, 0, [newPartName, ...parts.slice(partIndex + 2)],\n obj, parent, delimiter);\n }\n }\n\n static getTreeNodeObject(nodeTree: TreeNode[], id: string): TreeNode {\n for (let i = 0; i < nodeTree.length; i++) {\n if (nodeTree[i].node.id === id) {\n return nodeTree[i];\n } else if (nodeTree[i].children != null) {\n const node = ServiceUtils.getTreeNodeObject(nodeTree[i].children, id);\n if (node !== null) {\n return node;\n }\n }\n }\n return null;\n }\n}\n","import { CryptoService } from '../abstractions/crypto.service';\n\nexport class ContainerService {\n constructor(private cryptoService: CryptoService) {\n }\n\n // deprecated, use attachToGlobal instead\n attachToWindow(win: any) {\n this.attachToGlobal(win);\n }\n\n attachToGlobal(global: any) {\n if (!global.bitwardenContainerService) {\n global.bitwardenContainerService = this;\n }\n }\n\n getCryptoService(): CryptoService {\n return this.cryptoService;\n }\n}\n","import * as bigInt from 'big-integer';\n\nimport { EncryptionType } from '../enums/encryptionType';\nimport { KdfType } from '../enums/kdfType';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncryptedObject } from '../models/domain/encryptedObject';\nimport { EncString } from '../models/domain/encString';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';\n\nimport { CryptoService as CryptoServiceAbstraction } from '../abstractions/crypto.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { LogService } from '../abstractions/log.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { ConstantsService } from './constants.service';\n\nimport { sequentialize } from '../misc/sequentialize';\nimport { Utils } from '../misc/utils';\nimport { EEFLongWordList } from '../misc/wordlist';\n\nconst Keys = {\n key: 'key', // Master Key\n encOrgKeys: 'encOrgKeys',\n encPrivateKey: 'encPrivateKey',\n encKey: 'encKey', // Generated Symmetric Key\n keyHash: 'keyHash',\n};\n\nexport class CryptoService implements CryptoServiceAbstraction {\n private key: SymmetricCryptoKey;\n private encKey: SymmetricCryptoKey;\n private legacyEtmKey: SymmetricCryptoKey;\n private keyHash: string;\n private publicKey: ArrayBuffer;\n private privateKey: ArrayBuffer;\n private orgKeys: Map;\n\n constructor(private storageService: StorageService, private secureStorageService: StorageService,\n private cryptoFunctionService: CryptoFunctionService, private platformUtilService: PlatformUtilsService,\n private logService: LogService) {\n }\n\n async setKey(key: SymmetricCryptoKey): Promise {\n this.key = key;\n\n const option = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const biometric = await this.storageService.get(ConstantsService.biometricUnlockKey);\n if (option != null && !(biometric && this.platformUtilService.supportsSecureStorage())) {\n // if we have a lock option set, we do not store the key\n return;\n }\n\n return this.secureStorageService.save(Keys.key, key.keyB64);\n }\n\n setKeyHash(keyHash: string): Promise<{}> {\n this.keyHash = keyHash;\n return this.storageService.save(Keys.keyHash, keyHash);\n }\n\n async setEncKey(encKey: string): Promise<{}> {\n if (encKey == null) {\n return;\n }\n\n await this.storageService.save(Keys.encKey, encKey);\n this.encKey = null;\n }\n\n async setEncPrivateKey(encPrivateKey: string): Promise<{}> {\n if (encPrivateKey == null) {\n return;\n }\n\n await this.storageService.save(Keys.encPrivateKey, encPrivateKey);\n this.privateKey = null;\n }\n\n setOrgKeys(orgs: ProfileOrganizationResponse[]): Promise<{}> {\n const orgKeys: any = {};\n orgs.forEach(org => {\n orgKeys[org.id] = org.key;\n });\n\n this.orgKeys = null;\n return this.storageService.save(Keys.encOrgKeys, orgKeys);\n }\n\n async getKey(): Promise {\n if (this.key != null) {\n return this.key;\n }\n\n const key = await this.secureStorageService.get(Keys.key);\n if (key != null) {\n this.key = new SymmetricCryptoKey(Utils.fromB64ToArray(key).buffer);\n }\n\n return key == null ? null : this.key;\n }\n\n async getKeyHash(): Promise {\n if (this.keyHash != null) {\n return this.keyHash;\n }\n\n const keyHash = await this.storageService.get(Keys.keyHash);\n if (keyHash != null) {\n this.keyHash = keyHash;\n }\n\n return keyHash == null ? null : this.keyHash;\n }\n\n @sequentialize(() => 'getEncKey')\n async getEncKey(key: SymmetricCryptoKey = null): Promise {\n if (this.encKey != null) {\n return this.encKey;\n }\n\n const encKey = await this.storageService.get(Keys.encKey);\n if (encKey == null) {\n return null;\n }\n\n if (key == null) {\n key = await this.getKey();\n }\n if (key == null) {\n return null;\n }\n\n let decEncKey: ArrayBuffer;\n const encKeyCipher = new EncString(encKey);\n if (encKeyCipher.encryptionType === EncryptionType.AesCbc256_B64) {\n decEncKey = await this.decryptToBytes(encKeyCipher, key);\n } else if (encKeyCipher.encryptionType === EncryptionType.AesCbc256_HmacSha256_B64) {\n const newKey = await this.stretchKey(key);\n decEncKey = await this.decryptToBytes(encKeyCipher, newKey);\n } else {\n throw new Error('Unsupported encKey type.');\n }\n\n if (decEncKey == null) {\n return null;\n }\n this.encKey = new SymmetricCryptoKey(decEncKey);\n return this.encKey;\n }\n\n async getPublicKey(): Promise {\n if (this.publicKey != null) {\n return this.publicKey;\n }\n\n const privateKey = await this.getPrivateKey();\n if (privateKey == null) {\n return null;\n }\n\n this.publicKey = await this.cryptoFunctionService.rsaExtractPublicKey(privateKey);\n return this.publicKey;\n }\n\n async getPrivateKey(): Promise {\n if (this.privateKey != null) {\n return this.privateKey;\n }\n\n const encPrivateKey = await this.storageService.get(Keys.encPrivateKey);\n if (encPrivateKey == null) {\n return null;\n }\n\n this.privateKey = await this.decryptToBytes(new EncString(encPrivateKey), null);\n return this.privateKey;\n }\n\n async getFingerprint(userId: string, publicKey?: ArrayBuffer): Promise {\n if (publicKey == null) {\n publicKey = await this.getPublicKey();\n }\n if (publicKey === null) {\n throw new Error('No public key available.');\n }\n const keyFingerprint = await this.cryptoFunctionService.hash(publicKey, 'sha256');\n const userFingerprint = await this.cryptoFunctionService.hkdfExpand(keyFingerprint, userId, 32, 'sha256');\n return this.hashPhrase(userFingerprint);\n }\n\n @sequentialize(() => 'getOrgKeys')\n async getOrgKeys(): Promise> {\n if (this.orgKeys != null && this.orgKeys.size > 0) {\n return this.orgKeys;\n }\n\n const encOrgKeys = await this.storageService.get(Keys.encOrgKeys);\n if (encOrgKeys == null) {\n return null;\n }\n\n const orgKeys: Map = new Map();\n let setKey = false;\n\n for (const orgId in encOrgKeys) {\n if (!encOrgKeys.hasOwnProperty(orgId)) {\n continue;\n }\n\n const decValue = await this.rsaDecrypt(encOrgKeys[orgId]);\n orgKeys.set(orgId, new SymmetricCryptoKey(decValue));\n setKey = true;\n }\n\n if (setKey) {\n this.orgKeys = orgKeys;\n }\n\n return this.orgKeys;\n }\n\n async getOrgKey(orgId: string): Promise {\n if (orgId == null) {\n return null;\n }\n\n const orgKeys = await this.getOrgKeys();\n if (orgKeys == null || !orgKeys.has(orgId)) {\n return null;\n }\n\n return orgKeys.get(orgId);\n }\n\n async hasKey(): Promise {\n return (await this.getKey()) != null;\n }\n\n async hasEncKey(): Promise {\n const encKey = await this.storageService.get(Keys.encKey);\n return encKey != null;\n }\n\n clearKey(): Promise {\n this.key = this.legacyEtmKey = null;\n return this.secureStorageService.remove(Keys.key);\n }\n\n clearKeyHash(): Promise {\n this.keyHash = null;\n return this.storageService.remove(Keys.keyHash);\n }\n\n clearEncKey(memoryOnly?: boolean): Promise {\n this.encKey = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encKey);\n }\n\n clearKeyPair(memoryOnly?: boolean): Promise {\n this.privateKey = null;\n this.publicKey = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encPrivateKey);\n }\n\n clearOrgKeys(memoryOnly?: boolean): Promise {\n this.orgKeys = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encOrgKeys);\n }\n\n clearPinProtectedKey(): Promise {\n return this.storageService.remove(ConstantsService.pinProtectedKey);\n }\n\n clearKeys(): Promise {\n return Promise.all([\n this.clearKey(),\n this.clearKeyHash(),\n this.clearOrgKeys(),\n this.clearEncKey(),\n this.clearKeyPair(),\n this.clearPinProtectedKey(),\n ]);\n }\n\n async toggleKey(): Promise {\n const key = await this.getKey();\n const option = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const biometric = await this.storageService.get(ConstantsService.biometricUnlockKey);\n if ((!biometric && this.platformUtilService.supportsSecureStorage()) && (option != null || option === 0)) {\n // if we have a lock option set, clear the key\n await this.clearKey();\n this.key = key;\n return;\n }\n\n await this.setKey(key);\n }\n\n async makeKey(password: string, salt: string, kdf: KdfType, kdfIterations: number):\n Promise {\n let key: ArrayBuffer = null;\n if (kdf == null || kdf === KdfType.PBKDF2_SHA256) {\n if (kdfIterations == null) {\n kdfIterations = 5000;\n } else if (kdfIterations < 5000) {\n throw new Error('PBKDF2 iteration minimum is 5000.');\n }\n key = await this.cryptoFunctionService.pbkdf2(password, salt, 'sha256', kdfIterations);\n } else {\n throw new Error('Unknown Kdf.');\n }\n return new SymmetricCryptoKey(key);\n }\n\n async makeKeyFromPin(pin: string, salt: string, kdf: KdfType, kdfIterations: number,\n protectedKeyCs: EncString = null):\n Promise {\n if (protectedKeyCs == null) {\n const pinProtectedKey = await this.storageService.get(ConstantsService.pinProtectedKey);\n if (pinProtectedKey == null) {\n throw new Error('No PIN protected key found.');\n }\n protectedKeyCs = new EncString(pinProtectedKey);\n }\n const pinKey = await this.makePinKey(pin, salt, kdf, kdfIterations);\n const decKey = await this.decryptToBytes(protectedKeyCs, pinKey);\n return new SymmetricCryptoKey(decKey);\n }\n\n async makeShareKey(): Promise<[EncString, SymmetricCryptoKey]> {\n const shareKey = await this.cryptoFunctionService.randomBytes(64);\n const publicKey = await this.getPublicKey();\n const encShareKey = await this.rsaEncrypt(shareKey, publicKey);\n return [encShareKey, new SymmetricCryptoKey(shareKey)];\n }\n\n async makeKeyPair(key?: SymmetricCryptoKey): Promise<[string, EncString]> {\n const keyPair = await this.cryptoFunctionService.rsaGenerateKeyPair(2048);\n const publicB64 = Utils.fromBufferToB64(keyPair[0]);\n const privateEnc = await this.encrypt(keyPair[1], key);\n return [publicB64, privateEnc];\n }\n\n async makePinKey(pin: string, salt: string, kdf: KdfType, kdfIterations: number): Promise {\n const pinKey = await this.makeKey(pin, salt, kdf, kdfIterations);\n return await this.stretchKey(pinKey);\n }\n\n async makeSendKey(keyMaterial: ArrayBuffer): Promise {\n const sendKey = await this.cryptoFunctionService.hkdf(keyMaterial, 'bitwarden-send', 'send', 64, 'sha256');\n return new SymmetricCryptoKey(sendKey);\n }\n\n async hashPassword(password: string, key: SymmetricCryptoKey): Promise {\n if (key == null) {\n key = await this.getKey();\n }\n if (password == null || key == null) {\n throw new Error('Invalid parameters.');\n }\n\n const hash = await this.cryptoFunctionService.pbkdf2(key.key, password, 'sha256', 1);\n return Utils.fromBufferToB64(hash);\n }\n\n async makeEncKey(key: SymmetricCryptoKey): Promise<[SymmetricCryptoKey, EncString]> {\n const theKey = await this.getKeyForEncryption(key);\n const encKey = await this.cryptoFunctionService.randomBytes(64);\n return this.buildEncKey(theKey, encKey);\n }\n\n async remakeEncKey(key: SymmetricCryptoKey, encKey?: SymmetricCryptoKey): Promise<[SymmetricCryptoKey, EncString]> {\n if (encKey == null) {\n encKey = await this.getEncKey();\n }\n return this.buildEncKey(key, encKey.key);\n }\n\n async encrypt(plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey): Promise {\n if (plainValue == null) {\n return Promise.resolve(null);\n }\n\n let plainBuf: ArrayBuffer;\n if (typeof (plainValue) === 'string') {\n plainBuf = Utils.fromUtf8ToArray(plainValue).buffer;\n } else {\n plainBuf = plainValue;\n }\n\n const encObj = await this.aesEncrypt(plainBuf, key);\n const iv = Utils.fromBufferToB64(encObj.iv);\n const data = Utils.fromBufferToB64(encObj.data);\n const mac = encObj.mac != null ? Utils.fromBufferToB64(encObj.mac) : null;\n return new EncString(encObj.key.encType, data, iv, mac);\n }\n\n async encryptToBytes(plainValue: ArrayBuffer, key?: SymmetricCryptoKey): Promise {\n const encValue = await this.aesEncrypt(plainValue, key);\n let macLen = 0;\n if (encValue.mac != null) {\n macLen = encValue.mac.byteLength;\n }\n\n const encBytes = new Uint8Array(1 + encValue.iv.byteLength + macLen + encValue.data.byteLength);\n encBytes.set([encValue.key.encType]);\n encBytes.set(new Uint8Array(encValue.iv), 1);\n if (encValue.mac != null) {\n encBytes.set(new Uint8Array(encValue.mac), 1 + encValue.iv.byteLength);\n }\n\n encBytes.set(new Uint8Array(encValue.data), 1 + encValue.iv.byteLength + macLen);\n return new EncArrayBuffer(encBytes.buffer);\n }\n\n async rsaEncrypt(data: ArrayBuffer, publicKey?: ArrayBuffer): Promise {\n if (publicKey == null) {\n publicKey = await this.getPublicKey();\n }\n if (publicKey == null) {\n throw new Error('Public key unavailable.');\n }\n\n const encBytes = await this.cryptoFunctionService.rsaEncrypt(data, publicKey, 'sha1');\n return new EncString(EncryptionType.Rsa2048_OaepSha1_B64, Utils.fromBufferToB64(encBytes));\n }\n\n async rsaDecrypt(encValue: string): Promise {\n const headerPieces = encValue.split('.');\n let encType: EncryptionType = null;\n let encPieces: string[];\n\n if (headerPieces.length === 1) {\n encType = EncryptionType.Rsa2048_OaepSha256_B64;\n encPieces = [headerPieces[0]];\n } else if (headerPieces.length === 2) {\n try {\n encType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split('|');\n } catch (e) { }\n }\n\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n // HmacSha256 types are deprecated\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error('encType unavailable.');\n }\n\n if (encPieces == null || encPieces.length <= 0) {\n throw new Error('encPieces unavailable.');\n }\n\n const data = Utils.fromB64ToArray(encPieces[0]).buffer;\n const privateKey = await this.getPrivateKey();\n if (privateKey == null) {\n throw new Error('No private key.');\n }\n\n let alg: 'sha1' | 'sha256' = 'sha1';\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n alg = 'sha256';\n break;\n case EncryptionType.Rsa2048_OaepSha1_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error('encType unavailable.');\n }\n\n return this.cryptoFunctionService.rsaDecrypt(data, privateKey, alg);\n }\n\n async decryptToBytes(encString: EncString, key?: SymmetricCryptoKey): Promise {\n const iv = Utils.fromB64ToArray(encString.iv).buffer;\n const data = Utils.fromB64ToArray(encString.data).buffer;\n const mac = encString.mac ? Utils.fromB64ToArray(encString.mac).buffer : null;\n const decipher = await this.aesDecryptToBytes(encString.encryptionType, data, iv, mac, key);\n if (decipher == null) {\n return null;\n }\n\n return decipher;\n }\n\n async decryptToUtf8(encString: EncString, key?: SymmetricCryptoKey): Promise {\n return await this.aesDecryptToUtf8(encString.encryptionType, encString.data,\n encString.iv, encString.mac, key);\n }\n\n async decryptFromBytes(encBuf: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n if (encBuf == null) {\n throw new Error('no encBuf.');\n }\n\n const encBytes = new Uint8Array(encBuf);\n const encType = encBytes[0];\n let ctBytes: Uint8Array = null;\n let ivBytes: Uint8Array = null;\n let macBytes: Uint8Array = null;\n\n switch (encType) {\n case EncryptionType.AesCbc128_HmacSha256_B64:\n case EncryptionType.AesCbc256_HmacSha256_B64:\n if (encBytes.length <= 49) { // 1 + 16 + 32 + ctLength\n return null;\n }\n\n ivBytes = encBytes.slice(1, 17);\n macBytes = encBytes.slice(17, 49);\n ctBytes = encBytes.slice(49);\n break;\n case EncryptionType.AesCbc256_B64:\n if (encBytes.length <= 17) { // 1 + 16 + ctLength\n return null;\n }\n\n ivBytes = encBytes.slice(1, 17);\n ctBytes = encBytes.slice(17);\n break;\n default:\n return null;\n }\n\n return await this.aesDecryptToBytes(encType, ctBytes.buffer, ivBytes.buffer,\n macBytes != null ? macBytes.buffer : null, key);\n }\n\n // EFForg/OpenWireless\n // ref https://github.com/EFForg/OpenWireless/blob/master/app/js/diceware.js\n async randomNumber(min: number, max: number): Promise {\n let rval = 0;\n const range = max - min + 1;\n const bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error('We cannot generate numbers larger than 53 bits.');\n }\n\n const bytesNeeded = Math.ceil(bitsNeeded / 8);\n const mask = Math.pow(2, bitsNeeded) - 1;\n // 7776 -> (2^13 = 8192) -1 == 8191 or 0x00001111 11111111\n\n // Fill a byte array with N random numbers\n const byteArray = new Uint8Array(await this.cryptoFunctionService.randomBytes(bytesNeeded));\n\n let p = (bytesNeeded - 1) * 8;\n for (let i = 0; i < bytesNeeded; i++) {\n rval += byteArray[i] * Math.pow(2, p);\n p -= 8;\n }\n\n // Use & to apply the mask and reduce the number of recursive lookups\n // tslint:disable-next-line\n rval = rval & mask;\n\n if (rval >= range) {\n // Integer out of acceptable range\n return this.randomNumber(min, max);\n }\n\n // Return an integer that falls within the range\n return min + rval;\n }\n\n // Helpers\n\n private async aesEncrypt(data: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n const obj = new EncryptedObject();\n obj.key = await this.getKeyForEncryption(key);\n obj.iv = await this.cryptoFunctionService.randomBytes(16);\n obj.data = await this.cryptoFunctionService.aesEncrypt(data, obj.iv, obj.key.encKey);\n\n if (obj.key.macKey != null) {\n const macData = new Uint8Array(obj.iv.byteLength + obj.data.byteLength);\n macData.set(new Uint8Array(obj.iv), 0);\n macData.set(new Uint8Array(obj.data), obj.iv.byteLength);\n obj.mac = await this.cryptoFunctionService.hmac(macData.buffer, obj.key.macKey, 'sha256');\n }\n\n return obj;\n }\n\n private async aesDecryptToUtf8(encType: EncryptionType, data: string, iv: string, mac: string,\n key: SymmetricCryptoKey): Promise {\n const keyForEnc = await this.getKeyForEncryption(key);\n const theKey = this.resolveLegacyKey(encType, keyForEnc);\n\n if (theKey.macKey != null && mac == null) {\n this.logService.error('mac required.');\n return null;\n }\n\n if (theKey.encType !== encType) {\n this.logService.error('encType unavailable.');\n return null;\n }\n\n const fastParams = this.cryptoFunctionService.aesDecryptFastParameters(data, iv, mac, theKey);\n if (fastParams.macKey != null && fastParams.mac != null) {\n const computedMac = await this.cryptoFunctionService.hmacFast(fastParams.macData,\n fastParams.macKey, 'sha256');\n const macsEqual = await this.cryptoFunctionService.compareFast(fastParams.mac, computedMac);\n if (!macsEqual) {\n this.logService.error('mac failed.');\n return null;\n }\n }\n\n return this.cryptoFunctionService.aesDecryptFast(fastParams);\n }\n\n private async aesDecryptToBytes(encType: EncryptionType, data: ArrayBuffer, iv: ArrayBuffer,\n mac: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n const keyForEnc = await this.getKeyForEncryption(key);\n const theKey = this.resolveLegacyKey(encType, keyForEnc);\n\n if (theKey.macKey != null && mac == null) {\n return null;\n }\n\n if (theKey.encType !== encType) {\n return null;\n }\n\n if (theKey.macKey != null && mac != null) {\n const macData = new Uint8Array(iv.byteLength + data.byteLength);\n macData.set(new Uint8Array(iv), 0);\n macData.set(new Uint8Array(data), iv.byteLength);\n const computedMac = await this.cryptoFunctionService.hmac(macData.buffer, theKey.macKey, 'sha256');\n if (computedMac === null) {\n return null;\n }\n\n const macsMatch = await this.cryptoFunctionService.compare(mac, computedMac);\n if (!macsMatch) {\n this.logService.error('mac failed.');\n return null;\n }\n }\n\n return await this.cryptoFunctionService.aesDecrypt(data, iv, theKey.encKey);\n }\n\n private async getKeyForEncryption(key?: SymmetricCryptoKey): Promise {\n if (key != null) {\n return key;\n }\n\n const encKey = await this.getEncKey();\n if (encKey != null) {\n return encKey;\n }\n\n return await this.getKey();\n }\n\n private resolveLegacyKey(encType: EncryptionType, key: SymmetricCryptoKey): SymmetricCryptoKey {\n if (encType === EncryptionType.AesCbc128_HmacSha256_B64 &&\n key.encType === EncryptionType.AesCbc256_B64) {\n // Old encrypt-then-mac scheme, make a new key\n if (this.legacyEtmKey == null) {\n this.legacyEtmKey = new SymmetricCryptoKey(key.key, EncryptionType.AesCbc128_HmacSha256_B64);\n }\n return this.legacyEtmKey;\n }\n\n return key;\n }\n\n private async stretchKey(key: SymmetricCryptoKey): Promise {\n const newKey = new Uint8Array(64);\n const encKey = await this.cryptoFunctionService.hkdfExpand(key.key, 'enc', 32, 'sha256');\n const macKey = await this.cryptoFunctionService.hkdfExpand(key.key, 'mac', 32, 'sha256');\n newKey.set(new Uint8Array(encKey));\n newKey.set(new Uint8Array(macKey), 32);\n return new SymmetricCryptoKey(newKey.buffer);\n }\n\n private async hashPhrase(hash: ArrayBuffer, minimumEntropy: number = 64) {\n const entropyPerWord = Math.log(EEFLongWordList.length) / Math.log(2);\n let numWords = Math.ceil(minimumEntropy / entropyPerWord);\n\n const hashArr = Array.from(new Uint8Array(hash));\n const entropyAvailable = hashArr.length * 4;\n if (numWords * entropyPerWord > entropyAvailable) {\n throw new Error('Output entropy of hash function is too small');\n }\n\n const phrase: string[] = [];\n let hashNumber = bigInt.fromArray(hashArr, 256);\n while (numWords--) {\n const remainder = hashNumber.mod(EEFLongWordList.length);\n hashNumber = hashNumber.divide(EEFLongWordList.length);\n phrase.push(EEFLongWordList[remainder as any]);\n }\n return phrase;\n }\n\n private async buildEncKey(key: SymmetricCryptoKey, encKey: ArrayBuffer)\n : Promise<[SymmetricCryptoKey, EncString]> {\n let encKeyEnc: EncString = null;\n if (key.key.byteLength === 32) {\n const newKey = await this.stretchKey(key);\n encKeyEnc = await this.encrypt(encKey, newKey);\n } else if (key.key.byteLength === 64) {\n encKeyEnc = await this.encrypt(encKey, key);\n } else {\n throw new Error('Invalid key size.');\n }\n return [new SymmetricCryptoKey(encKey), encKeyEnc];\n }\n}\n","// EFF's Long Wordlist from https://www.eff.org/dice\nexport const EEFLongWordList = [\n 'abacus',\n 'abdomen',\n 'abdominal',\n 'abide',\n 'abiding',\n 'ability',\n 'ablaze',\n 'able',\n 'abnormal',\n 'abrasion',\n 'abrasive',\n 'abreast',\n 'abridge',\n 'abroad',\n 'abruptly',\n 'absence',\n 'absentee',\n 'absently',\n 'absinthe',\n 'absolute',\n 'absolve',\n 'abstain',\n 'abstract',\n 'absurd',\n 'accent',\n 'acclaim',\n 'acclimate',\n 'accompany',\n 'account',\n 'accuracy',\n 'accurate',\n 'accustom',\n 'acetone',\n 'achiness',\n 'aching',\n 'acid',\n 'acorn',\n 'acquaint',\n 'acquire',\n 'acre',\n 'acrobat',\n 'acronym',\n 'acting',\n 'action',\n 'activate',\n 'activator',\n 'active',\n 'activism',\n 'activist',\n 'activity',\n 'actress',\n 'acts',\n 'acutely',\n 'acuteness',\n 'aeration',\n 'aerobics',\n 'aerosol',\n 'aerospace',\n 'afar',\n 'affair',\n 'affected',\n 'affecting',\n 'affection',\n 'affidavit',\n 'affiliate',\n 'affirm',\n 'affix',\n 'afflicted',\n 'affluent',\n 'afford',\n 'affront',\n 'aflame',\n 'afloat',\n 'aflutter',\n 'afoot',\n 'afraid',\n 'afterglow',\n 'afterlife',\n 'aftermath',\n 'aftermost',\n 'afternoon',\n 'aged',\n 'ageless',\n 'agency',\n 'agenda',\n 'agent',\n 'aggregate',\n 'aghast',\n 'agile',\n 'agility',\n 'aging',\n 'agnostic',\n 'agonize',\n 'agonizing',\n 'agony',\n 'agreeable',\n 'agreeably',\n 'agreed',\n 'agreeing',\n 'agreement',\n 'aground',\n 'ahead',\n 'ahoy',\n 'aide',\n 'aids',\n 'aim',\n 'ajar',\n 'alabaster',\n 'alarm',\n 'albatross',\n 'album',\n 'alfalfa',\n 'algebra',\n 'algorithm',\n 'alias',\n 'alibi',\n 'alienable',\n 'alienate',\n 'aliens',\n 'alike',\n 'alive',\n 'alkaline',\n 'alkalize',\n 'almanac',\n 'almighty',\n 'almost',\n 'aloe',\n 'aloft',\n 'aloha',\n 'alone',\n 'alongside',\n 'aloof',\n 'alphabet',\n 'alright',\n 'although',\n 'altitude',\n 'alto',\n 'aluminum',\n 'alumni',\n 'always',\n 'amaretto',\n 'amaze',\n 'amazingly',\n 'amber',\n 'ambiance',\n 'ambiguity',\n 'ambiguous',\n 'ambition',\n 'ambitious',\n 'ambulance',\n 'ambush',\n 'amendable',\n 'amendment',\n 'amends',\n 'amenity',\n 'amiable',\n 'amicably',\n 'amid',\n 'amigo',\n 'amino',\n 'amiss',\n 'ammonia',\n 'ammonium',\n 'amnesty',\n 'amniotic',\n 'among',\n 'amount',\n 'amperage',\n 'ample',\n 'amplifier',\n 'amplify',\n 'amply',\n 'amuck',\n 'amulet',\n 'amusable',\n 'amused',\n 'amusement',\n 'amuser',\n 'amusing',\n 'anaconda',\n 'anaerobic',\n 'anagram',\n 'anatomist',\n 'anatomy',\n 'anchor',\n 'anchovy',\n 'ancient',\n 'android',\n 'anemia',\n 'anemic',\n 'aneurism',\n 'anew',\n 'angelfish',\n 'angelic',\n 'anger',\n 'angled',\n 'angler',\n 'angles',\n 'angling',\n 'angrily',\n 'angriness',\n 'anguished',\n 'angular',\n 'animal',\n 'animate',\n 'animating',\n 'animation',\n 'animator',\n 'anime',\n 'animosity',\n 'ankle',\n 'annex',\n 'annotate',\n 'announcer',\n 'annoying',\n 'annually',\n 'annuity',\n 'anointer',\n 'another',\n 'answering',\n 'antacid',\n 'antarctic',\n 'anteater',\n 'antelope',\n 'antennae',\n 'anthem',\n 'anthill',\n 'anthology',\n 'antibody',\n 'antics',\n 'antidote',\n 'antihero',\n 'antiquely',\n 'antiques',\n 'antiquity',\n 'antirust',\n 'antitoxic',\n 'antitrust',\n 'antiviral',\n 'antivirus',\n 'antler',\n 'antonym',\n 'antsy',\n 'anvil',\n 'anybody',\n 'anyhow',\n 'anymore',\n 'anyone',\n 'anyplace',\n 'anything',\n 'anytime',\n 'anyway',\n 'anywhere',\n 'aorta',\n 'apache',\n 'apostle',\n 'appealing',\n 'appear',\n 'appease',\n 'appeasing',\n 'appendage',\n 'appendix',\n 'appetite',\n 'appetizer',\n 'applaud',\n 'applause',\n 'apple',\n 'appliance',\n 'applicant',\n 'applied',\n 'apply',\n 'appointee',\n 'appraisal',\n 'appraiser',\n 'apprehend',\n 'approach',\n 'approval',\n 'approve',\n 'apricot',\n 'april',\n 'apron',\n 'aptitude',\n 'aptly',\n 'aqua',\n 'aqueduct',\n 'arbitrary',\n 'arbitrate',\n 'ardently',\n 'area',\n 'arena',\n 'arguable',\n 'arguably',\n 'argue',\n 'arise',\n 'armadillo',\n 'armband',\n 'armchair',\n 'armed',\n 'armful',\n 'armhole',\n 'arming',\n 'armless',\n 'armoire',\n 'armored',\n 'armory',\n 'armrest',\n 'army',\n 'aroma',\n 'arose',\n 'around',\n 'arousal',\n 'arrange',\n 'array',\n 'arrest',\n 'arrival',\n 'arrive',\n 'arrogance',\n 'arrogant',\n 'arson',\n 'art',\n 'ascend',\n 'ascension',\n 'ascent',\n 'ascertain',\n 'ashamed',\n 'ashen',\n 'ashes',\n 'ashy',\n 'aside',\n 'askew',\n 'asleep',\n 'asparagus',\n 'aspect',\n 'aspirate',\n 'aspire',\n 'aspirin',\n 'astonish',\n 'astound',\n 'astride',\n 'astrology',\n 'astronaut',\n 'astronomy',\n 'astute',\n 'atlantic',\n 'atlas',\n 'atom',\n 'atonable',\n 'atop',\n 'atrium',\n 'atrocious',\n 'atrophy',\n 'attach',\n 'attain',\n 'attempt',\n 'attendant',\n 'attendee',\n 'attention',\n 'attentive',\n 'attest',\n 'attic',\n 'attire',\n 'attitude',\n 'attractor',\n 'attribute',\n 'atypical',\n 'auction',\n 'audacious',\n 'audacity',\n 'audible',\n 'audibly',\n 'audience',\n 'audio',\n 'audition',\n 'augmented',\n 'august',\n 'authentic',\n 'author',\n 'autism',\n 'autistic',\n 'autograph',\n 'automaker',\n 'automated',\n 'automatic',\n 'autopilot',\n 'available',\n 'avalanche',\n 'avatar',\n 'avenge',\n 'avenging',\n 'avenue',\n 'average',\n 'aversion',\n 'avert',\n 'aviation',\n 'aviator',\n 'avid',\n 'avoid',\n 'await',\n 'awaken',\n 'award',\n 'aware',\n 'awhile',\n 'awkward',\n 'awning',\n 'awoke',\n 'awry',\n 'axis',\n 'babble',\n 'babbling',\n 'babied',\n 'baboon',\n 'backache',\n 'backboard',\n 'backboned',\n 'backdrop',\n 'backed',\n 'backer',\n 'backfield',\n 'backfire',\n 'backhand',\n 'backing',\n 'backlands',\n 'backlash',\n 'backless',\n 'backlight',\n 'backlit',\n 'backlog',\n 'backpack',\n 'backpedal',\n 'backrest',\n 'backroom',\n 'backshift',\n 'backside',\n 'backslid',\n 'backspace',\n 'backspin',\n 'backstab',\n 'backstage',\n 'backtalk',\n 'backtrack',\n 'backup',\n 'backward',\n 'backwash',\n 'backwater',\n 'backyard',\n 'bacon',\n 'bacteria',\n 'bacterium',\n 'badass',\n 'badge',\n 'badland',\n 'badly',\n 'badness',\n 'baffle',\n 'baffling',\n 'bagel',\n 'bagful',\n 'baggage',\n 'bagged',\n 'baggie',\n 'bagginess',\n 'bagging',\n 'baggy',\n 'bagpipe',\n 'baguette',\n 'baked',\n 'bakery',\n 'bakeshop',\n 'baking',\n 'balance',\n 'balancing',\n 'balcony',\n 'balmy',\n 'balsamic',\n 'bamboo',\n 'banana',\n 'banish',\n 'banister',\n 'banjo',\n 'bankable',\n 'bankbook',\n 'banked',\n 'banker',\n 'banking',\n 'banknote',\n 'bankroll',\n 'banner',\n 'bannister',\n 'banshee',\n 'banter',\n 'barbecue',\n 'barbed',\n 'barbell',\n 'barber',\n 'barcode',\n 'barge',\n 'bargraph',\n 'barista',\n 'baritone',\n 'barley',\n 'barmaid',\n 'barman',\n 'barn',\n 'barometer',\n 'barrack',\n 'barracuda',\n 'barrel',\n 'barrette',\n 'barricade',\n 'barrier',\n 'barstool',\n 'bartender',\n 'barterer',\n 'bash',\n 'basically',\n 'basics',\n 'basil',\n 'basin',\n 'basis',\n 'basket',\n 'batboy',\n 'batch',\n 'bath',\n 'baton',\n 'bats',\n 'battalion',\n 'battered',\n 'battering',\n 'battery',\n 'batting',\n 'battle',\n 'bauble',\n 'bazooka',\n 'blabber',\n 'bladder',\n 'blade',\n 'blah',\n 'blame',\n 'blaming',\n 'blanching',\n 'blandness',\n 'blank',\n 'blaspheme',\n 'blasphemy',\n 'blast',\n 'blatancy',\n 'blatantly',\n 'blazer',\n 'blazing',\n 'bleach',\n 'bleak',\n 'bleep',\n 'blemish',\n 'blend',\n 'bless',\n 'blighted',\n 'blimp',\n 'bling',\n 'blinked',\n 'blinker',\n 'blinking',\n 'blinks',\n 'blip',\n 'blissful',\n 'blitz',\n 'blizzard',\n 'bloated',\n 'bloating',\n 'blob',\n 'blog',\n 'bloomers',\n 'blooming',\n 'blooper',\n 'blot',\n 'blouse',\n 'blubber',\n 'bluff',\n 'bluish',\n 'blunderer',\n 'blunt',\n 'blurb',\n 'blurred',\n 'blurry',\n 'blurt',\n 'blush',\n 'blustery',\n 'boaster',\n 'boastful',\n 'boasting',\n 'boat',\n 'bobbed',\n 'bobbing',\n 'bobble',\n 'bobcat',\n 'bobsled',\n 'bobtail',\n 'bodacious',\n 'body',\n 'bogged',\n 'boggle',\n 'bogus',\n 'boil',\n 'bok',\n 'bolster',\n 'bolt',\n 'bonanza',\n 'bonded',\n 'bonding',\n 'bondless',\n 'boned',\n 'bonehead',\n 'boneless',\n 'bonelike',\n 'boney',\n 'bonfire',\n 'bonnet',\n 'bonsai',\n 'bonus',\n 'bony',\n 'boogeyman',\n 'boogieman',\n 'book',\n 'boondocks',\n 'booted',\n 'booth',\n 'bootie',\n 'booting',\n 'bootlace',\n 'bootleg',\n 'boots',\n 'boozy',\n 'borax',\n 'boring',\n 'borough',\n 'borrower',\n 'borrowing',\n 'boss',\n 'botanical',\n 'botanist',\n 'botany',\n 'botch',\n 'both',\n 'bottle',\n 'bottling',\n 'bottom',\n 'bounce',\n 'bouncing',\n 'bouncy',\n 'bounding',\n 'boundless',\n 'bountiful',\n 'bovine',\n 'boxcar',\n 'boxer',\n 'boxing',\n 'boxlike',\n 'boxy',\n 'breach',\n 'breath',\n 'breeches',\n 'breeching',\n 'breeder',\n 'breeding',\n 'breeze',\n 'breezy',\n 'brethren',\n 'brewery',\n 'brewing',\n 'briar',\n 'bribe',\n 'brick',\n 'bride',\n 'bridged',\n 'brigade',\n 'bright',\n 'brilliant',\n 'brim',\n 'bring',\n 'brink',\n 'brisket',\n 'briskly',\n 'briskness',\n 'bristle',\n 'brittle',\n 'broadband',\n 'broadcast',\n 'broaden',\n 'broadly',\n 'broadness',\n 'broadside',\n 'broadways',\n 'broiler',\n 'broiling',\n 'broken',\n 'broker',\n 'bronchial',\n 'bronco',\n 'bronze',\n 'bronzing',\n 'brook',\n 'broom',\n 'brought',\n 'browbeat',\n 'brownnose',\n 'browse',\n 'browsing',\n 'bruising',\n 'brunch',\n 'brunette',\n 'brunt',\n 'brush',\n 'brussels',\n 'brute',\n 'brutishly',\n 'bubble',\n 'bubbling',\n 'bubbly',\n 'buccaneer',\n 'bucked',\n 'bucket',\n 'buckle',\n 'buckshot',\n 'buckskin',\n 'bucktooth',\n 'buckwheat',\n 'buddhism',\n 'buddhist',\n 'budding',\n 'buddy',\n 'budget',\n 'buffalo',\n 'buffed',\n 'buffer',\n 'buffing',\n 'buffoon',\n 'buggy',\n 'bulb',\n 'bulge',\n 'bulginess',\n 'bulgur',\n 'bulk',\n 'bulldog',\n 'bulldozer',\n 'bullfight',\n 'bullfrog',\n 'bullhorn',\n 'bullion',\n 'bullish',\n 'bullpen',\n 'bullring',\n 'bullseye',\n 'bullwhip',\n 'bully',\n 'bunch',\n 'bundle',\n 'bungee',\n 'bunion',\n 'bunkbed',\n 'bunkhouse',\n 'bunkmate',\n 'bunny',\n 'bunt',\n 'busboy',\n 'bush',\n 'busily',\n 'busload',\n 'bust',\n 'busybody',\n 'buzz',\n 'cabana',\n 'cabbage',\n 'cabbie',\n 'cabdriver',\n 'cable',\n 'caboose',\n 'cache',\n 'cackle',\n 'cacti',\n 'cactus',\n 'caddie',\n 'caddy',\n 'cadet',\n 'cadillac',\n 'cadmium',\n 'cage',\n 'cahoots',\n 'cake',\n 'calamari',\n 'calamity',\n 'calcium',\n 'calculate',\n 'calculus',\n 'caliber',\n 'calibrate',\n 'calm',\n 'caloric',\n 'calorie',\n 'calzone',\n 'camcorder',\n 'cameo',\n 'camera',\n 'camisole',\n 'camper',\n 'campfire',\n 'camping',\n 'campsite',\n 'campus',\n 'canal',\n 'canary',\n 'cancel',\n 'candied',\n 'candle',\n 'candy',\n 'cane',\n 'canine',\n 'canister',\n 'cannabis',\n 'canned',\n 'canning',\n 'cannon',\n 'cannot',\n 'canola',\n 'canon',\n 'canopener',\n 'canopy',\n 'canteen',\n 'canyon',\n 'capable',\n 'capably',\n 'capacity',\n 'cape',\n 'capillary',\n 'capital',\n 'capitol',\n 'capped',\n 'capricorn',\n 'capsize',\n 'capsule',\n 'caption',\n 'captivate',\n 'captive',\n 'captivity',\n 'capture',\n 'caramel',\n 'carat',\n 'caravan',\n 'carbon',\n 'cardboard',\n 'carded',\n 'cardiac',\n 'cardigan',\n 'cardinal',\n 'cardstock',\n 'carefully',\n 'caregiver',\n 'careless',\n 'caress',\n 'caretaker',\n 'cargo',\n 'caring',\n 'carless',\n 'carload',\n 'carmaker',\n 'carnage',\n 'carnation',\n 'carnival',\n 'carnivore',\n 'carol',\n 'carpenter',\n 'carpentry',\n 'carpool',\n 'carport',\n 'carried',\n 'carrot',\n 'carrousel',\n 'carry',\n 'cartel',\n 'cartload',\n 'carton',\n 'cartoon',\n 'cartridge',\n 'cartwheel',\n 'carve',\n 'carving',\n 'carwash',\n 'cascade',\n 'case',\n 'cash',\n 'casing',\n 'casino',\n 'casket',\n 'cassette',\n 'casually',\n 'casualty',\n 'catacomb',\n 'catalog',\n 'catalyst',\n 'catalyze',\n 'catapult',\n 'cataract',\n 'catatonic',\n 'catcall',\n 'catchable',\n 'catcher',\n 'catching',\n 'catchy',\n 'caterer',\n 'catering',\n 'catfight',\n 'catfish',\n 'cathedral',\n 'cathouse',\n 'catlike',\n 'catnap',\n 'catnip',\n 'catsup',\n 'cattail',\n 'cattishly',\n 'cattle',\n 'catty',\n 'catwalk',\n 'caucasian',\n 'caucus',\n 'causal',\n 'causation',\n 'cause',\n 'causing',\n 'cauterize',\n 'caution',\n 'cautious',\n 'cavalier',\n 'cavalry',\n 'caviar',\n 'cavity',\n 'cedar',\n 'celery',\n 'celestial',\n 'celibacy',\n 'celibate',\n 'celtic',\n 'cement',\n 'census',\n 'ceramics',\n 'ceremony',\n 'certainly',\n 'certainty',\n 'certified',\n 'certify',\n 'cesarean',\n 'cesspool',\n 'chafe',\n 'chaffing',\n 'chain',\n 'chair',\n 'chalice',\n 'challenge',\n 'chamber',\n 'chamomile',\n 'champion',\n 'chance',\n 'change',\n 'channel',\n 'chant',\n 'chaos',\n 'chaperone',\n 'chaplain',\n 'chapped',\n 'chaps',\n 'chapter',\n 'character',\n 'charbroil',\n 'charcoal',\n 'charger',\n 'charging',\n 'chariot',\n 'charity',\n 'charm',\n 'charred',\n 'charter',\n 'charting',\n 'chase',\n 'chasing',\n 'chaste',\n 'chastise',\n 'chastity',\n 'chatroom',\n 'chatter',\n 'chatting',\n 'chatty',\n 'cheating',\n 'cheddar',\n 'cheek',\n 'cheer',\n 'cheese',\n 'cheesy',\n 'chef',\n 'chemicals',\n 'chemist',\n 'chemo',\n 'cherisher',\n 'cherub',\n 'chess',\n 'chest',\n 'chevron',\n 'chevy',\n 'chewable',\n 'chewer',\n 'chewing',\n 'chewy',\n 'chief',\n 'chihuahua',\n 'childcare',\n 'childhood',\n 'childish',\n 'childless',\n 'childlike',\n 'chili',\n 'chill',\n 'chimp',\n 'chip',\n 'chirping',\n 'chirpy',\n 'chitchat',\n 'chivalry',\n 'chive',\n 'chloride',\n 'chlorine',\n 'choice',\n 'chokehold',\n 'choking',\n 'chomp',\n 'chooser',\n 'choosing',\n 'choosy',\n 'chop',\n 'chosen',\n 'chowder',\n 'chowtime',\n 'chrome',\n 'chubby',\n 'chuck',\n 'chug',\n 'chummy',\n 'chump',\n 'chunk',\n 'churn',\n 'chute',\n 'cider',\n 'cilantro',\n 'cinch',\n 'cinema',\n 'cinnamon',\n 'circle',\n 'circling',\n 'circular',\n 'circulate',\n 'circus',\n 'citable',\n 'citadel',\n 'citation',\n 'citizen',\n 'citric',\n 'citrus',\n 'city',\n 'civic',\n 'civil',\n 'clad',\n 'claim',\n 'clambake',\n 'clammy',\n 'clamor',\n 'clamp',\n 'clamshell',\n 'clang',\n 'clanking',\n 'clapped',\n 'clapper',\n 'clapping',\n 'clarify',\n 'clarinet',\n 'clarity',\n 'clash',\n 'clasp',\n 'class',\n 'clatter',\n 'clause',\n 'clavicle',\n 'claw',\n 'clay',\n 'clean',\n 'clear',\n 'cleat',\n 'cleaver',\n 'cleft',\n 'clench',\n 'clergyman',\n 'clerical',\n 'clerk',\n 'clever',\n 'clicker',\n 'client',\n 'climate',\n 'climatic',\n 'cling',\n 'clinic',\n 'clinking',\n 'clip',\n 'clique',\n 'cloak',\n 'clobber',\n 'clock',\n 'clone',\n 'cloning',\n 'closable',\n 'closure',\n 'clothes',\n 'clothing',\n 'cloud',\n 'clover',\n 'clubbed',\n 'clubbing',\n 'clubhouse',\n 'clump',\n 'clumsily',\n 'clumsy',\n 'clunky',\n 'clustered',\n 'clutch',\n 'clutter',\n 'coach',\n 'coagulant',\n 'coastal',\n 'coaster',\n 'coasting',\n 'coastland',\n 'coastline',\n 'coat',\n 'coauthor',\n 'cobalt',\n 'cobbler',\n 'cobweb',\n 'cocoa',\n 'coconut',\n 'cod',\n 'coeditor',\n 'coerce',\n 'coexist',\n 'coffee',\n 'cofounder',\n 'cognition',\n 'cognitive',\n 'cogwheel',\n 'coherence',\n 'coherent',\n 'cohesive',\n 'coil',\n 'coke',\n 'cola',\n 'cold',\n 'coleslaw',\n 'coliseum',\n 'collage',\n 'collapse',\n 'collar',\n 'collected',\n 'collector',\n 'collide',\n 'collie',\n 'collision',\n 'colonial',\n 'colonist',\n 'colonize',\n 'colony',\n 'colossal',\n 'colt',\n 'coma',\n 'come',\n 'comfort',\n 'comfy',\n 'comic',\n 'coming',\n 'comma',\n 'commence',\n 'commend',\n 'comment',\n 'commerce',\n 'commode',\n 'commodity',\n 'commodore',\n 'common',\n 'commotion',\n 'commute',\n 'commuting',\n 'compacted',\n 'compacter',\n 'compactly',\n 'compactor',\n 'companion',\n 'company',\n 'compare',\n 'compel',\n 'compile',\n 'comply',\n 'component',\n 'composed',\n 'composer',\n 'composite',\n 'compost',\n 'composure',\n 'compound',\n 'compress',\n 'comprised',\n 'computer',\n 'computing',\n 'comrade',\n 'concave',\n 'conceal',\n 'conceded',\n 'concept',\n 'concerned',\n 'concert',\n 'conch',\n 'concierge',\n 'concise',\n 'conclude',\n 'concrete',\n 'concur',\n 'condense',\n 'condiment',\n 'condition',\n 'condone',\n 'conducive',\n 'conductor',\n 'conduit',\n 'cone',\n 'confess',\n 'confetti',\n 'confidant',\n 'confident',\n 'confider',\n 'confiding',\n 'configure',\n 'confined',\n 'confining',\n 'confirm',\n 'conflict',\n 'conform',\n 'confound',\n 'confront',\n 'confused',\n 'confusing',\n 'confusion',\n 'congenial',\n 'congested',\n 'congrats',\n 'congress',\n 'conical',\n 'conjoined',\n 'conjure',\n 'conjuror',\n 'connected',\n 'connector',\n 'consensus',\n 'consent',\n 'console',\n 'consoling',\n 'consonant',\n 'constable',\n 'constant',\n 'constrain',\n 'constrict',\n 'construct',\n 'consult',\n 'consumer',\n 'consuming',\n 'contact',\n 'container',\n 'contempt',\n 'contend',\n 'contented',\n 'contently',\n 'contents',\n 'contest',\n 'context',\n 'contort',\n 'contour',\n 'contrite',\n 'control',\n 'contusion',\n 'convene',\n 'convent',\n 'copartner',\n 'cope',\n 'copied',\n 'copier',\n 'copilot',\n 'coping',\n 'copious',\n 'copper',\n 'copy',\n 'coral',\n 'cork',\n 'cornball',\n 'cornbread',\n 'corncob',\n 'cornea',\n 'corned',\n 'corner',\n 'cornfield',\n 'cornflake',\n 'cornhusk',\n 'cornmeal',\n 'cornstalk',\n 'corny',\n 'coronary',\n 'coroner',\n 'corporal',\n 'corporate',\n 'corral',\n 'correct',\n 'corridor',\n 'corrode',\n 'corroding',\n 'corrosive',\n 'corsage',\n 'corset',\n 'cortex',\n 'cosigner',\n 'cosmetics',\n 'cosmic',\n 'cosmos',\n 'cosponsor',\n 'cost',\n 'cottage',\n 'cotton',\n 'couch',\n 'cough',\n 'could',\n 'countable',\n 'countdown',\n 'counting',\n 'countless',\n 'country',\n 'county',\n 'courier',\n 'covenant',\n 'cover',\n 'coveted',\n 'coveting',\n 'coyness',\n 'cozily',\n 'coziness',\n 'cozy',\n 'crabbing',\n 'crabgrass',\n 'crablike',\n 'crabmeat',\n 'cradle',\n 'cradling',\n 'crafter',\n 'craftily',\n 'craftsman',\n 'craftwork',\n 'crafty',\n 'cramp',\n 'cranberry',\n 'crane',\n 'cranial',\n 'cranium',\n 'crank',\n 'crate',\n 'crave',\n 'craving',\n 'crawfish',\n 'crawlers',\n 'crawling',\n 'crayfish',\n 'crayon',\n 'crazed',\n 'crazily',\n 'craziness',\n 'crazy',\n 'creamed',\n 'creamer',\n 'creamlike',\n 'crease',\n 'creasing',\n 'creatable',\n 'create',\n 'creation',\n 'creative',\n 'creature',\n 'credible',\n 'credibly',\n 'credit',\n 'creed',\n 'creme',\n 'creole',\n 'crepe',\n 'crept',\n 'crescent',\n 'crested',\n 'cresting',\n 'crestless',\n 'crevice',\n 'crewless',\n 'crewman',\n 'crewmate',\n 'crib',\n 'cricket',\n 'cried',\n 'crier',\n 'crimp',\n 'crimson',\n 'cringe',\n 'cringing',\n 'crinkle',\n 'crinkly',\n 'crisped',\n 'crisping',\n 'crisply',\n 'crispness',\n 'crispy',\n 'criteria',\n 'critter',\n 'croak',\n 'crock',\n 'crook',\n 'croon',\n 'crop',\n 'cross',\n 'crouch',\n 'crouton',\n 'crowbar',\n 'crowd',\n 'crown',\n 'crucial',\n 'crudely',\n 'crudeness',\n 'cruelly',\n 'cruelness',\n 'cruelty',\n 'crumb',\n 'crummiest',\n 'crummy',\n 'crumpet',\n 'crumpled',\n 'cruncher',\n 'crunching',\n 'crunchy',\n 'crusader',\n 'crushable',\n 'crushed',\n 'crusher',\n 'crushing',\n 'crust',\n 'crux',\n 'crying',\n 'cryptic',\n 'crystal',\n 'cubbyhole',\n 'cube',\n 'cubical',\n 'cubicle',\n 'cucumber',\n 'cuddle',\n 'cuddly',\n 'cufflink',\n 'culinary',\n 'culminate',\n 'culpable',\n 'culprit',\n 'cultivate',\n 'cultural',\n 'culture',\n 'cupbearer',\n 'cupcake',\n 'cupid',\n 'cupped',\n 'cupping',\n 'curable',\n 'curator',\n 'curdle',\n 'cure',\n 'curfew',\n 'curing',\n 'curled',\n 'curler',\n 'curliness',\n 'curling',\n 'curly',\n 'curry',\n 'curse',\n 'cursive',\n 'cursor',\n 'curtain',\n 'curtly',\n 'curtsy',\n 'curvature',\n 'curve',\n 'curvy',\n 'cushy',\n 'cusp',\n 'cussed',\n 'custard',\n 'custodian',\n 'custody',\n 'customary',\n 'customer',\n 'customize',\n 'customs',\n 'cut',\n 'cycle',\n 'cyclic',\n 'cycling',\n 'cyclist',\n 'cylinder',\n 'cymbal',\n 'cytoplasm',\n 'cytoplast',\n 'dab',\n 'dad',\n 'daffodil',\n 'dagger',\n 'daily',\n 'daintily',\n 'dainty',\n 'dairy',\n 'daisy',\n 'dallying',\n 'dance',\n 'dancing',\n 'dandelion',\n 'dander',\n 'dandruff',\n 'dandy',\n 'danger',\n 'dangle',\n 'dangling',\n 'daredevil',\n 'dares',\n 'daringly',\n 'darkened',\n 'darkening',\n 'darkish',\n 'darkness',\n 'darkroom',\n 'darling',\n 'darn',\n 'dart',\n 'darwinism',\n 'dash',\n 'dastardly',\n 'data',\n 'datebook',\n 'dating',\n 'daughter',\n 'daunting',\n 'dawdler',\n 'dawn',\n 'daybed',\n 'daybreak',\n 'daycare',\n 'daydream',\n 'daylight',\n 'daylong',\n 'dayroom',\n 'daytime',\n 'dazzler',\n 'dazzling',\n 'deacon',\n 'deafening',\n 'deafness',\n 'dealer',\n 'dealing',\n 'dealmaker',\n 'dealt',\n 'dean',\n 'debatable',\n 'debate',\n 'debating',\n 'debit',\n 'debrief',\n 'debtless',\n 'debtor',\n 'debug',\n 'debunk',\n 'decade',\n 'decaf',\n 'decal',\n 'decathlon',\n 'decay',\n 'deceased',\n 'deceit',\n 'deceiver',\n 'deceiving',\n 'december',\n 'decency',\n 'decent',\n 'deception',\n 'deceptive',\n 'decibel',\n 'decidable',\n 'decimal',\n 'decimeter',\n 'decipher',\n 'deck',\n 'declared',\n 'decline',\n 'decode',\n 'decompose',\n 'decorated',\n 'decorator',\n 'decoy',\n 'decrease',\n 'decree',\n 'dedicate',\n 'dedicator',\n 'deduce',\n 'deduct',\n 'deed',\n 'deem',\n 'deepen',\n 'deeply',\n 'deepness',\n 'deface',\n 'defacing',\n 'defame',\n 'default',\n 'defeat',\n 'defection',\n 'defective',\n 'defendant',\n 'defender',\n 'defense',\n 'defensive',\n 'deferral',\n 'deferred',\n 'defiance',\n 'defiant',\n 'defile',\n 'defiling',\n 'define',\n 'definite',\n 'deflate',\n 'deflation',\n 'deflator',\n 'deflected',\n 'deflector',\n 'defog',\n 'deforest',\n 'defraud',\n 'defrost',\n 'deftly',\n 'defuse',\n 'defy',\n 'degraded',\n 'degrading',\n 'degrease',\n 'degree',\n 'dehydrate',\n 'deity',\n 'dejected',\n 'delay',\n 'delegate',\n 'delegator',\n 'delete',\n 'deletion',\n 'delicacy',\n 'delicate',\n 'delicious',\n 'delighted',\n 'delirious',\n 'delirium',\n 'deliverer',\n 'delivery',\n 'delouse',\n 'delta',\n 'deluge',\n 'delusion',\n 'deluxe',\n 'demanding',\n 'demeaning',\n 'demeanor',\n 'demise',\n 'democracy',\n 'democrat',\n 'demote',\n 'demotion',\n 'demystify',\n 'denatured',\n 'deniable',\n 'denial',\n 'denim',\n 'denote',\n 'dense',\n 'density',\n 'dental',\n 'dentist',\n 'denture',\n 'deny',\n 'deodorant',\n 'deodorize',\n 'departed',\n 'departure',\n 'depict',\n 'deplete',\n 'depletion',\n 'deplored',\n 'deploy',\n 'deport',\n 'depose',\n 'depraved',\n 'depravity',\n 'deprecate',\n 'depress',\n 'deprive',\n 'depth',\n 'deputize',\n 'deputy',\n 'derail',\n 'deranged',\n 'derby',\n 'derived',\n 'desecrate',\n 'deserve',\n 'deserving',\n 'designate',\n 'designed',\n 'designer',\n 'designing',\n 'deskbound',\n 'desktop',\n 'deskwork',\n 'desolate',\n 'despair',\n 'despise',\n 'despite',\n 'destiny',\n 'destitute',\n 'destruct',\n 'detached',\n 'detail',\n 'detection',\n 'detective',\n 'detector',\n 'detention',\n 'detergent',\n 'detest',\n 'detonate',\n 'detonator',\n 'detoxify',\n 'detract',\n 'deuce',\n 'devalue',\n 'deviancy',\n 'deviant',\n 'deviate',\n 'deviation',\n 'deviator',\n 'device',\n 'devious',\n 'devotedly',\n 'devotee',\n 'devotion',\n 'devourer',\n 'devouring',\n 'devoutly',\n 'dexterity',\n 'dexterous',\n 'diabetes',\n 'diabetic',\n 'diabolic',\n 'diagnoses',\n 'diagnosis',\n 'diagram',\n 'dial',\n 'diameter',\n 'diaper',\n 'diaphragm',\n 'diary',\n 'dice',\n 'dicing',\n 'dictate',\n 'dictation',\n 'dictator',\n 'difficult',\n 'diffused',\n 'diffuser',\n 'diffusion',\n 'diffusive',\n 'dig',\n 'dilation',\n 'diligence',\n 'diligent',\n 'dill',\n 'dilute',\n 'dime',\n 'diminish',\n 'dimly',\n 'dimmed',\n 'dimmer',\n 'dimness',\n 'dimple',\n 'diner',\n 'dingbat',\n 'dinghy',\n 'dinginess',\n 'dingo',\n 'dingy',\n 'dining',\n 'dinner',\n 'diocese',\n 'dioxide',\n 'diploma',\n 'dipped',\n 'dipper',\n 'dipping',\n 'directed',\n 'direction',\n 'directive',\n 'directly',\n 'directory',\n 'direness',\n 'dirtiness',\n 'disabled',\n 'disagree',\n 'disallow',\n 'disarm',\n 'disarray',\n 'disaster',\n 'disband',\n 'disbelief',\n 'disburse',\n 'discard',\n 'discern',\n 'discharge',\n 'disclose',\n 'discolor',\n 'discount',\n 'discourse',\n 'discover',\n 'discuss',\n 'disdain',\n 'disengage',\n 'disfigure',\n 'disgrace',\n 'dish',\n 'disinfect',\n 'disjoin',\n 'disk',\n 'dislike',\n 'disliking',\n 'dislocate',\n 'dislodge',\n 'disloyal',\n 'dismantle',\n 'dismay',\n 'dismiss',\n 'dismount',\n 'disobey',\n 'disorder',\n 'disown',\n 'disparate',\n 'disparity',\n 'dispatch',\n 'dispense',\n 'dispersal',\n 'dispersed',\n 'disperser',\n 'displace',\n 'display',\n 'displease',\n 'disposal',\n 'dispose',\n 'disprove',\n 'dispute',\n 'disregard',\n 'disrupt',\n 'dissuade',\n 'distance',\n 'distant',\n 'distaste',\n 'distill',\n 'distinct',\n 'distort',\n 'distract',\n 'distress',\n 'district',\n 'distrust',\n 'ditch',\n 'ditto',\n 'ditzy',\n 'dividable',\n 'divided',\n 'dividend',\n 'dividers',\n 'dividing',\n 'divinely',\n 'diving',\n 'divinity',\n 'divisible',\n 'divisibly',\n 'division',\n 'divisive',\n 'divorcee',\n 'dizziness',\n 'dizzy',\n 'doable',\n 'docile',\n 'dock',\n 'doctrine',\n 'document',\n 'dodge',\n 'dodgy',\n 'doily',\n 'doing',\n 'dole',\n 'dollar',\n 'dollhouse',\n 'dollop',\n 'dolly',\n 'dolphin',\n 'domain',\n 'domelike',\n 'domestic',\n 'dominion',\n 'dominoes',\n 'donated',\n 'donation',\n 'donator',\n 'donor',\n 'donut',\n 'doodle',\n 'doorbell',\n 'doorframe',\n 'doorknob',\n 'doorman',\n 'doormat',\n 'doornail',\n 'doorpost',\n 'doorstep',\n 'doorstop',\n 'doorway',\n 'doozy',\n 'dork',\n 'dormitory',\n 'dorsal',\n 'dosage',\n 'dose',\n 'dotted',\n 'doubling',\n 'douche',\n 'dove',\n 'down',\n 'dowry',\n 'doze',\n 'drab',\n 'dragging',\n 'dragonfly',\n 'dragonish',\n 'dragster',\n 'drainable',\n 'drainage',\n 'drained',\n 'drainer',\n 'drainpipe',\n 'dramatic',\n 'dramatize',\n 'drank',\n 'drapery',\n 'drastic',\n 'draw',\n 'dreaded',\n 'dreadful',\n 'dreadlock',\n 'dreamboat',\n 'dreamily',\n 'dreamland',\n 'dreamless',\n 'dreamlike',\n 'dreamt',\n 'dreamy',\n 'drearily',\n 'dreary',\n 'drench',\n 'dress',\n 'drew',\n 'dribble',\n 'dried',\n 'drier',\n 'drift',\n 'driller',\n 'drilling',\n 'drinkable',\n 'drinking',\n 'dripping',\n 'drippy',\n 'drivable',\n 'driven',\n 'driver',\n 'driveway',\n 'driving',\n 'drizzle',\n 'drizzly',\n 'drone',\n 'drool',\n 'droop',\n 'drop-down',\n 'dropbox',\n 'dropkick',\n 'droplet',\n 'dropout',\n 'dropper',\n 'drove',\n 'drown',\n 'drowsily',\n 'drudge',\n 'drum',\n 'dry',\n 'dubbed',\n 'dubiously',\n 'duchess',\n 'duckbill',\n 'ducking',\n 'duckling',\n 'ducktail',\n 'ducky',\n 'duct',\n 'dude',\n 'duffel',\n 'dugout',\n 'duh',\n 'duke',\n 'duller',\n 'dullness',\n 'duly',\n 'dumping',\n 'dumpling',\n 'dumpster',\n 'duo',\n 'dupe',\n 'duplex',\n 'duplicate',\n 'duplicity',\n 'durable',\n 'durably',\n 'duration',\n 'duress',\n 'during',\n 'dusk',\n 'dust',\n 'dutiful',\n 'duty',\n 'duvet',\n 'dwarf',\n 'dweeb',\n 'dwelled',\n 'dweller',\n 'dwelling',\n 'dwindle',\n 'dwindling',\n 'dynamic',\n 'dynamite',\n 'dynasty',\n 'dyslexia',\n 'dyslexic',\n 'each',\n 'eagle',\n 'earache',\n 'eardrum',\n 'earflap',\n 'earful',\n 'earlobe',\n 'early',\n 'earmark',\n 'earmuff',\n 'earphone',\n 'earpiece',\n 'earplugs',\n 'earring',\n 'earshot',\n 'earthen',\n 'earthlike',\n 'earthling',\n 'earthly',\n 'earthworm',\n 'earthy',\n 'earwig',\n 'easeful',\n 'easel',\n 'easiest',\n 'easily',\n 'easiness',\n 'easing',\n 'eastbound',\n 'eastcoast',\n 'easter',\n 'eastward',\n 'eatable',\n 'eaten',\n 'eatery',\n 'eating',\n 'eats',\n 'ebay',\n 'ebony',\n 'ebook',\n 'ecard',\n 'eccentric',\n 'echo',\n 'eclair',\n 'eclipse',\n 'ecologist',\n 'ecology',\n 'economic',\n 'economist',\n 'economy',\n 'ecosphere',\n 'ecosystem',\n 'edge',\n 'edginess',\n 'edging',\n 'edgy',\n 'edition',\n 'editor',\n 'educated',\n 'education',\n 'educator',\n 'eel',\n 'effective',\n 'effects',\n 'efficient',\n 'effort',\n 'eggbeater',\n 'egging',\n 'eggnog',\n 'eggplant',\n 'eggshell',\n 'egomaniac',\n 'egotism',\n 'egotistic',\n 'either',\n 'eject',\n 'elaborate',\n 'elastic',\n 'elated',\n 'elbow',\n 'eldercare',\n 'elderly',\n 'eldest',\n 'electable',\n 'election',\n 'elective',\n 'elephant',\n 'elevate',\n 'elevating',\n 'elevation',\n 'elevator',\n 'eleven',\n 'elf',\n 'eligible',\n 'eligibly',\n 'eliminate',\n 'elite',\n 'elitism',\n 'elixir',\n 'elk',\n 'ellipse',\n 'elliptic',\n 'elm',\n 'elongated',\n 'elope',\n 'eloquence',\n 'eloquent',\n 'elsewhere',\n 'elude',\n 'elusive',\n 'elves',\n 'email',\n 'embargo',\n 'embark',\n 'embassy',\n 'embattled',\n 'embellish',\n 'ember',\n 'embezzle',\n 'emblaze',\n 'emblem',\n 'embody',\n 'embolism',\n 'emboss',\n 'embroider',\n 'emcee',\n 'emerald',\n 'emergency',\n 'emission',\n 'emit',\n 'emote',\n 'emoticon',\n 'emotion',\n 'empathic',\n 'empathy',\n 'emperor',\n 'emphases',\n 'emphasis',\n 'emphasize',\n 'emphatic',\n 'empirical',\n 'employed',\n 'employee',\n 'employer',\n 'emporium',\n 'empower',\n 'emptier',\n 'emptiness',\n 'empty',\n 'emu',\n 'enable',\n 'enactment',\n 'enamel',\n 'enchanted',\n 'enchilada',\n 'encircle',\n 'enclose',\n 'enclosure',\n 'encode',\n 'encore',\n 'encounter',\n 'encourage',\n 'encroach',\n 'encrust',\n 'encrypt',\n 'endanger',\n 'endeared',\n 'endearing',\n 'ended',\n 'ending',\n 'endless',\n 'endnote',\n 'endocrine',\n 'endorphin',\n 'endorse',\n 'endowment',\n 'endpoint',\n 'endurable',\n 'endurance',\n 'enduring',\n 'energetic',\n 'energize',\n 'energy',\n 'enforced',\n 'enforcer',\n 'engaged',\n 'engaging',\n 'engine',\n 'engorge',\n 'engraved',\n 'engraver',\n 'engraving',\n 'engross',\n 'engulf',\n 'enhance',\n 'enigmatic',\n 'enjoyable',\n 'enjoyably',\n 'enjoyer',\n 'enjoying',\n 'enjoyment',\n 'enlarged',\n 'enlarging',\n 'enlighten',\n 'enlisted',\n 'enquirer',\n 'enrage',\n 'enrich',\n 'enroll',\n 'enslave',\n 'ensnare',\n 'ensure',\n 'entail',\n 'entangled',\n 'entering',\n 'entertain',\n 'enticing',\n 'entire',\n 'entitle',\n 'entity',\n 'entomb',\n 'entourage',\n 'entrap',\n 'entree',\n 'entrench',\n 'entrust',\n 'entryway',\n 'entwine',\n 'enunciate',\n 'envelope',\n 'enviable',\n 'enviably',\n 'envious',\n 'envision',\n 'envoy',\n 'envy',\n 'enzyme',\n 'epic',\n 'epidemic',\n 'epidermal',\n 'epidermis',\n 'epidural',\n 'epilepsy',\n 'epileptic',\n 'epilogue',\n 'epiphany',\n 'episode',\n 'equal',\n 'equate',\n 'equation',\n 'equator',\n 'equinox',\n 'equipment',\n 'equity',\n 'equivocal',\n 'eradicate',\n 'erasable',\n 'erased',\n 'eraser',\n 'erasure',\n 'ergonomic',\n 'errand',\n 'errant',\n 'erratic',\n 'error',\n 'erupt',\n 'escalate',\n 'escalator',\n 'escapable',\n 'escapade',\n 'escapist',\n 'escargot',\n 'eskimo',\n 'esophagus',\n 'espionage',\n 'espresso',\n 'esquire',\n 'essay',\n 'essence',\n 'essential',\n 'establish',\n 'estate',\n 'esteemed',\n 'estimate',\n 'estimator',\n 'estranged',\n 'estrogen',\n 'etching',\n 'eternal',\n 'eternity',\n 'ethanol',\n 'ether',\n 'ethically',\n 'ethics',\n 'euphemism',\n 'evacuate',\n 'evacuee',\n 'evade',\n 'evaluate',\n 'evaluator',\n 'evaporate',\n 'evasion',\n 'evasive',\n 'even',\n 'everglade',\n 'evergreen',\n 'everybody',\n 'everyday',\n 'everyone',\n 'evict',\n 'evidence',\n 'evident',\n 'evil',\n 'evoke',\n 'evolution',\n 'evolve',\n 'exact',\n 'exalted',\n 'example',\n 'excavate',\n 'excavator',\n 'exceeding',\n 'exception',\n 'excess',\n 'exchange',\n 'excitable',\n 'exciting',\n 'exclaim',\n 'exclude',\n 'excluding',\n 'exclusion',\n 'exclusive',\n 'excretion',\n 'excretory',\n 'excursion',\n 'excusable',\n 'excusably',\n 'excuse',\n 'exemplary',\n 'exemplify',\n 'exemption',\n 'exerciser',\n 'exert',\n 'exes',\n 'exfoliate',\n 'exhale',\n 'exhaust',\n 'exhume',\n 'exile',\n 'existing',\n 'exit',\n 'exodus',\n 'exonerate',\n 'exorcism',\n 'exorcist',\n 'expand',\n 'expanse',\n 'expansion',\n 'expansive',\n 'expectant',\n 'expedited',\n 'expediter',\n 'expel',\n 'expend',\n 'expenses',\n 'expensive',\n 'expert',\n 'expire',\n 'expiring',\n 'explain',\n 'expletive',\n 'explicit',\n 'explode',\n 'exploit',\n 'explore',\n 'exploring',\n 'exponent',\n 'exporter',\n 'exposable',\n 'expose',\n 'exposure',\n 'express',\n 'expulsion',\n 'exquisite',\n 'extended',\n 'extending',\n 'extent',\n 'extenuate',\n 'exterior',\n 'external',\n 'extinct',\n 'extortion',\n 'extradite',\n 'extras',\n 'extrovert',\n 'extrude',\n 'extruding',\n 'exuberant',\n 'fable',\n 'fabric',\n 'fabulous',\n 'facebook',\n 'facecloth',\n 'facedown',\n 'faceless',\n 'facelift',\n 'faceplate',\n 'faceted',\n 'facial',\n 'facility',\n 'facing',\n 'facsimile',\n 'faction',\n 'factoid',\n 'factor',\n 'factsheet',\n 'factual',\n 'faculty',\n 'fade',\n 'fading',\n 'failing',\n 'falcon',\n 'fall',\n 'false',\n 'falsify',\n 'fame',\n 'familiar',\n 'family',\n 'famine',\n 'famished',\n 'fanatic',\n 'fancied',\n 'fanciness',\n 'fancy',\n 'fanfare',\n 'fang',\n 'fanning',\n 'fantasize',\n 'fantastic',\n 'fantasy',\n 'fascism',\n 'fastball',\n 'faster',\n 'fasting',\n 'fastness',\n 'faucet',\n 'favorable',\n 'favorably',\n 'favored',\n 'favoring',\n 'favorite',\n 'fax',\n 'feast',\n 'federal',\n 'fedora',\n 'feeble',\n 'feed',\n 'feel',\n 'feisty',\n 'feline',\n 'felt-tip',\n 'feminine',\n 'feminism',\n 'feminist',\n 'feminize',\n 'femur',\n 'fence',\n 'fencing',\n 'fender',\n 'ferment',\n 'fernlike',\n 'ferocious',\n 'ferocity',\n 'ferret',\n 'ferris',\n 'ferry',\n 'fervor',\n 'fester',\n 'festival',\n 'festive',\n 'festivity',\n 'fetal',\n 'fetch',\n 'fever',\n 'fiber',\n 'fiction',\n 'fiddle',\n 'fiddling',\n 'fidelity',\n 'fidgeting',\n 'fidgety',\n 'fifteen',\n 'fifth',\n 'fiftieth',\n 'fifty',\n 'figment',\n 'figure',\n 'figurine',\n 'filing',\n 'filled',\n 'filler',\n 'filling',\n 'film',\n 'filter',\n 'filth',\n 'filtrate',\n 'finale',\n 'finalist',\n 'finalize',\n 'finally',\n 'finance',\n 'financial',\n 'finch',\n 'fineness',\n 'finer',\n 'finicky',\n 'finished',\n 'finisher',\n 'finishing',\n 'finite',\n 'finless',\n 'finlike',\n 'fiscally',\n 'fit',\n 'five',\n 'flaccid',\n 'flagman',\n 'flagpole',\n 'flagship',\n 'flagstick',\n 'flagstone',\n 'flail',\n 'flakily',\n 'flaky',\n 'flame',\n 'flammable',\n 'flanked',\n 'flanking',\n 'flannels',\n 'flap',\n 'flaring',\n 'flashback',\n 'flashbulb',\n 'flashcard',\n 'flashily',\n 'flashing',\n 'flashy',\n 'flask',\n 'flatbed',\n 'flatfoot',\n 'flatly',\n 'flatness',\n 'flatten',\n 'flattered',\n 'flatterer',\n 'flattery',\n 'flattop',\n 'flatware',\n 'flatworm',\n 'flavored',\n 'flavorful',\n 'flavoring',\n 'flaxseed',\n 'fled',\n 'fleshed',\n 'fleshy',\n 'flick',\n 'flier',\n 'flight',\n 'flinch',\n 'fling',\n 'flint',\n 'flip',\n 'flirt',\n 'float',\n 'flock',\n 'flogging',\n 'flop',\n 'floral',\n 'florist',\n 'floss',\n 'flounder',\n 'flyable',\n 'flyaway',\n 'flyer',\n 'flying',\n 'flyover',\n 'flypaper',\n 'foam',\n 'foe',\n 'fog',\n 'foil',\n 'folic',\n 'folk',\n 'follicle',\n 'follow',\n 'fondling',\n 'fondly',\n 'fondness',\n 'fondue',\n 'font',\n 'food',\n 'fool',\n 'footage',\n 'football',\n 'footbath',\n 'footboard',\n 'footer',\n 'footgear',\n 'foothill',\n 'foothold',\n 'footing',\n 'footless',\n 'footman',\n 'footnote',\n 'footpad',\n 'footpath',\n 'footprint',\n 'footrest',\n 'footsie',\n 'footsore',\n 'footwear',\n 'footwork',\n 'fossil',\n 'foster',\n 'founder',\n 'founding',\n 'fountain',\n 'fox',\n 'foyer',\n 'fraction',\n 'fracture',\n 'fragile',\n 'fragility',\n 'fragment',\n 'fragrance',\n 'fragrant',\n 'frail',\n 'frame',\n 'framing',\n 'frantic',\n 'fraternal',\n 'frayed',\n 'fraying',\n 'frays',\n 'freckled',\n 'freckles',\n 'freebase',\n 'freebee',\n 'freebie',\n 'freedom',\n 'freefall',\n 'freehand',\n 'freeing',\n 'freeload',\n 'freely',\n 'freemason',\n 'freeness',\n 'freestyle',\n 'freeware',\n 'freeway',\n 'freewill',\n 'freezable',\n 'freezing',\n 'freight',\n 'french',\n 'frenzied',\n 'frenzy',\n 'frequency',\n 'frequent',\n 'fresh',\n 'fretful',\n 'fretted',\n 'friction',\n 'friday',\n 'fridge',\n 'fried',\n 'friend',\n 'frighten',\n 'frightful',\n 'frigidity',\n 'frigidly',\n 'frill',\n 'fringe',\n 'frisbee',\n 'frisk',\n 'fritter',\n 'frivolous',\n 'frolic',\n 'from',\n 'front',\n 'frostbite',\n 'frosted',\n 'frostily',\n 'frosting',\n 'frostlike',\n 'frosty',\n 'froth',\n 'frown',\n 'frozen',\n 'fructose',\n 'frugality',\n 'frugally',\n 'fruit',\n 'frustrate',\n 'frying',\n 'gab',\n 'gaffe',\n 'gag',\n 'gainfully',\n 'gaining',\n 'gains',\n 'gala',\n 'gallantly',\n 'galleria',\n 'gallery',\n 'galley',\n 'gallon',\n 'gallows',\n 'gallstone',\n 'galore',\n 'galvanize',\n 'gambling',\n 'game',\n 'gaming',\n 'gamma',\n 'gander',\n 'gangly',\n 'gangrene',\n 'gangway',\n 'gap',\n 'garage',\n 'garbage',\n 'garden',\n 'gargle',\n 'garland',\n 'garlic',\n 'garment',\n 'garnet',\n 'garnish',\n 'garter',\n 'gas',\n 'gatherer',\n 'gathering',\n 'gating',\n 'gauging',\n 'gauntlet',\n 'gauze',\n 'gave',\n 'gawk',\n 'gazing',\n 'gear',\n 'gecko',\n 'geek',\n 'geiger',\n 'gem',\n 'gender',\n 'generic',\n 'generous',\n 'genetics',\n 'genre',\n 'gentile',\n 'gentleman',\n 'gently',\n 'gents',\n 'geography',\n 'geologic',\n 'geologist',\n 'geology',\n 'geometric',\n 'geometry',\n 'geranium',\n 'gerbil',\n 'geriatric',\n 'germicide',\n 'germinate',\n 'germless',\n 'germproof',\n 'gestate',\n 'gestation',\n 'gesture',\n 'getaway',\n 'getting',\n 'getup',\n 'giant',\n 'gibberish',\n 'giblet',\n 'giddily',\n 'giddiness',\n 'giddy',\n 'gift',\n 'gigabyte',\n 'gigahertz',\n 'gigantic',\n 'giggle',\n 'giggling',\n 'giggly',\n 'gigolo',\n 'gilled',\n 'gills',\n 'gimmick',\n 'girdle',\n 'giveaway',\n 'given',\n 'giver',\n 'giving',\n 'gizmo',\n 'gizzard',\n 'glacial',\n 'glacier',\n 'glade',\n 'gladiator',\n 'gladly',\n 'glamorous',\n 'glamour',\n 'glance',\n 'glancing',\n 'glandular',\n 'glare',\n 'glaring',\n 'glass',\n 'glaucoma',\n 'glazing',\n 'gleaming',\n 'gleeful',\n 'glider',\n 'gliding',\n 'glimmer',\n 'glimpse',\n 'glisten',\n 'glitch',\n 'glitter',\n 'glitzy',\n 'gloater',\n 'gloating',\n 'gloomily',\n 'gloomy',\n 'glorified',\n 'glorifier',\n 'glorify',\n 'glorious',\n 'glory',\n 'gloss',\n 'glove',\n 'glowing',\n 'glowworm',\n 'glucose',\n 'glue',\n 'gluten',\n 'glutinous',\n 'glutton',\n 'gnarly',\n 'gnat',\n 'goal',\n 'goatskin',\n 'goes',\n 'goggles',\n 'going',\n 'goldfish',\n 'goldmine',\n 'goldsmith',\n 'golf',\n 'goliath',\n 'gonad',\n 'gondola',\n 'gone',\n 'gong',\n 'good',\n 'gooey',\n 'goofball',\n 'goofiness',\n 'goofy',\n 'google',\n 'goon',\n 'gopher',\n 'gore',\n 'gorged',\n 'gorgeous',\n 'gory',\n 'gosling',\n 'gossip',\n 'gothic',\n 'gotten',\n 'gout',\n 'gown',\n 'grab',\n 'graceful',\n 'graceless',\n 'gracious',\n 'gradation',\n 'graded',\n 'grader',\n 'gradient',\n 'grading',\n 'gradually',\n 'graduate',\n 'graffiti',\n 'grafted',\n 'grafting',\n 'grain',\n 'granddad',\n 'grandkid',\n 'grandly',\n 'grandma',\n 'grandpa',\n 'grandson',\n 'granite',\n 'granny',\n 'granola',\n 'grant',\n 'granular',\n 'grape',\n 'graph',\n 'grapple',\n 'grappling',\n 'grasp',\n 'grass',\n 'gratified',\n 'gratify',\n 'grating',\n 'gratitude',\n 'gratuity',\n 'gravel',\n 'graveness',\n 'graves',\n 'graveyard',\n 'gravitate',\n 'gravity',\n 'gravy',\n 'gray',\n 'grazing',\n 'greasily',\n 'greedily',\n 'greedless',\n 'greedy',\n 'green',\n 'greeter',\n 'greeting',\n 'grew',\n 'greyhound',\n 'grid',\n 'grief',\n 'grievance',\n 'grieving',\n 'grievous',\n 'grill',\n 'grimace',\n 'grimacing',\n 'grime',\n 'griminess',\n 'grimy',\n 'grinch',\n 'grinning',\n 'grip',\n 'gristle',\n 'grit',\n 'groggily',\n 'groggy',\n 'groin',\n 'groom',\n 'groove',\n 'grooving',\n 'groovy',\n 'grope',\n 'ground',\n 'grouped',\n 'grout',\n 'grove',\n 'grower',\n 'growing',\n 'growl',\n 'grub',\n 'grudge',\n 'grudging',\n 'grueling',\n 'gruffly',\n 'grumble',\n 'grumbling',\n 'grumbly',\n 'grumpily',\n 'grunge',\n 'grunt',\n 'guacamole',\n 'guidable',\n 'guidance',\n 'guide',\n 'guiding',\n 'guileless',\n 'guise',\n 'gulf',\n 'gullible',\n 'gully',\n 'gulp',\n 'gumball',\n 'gumdrop',\n 'gumminess',\n 'gumming',\n 'gummy',\n 'gurgle',\n 'gurgling',\n 'guru',\n 'gush',\n 'gusto',\n 'gusty',\n 'gutless',\n 'guts',\n 'gutter',\n 'guy',\n 'guzzler',\n 'gyration',\n 'habitable',\n 'habitant',\n 'habitat',\n 'habitual',\n 'hacked',\n 'hacker',\n 'hacking',\n 'hacksaw',\n 'had',\n 'haggler',\n 'haiku',\n 'half',\n 'halogen',\n 'halt',\n 'halved',\n 'halves',\n 'hamburger',\n 'hamlet',\n 'hammock',\n 'hamper',\n 'hamster',\n 'hamstring',\n 'handbag',\n 'handball',\n 'handbook',\n 'handbrake',\n 'handcart',\n 'handclap',\n 'handclasp',\n 'handcraft',\n 'handcuff',\n 'handed',\n 'handful',\n 'handgrip',\n 'handgun',\n 'handheld',\n 'handiness',\n 'handiwork',\n 'handlebar',\n 'handled',\n 'handler',\n 'handling',\n 'handmade',\n 'handoff',\n 'handpick',\n 'handprint',\n 'handrail',\n 'handsaw',\n 'handset',\n 'handsfree',\n 'handshake',\n 'handstand',\n 'handwash',\n 'handwork',\n 'handwoven',\n 'handwrite',\n 'handyman',\n 'hangnail',\n 'hangout',\n 'hangover',\n 'hangup',\n 'hankering',\n 'hankie',\n 'hanky',\n 'haphazard',\n 'happening',\n 'happier',\n 'happiest',\n 'happily',\n 'happiness',\n 'happy',\n 'harbor',\n 'hardcopy',\n 'hardcore',\n 'hardcover',\n 'harddisk',\n 'hardened',\n 'hardener',\n 'hardening',\n 'hardhat',\n 'hardhead',\n 'hardiness',\n 'hardly',\n 'hardness',\n 'hardship',\n 'hardware',\n 'hardwired',\n 'hardwood',\n 'hardy',\n 'harmful',\n 'harmless',\n 'harmonica',\n 'harmonics',\n 'harmonize',\n 'harmony',\n 'harness',\n 'harpist',\n 'harsh',\n 'harvest',\n 'hash',\n 'hassle',\n 'haste',\n 'hastily',\n 'hastiness',\n 'hasty',\n 'hatbox',\n 'hatchback',\n 'hatchery',\n 'hatchet',\n 'hatching',\n 'hatchling',\n 'hate',\n 'hatless',\n 'hatred',\n 'haunt',\n 'haven',\n 'hazard',\n 'hazelnut',\n 'hazily',\n 'haziness',\n 'hazing',\n 'hazy',\n 'headache',\n 'headband',\n 'headboard',\n 'headcount',\n 'headdress',\n 'headed',\n 'header',\n 'headfirst',\n 'headgear',\n 'heading',\n 'headlamp',\n 'headless',\n 'headlock',\n 'headphone',\n 'headpiece',\n 'headrest',\n 'headroom',\n 'headscarf',\n 'headset',\n 'headsman',\n 'headstand',\n 'headstone',\n 'headway',\n 'headwear',\n 'heap',\n 'heat',\n 'heave',\n 'heavily',\n 'heaviness',\n 'heaving',\n 'hedge',\n 'hedging',\n 'heftiness',\n 'hefty',\n 'helium',\n 'helmet',\n 'helper',\n 'helpful',\n 'helping',\n 'helpless',\n 'helpline',\n 'hemlock',\n 'hemstitch',\n 'hence',\n 'henchman',\n 'henna',\n 'herald',\n 'herbal',\n 'herbicide',\n 'herbs',\n 'heritage',\n 'hermit',\n 'heroics',\n 'heroism',\n 'herring',\n 'herself',\n 'hertz',\n 'hesitancy',\n 'hesitant',\n 'hesitate',\n 'hexagon',\n 'hexagram',\n 'hubcap',\n 'huddle',\n 'huddling',\n 'huff',\n 'hug',\n 'hula',\n 'hulk',\n 'hull',\n 'human',\n 'humble',\n 'humbling',\n 'humbly',\n 'humid',\n 'humiliate',\n 'humility',\n 'humming',\n 'hummus',\n 'humongous',\n 'humorist',\n 'humorless',\n 'humorous',\n 'humpback',\n 'humped',\n 'humvee',\n 'hunchback',\n 'hundredth',\n 'hunger',\n 'hungrily',\n 'hungry',\n 'hunk',\n 'hunter',\n 'hunting',\n 'huntress',\n 'huntsman',\n 'hurdle',\n 'hurled',\n 'hurler',\n 'hurling',\n 'hurray',\n 'hurricane',\n 'hurried',\n 'hurry',\n 'hurt',\n 'husband',\n 'hush',\n 'husked',\n 'huskiness',\n 'hut',\n 'hybrid',\n 'hydrant',\n 'hydrated',\n 'hydration',\n 'hydrogen',\n 'hydroxide',\n 'hyperlink',\n 'hypertext',\n 'hyphen',\n 'hypnoses',\n 'hypnosis',\n 'hypnotic',\n 'hypnotism',\n 'hypnotist',\n 'hypnotize',\n 'hypocrisy',\n 'hypocrite',\n 'ibuprofen',\n 'ice',\n 'iciness',\n 'icing',\n 'icky',\n 'icon',\n 'icy',\n 'idealism',\n 'idealist',\n 'idealize',\n 'ideally',\n 'idealness',\n 'identical',\n 'identify',\n 'identity',\n 'ideology',\n 'idiocy',\n 'idiom',\n 'idly',\n 'igloo',\n 'ignition',\n 'ignore',\n 'iguana',\n 'illicitly',\n 'illusion',\n 'illusive',\n 'image',\n 'imaginary',\n 'imagines',\n 'imaging',\n 'imbecile',\n 'imitate',\n 'imitation',\n 'immature',\n 'immerse',\n 'immersion',\n 'imminent',\n 'immobile',\n 'immodest',\n 'immorally',\n 'immortal',\n 'immovable',\n 'immovably',\n 'immunity',\n 'immunize',\n 'impaired',\n 'impale',\n 'impart',\n 'impatient',\n 'impeach',\n 'impeding',\n 'impending',\n 'imperfect',\n 'imperial',\n 'impish',\n 'implant',\n 'implement',\n 'implicate',\n 'implicit',\n 'implode',\n 'implosion',\n 'implosive',\n 'imply',\n 'impolite',\n 'important',\n 'importer',\n 'impose',\n 'imposing',\n 'impotence',\n 'impotency',\n 'impotent',\n 'impound',\n 'imprecise',\n 'imprint',\n 'imprison',\n 'impromptu',\n 'improper',\n 'improve',\n 'improving',\n 'improvise',\n 'imprudent',\n 'impulse',\n 'impulsive',\n 'impure',\n 'impurity',\n 'iodine',\n 'iodize',\n 'ion',\n 'ipad',\n 'iphone',\n 'ipod',\n 'irate',\n 'irk',\n 'iron',\n 'irregular',\n 'irrigate',\n 'irritable',\n 'irritably',\n 'irritant',\n 'irritate',\n 'islamic',\n 'islamist',\n 'isolated',\n 'isolating',\n 'isolation',\n 'isotope',\n 'issue',\n 'issuing',\n 'italicize',\n 'italics',\n 'item',\n 'itinerary',\n 'itunes',\n 'ivory',\n 'ivy',\n 'jab',\n 'jackal',\n 'jacket',\n 'jackknife',\n 'jackpot',\n 'jailbird',\n 'jailbreak',\n 'jailer',\n 'jailhouse',\n 'jalapeno',\n 'jam',\n 'janitor',\n 'january',\n 'jargon',\n 'jarring',\n 'jasmine',\n 'jaundice',\n 'jaunt',\n 'java',\n 'jawed',\n 'jawless',\n 'jawline',\n 'jaws',\n 'jaybird',\n 'jaywalker',\n 'jazz',\n 'jeep',\n 'jeeringly',\n 'jellied',\n 'jelly',\n 'jersey',\n 'jester',\n 'jet',\n 'jiffy',\n 'jigsaw',\n 'jimmy',\n 'jingle',\n 'jingling',\n 'jinx',\n 'jitters',\n 'jittery',\n 'job',\n 'jockey',\n 'jockstrap',\n 'jogger',\n 'jogging',\n 'john',\n 'joining',\n 'jokester',\n 'jokingly',\n 'jolliness',\n 'jolly',\n 'jolt',\n 'jot',\n 'jovial',\n 'joyfully',\n 'joylessly',\n 'joyous',\n 'joyride',\n 'joystick',\n 'jubilance',\n 'jubilant',\n 'judge',\n 'judgingly',\n 'judicial',\n 'judiciary',\n 'judo',\n 'juggle',\n 'juggling',\n 'jugular',\n 'juice',\n 'juiciness',\n 'juicy',\n 'jujitsu',\n 'jukebox',\n 'july',\n 'jumble',\n 'jumbo',\n 'jump',\n 'junction',\n 'juncture',\n 'june',\n 'junior',\n 'juniper',\n 'junkie',\n 'junkman',\n 'junkyard',\n 'jurist',\n 'juror',\n 'jury',\n 'justice',\n 'justifier',\n 'justify',\n 'justly',\n 'justness',\n 'juvenile',\n 'kabob',\n 'kangaroo',\n 'karaoke',\n 'karate',\n 'karma',\n 'kebab',\n 'keenly',\n 'keenness',\n 'keep',\n 'keg',\n 'kelp',\n 'kennel',\n 'kept',\n 'kerchief',\n 'kerosene',\n 'kettle',\n 'kick',\n 'kiln',\n 'kilobyte',\n 'kilogram',\n 'kilometer',\n 'kilowatt',\n 'kilt',\n 'kimono',\n 'kindle',\n 'kindling',\n 'kindly',\n 'kindness',\n 'kindred',\n 'kinetic',\n 'kinfolk',\n 'king',\n 'kinship',\n 'kinsman',\n 'kinswoman',\n 'kissable',\n 'kisser',\n 'kissing',\n 'kitchen',\n 'kite',\n 'kitten',\n 'kitty',\n 'kiwi',\n 'kleenex',\n 'knapsack',\n 'knee',\n 'knelt',\n 'knickers',\n 'knoll',\n 'koala',\n 'kooky',\n 'kosher',\n 'krypton',\n 'kudos',\n 'kung',\n 'labored',\n 'laborer',\n 'laboring',\n 'laborious',\n 'labrador',\n 'ladder',\n 'ladies',\n 'ladle',\n 'ladybug',\n 'ladylike',\n 'lagged',\n 'lagging',\n 'lagoon',\n 'lair',\n 'lake',\n 'lance',\n 'landed',\n 'landfall',\n 'landfill',\n 'landing',\n 'landlady',\n 'landless',\n 'landline',\n 'landlord',\n 'landmark',\n 'landmass',\n 'landmine',\n 'landowner',\n 'landscape',\n 'landside',\n 'landslide',\n 'language',\n 'lankiness',\n 'lanky',\n 'lantern',\n 'lapdog',\n 'lapel',\n 'lapped',\n 'lapping',\n 'laptop',\n 'lard',\n 'large',\n 'lark',\n 'lash',\n 'lasso',\n 'last',\n 'latch',\n 'late',\n 'lather',\n 'latitude',\n 'latrine',\n 'latter',\n 'latticed',\n 'launch',\n 'launder',\n 'laundry',\n 'laurel',\n 'lavender',\n 'lavish',\n 'laxative',\n 'lazily',\n 'laziness',\n 'lazy',\n 'lecturer',\n 'left',\n 'legacy',\n 'legal',\n 'legend',\n 'legged',\n 'leggings',\n 'legible',\n 'legibly',\n 'legislate',\n 'lego',\n 'legroom',\n 'legume',\n 'legwarmer',\n 'legwork',\n 'lemon',\n 'lend',\n 'length',\n 'lens',\n 'lent',\n 'leotard',\n 'lesser',\n 'letdown',\n 'lethargic',\n 'lethargy',\n 'letter',\n 'lettuce',\n 'level',\n 'leverage',\n 'levers',\n 'levitate',\n 'levitator',\n 'liability',\n 'liable',\n 'liberty',\n 'librarian',\n 'library',\n 'licking',\n 'licorice',\n 'lid',\n 'life',\n 'lifter',\n 'lifting',\n 'liftoff',\n 'ligament',\n 'likely',\n 'likeness',\n 'likewise',\n 'liking',\n 'lilac',\n 'lilly',\n 'lily',\n 'limb',\n 'limeade',\n 'limelight',\n 'limes',\n 'limit',\n 'limping',\n 'limpness',\n 'line',\n 'lingo',\n 'linguini',\n 'linguist',\n 'lining',\n 'linked',\n 'linoleum',\n 'linseed',\n 'lint',\n 'lion',\n 'lip',\n 'liquefy',\n 'liqueur',\n 'liquid',\n 'lisp',\n 'list',\n 'litigate',\n 'litigator',\n 'litmus',\n 'litter',\n 'little',\n 'livable',\n 'lived',\n 'lively',\n 'liver',\n 'livestock',\n 'lividly',\n 'living',\n 'lizard',\n 'lubricant',\n 'lubricate',\n 'lucid',\n 'luckily',\n 'luckiness',\n 'luckless',\n 'lucrative',\n 'ludicrous',\n 'lugged',\n 'lukewarm',\n 'lullaby',\n 'lumber',\n 'luminance',\n 'luminous',\n 'lumpiness',\n 'lumping',\n 'lumpish',\n 'lunacy',\n 'lunar',\n 'lunchbox',\n 'luncheon',\n 'lunchroom',\n 'lunchtime',\n 'lung',\n 'lurch',\n 'lure',\n 'luridness',\n 'lurk',\n 'lushly',\n 'lushness',\n 'luster',\n 'lustfully',\n 'lustily',\n 'lustiness',\n 'lustrous',\n 'lusty',\n 'luxurious',\n 'luxury',\n 'lying',\n 'lyrically',\n 'lyricism',\n 'lyricist',\n 'lyrics',\n 'macarena',\n 'macaroni',\n 'macaw',\n 'mace',\n 'machine',\n 'machinist',\n 'magazine',\n 'magenta',\n 'maggot',\n 'magical',\n 'magician',\n 'magma',\n 'magnesium',\n 'magnetic',\n 'magnetism',\n 'magnetize',\n 'magnifier',\n 'magnify',\n 'magnitude',\n 'magnolia',\n 'mahogany',\n 'maimed',\n 'majestic',\n 'majesty',\n 'majorette',\n 'majority',\n 'makeover',\n 'maker',\n 'makeshift',\n 'making',\n 'malformed',\n 'malt',\n 'mama',\n 'mammal',\n 'mammary',\n 'mammogram',\n 'manager',\n 'managing',\n 'manatee',\n 'mandarin',\n 'mandate',\n 'mandatory',\n 'mandolin',\n 'manger',\n 'mangle',\n 'mango',\n 'mangy',\n 'manhandle',\n 'manhole',\n 'manhood',\n 'manhunt',\n 'manicotti',\n 'manicure',\n 'manifesto',\n 'manila',\n 'mankind',\n 'manlike',\n 'manliness',\n 'manly',\n 'manmade',\n 'manned',\n 'mannish',\n 'manor',\n 'manpower',\n 'mantis',\n 'mantra',\n 'manual',\n 'many',\n 'map',\n 'marathon',\n 'marauding',\n 'marbled',\n 'marbles',\n 'marbling',\n 'march',\n 'mardi',\n 'margarine',\n 'margarita',\n 'margin',\n 'marigold',\n 'marina',\n 'marine',\n 'marital',\n 'maritime',\n 'marlin',\n 'marmalade',\n 'maroon',\n 'married',\n 'marrow',\n 'marry',\n 'marshland',\n 'marshy',\n 'marsupial',\n 'marvelous',\n 'marxism',\n 'mascot',\n 'masculine',\n 'mashed',\n 'mashing',\n 'massager',\n 'masses',\n 'massive',\n 'mastiff',\n 'matador',\n 'matchbook',\n 'matchbox',\n 'matcher',\n 'matching',\n 'matchless',\n 'material',\n 'maternal',\n 'maternity',\n 'math',\n 'mating',\n 'matriarch',\n 'matrimony',\n 'matrix',\n 'matron',\n 'matted',\n 'matter',\n 'maturely',\n 'maturing',\n 'maturity',\n 'mauve',\n 'maverick',\n 'maximize',\n 'maximum',\n 'maybe',\n 'mayday',\n 'mayflower',\n 'moaner',\n 'moaning',\n 'mobile',\n 'mobility',\n 'mobilize',\n 'mobster',\n 'mocha',\n 'mocker',\n 'mockup',\n 'modified',\n 'modify',\n 'modular',\n 'modulator',\n 'module',\n 'moisten',\n 'moistness',\n 'moisture',\n 'molar',\n 'molasses',\n 'mold',\n 'molecular',\n 'molecule',\n 'molehill',\n 'mollusk',\n 'mom',\n 'monastery',\n 'monday',\n 'monetary',\n 'monetize',\n 'moneybags',\n 'moneyless',\n 'moneywise',\n 'mongoose',\n 'mongrel',\n 'monitor',\n 'monkhood',\n 'monogamy',\n 'monogram',\n 'monologue',\n 'monopoly',\n 'monorail',\n 'monotone',\n 'monotype',\n 'monoxide',\n 'monsieur',\n 'monsoon',\n 'monstrous',\n 'monthly',\n 'monument',\n 'moocher',\n 'moodiness',\n 'moody',\n 'mooing',\n 'moonbeam',\n 'mooned',\n 'moonlight',\n 'moonlike',\n 'moonlit',\n 'moonrise',\n 'moonscape',\n 'moonshine',\n 'moonstone',\n 'moonwalk',\n 'mop',\n 'morale',\n 'morality',\n 'morally',\n 'morbidity',\n 'morbidly',\n 'morphine',\n 'morphing',\n 'morse',\n 'mortality',\n 'mortally',\n 'mortician',\n 'mortified',\n 'mortify',\n 'mortuary',\n 'mosaic',\n 'mossy',\n 'most',\n 'mothball',\n 'mothproof',\n 'motion',\n 'motivate',\n 'motivator',\n 'motive',\n 'motocross',\n 'motor',\n 'motto',\n 'mountable',\n 'mountain',\n 'mounted',\n 'mounting',\n 'mourner',\n 'mournful',\n 'mouse',\n 'mousiness',\n 'moustache',\n 'mousy',\n 'mouth',\n 'movable',\n 'move',\n 'movie',\n 'moving',\n 'mower',\n 'mowing',\n 'much',\n 'muck',\n 'mud',\n 'mug',\n 'mulberry',\n 'mulch',\n 'mule',\n 'mulled',\n 'mullets',\n 'multiple',\n 'multiply',\n 'multitask',\n 'multitude',\n 'mumble',\n 'mumbling',\n 'mumbo',\n 'mummified',\n 'mummify',\n 'mummy',\n 'mumps',\n 'munchkin',\n 'mundane',\n 'municipal',\n 'muppet',\n 'mural',\n 'murkiness',\n 'murky',\n 'murmuring',\n 'muscular',\n 'museum',\n 'mushily',\n 'mushiness',\n 'mushroom',\n 'mushy',\n 'music',\n 'musket',\n 'muskiness',\n 'musky',\n 'mustang',\n 'mustard',\n 'muster',\n 'mustiness',\n 'musty',\n 'mutable',\n 'mutate',\n 'mutation',\n 'mute',\n 'mutilated',\n 'mutilator',\n 'mutiny',\n 'mutt',\n 'mutual',\n 'muzzle',\n 'myself',\n 'myspace',\n 'mystified',\n 'mystify',\n 'myth',\n 'nacho',\n 'nag',\n 'nail',\n 'name',\n 'naming',\n 'nanny',\n 'nanometer',\n 'nape',\n 'napkin',\n 'napped',\n 'napping',\n 'nappy',\n 'narrow',\n 'nastily',\n 'nastiness',\n 'national',\n 'native',\n 'nativity',\n 'natural',\n 'nature',\n 'naturist',\n 'nautical',\n 'navigate',\n 'navigator',\n 'navy',\n 'nearby',\n 'nearest',\n 'nearly',\n 'nearness',\n 'neatly',\n 'neatness',\n 'nebula',\n 'nebulizer',\n 'nectar',\n 'negate',\n 'negation',\n 'negative',\n 'neglector',\n 'negligee',\n 'negligent',\n 'negotiate',\n 'nemeses',\n 'nemesis',\n 'neon',\n 'nephew',\n 'nerd',\n 'nervous',\n 'nervy',\n 'nest',\n 'net',\n 'neurology',\n 'neuron',\n 'neurosis',\n 'neurotic',\n 'neuter',\n 'neutron',\n 'never',\n 'next',\n 'nibble',\n 'nickname',\n 'nicotine',\n 'niece',\n 'nifty',\n 'nimble',\n 'nimbly',\n 'nineteen',\n 'ninetieth',\n 'ninja',\n 'nintendo',\n 'ninth',\n 'nuclear',\n 'nuclei',\n 'nucleus',\n 'nugget',\n 'nullify',\n 'number',\n 'numbing',\n 'numbly',\n 'numbness',\n 'numeral',\n 'numerate',\n 'numerator',\n 'numeric',\n 'numerous',\n 'nuptials',\n 'nursery',\n 'nursing',\n 'nurture',\n 'nutcase',\n 'nutlike',\n 'nutmeg',\n 'nutrient',\n 'nutshell',\n 'nuttiness',\n 'nutty',\n 'nuzzle',\n 'nylon',\n 'oaf',\n 'oak',\n 'oasis',\n 'oat',\n 'obedience',\n 'obedient',\n 'obituary',\n 'object',\n 'obligate',\n 'obliged',\n 'oblivion',\n 'oblivious',\n 'oblong',\n 'obnoxious',\n 'oboe',\n 'obscure',\n 'obscurity',\n 'observant',\n 'observer',\n 'observing',\n 'obsessed',\n 'obsession',\n 'obsessive',\n 'obsolete',\n 'obstacle',\n 'obstinate',\n 'obstruct',\n 'obtain',\n 'obtrusive',\n 'obtuse',\n 'obvious',\n 'occultist',\n 'occupancy',\n 'occupant',\n 'occupier',\n 'occupy',\n 'ocean',\n 'ocelot',\n 'octagon',\n 'octane',\n 'october',\n 'octopus',\n 'ogle',\n 'oil',\n 'oink',\n 'ointment',\n 'okay',\n 'old',\n 'olive',\n 'olympics',\n 'omega',\n 'omen',\n 'ominous',\n 'omission',\n 'omit',\n 'omnivore',\n 'onboard',\n 'oncoming',\n 'ongoing',\n 'onion',\n 'online',\n 'onlooker',\n 'only',\n 'onscreen',\n 'onset',\n 'onshore',\n 'onslaught',\n 'onstage',\n 'onto',\n 'onward',\n 'onyx',\n 'oops',\n 'ooze',\n 'oozy',\n 'opacity',\n 'opal',\n 'open',\n 'operable',\n 'operate',\n 'operating',\n 'operation',\n 'operative',\n 'operator',\n 'opium',\n 'opossum',\n 'opponent',\n 'oppose',\n 'opposing',\n 'opposite',\n 'oppressed',\n 'oppressor',\n 'opt',\n 'opulently',\n 'osmosis',\n 'other',\n 'otter',\n 'ouch',\n 'ought',\n 'ounce',\n 'outage',\n 'outback',\n 'outbid',\n 'outboard',\n 'outbound',\n 'outbreak',\n 'outburst',\n 'outcast',\n 'outclass',\n 'outcome',\n 'outdated',\n 'outdoors',\n 'outer',\n 'outfield',\n 'outfit',\n 'outflank',\n 'outgoing',\n 'outgrow',\n 'outhouse',\n 'outing',\n 'outlast',\n 'outlet',\n 'outline',\n 'outlook',\n 'outlying',\n 'outmatch',\n 'outmost',\n 'outnumber',\n 'outplayed',\n 'outpost',\n 'outpour',\n 'output',\n 'outrage',\n 'outrank',\n 'outreach',\n 'outright',\n 'outscore',\n 'outsell',\n 'outshine',\n 'outshoot',\n 'outsider',\n 'outskirts',\n 'outsmart',\n 'outsource',\n 'outspoken',\n 'outtakes',\n 'outthink',\n 'outward',\n 'outweigh',\n 'outwit',\n 'oval',\n 'ovary',\n 'oven',\n 'overact',\n 'overall',\n 'overarch',\n 'overbid',\n 'overbill',\n 'overbite',\n 'overblown',\n 'overboard',\n 'overbook',\n 'overbuilt',\n 'overcast',\n 'overcoat',\n 'overcome',\n 'overcook',\n 'overcrowd',\n 'overdraft',\n 'overdrawn',\n 'overdress',\n 'overdrive',\n 'overdue',\n 'overeager',\n 'overeater',\n 'overexert',\n 'overfed',\n 'overfeed',\n 'overfill',\n 'overflow',\n 'overfull',\n 'overgrown',\n 'overhand',\n 'overhang',\n 'overhaul',\n 'overhead',\n 'overhear',\n 'overheat',\n 'overhung',\n 'overjoyed',\n 'overkill',\n 'overlabor',\n 'overlaid',\n 'overlap',\n 'overlay',\n 'overload',\n 'overlook',\n 'overlord',\n 'overlying',\n 'overnight',\n 'overpass',\n 'overpay',\n 'overplant',\n 'overplay',\n 'overpower',\n 'overprice',\n 'overrate',\n 'overreach',\n 'overreact',\n 'override',\n 'overripe',\n 'overrule',\n 'overrun',\n 'overshoot',\n 'overshot',\n 'oversight',\n 'oversized',\n 'oversleep',\n 'oversold',\n 'overspend',\n 'overstate',\n 'overstay',\n 'overstep',\n 'overstock',\n 'overstuff',\n 'oversweet',\n 'overtake',\n 'overthrow',\n 'overtime',\n 'overtly',\n 'overtone',\n 'overture',\n 'overturn',\n 'overuse',\n 'overvalue',\n 'overview',\n 'overwrite',\n 'owl',\n 'oxford',\n 'oxidant',\n 'oxidation',\n 'oxidize',\n 'oxidizing',\n 'oxygen',\n 'oxymoron',\n 'oyster',\n 'ozone',\n 'paced',\n 'pacemaker',\n 'pacific',\n 'pacifier',\n 'pacifism',\n 'pacifist',\n 'pacify',\n 'padded',\n 'padding',\n 'paddle',\n 'paddling',\n 'padlock',\n 'pagan',\n 'pager',\n 'paging',\n 'pajamas',\n 'palace',\n 'palatable',\n 'palm',\n 'palpable',\n 'palpitate',\n 'paltry',\n 'pampered',\n 'pamperer',\n 'pampers',\n 'pamphlet',\n 'panama',\n 'pancake',\n 'pancreas',\n 'panda',\n 'pandemic',\n 'pang',\n 'panhandle',\n 'panic',\n 'panning',\n 'panorama',\n 'panoramic',\n 'panther',\n 'pantomime',\n 'pantry',\n 'pants',\n 'pantyhose',\n 'paparazzi',\n 'papaya',\n 'paper',\n 'paprika',\n 'papyrus',\n 'parabola',\n 'parachute',\n 'parade',\n 'paradox',\n 'paragraph',\n 'parakeet',\n 'paralegal',\n 'paralyses',\n 'paralysis',\n 'paralyze',\n 'paramedic',\n 'parameter',\n 'paramount',\n 'parasail',\n 'parasite',\n 'parasitic',\n 'parcel',\n 'parched',\n 'parchment',\n 'pardon',\n 'parish',\n 'parka',\n 'parking',\n 'parkway',\n 'parlor',\n 'parmesan',\n 'parole',\n 'parrot',\n 'parsley',\n 'parsnip',\n 'partake',\n 'parted',\n 'parting',\n 'partition',\n 'partly',\n 'partner',\n 'partridge',\n 'party',\n 'passable',\n 'passably',\n 'passage',\n 'passcode',\n 'passenger',\n 'passerby',\n 'passing',\n 'passion',\n 'passive',\n 'passivism',\n 'passover',\n 'passport',\n 'password',\n 'pasta',\n 'pasted',\n 'pastel',\n 'pastime',\n 'pastor',\n 'pastrami',\n 'pasture',\n 'pasty',\n 'patchwork',\n 'patchy',\n 'paternal',\n 'paternity',\n 'path',\n 'patience',\n 'patient',\n 'patio',\n 'patriarch',\n 'patriot',\n 'patrol',\n 'patronage',\n 'patronize',\n 'pauper',\n 'pavement',\n 'paver',\n 'pavestone',\n 'pavilion',\n 'paving',\n 'pawing',\n 'payable',\n 'payback',\n 'paycheck',\n 'payday',\n 'payee',\n 'payer',\n 'paying',\n 'payment',\n 'payphone',\n 'payroll',\n 'pebble',\n 'pebbly',\n 'pecan',\n 'pectin',\n 'peculiar',\n 'peddling',\n 'pediatric',\n 'pedicure',\n 'pedigree',\n 'pedometer',\n 'pegboard',\n 'pelican',\n 'pellet',\n 'pelt',\n 'pelvis',\n 'penalize',\n 'penalty',\n 'pencil',\n 'pendant',\n 'pending',\n 'penholder',\n 'penknife',\n 'pennant',\n 'penniless',\n 'penny',\n 'penpal',\n 'pension',\n 'pentagon',\n 'pentagram',\n 'pep',\n 'perceive',\n 'percent',\n 'perch',\n 'percolate',\n 'perennial',\n 'perfected',\n 'perfectly',\n 'perfume',\n 'periscope',\n 'perish',\n 'perjurer',\n 'perjury',\n 'perkiness',\n 'perky',\n 'perm',\n 'peroxide',\n 'perpetual',\n 'perplexed',\n 'persecute',\n 'persevere',\n 'persuaded',\n 'persuader',\n 'pesky',\n 'peso',\n 'pessimism',\n 'pessimist',\n 'pester',\n 'pesticide',\n 'petal',\n 'petite',\n 'petition',\n 'petri',\n 'petroleum',\n 'petted',\n 'petticoat',\n 'pettiness',\n 'petty',\n 'petunia',\n 'phantom',\n 'phobia',\n 'phoenix',\n 'phonebook',\n 'phoney',\n 'phonics',\n 'phoniness',\n 'phony',\n 'phosphate',\n 'photo',\n 'phrase',\n 'phrasing',\n 'placard',\n 'placate',\n 'placidly',\n 'plank',\n 'planner',\n 'plant',\n 'plasma',\n 'plaster',\n 'plastic',\n 'plated',\n 'platform',\n 'plating',\n 'platinum',\n 'platonic',\n 'platter',\n 'platypus',\n 'plausible',\n 'plausibly',\n 'playable',\n 'playback',\n 'player',\n 'playful',\n 'playgroup',\n 'playhouse',\n 'playing',\n 'playlist',\n 'playmaker',\n 'playmate',\n 'playoff',\n 'playpen',\n 'playroom',\n 'playset',\n 'plaything',\n 'playtime',\n 'plaza',\n 'pleading',\n 'pleat',\n 'pledge',\n 'plentiful',\n 'plenty',\n 'plethora',\n 'plexiglas',\n 'pliable',\n 'plod',\n 'plop',\n 'plot',\n 'plow',\n 'ploy',\n 'pluck',\n 'plug',\n 'plunder',\n 'plunging',\n 'plural',\n 'plus',\n 'plutonium',\n 'plywood',\n 'poach',\n 'pod',\n 'poem',\n 'poet',\n 'pogo',\n 'pointed',\n 'pointer',\n 'pointing',\n 'pointless',\n 'pointy',\n 'poise',\n 'poison',\n 'poker',\n 'poking',\n 'polar',\n 'police',\n 'policy',\n 'polio',\n 'polish',\n 'politely',\n 'polka',\n 'polo',\n 'polyester',\n 'polygon',\n 'polygraph',\n 'polymer',\n 'poncho',\n 'pond',\n 'pony',\n 'popcorn',\n 'pope',\n 'poplar',\n 'popper',\n 'poppy',\n 'popsicle',\n 'populace',\n 'popular',\n 'populate',\n 'porcupine',\n 'pork',\n 'porous',\n 'porridge',\n 'portable',\n 'portal',\n 'portfolio',\n 'porthole',\n 'portion',\n 'portly',\n 'portside',\n 'poser',\n 'posh',\n 'posing',\n 'possible',\n 'possibly',\n 'possum',\n 'postage',\n 'postal',\n 'postbox',\n 'postcard',\n 'posted',\n 'poster',\n 'posting',\n 'postnasal',\n 'posture',\n 'postwar',\n 'pouch',\n 'pounce',\n 'pouncing',\n 'pound',\n 'pouring',\n 'pout',\n 'powdered',\n 'powdering',\n 'powdery',\n 'power',\n 'powwow',\n 'pox',\n 'praising',\n 'prance',\n 'prancing',\n 'pranker',\n 'prankish',\n 'prankster',\n 'prayer',\n 'praying',\n 'preacher',\n 'preaching',\n 'preachy',\n 'preamble',\n 'precinct',\n 'precise',\n 'precision',\n 'precook',\n 'precut',\n 'predator',\n 'predefine',\n 'predict',\n 'preface',\n 'prefix',\n 'preflight',\n 'preformed',\n 'pregame',\n 'pregnancy',\n 'pregnant',\n 'preheated',\n 'prelaunch',\n 'prelaw',\n 'prelude',\n 'premiere',\n 'premises',\n 'premium',\n 'prenatal',\n 'preoccupy',\n 'preorder',\n 'prepaid',\n 'prepay',\n 'preplan',\n 'preppy',\n 'preschool',\n 'prescribe',\n 'preseason',\n 'preset',\n 'preshow',\n 'president',\n 'presoak',\n 'press',\n 'presume',\n 'presuming',\n 'preteen',\n 'pretended',\n 'pretender',\n 'pretense',\n 'pretext',\n 'pretty',\n 'pretzel',\n 'prevail',\n 'prevalent',\n 'prevent',\n 'preview',\n 'previous',\n 'prewar',\n 'prewashed',\n 'prideful',\n 'pried',\n 'primal',\n 'primarily',\n 'primary',\n 'primate',\n 'primer',\n 'primp',\n 'princess',\n 'print',\n 'prior',\n 'prism',\n 'prison',\n 'prissy',\n 'pristine',\n 'privacy',\n 'private',\n 'privatize',\n 'prize',\n 'proactive',\n 'probable',\n 'probably',\n 'probation',\n 'probe',\n 'probing',\n 'probiotic',\n 'problem',\n 'procedure',\n 'process',\n 'proclaim',\n 'procreate',\n 'procurer',\n 'prodigal',\n 'prodigy',\n 'produce',\n 'product',\n 'profane',\n 'profanity',\n 'professed',\n 'professor',\n 'profile',\n 'profound',\n 'profusely',\n 'progeny',\n 'prognosis',\n 'program',\n 'progress',\n 'projector',\n 'prologue',\n 'prolonged',\n 'promenade',\n 'prominent',\n 'promoter',\n 'promotion',\n 'prompter',\n 'promptly',\n 'prone',\n 'prong',\n 'pronounce',\n 'pronto',\n 'proofing',\n 'proofread',\n 'proofs',\n 'propeller',\n 'properly',\n 'property',\n 'proponent',\n 'proposal',\n 'propose',\n 'props',\n 'prorate',\n 'protector',\n 'protegee',\n 'proton',\n 'prototype',\n 'protozoan',\n 'protract',\n 'protrude',\n 'proud',\n 'provable',\n 'proved',\n 'proven',\n 'provided',\n 'provider',\n 'providing',\n 'province',\n 'proving',\n 'provoke',\n 'provoking',\n 'provolone',\n 'prowess',\n 'prowler',\n 'prowling',\n 'proximity',\n 'proxy',\n 'prozac',\n 'prude',\n 'prudishly',\n 'prune',\n 'pruning',\n 'pry',\n 'psychic',\n 'public',\n 'publisher',\n 'pucker',\n 'pueblo',\n 'pug',\n 'pull',\n 'pulmonary',\n 'pulp',\n 'pulsate',\n 'pulse',\n 'pulverize',\n 'puma',\n 'pumice',\n 'pummel',\n 'punch',\n 'punctual',\n 'punctuate',\n 'punctured',\n 'pungent',\n 'punisher',\n 'punk',\n 'pupil',\n 'puppet',\n 'puppy',\n 'purchase',\n 'pureblood',\n 'purebred',\n 'purely',\n 'pureness',\n 'purgatory',\n 'purge',\n 'purging',\n 'purifier',\n 'purify',\n 'purist',\n 'puritan',\n 'purity',\n 'purple',\n 'purplish',\n 'purposely',\n 'purr',\n 'purse',\n 'pursuable',\n 'pursuant',\n 'pursuit',\n 'purveyor',\n 'pushcart',\n 'pushchair',\n 'pusher',\n 'pushiness',\n 'pushing',\n 'pushover',\n 'pushpin',\n 'pushup',\n 'pushy',\n 'putdown',\n 'putt',\n 'puzzle',\n 'puzzling',\n 'pyramid',\n 'pyromania',\n 'python',\n 'quack',\n 'quadrant',\n 'quail',\n 'quaintly',\n 'quake',\n 'quaking',\n 'qualified',\n 'qualifier',\n 'qualify',\n 'quality',\n 'qualm',\n 'quantum',\n 'quarrel',\n 'quarry',\n 'quartered',\n 'quarterly',\n 'quarters',\n 'quartet',\n 'quench',\n 'query',\n 'quicken',\n 'quickly',\n 'quickness',\n 'quicksand',\n 'quickstep',\n 'quiet',\n 'quill',\n 'quilt',\n 'quintet',\n 'quintuple',\n 'quirk',\n 'quit',\n 'quiver',\n 'quizzical',\n 'quotable',\n 'quotation',\n 'quote',\n 'rabid',\n 'race',\n 'racing',\n 'racism',\n 'rack',\n 'racoon',\n 'radar',\n 'radial',\n 'radiance',\n 'radiantly',\n 'radiated',\n 'radiation',\n 'radiator',\n 'radio',\n 'radish',\n 'raffle',\n 'raft',\n 'rage',\n 'ragged',\n 'raging',\n 'ragweed',\n 'raider',\n 'railcar',\n 'railing',\n 'railroad',\n 'railway',\n 'raisin',\n 'rake',\n 'raking',\n 'rally',\n 'ramble',\n 'rambling',\n 'ramp',\n 'ramrod',\n 'ranch',\n 'rancidity',\n 'random',\n 'ranged',\n 'ranger',\n 'ranging',\n 'ranked',\n 'ranking',\n 'ransack',\n 'ranting',\n 'rants',\n 'rare',\n 'rarity',\n 'rascal',\n 'rash',\n 'rasping',\n 'ravage',\n 'raven',\n 'ravine',\n 'raving',\n 'ravioli',\n 'ravishing',\n 'reabsorb',\n 'reach',\n 'reacquire',\n 'reaction',\n 'reactive',\n 'reactor',\n 'reaffirm',\n 'ream',\n 'reanalyze',\n 'reappear',\n 'reapply',\n 'reappoint',\n 'reapprove',\n 'rearrange',\n 'rearview',\n 'reason',\n 'reassign',\n 'reassure',\n 'reattach',\n 'reawake',\n 'rebalance',\n 'rebate',\n 'rebel',\n 'rebirth',\n 'reboot',\n 'reborn',\n 'rebound',\n 'rebuff',\n 'rebuild',\n 'rebuilt',\n 'reburial',\n 'rebuttal',\n 'recall',\n 'recant',\n 'recapture',\n 'recast',\n 'recede',\n 'recent',\n 'recess',\n 'recharger',\n 'recipient',\n 'recital',\n 'recite',\n 'reckless',\n 'reclaim',\n 'recliner',\n 'reclining',\n 'recluse',\n 'reclusive',\n 'recognize',\n 'recoil',\n 'recollect',\n 'recolor',\n 'reconcile',\n 'reconfirm',\n 'reconvene',\n 'recopy',\n 'record',\n 'recount',\n 'recoup',\n 'recovery',\n 'recreate',\n 'rectal',\n 'rectangle',\n 'rectified',\n 'rectify',\n 'recycled',\n 'recycler',\n 'recycling',\n 'reemerge',\n 'reenact',\n 'reenter',\n 'reentry',\n 'reexamine',\n 'referable',\n 'referee',\n 'reference',\n 'refill',\n 'refinance',\n 'refined',\n 'refinery',\n 'refining',\n 'refinish',\n 'reflected',\n 'reflector',\n 'reflex',\n 'reflux',\n 'refocus',\n 'refold',\n 'reforest',\n 'reformat',\n 'reformed',\n 'reformer',\n 'reformist',\n 'refract',\n 'refrain',\n 'refreeze',\n 'refresh',\n 'refried',\n 'refueling',\n 'refund',\n 'refurbish',\n 'refurnish',\n 'refusal',\n 'refuse',\n 'refusing',\n 'refutable',\n 'refute',\n 'regain',\n 'regalia',\n 'regally',\n 'reggae',\n 'regime',\n 'region',\n 'register',\n 'registrar',\n 'registry',\n 'regress',\n 'regretful',\n 'regroup',\n 'regular',\n 'regulate',\n 'regulator',\n 'rehab',\n 'reheat',\n 'rehire',\n 'rehydrate',\n 'reimburse',\n 'reissue',\n 'reiterate',\n 'rejoice',\n 'rejoicing',\n 'rejoin',\n 'rekindle',\n 'relapse',\n 'relapsing',\n 'relatable',\n 'related',\n 'relation',\n 'relative',\n 'relax',\n 'relay',\n 'relearn',\n 'release',\n 'relenting',\n 'reliable',\n 'reliably',\n 'reliance',\n 'reliant',\n 'relic',\n 'relieve',\n 'relieving',\n 'relight',\n 'relish',\n 'relive',\n 'reload',\n 'relocate',\n 'relock',\n 'reluctant',\n 'rely',\n 'remake',\n 'remark',\n 'remarry',\n 'rematch',\n 'remedial',\n 'remedy',\n 'remember',\n 'reminder',\n 'remindful',\n 'remission',\n 'remix',\n 'remnant',\n 'remodeler',\n 'remold',\n 'remorse',\n 'remote',\n 'removable',\n 'removal',\n 'removed',\n 'remover',\n 'removing',\n 'rename',\n 'renderer',\n 'rendering',\n 'rendition',\n 'renegade',\n 'renewable',\n 'renewably',\n 'renewal',\n 'renewed',\n 'renounce',\n 'renovate',\n 'renovator',\n 'rentable',\n 'rental',\n 'rented',\n 'renter',\n 'reoccupy',\n 'reoccur',\n 'reopen',\n 'reorder',\n 'repackage',\n 'repacking',\n 'repaint',\n 'repair',\n 'repave',\n 'repaying',\n 'repayment',\n 'repeal',\n 'repeated',\n 'repeater',\n 'repent',\n 'rephrase',\n 'replace',\n 'replay',\n 'replica',\n 'reply',\n 'reporter',\n 'repose',\n 'repossess',\n 'repost',\n 'repressed',\n 'reprimand',\n 'reprint',\n 'reprise',\n 'reproach',\n 'reprocess',\n 'reproduce',\n 'reprogram',\n 'reps',\n 'reptile',\n 'reptilian',\n 'repugnant',\n 'repulsion',\n 'repulsive',\n 'repurpose',\n 'reputable',\n 'reputably',\n 'request',\n 'require',\n 'requisite',\n 'reroute',\n 'rerun',\n 'resale',\n 'resample',\n 'rescuer',\n 'reseal',\n 'research',\n 'reselect',\n 'reseller',\n 'resemble',\n 'resend',\n 'resent',\n 'reset',\n 'reshape',\n 'reshoot',\n 'reshuffle',\n 'residence',\n 'residency',\n 'resident',\n 'residual',\n 'residue',\n 'resigned',\n 'resilient',\n 'resistant',\n 'resisting',\n 'resize',\n 'resolute',\n 'resolved',\n 'resonant',\n 'resonate',\n 'resort',\n 'resource',\n 'respect',\n 'resubmit',\n 'result',\n 'resume',\n 'resupply',\n 'resurface',\n 'resurrect',\n 'retail',\n 'retainer',\n 'retaining',\n 'retake',\n 'retaliate',\n 'retention',\n 'rethink',\n 'retinal',\n 'retired',\n 'retiree',\n 'retiring',\n 'retold',\n 'retool',\n 'retorted',\n 'retouch',\n 'retrace',\n 'retract',\n 'retrain',\n 'retread',\n 'retreat',\n 'retrial',\n 'retrieval',\n 'retriever',\n 'retry',\n 'return',\n 'retying',\n 'retype',\n 'reunion',\n 'reunite',\n 'reusable',\n 'reuse',\n 'reveal',\n 'reveler',\n 'revenge',\n 'revenue',\n 'reverb',\n 'revered',\n 'reverence',\n 'reverend',\n 'reversal',\n 'reverse',\n 'reversing',\n 'reversion',\n 'revert',\n 'revisable',\n 'revise',\n 'revision',\n 'revisit',\n 'revivable',\n 'revival',\n 'reviver',\n 'reviving',\n 'revocable',\n 'revoke',\n 'revolt',\n 'revolver',\n 'revolving',\n 'reward',\n 'rewash',\n 'rewind',\n 'rewire',\n 'reword',\n 'rework',\n 'rewrap',\n 'rewrite',\n 'rhyme',\n 'ribbon',\n 'ribcage',\n 'rice',\n 'riches',\n 'richly',\n 'richness',\n 'rickety',\n 'ricotta',\n 'riddance',\n 'ridden',\n 'ride',\n 'riding',\n 'rifling',\n 'rift',\n 'rigging',\n 'rigid',\n 'rigor',\n 'rimless',\n 'rimmed',\n 'rind',\n 'rink',\n 'rinse',\n 'rinsing',\n 'riot',\n 'ripcord',\n 'ripeness',\n 'ripening',\n 'ripping',\n 'ripple',\n 'rippling',\n 'riptide',\n 'rise',\n 'rising',\n 'risk',\n 'risotto',\n 'ritalin',\n 'ritzy',\n 'rival',\n 'riverbank',\n 'riverbed',\n 'riverboat',\n 'riverside',\n 'riveter',\n 'riveting',\n 'roamer',\n 'roaming',\n 'roast',\n 'robbing',\n 'robe',\n 'robin',\n 'robotics',\n 'robust',\n 'rockband',\n 'rocker',\n 'rocket',\n 'rockfish',\n 'rockiness',\n 'rocking',\n 'rocklike',\n 'rockslide',\n 'rockstar',\n 'rocky',\n 'rogue',\n 'roman',\n 'romp',\n 'rope',\n 'roping',\n 'roster',\n 'rosy',\n 'rotten',\n 'rotting',\n 'rotunda',\n 'roulette',\n 'rounding',\n 'roundish',\n 'roundness',\n 'roundup',\n 'roundworm',\n 'routine',\n 'routing',\n 'rover',\n 'roving',\n 'royal',\n 'rubbed',\n 'rubber',\n 'rubbing',\n 'rubble',\n 'rubdown',\n 'ruby',\n 'ruckus',\n 'rudder',\n 'rug',\n 'ruined',\n 'rule',\n 'rumble',\n 'rumbling',\n 'rummage',\n 'rumor',\n 'runaround',\n 'rundown',\n 'runner',\n 'running',\n 'runny',\n 'runt',\n 'runway',\n 'rupture',\n 'rural',\n 'ruse',\n 'rush',\n 'rust',\n 'rut',\n 'sabbath',\n 'sabotage',\n 'sacrament',\n 'sacred',\n 'sacrifice',\n 'sadden',\n 'saddlebag',\n 'saddled',\n 'saddling',\n 'sadly',\n 'sadness',\n 'safari',\n 'safeguard',\n 'safehouse',\n 'safely',\n 'safeness',\n 'saffron',\n 'saga',\n 'sage',\n 'sagging',\n 'saggy',\n 'said',\n 'saint',\n 'sake',\n 'salad',\n 'salami',\n 'salaried',\n 'salary',\n 'saline',\n 'salon',\n 'saloon',\n 'salsa',\n 'salt',\n 'salutary',\n 'salute',\n 'salvage',\n 'salvaging',\n 'salvation',\n 'same',\n 'sample',\n 'sampling',\n 'sanction',\n 'sanctity',\n 'sanctuary',\n 'sandal',\n 'sandbag',\n 'sandbank',\n 'sandbar',\n 'sandblast',\n 'sandbox',\n 'sanded',\n 'sandfish',\n 'sanding',\n 'sandlot',\n 'sandpaper',\n 'sandpit',\n 'sandstone',\n 'sandstorm',\n 'sandworm',\n 'sandy',\n 'sanitary',\n 'sanitizer',\n 'sank',\n 'santa',\n 'sapling',\n 'sappiness',\n 'sappy',\n 'sarcasm',\n 'sarcastic',\n 'sardine',\n 'sash',\n 'sasquatch',\n 'sassy',\n 'satchel',\n 'satiable',\n 'satin',\n 'satirical',\n 'satisfied',\n 'satisfy',\n 'saturate',\n 'saturday',\n 'sauciness',\n 'saucy',\n 'sauna',\n 'savage',\n 'savanna',\n 'saved',\n 'savings',\n 'savior',\n 'savor',\n 'saxophone',\n 'say',\n 'scabbed',\n 'scabby',\n 'scalded',\n 'scalding',\n 'scale',\n 'scaling',\n 'scallion',\n 'scallop',\n 'scalping',\n 'scam',\n 'scandal',\n 'scanner',\n 'scanning',\n 'scant',\n 'scapegoat',\n 'scarce',\n 'scarcity',\n 'scarecrow',\n 'scared',\n 'scarf',\n 'scarily',\n 'scariness',\n 'scarring',\n 'scary',\n 'scavenger',\n 'scenic',\n 'schedule',\n 'schematic',\n 'scheme',\n 'scheming',\n 'schilling',\n 'schnapps',\n 'scholar',\n 'science',\n 'scientist',\n 'scion',\n 'scoff',\n 'scolding',\n 'scone',\n 'scoop',\n 'scooter',\n 'scope',\n 'scorch',\n 'scorebook',\n 'scorecard',\n 'scored',\n 'scoreless',\n 'scorer',\n 'scoring',\n 'scorn',\n 'scorpion',\n 'scotch',\n 'scoundrel',\n 'scoured',\n 'scouring',\n 'scouting',\n 'scouts',\n 'scowling',\n 'scrabble',\n 'scraggly',\n 'scrambled',\n 'scrambler',\n 'scrap',\n 'scratch',\n 'scrawny',\n 'screen',\n 'scribble',\n 'scribe',\n 'scribing',\n 'scrimmage',\n 'script',\n 'scroll',\n 'scrooge',\n 'scrounger',\n 'scrubbed',\n 'scrubber',\n 'scruffy',\n 'scrunch',\n 'scrutiny',\n 'scuba',\n 'scuff',\n 'sculptor',\n 'sculpture',\n 'scurvy',\n 'scuttle',\n 'secluded',\n 'secluding',\n 'seclusion',\n 'second',\n 'secrecy',\n 'secret',\n 'sectional',\n 'sector',\n 'secular',\n 'securely',\n 'security',\n 'sedan',\n 'sedate',\n 'sedation',\n 'sedative',\n 'sediment',\n 'seduce',\n 'seducing',\n 'segment',\n 'seismic',\n 'seizing',\n 'seldom',\n 'selected',\n 'selection',\n 'selective',\n 'selector',\n 'self',\n 'seltzer',\n 'semantic',\n 'semester',\n 'semicolon',\n 'semifinal',\n 'seminar',\n 'semisoft',\n 'semisweet',\n 'senate',\n 'senator',\n 'send',\n 'senior',\n 'senorita',\n 'sensation',\n 'sensitive',\n 'sensitize',\n 'sensually',\n 'sensuous',\n 'sepia',\n 'september',\n 'septic',\n 'septum',\n 'sequel',\n 'sequence',\n 'sequester',\n 'series',\n 'sermon',\n 'serotonin',\n 'serpent',\n 'serrated',\n 'serve',\n 'service',\n 'serving',\n 'sesame',\n 'sessions',\n 'setback',\n 'setting',\n 'settle',\n 'settling',\n 'setup',\n 'sevenfold',\n 'seventeen',\n 'seventh',\n 'seventy',\n 'severity',\n 'shabby',\n 'shack',\n 'shaded',\n 'shadily',\n 'shadiness',\n 'shading',\n 'shadow',\n 'shady',\n 'shaft',\n 'shakable',\n 'shakily',\n 'shakiness',\n 'shaking',\n 'shaky',\n 'shale',\n 'shallot',\n 'shallow',\n 'shame',\n 'shampoo',\n 'shamrock',\n 'shank',\n 'shanty',\n 'shape',\n 'shaping',\n 'share',\n 'sharpener',\n 'sharper',\n 'sharpie',\n 'sharply',\n 'sharpness',\n 'shawl',\n 'sheath',\n 'shed',\n 'sheep',\n 'sheet',\n 'shelf',\n 'shell',\n 'shelter',\n 'shelve',\n 'shelving',\n 'sherry',\n 'shield',\n 'shifter',\n 'shifting',\n 'shiftless',\n 'shifty',\n 'shimmer',\n 'shimmy',\n 'shindig',\n 'shine',\n 'shingle',\n 'shininess',\n 'shining',\n 'shiny',\n 'ship',\n 'shirt',\n 'shivering',\n 'shock',\n 'shone',\n 'shoplift',\n 'shopper',\n 'shopping',\n 'shoptalk',\n 'shore',\n 'shortage',\n 'shortcake',\n 'shortcut',\n 'shorten',\n 'shorter',\n 'shorthand',\n 'shortlist',\n 'shortly',\n 'shortness',\n 'shorts',\n 'shortwave',\n 'shorty',\n 'shout',\n 'shove',\n 'showbiz',\n 'showcase',\n 'showdown',\n 'shower',\n 'showgirl',\n 'showing',\n 'showman',\n 'shown',\n 'showoff',\n 'showpiece',\n 'showplace',\n 'showroom',\n 'showy',\n 'shrank',\n 'shrapnel',\n 'shredder',\n 'shredding',\n 'shrewdly',\n 'shriek',\n 'shrill',\n 'shrimp',\n 'shrine',\n 'shrink',\n 'shrivel',\n 'shrouded',\n 'shrubbery',\n 'shrubs',\n 'shrug',\n 'shrunk',\n 'shucking',\n 'shudder',\n 'shuffle',\n 'shuffling',\n 'shun',\n 'shush',\n 'shut',\n 'shy',\n 'siamese',\n 'siberian',\n 'sibling',\n 'siding',\n 'sierra',\n 'siesta',\n 'sift',\n 'sighing',\n 'silenced',\n 'silencer',\n 'silent',\n 'silica',\n 'silicon',\n 'silk',\n 'silliness',\n 'silly',\n 'silo',\n 'silt',\n 'silver',\n 'similarly',\n 'simile',\n 'simmering',\n 'simple',\n 'simplify',\n 'simply',\n 'sincere',\n 'sincerity',\n 'singer',\n 'singing',\n 'single',\n 'singular',\n 'sinister',\n 'sinless',\n 'sinner',\n 'sinuous',\n 'sip',\n 'siren',\n 'sister',\n 'sitcom',\n 'sitter',\n 'sitting',\n 'situated',\n 'situation',\n 'sixfold',\n 'sixteen',\n 'sixth',\n 'sixties',\n 'sixtieth',\n 'sixtyfold',\n 'sizable',\n 'sizably',\n 'size',\n 'sizing',\n 'sizzle',\n 'sizzling',\n 'skater',\n 'skating',\n 'skedaddle',\n 'skeletal',\n 'skeleton',\n 'skeptic',\n 'sketch',\n 'skewed',\n 'skewer',\n 'skid',\n 'skied',\n 'skier',\n 'skies',\n 'skiing',\n 'skilled',\n 'skillet',\n 'skillful',\n 'skimmed',\n 'skimmer',\n 'skimming',\n 'skimpily',\n 'skincare',\n 'skinhead',\n 'skinless',\n 'skinning',\n 'skinny',\n 'skintight',\n 'skipper',\n 'skipping',\n 'skirmish',\n 'skirt',\n 'skittle',\n 'skydiver',\n 'skylight',\n 'skyline',\n 'skype',\n 'skyrocket',\n 'skyward',\n 'slab',\n 'slacked',\n 'slacker',\n 'slacking',\n 'slackness',\n 'slacks',\n 'slain',\n 'slam',\n 'slander',\n 'slang',\n 'slapping',\n 'slapstick',\n 'slashed',\n 'slashing',\n 'slate',\n 'slather',\n 'slaw',\n 'sled',\n 'sleek',\n 'sleep',\n 'sleet',\n 'sleeve',\n 'slept',\n 'sliceable',\n 'sliced',\n 'slicer',\n 'slicing',\n 'slick',\n 'slider',\n 'slideshow',\n 'sliding',\n 'slighted',\n 'slighting',\n 'slightly',\n 'slimness',\n 'slimy',\n 'slinging',\n 'slingshot',\n 'slinky',\n 'slip',\n 'slit',\n 'sliver',\n 'slobbery',\n 'slogan',\n 'sloped',\n 'sloping',\n 'sloppily',\n 'sloppy',\n 'slot',\n 'slouching',\n 'slouchy',\n 'sludge',\n 'slug',\n 'slum',\n 'slurp',\n 'slush',\n 'sly',\n 'small',\n 'smartly',\n 'smartness',\n 'smasher',\n 'smashing',\n 'smashup',\n 'smell',\n 'smelting',\n 'smile',\n 'smilingly',\n 'smirk',\n 'smite',\n 'smith',\n 'smitten',\n 'smock',\n 'smog',\n 'smoked',\n 'smokeless',\n 'smokiness',\n 'smoking',\n 'smoky',\n 'smolder',\n 'smooth',\n 'smother',\n 'smudge',\n 'smudgy',\n 'smuggler',\n 'smuggling',\n 'smugly',\n 'smugness',\n 'snack',\n 'snagged',\n 'snaking',\n 'snap',\n 'snare',\n 'snarl',\n 'snazzy',\n 'sneak',\n 'sneer',\n 'sneeze',\n 'sneezing',\n 'snide',\n 'sniff',\n 'snippet',\n 'snipping',\n 'snitch',\n 'snooper',\n 'snooze',\n 'snore',\n 'snoring',\n 'snorkel',\n 'snort',\n 'snout',\n 'snowbird',\n 'snowboard',\n 'snowbound',\n 'snowcap',\n 'snowdrift',\n 'snowdrop',\n 'snowfall',\n 'snowfield',\n 'snowflake',\n 'snowiness',\n 'snowless',\n 'snowman',\n 'snowplow',\n 'snowshoe',\n 'snowstorm',\n 'snowsuit',\n 'snowy',\n 'snub',\n 'snuff',\n 'snuggle',\n 'snugly',\n 'snugness',\n 'speak',\n 'spearfish',\n 'spearhead',\n 'spearman',\n 'spearmint',\n 'species',\n 'specimen',\n 'specked',\n 'speckled',\n 'specks',\n 'spectacle',\n 'spectator',\n 'spectrum',\n 'speculate',\n 'speech',\n 'speed',\n 'spellbind',\n 'speller',\n 'spelling',\n 'spendable',\n 'spender',\n 'spending',\n 'spent',\n 'spew',\n 'sphere',\n 'spherical',\n 'sphinx',\n 'spider',\n 'spied',\n 'spiffy',\n 'spill',\n 'spilt',\n 'spinach',\n 'spinal',\n 'spindle',\n 'spinner',\n 'spinning',\n 'spinout',\n 'spinster',\n 'spiny',\n 'spiral',\n 'spirited',\n 'spiritism',\n 'spirits',\n 'spiritual',\n 'splashed',\n 'splashing',\n 'splashy',\n 'splatter',\n 'spleen',\n 'splendid',\n 'splendor',\n 'splice',\n 'splicing',\n 'splinter',\n 'splotchy',\n 'splurge',\n 'spoilage',\n 'spoiled',\n 'spoiler',\n 'spoiling',\n 'spoils',\n 'spoken',\n 'spokesman',\n 'sponge',\n 'spongy',\n 'sponsor',\n 'spoof',\n 'spookily',\n 'spooky',\n 'spool',\n 'spoon',\n 'spore',\n 'sporting',\n 'sports',\n 'sporty',\n 'spotless',\n 'spotlight',\n 'spotted',\n 'spotter',\n 'spotting',\n 'spotty',\n 'spousal',\n 'spouse',\n 'spout',\n 'sprain',\n 'sprang',\n 'sprawl',\n 'spray',\n 'spree',\n 'sprig',\n 'spring',\n 'sprinkled',\n 'sprinkler',\n 'sprint',\n 'sprite',\n 'sprout',\n 'spruce',\n 'sprung',\n 'spry',\n 'spud',\n 'spur',\n 'sputter',\n 'spyglass',\n 'squabble',\n 'squad',\n 'squall',\n 'squander',\n 'squash',\n 'squatted',\n 'squatter',\n 'squatting',\n 'squeak',\n 'squealer',\n 'squealing',\n 'squeamish',\n 'squeegee',\n 'squeeze',\n 'squeezing',\n 'squid',\n 'squiggle',\n 'squiggly',\n 'squint',\n 'squire',\n 'squirt',\n 'squishier',\n 'squishy',\n 'stability',\n 'stabilize',\n 'stable',\n 'stack',\n 'stadium',\n 'staff',\n 'stage',\n 'staging',\n 'stagnant',\n 'stagnate',\n 'stainable',\n 'stained',\n 'staining',\n 'stainless',\n 'stalemate',\n 'staleness',\n 'stalling',\n 'stallion',\n 'stamina',\n 'stammer',\n 'stamp',\n 'stand',\n 'stank',\n 'staple',\n 'stapling',\n 'starboard',\n 'starch',\n 'stardom',\n 'stardust',\n 'starfish',\n 'stargazer',\n 'staring',\n 'stark',\n 'starless',\n 'starlet',\n 'starlight',\n 'starlit',\n 'starring',\n 'starry',\n 'starship',\n 'starter',\n 'starting',\n 'startle',\n 'startling',\n 'startup',\n 'starved',\n 'starving',\n 'stash',\n 'state',\n 'static',\n 'statistic',\n 'statue',\n 'stature',\n 'status',\n 'statute',\n 'statutory',\n 'staunch',\n 'stays',\n 'steadfast',\n 'steadier',\n 'steadily',\n 'steadying',\n 'steam',\n 'steed',\n 'steep',\n 'steerable',\n 'steering',\n 'steersman',\n 'stegosaur',\n 'stellar',\n 'stem',\n 'stench',\n 'stencil',\n 'step',\n 'stereo',\n 'sterile',\n 'sterility',\n 'sterilize',\n 'sterling',\n 'sternness',\n 'sternum',\n 'stew',\n 'stick',\n 'stiffen',\n 'stiffly',\n 'stiffness',\n 'stifle',\n 'stifling',\n 'stillness',\n 'stilt',\n 'stimulant',\n 'stimulate',\n 'stimuli',\n 'stimulus',\n 'stinger',\n 'stingily',\n 'stinging',\n 'stingray',\n 'stingy',\n 'stinking',\n 'stinky',\n 'stipend',\n 'stipulate',\n 'stir',\n 'stitch',\n 'stock',\n 'stoic',\n 'stoke',\n 'stole',\n 'stomp',\n 'stonewall',\n 'stoneware',\n 'stonework',\n 'stoning',\n 'stony',\n 'stood',\n 'stooge',\n 'stool',\n 'stoop',\n 'stoplight',\n 'stoppable',\n 'stoppage',\n 'stopped',\n 'stopper',\n 'stopping',\n 'stopwatch',\n 'storable',\n 'storage',\n 'storeroom',\n 'storewide',\n 'storm',\n 'stout',\n 'stove',\n 'stowaway',\n 'stowing',\n 'straddle',\n 'straggler',\n 'strained',\n 'strainer',\n 'straining',\n 'strangely',\n 'stranger',\n 'strangle',\n 'strategic',\n 'strategy',\n 'stratus',\n 'straw',\n 'stray',\n 'streak',\n 'stream',\n 'street',\n 'strength',\n 'strenuous',\n 'strep',\n 'stress',\n 'stretch',\n 'strewn',\n 'stricken',\n 'strict',\n 'stride',\n 'strife',\n 'strike',\n 'striking',\n 'strive',\n 'striving',\n 'strobe',\n 'strode',\n 'stroller',\n 'strongbox',\n 'strongly',\n 'strongman',\n 'struck',\n 'structure',\n 'strudel',\n 'struggle',\n 'strum',\n 'strung',\n 'strut',\n 'stubbed',\n 'stubble',\n 'stubbly',\n 'stubborn',\n 'stucco',\n 'stuck',\n 'student',\n 'studied',\n 'studio',\n 'study',\n 'stuffed',\n 'stuffing',\n 'stuffy',\n 'stumble',\n 'stumbling',\n 'stump',\n 'stung',\n 'stunned',\n 'stunner',\n 'stunning',\n 'stunt',\n 'stupor',\n 'sturdily',\n 'sturdy',\n 'styling',\n 'stylishly',\n 'stylist',\n 'stylized',\n 'stylus',\n 'suave',\n 'subarctic',\n 'subatomic',\n 'subdivide',\n 'subdued',\n 'subduing',\n 'subfloor',\n 'subgroup',\n 'subheader',\n 'subject',\n 'sublease',\n 'sublet',\n 'sublevel',\n 'sublime',\n 'submarine',\n 'submerge',\n 'submersed',\n 'submitter',\n 'subpanel',\n 'subpar',\n 'subplot',\n 'subprime',\n 'subscribe',\n 'subscript',\n 'subsector',\n 'subside',\n 'subsiding',\n 'subsidize',\n 'subsidy',\n 'subsoil',\n 'subsonic',\n 'substance',\n 'subsystem',\n 'subtext',\n 'subtitle',\n 'subtly',\n 'subtotal',\n 'subtract',\n 'subtype',\n 'suburb',\n 'subway',\n 'subwoofer',\n 'subzero',\n 'succulent',\n 'such',\n 'suction',\n 'sudden',\n 'sudoku',\n 'suds',\n 'sufferer',\n 'suffering',\n 'suffice',\n 'suffix',\n 'suffocate',\n 'suffrage',\n 'sugar',\n 'suggest',\n 'suing',\n 'suitable',\n 'suitably',\n 'suitcase',\n 'suitor',\n 'sulfate',\n 'sulfide',\n 'sulfite',\n 'sulfur',\n 'sulk',\n 'sullen',\n 'sulphate',\n 'sulphuric',\n 'sultry',\n 'superbowl',\n 'superglue',\n 'superhero',\n 'superior',\n 'superjet',\n 'superman',\n 'supermom',\n 'supernova',\n 'supervise',\n 'supper',\n 'supplier',\n 'supply',\n 'support',\n 'supremacy',\n 'supreme',\n 'surcharge',\n 'surely',\n 'sureness',\n 'surface',\n 'surfacing',\n 'surfboard',\n 'surfer',\n 'surgery',\n 'surgical',\n 'surging',\n 'surname',\n 'surpass',\n 'surplus',\n 'surprise',\n 'surreal',\n 'surrender',\n 'surrogate',\n 'surround',\n 'survey',\n 'survival',\n 'survive',\n 'surviving',\n 'survivor',\n 'sushi',\n 'suspect',\n 'suspend',\n 'suspense',\n 'sustained',\n 'sustainer',\n 'swab',\n 'swaddling',\n 'swagger',\n 'swampland',\n 'swan',\n 'swapping',\n 'swarm',\n 'sway',\n 'swear',\n 'sweat',\n 'sweep',\n 'swell',\n 'swept',\n 'swerve',\n 'swifter',\n 'swiftly',\n 'swiftness',\n 'swimmable',\n 'swimmer',\n 'swimming',\n 'swimsuit',\n 'swimwear',\n 'swinger',\n 'swinging',\n 'swipe',\n 'swirl',\n 'switch',\n 'swivel',\n 'swizzle',\n 'swooned',\n 'swoop',\n 'swoosh',\n 'swore',\n 'sworn',\n 'swung',\n 'sycamore',\n 'sympathy',\n 'symphonic',\n 'symphony',\n 'symptom',\n 'synapse',\n 'syndrome',\n 'synergy',\n 'synopses',\n 'synopsis',\n 'synthesis',\n 'synthetic',\n 'syrup',\n 'system',\n 't-shirt',\n 'tabasco',\n 'tabby',\n 'tableful',\n 'tables',\n 'tablet',\n 'tableware',\n 'tabloid',\n 'tackiness',\n 'tacking',\n 'tackle',\n 'tackling',\n 'tacky',\n 'taco',\n 'tactful',\n 'tactical',\n 'tactics',\n 'tactile',\n 'tactless',\n 'tadpole',\n 'taekwondo',\n 'tag',\n 'tainted',\n 'take',\n 'taking',\n 'talcum',\n 'talisman',\n 'tall',\n 'talon',\n 'tamale',\n 'tameness',\n 'tamer',\n 'tamper',\n 'tank',\n 'tanned',\n 'tannery',\n 'tanning',\n 'tantrum',\n 'tapeless',\n 'tapered',\n 'tapering',\n 'tapestry',\n 'tapioca',\n 'tapping',\n 'taps',\n 'tarantula',\n 'target',\n 'tarmac',\n 'tarnish',\n 'tarot',\n 'tartar',\n 'tartly',\n 'tartness',\n 'task',\n 'tassel',\n 'taste',\n 'tastiness',\n 'tasting',\n 'tasty',\n 'tattered',\n 'tattle',\n 'tattling',\n 'tattoo',\n 'taunt',\n 'tavern',\n 'thank',\n 'that',\n 'thaw',\n 'theater',\n 'theatrics',\n 'thee',\n 'theft',\n 'theme',\n 'theology',\n 'theorize',\n 'thermal',\n 'thermos',\n 'thesaurus',\n 'these',\n 'thesis',\n 'thespian',\n 'thicken',\n 'thicket',\n 'thickness',\n 'thieving',\n 'thievish',\n 'thigh',\n 'thimble',\n 'thing',\n 'think',\n 'thinly',\n 'thinner',\n 'thinness',\n 'thinning',\n 'thirstily',\n 'thirsting',\n 'thirsty',\n 'thirteen',\n 'thirty',\n 'thong',\n 'thorn',\n 'those',\n 'thousand',\n 'thrash',\n 'thread',\n 'threaten',\n 'threefold',\n 'thrift',\n 'thrill',\n 'thrive',\n 'thriving',\n 'throat',\n 'throbbing',\n 'throng',\n 'throttle',\n 'throwaway',\n 'throwback',\n 'thrower',\n 'throwing',\n 'thud',\n 'thumb',\n 'thumping',\n 'thursday',\n 'thus',\n 'thwarting',\n 'thyself',\n 'tiara',\n 'tibia',\n 'tidal',\n 'tidbit',\n 'tidiness',\n 'tidings',\n 'tidy',\n 'tiger',\n 'tighten',\n 'tightly',\n 'tightness',\n 'tightrope',\n 'tightwad',\n 'tigress',\n 'tile',\n 'tiling',\n 'till',\n 'tilt',\n 'timid',\n 'timing',\n 'timothy',\n 'tinderbox',\n 'tinfoil',\n 'tingle',\n 'tingling',\n 'tingly',\n 'tinker',\n 'tinkling',\n 'tinsel',\n 'tinsmith',\n 'tint',\n 'tinwork',\n 'tiny',\n 'tipoff',\n 'tipped',\n 'tipper',\n 'tipping',\n 'tiptoeing',\n 'tiptop',\n 'tiring',\n 'tissue',\n 'trace',\n 'tracing',\n 'track',\n 'traction',\n 'tractor',\n 'trade',\n 'trading',\n 'tradition',\n 'traffic',\n 'tragedy',\n 'trailing',\n 'trailside',\n 'train',\n 'traitor',\n 'trance',\n 'tranquil',\n 'transfer',\n 'transform',\n 'translate',\n 'transpire',\n 'transport',\n 'transpose',\n 'trapdoor',\n 'trapeze',\n 'trapezoid',\n 'trapped',\n 'trapper',\n 'trapping',\n 'traps',\n 'trash',\n 'travel',\n 'traverse',\n 'travesty',\n 'tray',\n 'treachery',\n 'treading',\n 'treadmill',\n 'treason',\n 'treat',\n 'treble',\n 'tree',\n 'trekker',\n 'tremble',\n 'trembling',\n 'tremor',\n 'trench',\n 'trend',\n 'trespass',\n 'triage',\n 'trial',\n 'triangle',\n 'tribesman',\n 'tribunal',\n 'tribune',\n 'tributary',\n 'tribute',\n 'triceps',\n 'trickery',\n 'trickily',\n 'tricking',\n 'trickle',\n 'trickster',\n 'tricky',\n 'tricolor',\n 'tricycle',\n 'trident',\n 'tried',\n 'trifle',\n 'trifocals',\n 'trillion',\n 'trilogy',\n 'trimester',\n 'trimmer',\n 'trimming',\n 'trimness',\n 'trinity',\n 'trio',\n 'tripod',\n 'tripping',\n 'triumph',\n 'trivial',\n 'trodden',\n 'trolling',\n 'trombone',\n 'trophy',\n 'tropical',\n 'tropics',\n 'trouble',\n 'troubling',\n 'trough',\n 'trousers',\n 'trout',\n 'trowel',\n 'truce',\n 'truck',\n 'truffle',\n 'trump',\n 'trunks',\n 'trustable',\n 'trustee',\n 'trustful',\n 'trusting',\n 'trustless',\n 'truth',\n 'try',\n 'tubby',\n 'tubeless',\n 'tubular',\n 'tucking',\n 'tuesday',\n 'tug',\n 'tuition',\n 'tulip',\n 'tumble',\n 'tumbling',\n 'tummy',\n 'turban',\n 'turbine',\n 'turbofan',\n 'turbojet',\n 'turbulent',\n 'turf',\n 'turkey',\n 'turmoil',\n 'turret',\n 'turtle',\n 'tusk',\n 'tutor',\n 'tutu',\n 'tux',\n 'tweak',\n 'tweed',\n 'tweet',\n 'tweezers',\n 'twelve',\n 'twentieth',\n 'twenty',\n 'twerp',\n 'twice',\n 'twiddle',\n 'twiddling',\n 'twig',\n 'twilight',\n 'twine',\n 'twins',\n 'twirl',\n 'twistable',\n 'twisted',\n 'twister',\n 'twisting',\n 'twisty',\n 'twitch',\n 'twitter',\n 'tycoon',\n 'tying',\n 'tyke',\n 'udder',\n 'ultimate',\n 'ultimatum',\n 'ultra',\n 'umbilical',\n 'umbrella',\n 'umpire',\n 'unabashed',\n 'unable',\n 'unadorned',\n 'unadvised',\n 'unafraid',\n 'unaired',\n 'unaligned',\n 'unaltered',\n 'unarmored',\n 'unashamed',\n 'unaudited',\n 'unawake',\n 'unaware',\n 'unbaked',\n 'unbalance',\n 'unbeaten',\n 'unbend',\n 'unbent',\n 'unbiased',\n 'unbitten',\n 'unblended',\n 'unblessed',\n 'unblock',\n 'unbolted',\n 'unbounded',\n 'unboxed',\n 'unbraided',\n 'unbridle',\n 'unbroken',\n 'unbuckled',\n 'unbundle',\n 'unburned',\n 'unbutton',\n 'uncanny',\n 'uncapped',\n 'uncaring',\n 'uncertain',\n 'unchain',\n 'unchanged',\n 'uncharted',\n 'uncheck',\n 'uncivil',\n 'unclad',\n 'unclaimed',\n 'unclamped',\n 'unclasp',\n 'uncle',\n 'unclip',\n 'uncloak',\n 'unclog',\n 'unclothed',\n 'uncoated',\n 'uncoiled',\n 'uncolored',\n 'uncombed',\n 'uncommon',\n 'uncooked',\n 'uncork',\n 'uncorrupt',\n 'uncounted',\n 'uncouple',\n 'uncouth',\n 'uncover',\n 'uncross',\n 'uncrown',\n 'uncrushed',\n 'uncured',\n 'uncurious',\n 'uncurled',\n 'uncut',\n 'undamaged',\n 'undated',\n 'undaunted',\n 'undead',\n 'undecided',\n 'undefined',\n 'underage',\n 'underarm',\n 'undercoat',\n 'undercook',\n 'undercut',\n 'underdog',\n 'underdone',\n 'underfed',\n 'underfeed',\n 'underfoot',\n 'undergo',\n 'undergrad',\n 'underhand',\n 'underline',\n 'underling',\n 'undermine',\n 'undermost',\n 'underpaid',\n 'underpass',\n 'underpay',\n 'underrate',\n 'undertake',\n 'undertone',\n 'undertook',\n 'undertow',\n 'underuse',\n 'underwear',\n 'underwent',\n 'underwire',\n 'undesired',\n 'undiluted',\n 'undivided',\n 'undocked',\n 'undoing',\n 'undone',\n 'undrafted',\n 'undress',\n 'undrilled',\n 'undusted',\n 'undying',\n 'unearned',\n 'unearth',\n 'unease',\n 'uneasily',\n 'uneasy',\n 'uneatable',\n 'uneaten',\n 'unedited',\n 'unelected',\n 'unending',\n 'unengaged',\n 'unenvied',\n 'unequal',\n 'unethical',\n 'uneven',\n 'unexpired',\n 'unexposed',\n 'unfailing',\n 'unfair',\n 'unfasten',\n 'unfazed',\n 'unfeeling',\n 'unfiled',\n 'unfilled',\n 'unfitted',\n 'unfitting',\n 'unfixable',\n 'unfixed',\n 'unflawed',\n 'unfocused',\n 'unfold',\n 'unfounded',\n 'unframed',\n 'unfreeze',\n 'unfrosted',\n 'unfrozen',\n 'unfunded',\n 'unglazed',\n 'ungloved',\n 'unglue',\n 'ungodly',\n 'ungraded',\n 'ungreased',\n 'unguarded',\n 'unguided',\n 'unhappily',\n 'unhappy',\n 'unharmed',\n 'unhealthy',\n 'unheard',\n 'unhearing',\n 'unheated',\n 'unhelpful',\n 'unhidden',\n 'unhinge',\n 'unhitched',\n 'unholy',\n 'unhook',\n 'unicorn',\n 'unicycle',\n 'unified',\n 'unifier',\n 'uniformed',\n 'uniformly',\n 'unify',\n 'unimpeded',\n 'uninjured',\n 'uninstall',\n 'uninsured',\n 'uninvited',\n 'union',\n 'uniquely',\n 'unisexual',\n 'unison',\n 'unissued',\n 'unit',\n 'universal',\n 'universe',\n 'unjustly',\n 'unkempt',\n 'unkind',\n 'unknotted',\n 'unknowing',\n 'unknown',\n 'unlaced',\n 'unlatch',\n 'unlawful',\n 'unleaded',\n 'unlearned',\n 'unleash',\n 'unless',\n 'unleveled',\n 'unlighted',\n 'unlikable',\n 'unlimited',\n 'unlined',\n 'unlinked',\n 'unlisted',\n 'unlit',\n 'unlivable',\n 'unloaded',\n 'unloader',\n 'unlocked',\n 'unlocking',\n 'unlovable',\n 'unloved',\n 'unlovely',\n 'unloving',\n 'unluckily',\n 'unlucky',\n 'unmade',\n 'unmanaged',\n 'unmanned',\n 'unmapped',\n 'unmarked',\n 'unmasked',\n 'unmasking',\n 'unmatched',\n 'unmindful',\n 'unmixable',\n 'unmixed',\n 'unmolded',\n 'unmoral',\n 'unmovable',\n 'unmoved',\n 'unmoving',\n 'unnamable',\n 'unnamed',\n 'unnatural',\n 'unneeded',\n 'unnerve',\n 'unnerving',\n 'unnoticed',\n 'unopened',\n 'unopposed',\n 'unpack',\n 'unpadded',\n 'unpaid',\n 'unpainted',\n 'unpaired',\n 'unpaved',\n 'unpeeled',\n 'unpicked',\n 'unpiloted',\n 'unpinned',\n 'unplanned',\n 'unplanted',\n 'unpleased',\n 'unpledged',\n 'unplowed',\n 'unplug',\n 'unpopular',\n 'unproven',\n 'unquote',\n 'unranked',\n 'unrated',\n 'unraveled',\n 'unreached',\n 'unread',\n 'unreal',\n 'unreeling',\n 'unrefined',\n 'unrelated',\n 'unrented',\n 'unrest',\n 'unretired',\n 'unrevised',\n 'unrigged',\n 'unripe',\n 'unrivaled',\n 'unroasted',\n 'unrobed',\n 'unroll',\n 'unruffled',\n 'unruly',\n 'unrushed',\n 'unsaddle',\n 'unsafe',\n 'unsaid',\n 'unsalted',\n 'unsaved',\n 'unsavory',\n 'unscathed',\n 'unscented',\n 'unscrew',\n 'unsealed',\n 'unseated',\n 'unsecured',\n 'unseeing',\n 'unseemly',\n 'unseen',\n 'unselect',\n 'unselfish',\n 'unsent',\n 'unsettled',\n 'unshackle',\n 'unshaken',\n 'unshaved',\n 'unshaven',\n 'unsheathe',\n 'unshipped',\n 'unsightly',\n 'unsigned',\n 'unskilled',\n 'unsliced',\n 'unsmooth',\n 'unsnap',\n 'unsocial',\n 'unsoiled',\n 'unsold',\n 'unsolved',\n 'unsorted',\n 'unspoiled',\n 'unspoken',\n 'unstable',\n 'unstaffed',\n 'unstamped',\n 'unsteady',\n 'unsterile',\n 'unstirred',\n 'unstitch',\n 'unstopped',\n 'unstuck',\n 'unstuffed',\n 'unstylish',\n 'unsubtle',\n 'unsubtly',\n 'unsuited',\n 'unsure',\n 'unsworn',\n 'untagged',\n 'untainted',\n 'untaken',\n 'untamed',\n 'untangled',\n 'untapped',\n 'untaxed',\n 'unthawed',\n 'unthread',\n 'untidy',\n 'untie',\n 'until',\n 'untimed',\n 'untimely',\n 'untitled',\n 'untoasted',\n 'untold',\n 'untouched',\n 'untracked',\n 'untrained',\n 'untreated',\n 'untried',\n 'untrimmed',\n 'untrue',\n 'untruth',\n 'unturned',\n 'untwist',\n 'untying',\n 'unusable',\n 'unused',\n 'unusual',\n 'unvalued',\n 'unvaried',\n 'unvarying',\n 'unveiled',\n 'unveiling',\n 'unvented',\n 'unviable',\n 'unvisited',\n 'unvocal',\n 'unwanted',\n 'unwarlike',\n 'unwary',\n 'unwashed',\n 'unwatched',\n 'unweave',\n 'unwed',\n 'unwelcome',\n 'unwell',\n 'unwieldy',\n 'unwilling',\n 'unwind',\n 'unwired',\n 'unwitting',\n 'unwomanly',\n 'unworldly',\n 'unworn',\n 'unworried',\n 'unworthy',\n 'unwound',\n 'unwoven',\n 'unwrapped',\n 'unwritten',\n 'unzip',\n 'upbeat',\n 'upchuck',\n 'upcoming',\n 'upcountry',\n 'update',\n 'upfront',\n 'upgrade',\n 'upheaval',\n 'upheld',\n 'uphill',\n 'uphold',\n 'uplifted',\n 'uplifting',\n 'upload',\n 'upon',\n 'upper',\n 'upright',\n 'uprising',\n 'upriver',\n 'uproar',\n 'uproot',\n 'upscale',\n 'upside',\n 'upstage',\n 'upstairs',\n 'upstart',\n 'upstate',\n 'upstream',\n 'upstroke',\n 'upswing',\n 'uptake',\n 'uptight',\n 'uptown',\n 'upturned',\n 'upward',\n 'upwind',\n 'uranium',\n 'urban',\n 'urchin',\n 'urethane',\n 'urgency',\n 'urgent',\n 'urging',\n 'urologist',\n 'urology',\n 'usable',\n 'usage',\n 'useable',\n 'used',\n 'uselessly',\n 'user',\n 'usher',\n 'usual',\n 'utensil',\n 'utility',\n 'utilize',\n 'utmost',\n 'utopia',\n 'utter',\n 'vacancy',\n 'vacant',\n 'vacate',\n 'vacation',\n 'vagabond',\n 'vagrancy',\n 'vagrantly',\n 'vaguely',\n 'vagueness',\n 'valiant',\n 'valid',\n 'valium',\n 'valley',\n 'valuables',\n 'value',\n 'vanilla',\n 'vanish',\n 'vanity',\n 'vanquish',\n 'vantage',\n 'vaporizer',\n 'variable',\n 'variably',\n 'varied',\n 'variety',\n 'various',\n 'varmint',\n 'varnish',\n 'varsity',\n 'varying',\n 'vascular',\n 'vaseline',\n 'vastly',\n 'vastness',\n 'veal',\n 'vegan',\n 'veggie',\n 'vehicular',\n 'velcro',\n 'velocity',\n 'velvet',\n 'vendetta',\n 'vending',\n 'vendor',\n 'veneering',\n 'vengeful',\n 'venomous',\n 'ventricle',\n 'venture',\n 'venue',\n 'venus',\n 'verbalize',\n 'verbally',\n 'verbose',\n 'verdict',\n 'verify',\n 'verse',\n 'version',\n 'versus',\n 'vertebrae',\n 'vertical',\n 'vertigo',\n 'very',\n 'vessel',\n 'vest',\n 'veteran',\n 'veto',\n 'vexingly',\n 'viability',\n 'viable',\n 'vibes',\n 'vice',\n 'vicinity',\n 'victory',\n 'video',\n 'viewable',\n 'viewer',\n 'viewing',\n 'viewless',\n 'viewpoint',\n 'vigorous',\n 'village',\n 'villain',\n 'vindicate',\n 'vineyard',\n 'vintage',\n 'violate',\n 'violation',\n 'violator',\n 'violet',\n 'violin',\n 'viper',\n 'viral',\n 'virtual',\n 'virtuous',\n 'virus',\n 'visa',\n 'viscosity',\n 'viscous',\n 'viselike',\n 'visible',\n 'visibly',\n 'vision',\n 'visiting',\n 'visitor',\n 'visor',\n 'vista',\n 'vitality',\n 'vitalize',\n 'vitally',\n 'vitamins',\n 'vivacious',\n 'vividly',\n 'vividness',\n 'vixen',\n 'vocalist',\n 'vocalize',\n 'vocally',\n 'vocation',\n 'voice',\n 'voicing',\n 'void',\n 'volatile',\n 'volley',\n 'voltage',\n 'volumes',\n 'voter',\n 'voting',\n 'voucher',\n 'vowed',\n 'vowel',\n 'voyage',\n 'wackiness',\n 'wad',\n 'wafer',\n 'waffle',\n 'waged',\n 'wager',\n 'wages',\n 'waggle',\n 'wagon',\n 'wake',\n 'waking',\n 'walk',\n 'walmart',\n 'walnut',\n 'walrus',\n 'waltz',\n 'wand',\n 'wannabe',\n 'wanted',\n 'wanting',\n 'wasabi',\n 'washable',\n 'washbasin',\n 'washboard',\n 'washbowl',\n 'washcloth',\n 'washday',\n 'washed',\n 'washer',\n 'washhouse',\n 'washing',\n 'washout',\n 'washroom',\n 'washstand',\n 'washtub',\n 'wasp',\n 'wasting',\n 'watch',\n 'water',\n 'waviness',\n 'waving',\n 'wavy',\n 'whacking',\n 'whacky',\n 'wham',\n 'wharf',\n 'wheat',\n 'whenever',\n 'whiff',\n 'whimsical',\n 'whinny',\n 'whiny',\n 'whisking',\n 'whoever',\n 'whole',\n 'whomever',\n 'whoopee',\n 'whooping',\n 'whoops',\n 'why',\n 'wick',\n 'widely',\n 'widen',\n 'widget',\n 'widow',\n 'width',\n 'wieldable',\n 'wielder',\n 'wife',\n 'wifi',\n 'wikipedia',\n 'wildcard',\n 'wildcat',\n 'wilder',\n 'wildfire',\n 'wildfowl',\n 'wildland',\n 'wildlife',\n 'wildly',\n 'wildness',\n 'willed',\n 'willfully',\n 'willing',\n 'willow',\n 'willpower',\n 'wilt',\n 'wimp',\n 'wince',\n 'wincing',\n 'wind',\n 'wing',\n 'winking',\n 'winner',\n 'winnings',\n 'winter',\n 'wipe',\n 'wired',\n 'wireless',\n 'wiring',\n 'wiry',\n 'wisdom',\n 'wise',\n 'wish',\n 'wisplike',\n 'wispy',\n 'wistful',\n 'wizard',\n 'wobble',\n 'wobbling',\n 'wobbly',\n 'wok',\n 'wolf',\n 'wolverine',\n 'womanhood',\n 'womankind',\n 'womanless',\n 'womanlike',\n 'womanly',\n 'womb',\n 'woof',\n 'wooing',\n 'wool',\n 'woozy',\n 'word',\n 'work',\n 'worried',\n 'worrier',\n 'worrisome',\n 'worry',\n 'worsening',\n 'worshiper',\n 'worst',\n 'wound',\n 'woven',\n 'wow',\n 'wrangle',\n 'wrath',\n 'wreath',\n 'wreckage',\n 'wrecker',\n 'wrecking',\n 'wrench',\n 'wriggle',\n 'wriggly',\n 'wrinkle',\n 'wrinkly',\n 'wrist',\n 'writing',\n 'written',\n 'wrongdoer',\n 'wronged',\n 'wrongful',\n 'wrongly',\n 'wrongness',\n 'wrought',\n 'xbox',\n 'xerox',\n 'yahoo',\n 'yam',\n 'yanking',\n 'yapping',\n 'yard',\n 'yarn',\n 'yeah',\n 'yearbook',\n 'yearling',\n 'yearly',\n 'yearning',\n 'yeast',\n 'yelling',\n 'yelp',\n 'yen',\n 'yesterday',\n 'yiddish',\n 'yield',\n 'yin',\n 'yippee',\n 'yo-yo',\n 'yodel',\n 'yoga',\n 'yogurt',\n 'yonder',\n 'yoyo',\n 'yummy',\n 'zap',\n 'zealous',\n 'zebra',\n 'zen',\n 'zeppelin',\n 'zero',\n 'zestfully',\n 'zesty',\n 'zigzagged',\n 'zipfile',\n 'zipping',\n 'zippy',\n 'zips',\n 'zit',\n 'zodiac',\n 'zombie',\n 'zone',\n 'zoning',\n 'zookeeper',\n 'zoologist',\n 'zoology',\n 'zoom',\n];\n","import { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { ConstantsService } from './constants.service';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { EnvironmentService as EnvironmentServiceAbstraction } from '../abstractions/environment.service';\nimport { NotificationsService } from '../abstractions/notifications.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nexport class EnvironmentService implements EnvironmentServiceAbstraction {\n baseUrl: string;\n webVaultUrl: string;\n apiUrl: string;\n identityUrl: string;\n iconsUrl: string;\n notificationsUrl: string;\n eventsUrl: string;\n enterpriseUrl: string;\n\n constructor(private apiService: ApiService, private storageService: StorageService,\n private notificationsService: NotificationsService) { }\n\n getWebVaultUrl(): string {\n if (this.webVaultUrl != null) {\n return this.webVaultUrl;\n } else if (this.baseUrl) {\n return this.baseUrl;\n }\n return null;\n }\n\n async setUrlsFromStorage(): Promise {\n const urlsObj: any = await this.storageService.get(ConstantsService.environmentUrlsKey);\n const urls = urlsObj || {\n base: null,\n api: null,\n identity: null,\n icons: null,\n notifications: null,\n events: null,\n webVault: null,\n enterprise: null,\n };\n\n const envUrls = new EnvironmentUrls();\n\n if (urls.base) {\n this.baseUrl = envUrls.base = urls.base;\n this.apiService.setUrls(envUrls);\n return;\n }\n\n this.webVaultUrl = urls.webVault;\n this.apiUrl = envUrls.api = urls.api;\n this.identityUrl = envUrls.identity = urls.identity;\n this.iconsUrl = urls.icons;\n this.notificationsUrl = urls.notifications;\n this.eventsUrl = envUrls.events = urls.events;\n this.enterpriseUrl = urls.enterprise;\n this.apiService.setUrls(envUrls);\n }\n\n async setUrls(urls: any): Promise {\n urls.base = this.formatUrl(urls.base);\n urls.webVault = this.formatUrl(urls.webVault);\n urls.api = this.formatUrl(urls.api);\n urls.identity = this.formatUrl(urls.identity);\n urls.icons = this.formatUrl(urls.icons);\n urls.notifications = this.formatUrl(urls.notifications);\n urls.events = this.formatUrl(urls.events);\n urls.enterprise = this.formatUrl(urls.enterprise);\n\n await this.storageService.save(ConstantsService.environmentUrlsKey, {\n base: urls.base,\n api: urls.api,\n identity: urls.identity,\n webVault: urls.webVault,\n icons: urls.icons,\n notifications: urls.notifications,\n events: urls.events,\n enterprise: urls.enterprise,\n });\n\n this.baseUrl = urls.base;\n this.webVaultUrl = urls.webVault;\n this.apiUrl = urls.api;\n this.identityUrl = urls.identity;\n this.iconsUrl = urls.icons;\n this.notificationsUrl = urls.notifications;\n this.eventsUrl = urls.events;\n this.enterpriseUrl = urls.enterprise;\n\n const envUrls = new EnvironmentUrls();\n if (this.baseUrl) {\n envUrls.base = this.baseUrl;\n } else {\n envUrls.api = this.apiUrl;\n envUrls.identity = this.identityUrl;\n envUrls.events = this.eventsUrl;\n }\n\n this.apiService.setUrls(envUrls);\n if (this.notificationsService != null) {\n this.notificationsService.init(this);\n }\n return urls;\n }\n\n private formatUrl(url: string): string {\n if (url == null || url === '') {\n return null;\n }\n\n url = url.replace(/\\/+$/g, '');\n if (!url.startsWith('http://') && !url.startsWith('https://')) {\n url = 'https://' + url;\n }\n\n return url.trim();\n }\n}\n","import { FolderData } from '../models/data/folderData';\n\nimport { Folder } from '../models/domain/folder';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { FolderRequest } from '../models/request/folderRequest';\n\nimport { FolderResponse } from '../models/response/folderResponse';\n\nimport { FolderView } from '../models/view/folderView';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService as FolderServiceAbstraction } from '../abstractions/folder.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\nimport { CipherData } from '../models/data/cipherData';\n\nimport { ServiceUtils } from '../misc/serviceUtils';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n foldersPrefix: 'folders_',\n ciphersPrefix: 'ciphers_',\n};\nconst NestingDelimiter = '/';\n\nexport class FolderService implements FolderServiceAbstraction {\n decryptedFolderCache: FolderView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private apiService: ApiService, private storageService: StorageService,\n private i18nService: I18nService, private cipherService: CipherService) { }\n\n clearCache(): void {\n this.decryptedFolderCache = null;\n }\n\n async encrypt(model: FolderView, key?: SymmetricCryptoKey): Promise {\n const folder = new Folder();\n folder.id = model.id;\n folder.name = await this.cryptoService.encrypt(model.name, key);\n return folder;\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null || !folders.hasOwnProperty(id)) {\n return null;\n }\n\n return new Folder(folders[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n const response: Folder[] = [];\n for (const id in folders) {\n if (folders.hasOwnProperty(id)) {\n response.push(new Folder(folders[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedFolderCache != null) {\n return this.decryptedFolderCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const decFolders: FolderView[] = [];\n const promises: Promise[] = [];\n const folders = await this.getAll();\n folders.forEach(folder => {\n promises.push(folder.decrypt().then(f => decFolders.push(f)));\n });\n\n await Promise.all(promises);\n decFolders.sort(Utils.getSortFunction(this.i18nService, 'name'));\n\n const noneFolder = new FolderView();\n noneFolder.name = this.i18nService.t('noneFolder');\n decFolders.push(noneFolder);\n\n this.decryptedFolderCache = decFolders;\n return this.decryptedFolderCache;\n }\n\n async getAllNested(): Promise[]> {\n const folders = await this.getAllDecrypted();\n const nodes: TreeNode[] = [];\n folders.forEach(f => {\n const folderCopy = new FolderView();\n folderCopy.id = f.id;\n folderCopy.revisionDate = f.revisionDate;\n const parts = f.name != null ? f.name.replace(/^\\/+|\\/+$/g, '').split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, folderCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n async getNested(id: string): Promise> {\n const folders = await this.getAllNested();\n return ServiceUtils.getTreeNodeObject(folders, id) as TreeNode;\n }\n\n async saveWithServer(folder: Folder): Promise {\n const request = new FolderRequest(folder);\n\n let response: FolderResponse;\n if (folder.id == null) {\n response = await this.apiService.postFolder(request);\n folder.id = response.id;\n } else {\n response = await this.apiService.putFolder(folder.id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new FolderData(response, userId);\n await this.upsert(data);\n }\n\n async upsert(folder: FolderData | FolderData[]): Promise {\n const userId = await this.userService.getUserId();\n let folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null) {\n folders = {};\n }\n\n if (folder instanceof FolderData) {\n const f = folder as FolderData;\n folders[f.id] = f;\n } else {\n (folder as FolderData[]).forEach(f => {\n folders[f.id] = f;\n });\n }\n\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n }\n\n async replace(folders: { [id: string]: FolderData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.foldersPrefix + userId);\n this.decryptedFolderCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (folders[id] == null) {\n return;\n }\n delete folders[id];\n } else {\n (id as string[]).forEach(i => {\n delete folders[i];\n });\n }\n\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n\n // Items in a deleted folder are re-assigned to \"No Folder\"\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(Keys.ciphersPrefix + userId);\n if (ciphers != null) {\n const updates: CipherData[] = [];\n for (const cId in ciphers) {\n if (ciphers[cId].folderId === id) {\n ciphers[cId].folderId = null;\n updates.push(ciphers[cId]);\n }\n }\n if (updates.length > 0) {\n this.cipherService.upsert(updates);\n }\n }\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteFolder(id);\n await this.delete(id);\n }\n}\n","import { I18nService as I18nServiceAbstraction } from '../abstractions/i18n.service';\n\nexport class I18nService implements I18nServiceAbstraction {\n locale: string;\n // First locale is the default (English)\n supportedTranslationLocales: string[] = ['en'];\n translationLocale: string;\n collator: Intl.Collator;\n localeNames = new Map([\n ['af', 'Afrikaans'],\n ['be', 'Беларуская'],\n ['bg', 'български'],\n ['ca', 'català'],\n ['cs', 'čeština'],\n ['da', 'dansk'],\n ['de', 'Deutsch'],\n ['el', 'Ελληνικά'],\n ['en', 'English'],\n ['en-GB', 'English (British)'],\n ['eo', 'Esperanto'],\n ['es', 'español'],\n ['et', 'eesti'],\n ['fa', 'فارسی'],\n ['fi', 'suomi'],\n ['fr', 'français'],\n ['he', 'עברית'],\n ['hi', 'हिन्दी'],\n ['hr', 'hrvatski'],\n ['hu', 'magyar'],\n ['id', 'Bahasa Indonesia'],\n ['it', 'italiano'],\n ['ja', '日本語'],\n ['ko', '한국어'],\n ['lv', 'Latvietis'],\n ['ml', 'മലയാളം'],\n ['nb', 'norsk (bokmål)'],\n ['nl', 'Nederlands'],\n ['pl', 'polski'],\n ['pt-BR', 'português do Brasil'],\n ['pt-PT', 'português'],\n ['ro', 'română'],\n ['ru', 'русский'],\n ['sk', 'slovenčina'],\n ['sr', 'Српски'],\n ['sv', 'svenska'],\n ['th', 'ไทย'],\n ['tr', 'Türkçe'],\n ['uk', 'українська'],\n ['vi', 'Tiếng Việt'],\n ['zh-CN', '中文(中国大陆)'],\n ['zh-TW', '中文(台灣)'],\n ]);\n\n protected inited: boolean;\n protected defaultMessages: any = {};\n protected localeMessages: any = {};\n\n constructor(protected systemLanguage: string, protected localesDirectory: string,\n protected getLocalesJson: (formattedLocale: string) => Promise) {\n this.systemLanguage = systemLanguage.replace('_', '-');\n }\n\n async init(locale?: string) {\n if (this.inited) {\n throw new Error('i18n already initialized.');\n }\n if (this.supportedTranslationLocales == null || this.supportedTranslationLocales.length === 0) {\n throw new Error('supportedTranslationLocales not set.');\n }\n\n this.inited = true;\n this.locale = this.translationLocale = locale != null ? locale : this.systemLanguage;\n\n try {\n this.collator = new Intl.Collator(this.locale, { numeric: true, sensitivity: 'base' });\n } catch {\n this.collator = null;\n }\n\n if (this.supportedTranslationLocales.indexOf(this.translationLocale) === -1) {\n this.translationLocale = this.translationLocale.slice(0, 2);\n\n if (this.supportedTranslationLocales.indexOf(this.translationLocale) === -1) {\n this.translationLocale = this.supportedTranslationLocales[0];\n }\n }\n\n if (this.localesDirectory != null) {\n await this.loadMessages(this.translationLocale, this.localeMessages);\n if (this.translationLocale !== this.supportedTranslationLocales[0]) {\n await this.loadMessages(this.supportedTranslationLocales[0], this.defaultMessages);\n }\n }\n }\n\n t(id: string, p1?: string, p2?: string, p3?: string): string {\n return this.translate(id, p1, p2, p3);\n }\n\n translate(id: string, p1?: string, p2?: string, p3?: string): string {\n let result: string;\n if (this.localeMessages.hasOwnProperty(id) && this.localeMessages[id]) {\n result = this.localeMessages[id];\n } else if (this.defaultMessages.hasOwnProperty(id) && this.defaultMessages[id]) {\n result = this.defaultMessages[id];\n } else {\n result = '';\n }\n\n if (result !== '') {\n if (p1 != null) {\n result = result.split('__$1__').join(p1);\n }\n if (p2 != null) {\n result = result.split('__$2__').join(p2);\n }\n if (p3 != null) {\n result = result.split('__$3__').join(p3);\n }\n }\n\n return result;\n }\n\n private async loadMessages(locale: string, messagesObj: any): Promise {\n const formattedLocale = locale.replace('-', '_');\n const locales = await this.getLocalesJson(formattedLocale);\n for (const prop in locales) {\n if (!locales.hasOwnProperty(prop)) {\n continue;\n }\n messagesObj[prop] = locales[prop].message;\n\n if (locales[prop].placeholders) {\n for (const placeProp in locales[prop].placeholders) {\n if (!locales[prop].placeholders.hasOwnProperty(placeProp) ||\n !locales[prop].placeholders[placeProp].content) {\n continue;\n }\n\n const replaceToken = '\\\\$' + placeProp.toUpperCase() + '\\\\$';\n let replaceContent = locales[prop].placeholders[placeProp].content;\n if (replaceContent === '$1' || replaceContent === '$2' || replaceContent === '$3') {\n replaceContent = '__$' + replaceContent + '__';\n }\n messagesObj[prop] = messagesObj[prop].replace(new RegExp(replaceToken, 'g'), replaceContent);\n }\n }\n }\n }\n\n}\n","import * as zxcvbn from 'zxcvbn';\n\nimport { EncString } from '../models/domain/encString';\nimport { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory';\nimport { PasswordGeneratorPolicyOptions } from '../models/domain/passwordGeneratorPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { CryptoService } from '../abstractions/crypto.service';\nimport {\n PasswordGenerationService as PasswordGenerationServiceAbstraction,\n} from '../abstractions/passwordGeneration.service';\nimport { PolicyService } from '../abstractions/policy.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { EEFLongWordList } from '../misc/wordlist';\n\nimport { PolicyType } from '../enums/policyType';\n\nconst DefaultOptions = {\n length: 14,\n ambiguous: false,\n number: true,\n minNumber: 1,\n uppercase: true,\n minUppercase: 0,\n lowercase: true,\n minLowercase: 0,\n special: false,\n minSpecial: 1,\n type: 'password',\n numWords: 3,\n wordSeparator: '-',\n capitalize: false,\n includeNumber: false,\n};\n\nconst Keys = {\n options: 'passwordGenerationOptions',\n history: 'generatedPasswordHistory',\n};\n\nconst MaxPasswordsInHistory = 100;\n\nexport class PasswordGenerationService implements PasswordGenerationServiceAbstraction {\n private optionsCache: any;\n private history: GeneratedPasswordHistory[];\n\n constructor(private cryptoService: CryptoService, private storageService: StorageService,\n private policyService: PolicyService) { }\n\n async generatePassword(options: any): Promise {\n // overload defaults with given options\n const o = Object.assign({}, DefaultOptions, options);\n\n if (o.type === 'passphrase') {\n return this.generatePassphrase(options);\n }\n\n // sanitize\n this.sanitizePasswordLength(o, true);\n\n const minLength: number = o.minUppercase + o.minLowercase + o.minNumber + o.minSpecial;\n if (o.length < minLength) {\n o.length = minLength;\n }\n\n const positions: string[] = [];\n if (o.lowercase && o.minLowercase > 0) {\n for (let i = 0; i < o.minLowercase; i++) {\n positions.push('l');\n }\n }\n if (o.uppercase && o.minUppercase > 0) {\n for (let i = 0; i < o.minUppercase; i++) {\n positions.push('u');\n }\n }\n if (o.number && o.minNumber > 0) {\n for (let i = 0; i < o.minNumber; i++) {\n positions.push('n');\n }\n }\n if (o.special && o.minSpecial > 0) {\n for (let i = 0; i < o.minSpecial; i++) {\n positions.push('s');\n }\n }\n while (positions.length < o.length) {\n positions.push('a');\n }\n\n // shuffle\n await this.shuffleArray(positions);\n\n // build out the char sets\n let allCharSet = '';\n\n let lowercaseCharSet = 'abcdefghijkmnopqrstuvwxyz';\n if (o.ambiguous) {\n lowercaseCharSet += 'l';\n }\n if (o.lowercase) {\n allCharSet += lowercaseCharSet;\n }\n\n let uppercaseCharSet = 'ABCDEFGHJKLMNPQRSTUVWXYZ';\n if (o.ambiguous) {\n uppercaseCharSet += 'IO';\n }\n if (o.uppercase) {\n allCharSet += uppercaseCharSet;\n }\n\n let numberCharSet = '23456789';\n if (o.ambiguous) {\n numberCharSet += '01';\n }\n if (o.number) {\n allCharSet += numberCharSet;\n }\n\n const specialCharSet = '!@#$%^&*';\n if (o.special) {\n allCharSet += specialCharSet;\n }\n\n let password = '';\n for (let i = 0; i < o.length; i++) {\n let positionChars: string;\n switch (positions[i]) {\n case 'l':\n positionChars = lowercaseCharSet;\n break;\n case 'u':\n positionChars = uppercaseCharSet;\n break;\n case 'n':\n positionChars = numberCharSet;\n break;\n case 's':\n positionChars = specialCharSet;\n break;\n case 'a':\n positionChars = allCharSet;\n break;\n default:\n break;\n }\n\n const randomCharIndex = await this.cryptoService.randomNumber(0, positionChars.length - 1);\n password += positionChars.charAt(randomCharIndex);\n }\n\n return password;\n }\n\n async generatePassphrase(options: any): Promise {\n const o = Object.assign({}, DefaultOptions, options);\n\n if (o.numWords == null || o.numWords <= 2) {\n o.numWords = DefaultOptions.numWords;\n }\n if (o.wordSeparator == null || o.wordSeparator.length === 0 || o.wordSeparator.length > 1) {\n o.wordSeparator = ' ';\n }\n if (o.capitalize == null) {\n o.capitalize = false;\n }\n if (o.includeNumber == null) {\n o.includeNumber = false;\n }\n\n const listLength = EEFLongWordList.length - 1;\n const wordList = new Array(o.numWords);\n for (let i = 0; i < o.numWords; i++) {\n const wordIndex = await this.cryptoService.randomNumber(0, listLength);\n if (o.capitalize) {\n wordList[i] = this.capitalize(EEFLongWordList[wordIndex]);\n } else {\n wordList[i] = EEFLongWordList[wordIndex];\n }\n }\n\n if (o.includeNumber) {\n await this.appendRandomNumberToRandomWord(wordList);\n }\n return wordList.join(o.wordSeparator);\n }\n\n async getOptions(): Promise<[any, PasswordGeneratorPolicyOptions]> {\n if (this.optionsCache == null) {\n const options = await this.storageService.get(Keys.options);\n if (options == null) {\n this.optionsCache = DefaultOptions;\n } else {\n this.optionsCache = Object.assign({}, DefaultOptions, options);\n }\n }\n const enforcedOptions = await this.enforcePasswordGeneratorPoliciesOnOptions(this.optionsCache);\n this.optionsCache = enforcedOptions[0];\n return [this.optionsCache, enforcedOptions[1]];\n }\n\n async enforcePasswordGeneratorPoliciesOnOptions(options: any): Promise<[any, PasswordGeneratorPolicyOptions]> {\n let enforcedPolicyOptions = await this.getPasswordGeneratorPolicyOptions();\n if (enforcedPolicyOptions != null) {\n if (options.length < enforcedPolicyOptions.minLength) {\n options.length = enforcedPolicyOptions.minLength;\n }\n\n if (enforcedPolicyOptions.useUppercase) {\n options.uppercase = true;\n }\n\n if (enforcedPolicyOptions.useLowercase) {\n options.lowercase = true;\n }\n\n if (enforcedPolicyOptions.useNumbers) {\n options.number = true;\n }\n\n if (options.minNumber < enforcedPolicyOptions.numberCount) {\n options.minNumber = enforcedPolicyOptions.numberCount;\n }\n\n if (enforcedPolicyOptions.useSpecial) {\n options.special = true;\n }\n\n if (options.minSpecial < enforcedPolicyOptions.specialCount) {\n options.minSpecial = enforcedPolicyOptions.specialCount;\n }\n\n // Must normalize these fields because the receiving call expects all options to pass the current rules\n if (options.minSpecial + options.minNumber > options.length) {\n options.minSpecial = options.length - options.minNumber;\n }\n\n if (options.numWords < enforcedPolicyOptions.minNumberWords) {\n options.numWords = enforcedPolicyOptions.minNumberWords;\n }\n\n if (enforcedPolicyOptions.capitalize) {\n options.capitalize = true;\n }\n\n if (enforcedPolicyOptions.includeNumber) {\n options.includeNumber = true;\n }\n\n // Force default type if password/passphrase selected via policy\n if (enforcedPolicyOptions.defaultType === 'password' ||\n enforcedPolicyOptions.defaultType === 'passphrase') {\n options.type = enforcedPolicyOptions.defaultType;\n }\n } else { // UI layer expects an instantiated object to prevent more explicit null checks\n enforcedPolicyOptions = new PasswordGeneratorPolicyOptions();\n }\n return [options, enforcedPolicyOptions];\n }\n\n async getPasswordGeneratorPolicyOptions(): Promise {\n const policies: Policy[] = this.policyService == null ? null :\n await this.policyService.getAll(PolicyType.PasswordGenerator);\n let enforcedOptions: PasswordGeneratorPolicyOptions = null;\n\n if (policies == null || policies.length === 0) {\n return enforcedOptions;\n }\n\n policies.forEach(currentPolicy => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new PasswordGeneratorPolicyOptions();\n }\n\n // Password wins in multi-org collisions\n if (currentPolicy.data.defaultType != null && enforcedOptions.defaultType !== 'password') {\n enforcedOptions.defaultType = currentPolicy.data.defaultType;\n }\n\n if (currentPolicy.data.minLength != null\n && currentPolicy.data.minLength > enforcedOptions.minLength) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.useUpper) {\n enforcedOptions.useUppercase = true;\n }\n\n if (currentPolicy.data.useLower) {\n enforcedOptions.useLowercase = true;\n }\n\n if (currentPolicy.data.useNumbers) {\n enforcedOptions.useNumbers = true;\n }\n\n if (currentPolicy.data.minNumbers != null\n && currentPolicy.data.minNumbers > enforcedOptions.numberCount) {\n enforcedOptions.numberCount = currentPolicy.data.minNumbers;\n }\n\n if (currentPolicy.data.useSpecial) {\n enforcedOptions.useSpecial = true;\n }\n\n if (currentPolicy.data.minSpecial != null\n && currentPolicy.data.minSpecial > enforcedOptions.specialCount) {\n enforcedOptions.specialCount = currentPolicy.data.minSpecial;\n }\n\n if (currentPolicy.data.minNumberWords != null\n && currentPolicy.data.minNumberWords > enforcedOptions.minNumberWords) {\n enforcedOptions.minNumberWords = currentPolicy.data.minNumberWords;\n }\n\n if (currentPolicy.data.capitalize) {\n enforcedOptions.capitalize = true;\n }\n\n if (currentPolicy.data.includeNumber) {\n enforcedOptions.includeNumber = true;\n }\n });\n\n return enforcedOptions;\n }\n\n async saveOptions(options: any) {\n await this.storageService.save(Keys.options, options);\n this.optionsCache = options;\n }\n\n async getHistory(): Promise {\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n return new Array();\n }\n\n if (!this.history) {\n const encrypted = await this.storageService.get(Keys.history);\n this.history = await this.decryptHistory(encrypted);\n }\n\n return this.history || new Array();\n }\n\n async addHistory(password: string): Promise {\n // Cannot add new history if no key is available\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n return;\n }\n\n const currentHistory = await this.getHistory();\n\n // Prevent duplicates\n if (this.matchesPrevious(password, currentHistory)) {\n return;\n }\n\n currentHistory.unshift(new GeneratedPasswordHistory(password, Date.now()));\n\n // Remove old items.\n if (currentHistory.length > MaxPasswordsInHistory) {\n currentHistory.pop();\n }\n\n const newHistory = await this.encryptHistory(currentHistory);\n return await this.storageService.save(Keys.history, newHistory);\n }\n\n async clear(): Promise {\n this.history = [];\n return await this.storageService.remove(Keys.history);\n }\n\n passwordStrength(password: string, userInputs: string[] = null): zxcvbn.ZXCVBNResult {\n if (password == null || password.length === 0) {\n return null;\n }\n let globalUserInputs = ['bitwarden', 'bit', 'warden'];\n if (userInputs != null && userInputs.length > 0) {\n globalUserInputs = globalUserInputs.concat(userInputs);\n }\n // Use a hash set to get rid of any duplicate user inputs\n const finalUserInputs = Array.from(new Set(globalUserInputs));\n const result = zxcvbn(password, finalUserInputs);\n return result;\n }\n\n normalizeOptions(options: any, enforcedPolicyOptions: PasswordGeneratorPolicyOptions) {\n options.minLowercase = 0;\n options.minUppercase = 0;\n\n if (!options.length || options.length < 5) {\n options.length = 5;\n } else if (options.length > 128) {\n options.length = 128;\n }\n\n if (options.length < enforcedPolicyOptions.minLength) {\n options.length = enforcedPolicyOptions.minLength;\n }\n\n if (!options.minNumber) {\n options.minNumber = 0;\n } else if (options.minNumber > options.length) {\n options.minNumber = options.length;\n } else if (options.minNumber > 9) {\n options.minNumber = 9;\n }\n\n if (options.minNumber < enforcedPolicyOptions.numberCount) {\n options.minNumber = enforcedPolicyOptions.numberCount;\n }\n\n if (!options.minSpecial) {\n options.minSpecial = 0;\n } else if (options.minSpecial > options.length) {\n options.minSpecial = options.length;\n } else if (options.minSpecial > 9) {\n options.minSpecial = 9;\n }\n\n if (options.minSpecial < enforcedPolicyOptions.specialCount) {\n options.minSpecial = enforcedPolicyOptions.specialCount;\n }\n\n if (options.minSpecial + options.minNumber > options.length) {\n options.minSpecial = options.length - options.minNumber;\n }\n\n if (options.numWords == null || options.length < 3) {\n options.numWords = 3;\n } else if (options.numWords > 20) {\n options.numWords = 20;\n }\n\n if (options.numWords < enforcedPolicyOptions.minNumberWords) {\n options.numWords = enforcedPolicyOptions.minNumberWords;\n }\n\n if (options.wordSeparator != null && options.wordSeparator.length > 1) {\n options.wordSeparator = options.wordSeparator[0];\n }\n\n this.sanitizePasswordLength(options, false);\n }\n\n private capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n private async appendRandomNumberToRandomWord(wordList: string[]) {\n if (wordList == null || wordList.length <= 0) {\n return;\n }\n const index = await this.cryptoService.randomNumber(0, wordList.length - 1);\n const num = await this.cryptoService.randomNumber(0, 9);\n wordList[index] = wordList[index] + num;\n }\n\n private async encryptHistory(history: GeneratedPasswordHistory[]): Promise {\n if (history == null || history.length === 0) {\n return Promise.resolve([]);\n }\n\n const promises = history.map(async item => {\n const encrypted = await this.cryptoService.encrypt(item.password);\n return new GeneratedPasswordHistory(encrypted.encryptedString, item.date);\n });\n\n return await Promise.all(promises);\n }\n\n private async decryptHistory(history: GeneratedPasswordHistory[]): Promise {\n if (history == null || history.length === 0) {\n return Promise.resolve([]);\n }\n\n const promises = history.map(async item => {\n const decrypted = await this.cryptoService.decryptToUtf8(new EncString(item.password));\n return new GeneratedPasswordHistory(decrypted, item.date);\n });\n\n return await Promise.all(promises);\n }\n\n private matchesPrevious(password: string, history: GeneratedPasswordHistory[]): boolean {\n if (history == null || history.length === 0) {\n return false;\n }\n\n return history[history.length - 1].password === password;\n }\n\n // ref: https://stackoverflow.com/a/12646864/1090359\n private async shuffleArray(array: string[]) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = await this.cryptoService.randomNumber(0, i);\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n\n private sanitizePasswordLength(options: any, forGeneration: boolean) {\n let minUppercaseCalc = 0;\n let minLowercaseCalc = 0;\n let minNumberCalc: number = options.minNumber;\n let minSpecialCalc: number = options.minSpecial;\n\n if (options.uppercase && options.minUppercase <= 0) {\n minUppercaseCalc = 1;\n } else if (!options.uppercase) {\n minUppercaseCalc = 0;\n }\n\n if (options.lowercase && options.minLowercase <= 0) {\n minLowercaseCalc = 1;\n } else if (!options.lowercase) {\n minLowercaseCalc = 0;\n }\n\n if (options.number && options.minNumber <= 0) {\n minNumberCalc = 1;\n } else if (!options.number) {\n minNumberCalc = 0;\n }\n\n if (options.special && options.minSpecial <= 0) {\n minSpecialCalc = 1;\n } else if (!options.special) {\n minSpecialCalc = 0;\n }\n\n // This should never happen but is a final safety net\n if (!options.length || options.length < 1) {\n options.length = 10;\n }\n\n const minLength: number = minUppercaseCalc + minLowercaseCalc + minNumberCalc + minSpecialCalc;\n // Normalize and Generation both require this modification\n if (options.length < minLength) {\n options.length = minLength;\n }\n\n // Apply other changes if the options object passed in is for generation\n if (forGeneration) {\n options.minUppercase = minUppercaseCalc;\n options.minLowercase = minLowercaseCalc;\n options.minNumber = minNumberCalc;\n options.minSpecial = minSpecialCalc;\n }\n }\n}\n","import { SettingsService as SettingsServiceAbstraction } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nconst Keys = {\n settingsPrefix: 'settings_',\n equivalentDomains: 'equivalentDomains',\n};\n\nexport class SettingsService implements SettingsServiceAbstraction {\n private settingsCache: any;\n\n constructor(private userService: UserService, private storageService: StorageService) {\n }\n\n clearCache(): void {\n this.settingsCache = null;\n }\n\n getEquivalentDomains(): Promise {\n return this.getSettingsKey(Keys.equivalentDomains);\n }\n\n async setEquivalentDomains(equivalentDomains: string[][]): Promise {\n await this.setSettingsKey(Keys.equivalentDomains, equivalentDomains);\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.settingsPrefix + userId);\n this.clearCache();\n }\n\n // Helpers\n\n private async getSettings(): Promise {\n if (this.settingsCache == null) {\n const userId = await this.userService.getUserId();\n this.settingsCache = this.storageService.get(Keys.settingsPrefix + userId);\n }\n return this.settingsCache;\n }\n\n private async getSettingsKey(key: string): Promise {\n const settings = await this.getSettings();\n if (settings != null && settings[key]) {\n return settings[key];\n }\n return null;\n }\n\n private async setSettingsKey(key: string, value: any): Promise {\n const userId = await this.userService.getUserId();\n let settings = await this.getSettings();\n if (!settings) {\n settings = {};\n }\n\n settings[key] = value;\n await this.storageService.save(Keys.settingsPrefix + userId, settings);\n this.settingsCache = settings;\n }\n}\n","import { StateService as StateServiceAbstraction } from '../abstractions/state.service';\n\nexport class StateService implements StateServiceAbstraction {\n private state: any = {};\n\n get(key: string): Promise {\n if (this.state.hasOwnProperty(key)) {\n return Promise.resolve(this.state[key]);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n this.state[key] = obj;\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n delete this.state[key];\n return Promise.resolve();\n }\n\n purge(): Promise {\n this.state = {};\n return Promise.resolve();\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PolicyService } from '../abstractions/policy.service';\nimport { SendService } from '../abstractions/send.service';\nimport { SettingsService } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { SyncService as SyncServiceAbstraction } from '../abstractions/sync.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { CipherData } from '../models/data/cipherData';\nimport { CollectionData } from '../models/data/collectionData';\nimport { FolderData } from '../models/data/folderData';\nimport { OrganizationData } from '../models/data/organizationData';\nimport { PolicyData } from '../models/data/policyData';\nimport { SendData } from '../models/data/sendData';\n\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport { CollectionDetailsResponse } from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SendResponse } from '../models/response/sendResponse';\n\nconst Keys = {\n lastSyncPrefix: 'lastSync_',\n};\n\nexport class SyncService implements SyncServiceAbstraction {\n syncInProgress: boolean = false;\n\n constructor(private userService: UserService, private apiService: ApiService,\n private settingsService: SettingsService, private folderService: FolderService,\n private cipherService: CipherService, private cryptoService: CryptoService,\n private collectionService: CollectionService, private storageService: StorageService,\n private messagingService: MessagingService, private policyService: PolicyService,\n private sendService: SendService, private logoutCallback: (expired: boolean) => Promise) {\n }\n\n async getLastSync(): Promise {\n const userId = await this.userService.getUserId();\n if (userId == null) {\n return null;\n }\n\n const lastSync = await this.storageService.get(Keys.lastSyncPrefix + userId);\n if (lastSync) {\n return new Date(lastSync);\n }\n\n return null;\n }\n\n async setLastSync(date: Date): Promise {\n const userId = await this.userService.getUserId();\n if (userId == null) {\n return;\n }\n\n await this.storageService.save(Keys.lastSyncPrefix + userId, date.toJSON());\n }\n\n async fullSync(forceSync: boolean, allowThrowOnError = false): Promise {\n this.syncStarted();\n const isAuthenticated = await this.userService.isAuthenticated();\n if (!isAuthenticated) {\n return this.syncCompleted(false);\n }\n\n const now = new Date();\n let needsSync = false;\n try {\n needsSync = await this.needsSyncing(forceSync);\n } catch (e) {\n if (allowThrowOnError) {\n throw e;\n }\n }\n\n if (!needsSync) {\n await this.setLastSync(now);\n return this.syncCompleted(false);\n }\n\n const userId = await this.userService.getUserId();\n try {\n const response = await this.apiService.getSync();\n\n await this.syncProfile(response.profile);\n await this.syncFolders(userId, response.folders);\n await this.syncCollections(response.collections);\n await this.syncCiphers(userId, response.ciphers);\n await this.syncSends(userId, response.sends);\n await this.syncSettings(userId, response.domains);\n await this.syncPolicies(response.policies);\n\n await this.setLastSync(now);\n return this.syncCompleted(true);\n } catch (e) {\n if (allowThrowOnError) {\n throw e;\n } else {\n return this.syncCompleted(false);\n }\n }\n }\n\n async syncUpsertFolder(notification: SyncFolderNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n const localFolder = await this.folderService.get(notification.id);\n if ((!isEdit && localFolder == null) ||\n (isEdit && localFolder != null && localFolder.revisionDate < notification.revisionDate)) {\n const remoteFolder = await this.apiService.getFolder(notification.id);\n if (remoteFolder != null) {\n const userId = await this.userService.getUserId();\n await this.folderService.upsert(new FolderData(remoteFolder, userId));\n this.messagingService.send('syncedUpsertedFolder', { folderId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch { }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteFolder(notification: SyncFolderNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.folderService.delete(notification.id);\n this.messagingService.send('syncedDeletedFolder', { folderId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertCipher(notification: SyncCipherNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n let shouldUpdate = true;\n const localCipher = await this.cipherService.get(notification.id);\n if (localCipher != null && localCipher.revisionDate >= notification.revisionDate) {\n shouldUpdate = false;\n }\n\n let checkCollections = false;\n if (shouldUpdate) {\n if (isEdit) {\n shouldUpdate = localCipher != null;\n checkCollections = true;\n } else {\n if (notification.collectionIds == null || notification.organizationId == null) {\n shouldUpdate = localCipher == null;\n } else {\n shouldUpdate = false;\n checkCollections = true;\n }\n }\n }\n\n if (!shouldUpdate && checkCollections && notification.organizationId != null &&\n notification.collectionIds != null && notification.collectionIds.length > 0) {\n const collections = await this.collectionService.getAll();\n if (collections != null) {\n for (let i = 0; i < collections.length; i++) {\n if (notification.collectionIds.indexOf(collections[i].id) > -1) {\n shouldUpdate = true;\n break;\n }\n }\n }\n }\n\n if (shouldUpdate) {\n const remoteCipher = await this.apiService.getCipher(notification.id);\n if (remoteCipher != null) {\n const userId = await this.userService.getUserId();\n await this.cipherService.upsert(new CipherData(remoteCipher, userId));\n this.messagingService.send('syncedUpsertedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch (e) {\n if (e != null && e.statusCode === 404 && isEdit) {\n await this.cipherService.delete(notification.id);\n this.messagingService.send('syncedDeletedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteCipher(notification: SyncCipherNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.cipherService.delete(notification.id);\n this.messagingService.send('syncedDeletedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertSend(notification: SyncSendNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n const localSend = await this.sendService.get(notification.id);\n if ((!isEdit && localSend == null) ||\n (isEdit && localSend != null && localSend.revisionDate < notification.revisionDate)) {\n const remoteSend = await this.apiService.getSend(notification.id);\n if (remoteSend != null) {\n const userId = await this.userService.getUserId();\n await this.sendService.upsert(new SendData(remoteSend, userId));\n this.messagingService.send('syncedUpsertedSend', { sendId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch { }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteSend(notification: SyncSendNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.sendService.delete(notification.id);\n this.messagingService.send('syncedDeletedSend', { sendId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n // Helpers\n\n private syncStarted() {\n this.syncInProgress = true;\n this.messagingService.send('syncStarted');\n }\n\n private syncCompleted(successfully: boolean): boolean {\n this.syncInProgress = false;\n this.messagingService.send('syncCompleted', { successfully: successfully });\n return successfully;\n }\n\n private async needsSyncing(forceSync: boolean) {\n if (forceSync) {\n return true;\n }\n\n const lastSync = await this.getLastSync();\n if (lastSync == null || lastSync.getTime() === 0) {\n return true;\n }\n\n const response = await this.apiService.getAccountRevisionDate();\n if (new Date(response) <= lastSync) {\n return false;\n }\n return true;\n }\n\n private async syncProfile(response: ProfileResponse) {\n const stamp = await this.userService.getSecurityStamp();\n if (stamp != null && stamp !== response.securityStamp) {\n if (this.logoutCallback != null) {\n await this.logoutCallback(true);\n }\n\n throw new Error('Stamp has changed');\n }\n\n await this.cryptoService.setEncKey(response.key);\n await this.cryptoService.setEncPrivateKey(response.privateKey);\n await this.cryptoService.setOrgKeys(response.organizations);\n await this.userService.setSecurityStamp(response.securityStamp);\n await this.userService.setEmailVerified(response.emailVerified);\n\n const organizations: { [id: string]: OrganizationData; } = {};\n response.organizations.forEach(o => {\n organizations[o.id] = new OrganizationData(o);\n });\n return await this.userService.replaceOrganizations(organizations);\n }\n\n private async syncFolders(userId: string, response: FolderResponse[]) {\n const folders: { [id: string]: FolderData; } = {};\n response.forEach(f => {\n folders[f.id] = new FolderData(f, userId);\n });\n return await this.folderService.replace(folders);\n }\n\n private async syncCollections(response: CollectionDetailsResponse[]) {\n const collections: { [id: string]: CollectionData; } = {};\n response.forEach(c => {\n collections[c.id] = new CollectionData(c);\n });\n return await this.collectionService.replace(collections);\n }\n\n private async syncCiphers(userId: string, response: CipherResponse[]) {\n const ciphers: { [id: string]: CipherData; } = {};\n response.forEach(c => {\n ciphers[c.id] = new CipherData(c, userId);\n });\n return await this.cipherService.replace(ciphers);\n }\n\n private async syncSends(userId: string, response: SendResponse[]) {\n const sends: { [id: string]: SendData; } = {};\n response.forEach(s => {\n sends[s.id] = new SendData(s, userId);\n });\n return await this.sendService.replace(sends);\n }\n\n private async syncSettings(userId: string, response: DomainsResponse) {\n let eqDomains: string[][] = [];\n if (response != null && response.equivalentDomains != null) {\n eqDomains = eqDomains.concat(response.equivalentDomains);\n }\n\n if (response != null && response.globalEquivalentDomains != null) {\n response.globalEquivalentDomains.forEach(global => {\n if (global.domains.length > 0) {\n eqDomains.push(global.domains);\n }\n });\n }\n\n return this.settingsService.setEquivalentDomains(eqDomains);\n }\n\n private async syncPolicies(response: PolicyResponse[]) {\n const policies: { [id: string]: PolicyData; } = {};\n if (response != null) {\n response.forEach(p => {\n policies[p.id] = new PolicyData(p);\n });\n }\n return await this.policyService.replace(policies);\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendFileData } from './sendFileData';\nimport { SendTextData } from './sendTextData';\n\nimport { SendResponse } from '../response/sendResponse';\n\nexport class SendData {\n id: string;\n accessId: string;\n userId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileData;\n text: SendTextData;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disabled: boolean;\n hideEmail: boolean;\n\n constructor(response?: SendResponse, userId?: string) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.accessId = response.accessId;\n this.userId = userId;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.key = response.key;\n this.maxAccessCount = response.maxAccessCount;\n this.accessCount = response.accessCount;\n this.revisionDate = response.revisionDate;\n this.expirationDate = response.expirationDate;\n this.deletionDate = response.deletionDate;\n this.password = response.password;\n this.disabled = response.disable;\n this.hideEmail = response.hideEmail;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextData(response.text);\n break;\n case SendType.File:\n this.file = new SendFileData(response.file);\n break;\n default:\n break;\n }\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { StorageService } from '../abstractions/storage.service';\nimport { TokenService as TokenServiceAbstraction } from '../abstractions/token.service';\n\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n accessToken: 'accessToken',\n refreshToken: 'refreshToken',\n twoFactorTokenPrefix: 'twoFactorToken_',\n};\n\nexport class TokenService implements TokenServiceAbstraction {\n token: string;\n decodedToken: any;\n refreshToken: string;\n\n constructor(private storageService: StorageService) {\n }\n\n setTokens(accessToken: string, refreshToken: string): Promise {\n return Promise.all([\n this.setToken(accessToken),\n this.setRefreshToken(refreshToken),\n ]);\n }\n\n async setToken(token: string): Promise {\n this.token = token;\n this.decodedToken = null;\n\n if (await this.skipTokenStorage()) {\n // if we have a vault timeout and the action is log out, don't store token\n return;\n }\n\n return this.storageService.save(Keys.accessToken, token);\n }\n\n async getToken(): Promise {\n if (this.token != null) {\n return this.token;\n }\n\n this.token = await this.storageService.get(Keys.accessToken);\n return this.token;\n }\n\n async setRefreshToken(refreshToken: string): Promise {\n this.refreshToken = refreshToken;\n\n if (await this.skipTokenStorage()) {\n // if we have a vault timeout and the action is log out, don't store token\n return;\n }\n\n return this.storageService.save(Keys.refreshToken, refreshToken);\n }\n\n async getRefreshToken(): Promise {\n if (this.refreshToken != null) {\n return this.refreshToken;\n }\n\n this.refreshToken = await this.storageService.get(Keys.refreshToken);\n return this.refreshToken;\n }\n\n async toggleTokens(): Promise {\n const token = await this.getToken();\n const refreshToken = await this.getRefreshToken();\n const timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n if ((timeout != null || timeout === 0) && action === 'logOut') {\n // if we have a vault timeout and the action is log out, reset tokens\n await this.clearToken();\n this.token = token;\n this.refreshToken = refreshToken;\n return;\n }\n\n await this.setToken(token);\n await this.setRefreshToken(refreshToken);\n }\n\n setTwoFactorToken(token: string, email: string): Promise {\n return this.storageService.save(Keys.twoFactorTokenPrefix + email, token);\n }\n\n getTwoFactorToken(email: string): Promise {\n return this.storageService.get(Keys.twoFactorTokenPrefix + email);\n }\n\n clearTwoFactorToken(email: string): Promise {\n return this.storageService.remove(Keys.twoFactorTokenPrefix + email);\n }\n\n clearToken(): Promise {\n this.token = null;\n this.decodedToken = null;\n this.refreshToken = null;\n\n return Promise.all([\n this.storageService.remove(Keys.accessToken),\n this.storageService.remove(Keys.refreshToken),\n ]);\n }\n\n // jwthelper methods\n // ref https://github.com/auth0/angular-jwt/blob/master/src/angularJwt/services/jwt.js\n\n decodeToken(): any {\n if (this.decodedToken) {\n return this.decodedToken;\n }\n\n if (this.token == null) {\n throw new Error('Token not found.');\n }\n\n const parts = this.token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n\n const decoded = Utils.fromUrlB64ToUtf8(parts[1]);\n if (decoded == null) {\n throw new Error('Cannot decode the token');\n }\n\n this.decodedToken = JSON.parse(decoded);\n return this.decodedToken;\n }\n\n getTokenExpirationDate(): Date {\n const decoded = this.decodeToken();\n if (typeof decoded.exp === 'undefined') {\n return null;\n }\n\n const d = new Date(0); // The 0 here is the key, which sets the date to the epoch\n d.setUTCSeconds(decoded.exp);\n return d;\n }\n\n tokenSecondsRemaining(offsetSeconds: number = 0): number {\n const d = this.getTokenExpirationDate();\n if (d == null) {\n return 0;\n }\n\n const msRemaining = d.valueOf() - (new Date().valueOf() + (offsetSeconds * 1000));\n return Math.round(msRemaining / 1000);\n }\n\n tokenNeedsRefresh(minutes: number = 5): boolean {\n const sRemaining = this.tokenSecondsRemaining();\n return sRemaining < (60 * minutes);\n }\n\n getUserId(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.sub === 'undefined') {\n throw new Error('No user id found');\n }\n\n return decoded.sub as string;\n }\n\n getEmail(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.email === 'undefined') {\n throw new Error('No email found');\n }\n\n return decoded.email as string;\n }\n\n getEmailVerified(): boolean {\n const decoded = this.decodeToken();\n if (typeof decoded.email_verified === 'undefined') {\n throw new Error('No email verification found');\n }\n\n return decoded.email_verified as boolean;\n }\n\n getName(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.name === 'undefined') {\n return null;\n }\n\n return decoded.name as string;\n }\n\n getPremium(): boolean {\n const decoded = this.decodeToken();\n if (typeof decoded.premium === 'undefined') {\n return false;\n }\n\n return decoded.premium as boolean;\n }\n\n getIssuer(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.iss === 'undefined') {\n throw new Error('No issuer found');\n }\n\n return decoded.iss as string;\n }\n\n private async skipTokenStorage(): Promise {\n const timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n return timeout != null && action === 'logOut';\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { TotpService as TotpServiceAbstraction } from '../abstractions/totp.service';\n\nimport { Utils } from '../misc/utils';\n\nconst B32Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';\nconst SteamChars = '23456789BCDFGHJKMNPQRTVWXY';\n\nexport class TotpService implements TotpServiceAbstraction {\n constructor(private storageService: StorageService, private cryptoFunctionService: CryptoFunctionService) { }\n\n async getCode(key: string): Promise {\n if (key == null) {\n return null;\n }\n let period = 30;\n let alg: 'sha1' | 'sha256' | 'sha512' = 'sha1';\n let digits = 6;\n let keyB32 = key;\n const isOtpAuth = key.toLowerCase().indexOf('otpauth://') === 0;\n const isSteamAuth = !isOtpAuth && key.toLowerCase().indexOf('steam://') === 0;\n if (isOtpAuth) {\n const params = Utils.getQueryParams(key);\n if (params.has('digits') && params.get('digits') != null) {\n try {\n const digitParams = parseInt(params.get('digits').trim(), null);\n if (digitParams > 10) {\n digits = 10;\n } else if (digitParams > 0) {\n digits = digitParams;\n }\n } catch { }\n }\n if (params.has('period') && params.get('period') != null) {\n try {\n const periodParam = parseInt(params.get('period').trim(), null);\n if (periodParam > 0) {\n period = periodParam;\n }\n } catch { }\n }\n if (params.has('secret') && params.get('secret') != null) {\n keyB32 = params.get('secret');\n }\n if (params.has('algorithm') && params.get('algorithm') != null) {\n const algParam = params.get('algorithm').toLowerCase();\n if (algParam === 'sha1' || algParam === 'sha256' || algParam === 'sha512') {\n alg = algParam;\n }\n }\n } else if (isSteamAuth) {\n keyB32 = key.substr('steam://'.length);\n digits = 5;\n }\n\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const timeHex = this.leftPad(this.decToHex(Math.floor(epoch / period)), 16, '0');\n const timeBytes = Utils.fromHexToArray(timeHex);\n const keyBytes = this.b32ToBytes(keyB32);\n\n if (!keyBytes.length || !timeBytes.length) {\n return null;\n }\n\n const hash = await this.sign(keyBytes, timeBytes, alg);\n if (hash.length === 0) {\n return null;\n }\n\n /* tslint:disable */\n const offset = (hash[hash.length - 1] & 0xf);\n const binary = ((hash[offset] & 0x7f) << 24) | ((hash[offset + 1] & 0xff) << 16) |\n ((hash[offset + 2] & 0xff) << 8) | (hash[offset + 3] & 0xff);\n /* tslint:enable */\n\n let otp = '';\n if (isSteamAuth) {\n // tslint:disable-next-line\n let fullCode = binary & 0x7fffffff;\n for (let i = 0; i < digits; i++) {\n otp += SteamChars[fullCode % SteamChars.length];\n fullCode = Math.trunc(fullCode / SteamChars.length);\n }\n } else {\n otp = (binary % Math.pow(10, digits)).toString();\n otp = this.leftPad(otp, digits, '0');\n }\n\n return otp;\n }\n\n getTimeInterval(key: string): number {\n let period = 30;\n if (key != null && key.toLowerCase().indexOf('otpauth://') === 0) {\n const params = Utils.getQueryParams(key);\n if (params.has('period') && params.get('period') != null) {\n try {\n period = parseInt(params.get('period').trim(), null);\n } catch { }\n }\n }\n return period;\n }\n\n async isAutoCopyEnabled(): Promise {\n return !(await this.storageService.get(ConstantsService.disableAutoTotpCopyKey));\n }\n\n // Helpers\n\n private leftPad(s: string, l: number, p: string): string {\n if (l + 1 >= s.length) {\n s = Array(l + 1 - s.length).join(p) + s;\n }\n return s;\n }\n\n private decToHex(d: number): string {\n return (d < 15.5 ? '0' : '') + Math.round(d).toString(16);\n }\n\n private b32ToHex(s: string): string {\n s = s.toUpperCase();\n let cleanedInput = '';\n\n for (let i = 0; i < s.length; i++) {\n if (B32Chars.indexOf(s[i]) < 0) {\n continue;\n }\n\n cleanedInput += s[i];\n }\n s = cleanedInput;\n\n let bits = '';\n let hex = '';\n for (let i = 0; i < s.length; i++) {\n const byteIndex = B32Chars.indexOf(s.charAt(i));\n if (byteIndex < 0) {\n continue;\n }\n bits += this.leftPad(byteIndex.toString(2), 5, '0');\n }\n for (let i = 0; i + 4 <= bits.length; i += 4) {\n const chunk = bits.substr(i, 4);\n hex = hex + parseInt(chunk, 2).toString(16);\n }\n return hex;\n }\n\n private b32ToBytes(s: string): Uint8Array {\n return Utils.fromHexToArray(this.b32ToHex(s));\n }\n\n private async sign(keyBytes: Uint8Array, timeBytes: Uint8Array, alg: 'sha1' | 'sha256' | 'sha512') {\n const signature = await this.cryptoFunctionService.hmac(timeBytes.buffer, keyBytes.buffer, alg);\n return new Uint8Array(signature);\n }\n}\n","import { StorageService } from '../abstractions/storage.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService as UserServiceAbstraction } from '../abstractions/user.service';\n\nimport { OrganizationData } from '../models/data/organizationData';\nimport { Organization } from '../models/domain/organization';\n\nimport { KdfType } from '../enums/kdfType';\n\nconst Keys = {\n userId: 'userId',\n userEmail: 'userEmail',\n stamp: 'securityStamp',\n kdf: 'kdf',\n kdfIterations: 'kdfIterations',\n organizationsPrefix: 'organizations_',\n emailVerified: 'emailVerified',\n};\n\nexport class UserService implements UserServiceAbstraction {\n private userId: string;\n private email: string;\n private stamp: string;\n private kdf: KdfType;\n private kdfIterations: number;\n private emailVerified: boolean;\n\n constructor(private tokenService: TokenService, private storageService: StorageService) { }\n\n setInformation(userId: string, email: string, kdf: KdfType, kdfIterations: number): Promise {\n this.email = email;\n this.userId = userId;\n this.kdf = kdf;\n this.kdfIterations = kdfIterations;\n\n return Promise.all([\n this.storageService.save(Keys.userEmail, email),\n this.storageService.save(Keys.userId, userId),\n this.storageService.save(Keys.kdf, kdf),\n this.storageService.save(Keys.kdfIterations, kdfIterations),\n ]);\n }\n\n setSecurityStamp(stamp: string): Promise {\n this.stamp = stamp;\n return this.storageService.save(Keys.stamp, stamp);\n }\n\n setEmailVerified(emailVerified: boolean) {\n this.emailVerified = emailVerified;\n return this.storageService.save(Keys.emailVerified, emailVerified);\n }\n\n async getUserId(): Promise {\n if (this.userId == null) {\n this.userId = await this.storageService.get(Keys.userId);\n }\n return this.userId;\n }\n\n async getEmail(): Promise {\n if (this.email == null) {\n this.email = await this.storageService.get(Keys.userEmail);\n }\n return this.email;\n }\n\n async getSecurityStamp(): Promise {\n if (this.stamp == null) {\n this.stamp = await this.storageService.get(Keys.stamp);\n }\n return this.stamp;\n }\n\n async getKdf(): Promise {\n if (this.kdf == null) {\n this.kdf = await this.storageService.get(Keys.kdf);\n }\n return this.kdf;\n }\n\n async getKdfIterations(): Promise {\n if (this.kdfIterations == null) {\n this.kdfIterations = await this.storageService.get(Keys.kdfIterations);\n }\n return this.kdfIterations;\n }\n\n async getEmailVerified(): Promise {\n if (this.emailVerified == null) {\n this.emailVerified = await this.storageService.get(Keys.emailVerified);\n }\n return this.emailVerified;\n }\n\n async clear(): Promise {\n const userId = await this.getUserId();\n\n await Promise.all([\n this.storageService.remove(Keys.userId),\n this.storageService.remove(Keys.userEmail),\n this.storageService.remove(Keys.stamp),\n this.storageService.remove(Keys.kdf),\n this.storageService.remove(Keys.kdfIterations),\n this.clearOrganizations(userId),\n ]);\n\n this.userId = this.email = this.stamp = null;\n this.kdf = null;\n this.kdfIterations = null;\n }\n\n async isAuthenticated(): Promise {\n const token = await this.tokenService.getToken();\n if (token == null) {\n return false;\n }\n\n const userId = await this.getUserId();\n return userId != null;\n }\n\n async canAccessPremium(): Promise {\n const authed = await this.isAuthenticated();\n if (!authed) {\n return false;\n }\n\n const tokenPremium = this.tokenService.getPremium();\n if (tokenPremium) {\n return true;\n }\n\n const orgs = await this.getAllOrganizations();\n for (let i = 0; i < orgs.length; i++) {\n if (orgs[i].usersGetPremium && orgs[i].enabled) {\n return true;\n }\n }\n return false;\n }\n\n async getOrganization(id: string): Promise {\n const userId = await this.getUserId();\n const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(\n Keys.organizationsPrefix + userId);\n if (organizations == null || !organizations.hasOwnProperty(id)) {\n return null;\n }\n\n return new Organization(organizations[id]);\n }\n\n async getAllOrganizations(): Promise {\n const userId = await this.getUserId();\n const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(\n Keys.organizationsPrefix + userId);\n const response: Organization[] = [];\n for (const id in organizations) {\n if (organizations.hasOwnProperty(id)) {\n response.push(new Organization(organizations[id]));\n }\n }\n return response;\n }\n\n async replaceOrganizations(organizations: { [id: string]: OrganizationData; }): Promise {\n const userId = await this.getUserId();\n await this.storageService.save(Keys.organizationsPrefix + userId, organizations);\n }\n\n async clearOrganizations(userId: string): Promise {\n await this.storageService.remove(Keys.organizationsPrefix + userId);\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { SearchService } from '../abstractions/search.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from '../abstractions/vaultTimeout.service';\n\nimport { EncString } from '../models/domain/encString';\n\nexport class VaultTimeoutService implements VaultTimeoutServiceAbstraction {\n pinProtectedKey: EncString = null;\n biometricLocked: boolean = true;\n\n private inited = false;\n\n constructor(private cipherService: CipherService, private folderService: FolderService,\n private collectionService: CollectionService, private cryptoService: CryptoService,\n protected platformUtilsService: PlatformUtilsService, private storageService: StorageService,\n private messagingService: MessagingService, private searchService: SearchService,\n private userService: UserService, private tokenService: TokenService,\n private lockedCallback: () => Promise = null, private loggedOutCallback: () => Promise = null) {\n }\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.startCheck();\n }\n }\n\n startCheck() {\n this.checkVaultTimeout();\n setInterval(() => this.checkVaultTimeout(), 10 * 1000); // check every 10 seconds\n }\n\n // Keys aren't stored for a device that is locked or logged out.\n async isLocked(): Promise {\n const hasKey = await this.cryptoService.hasKey();\n if (hasKey) {\n if (await this.isBiometricLockSet() && this.biometricLocked) {\n return true;\n }\n }\n return !hasKey;\n }\n\n async checkVaultTimeout(): Promise {\n if (await this.platformUtilsService.isViewOpen()) {\n // Do not lock\n return;\n }\n\n // \"is logged out check\" - similar to isLocked, below\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n\n if (await this.isLocked()) {\n return;\n }\n\n // This has the potential to be removed. Evaluate after all platforms complete with auto-logout\n let vaultTimeout = this.platformUtilsService.lockTimeout();\n if (vaultTimeout == null) {\n vaultTimeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n }\n\n if (vaultTimeout == null || vaultTimeout < 0) {\n return;\n }\n\n const lastActive = await this.storageService.get(ConstantsService.lastActiveKey);\n if (lastActive == null) {\n return;\n }\n\n const vaultTimeoutSeconds = vaultTimeout * 60;\n const diffSeconds = ((new Date()).getTime() - lastActive) / 1000;\n if (diffSeconds >= vaultTimeoutSeconds) {\n // Pivot based on the saved vault timeout action\n const timeoutAction = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n timeoutAction === 'logOut' ? await this.logOut() : await this.lock(true);\n }\n }\n\n async lock(allowSoftLock = false): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n\n this.biometricLocked = true;\n if (allowSoftLock) {\n const biometricLocked = await this.isBiometricLockSet();\n if (biometricLocked && this.platformUtilsService.supportsSecureStorage()) {\n this.messagingService.send('locked');\n if (this.lockedCallback != null) {\n await this.lockedCallback();\n }\n return;\n }\n }\n\n await Promise.all([\n this.cryptoService.clearKey(),\n this.cryptoService.clearOrgKeys(true),\n this.cryptoService.clearKeyPair(true),\n this.cryptoService.clearEncKey(true),\n ]);\n\n this.folderService.clearCache();\n this.cipherService.clearCache();\n this.collectionService.clearCache();\n this.searchService.clearIndex();\n this.messagingService.send('locked');\n if (this.lockedCallback != null) {\n await this.lockedCallback();\n }\n }\n\n async logOut(): Promise {\n if (this.loggedOutCallback != null) {\n await this.loggedOutCallback();\n }\n }\n\n async setVaultTimeoutOptions(timeout: number, action: string): Promise {\n await this.storageService.save(ConstantsService.vaultTimeoutKey, timeout);\n await this.storageService.save(ConstantsService.vaultTimeoutActionKey, action);\n await this.cryptoService.toggleKey();\n await this.tokenService.toggleTokens();\n }\n\n async isPinLockSet(): Promise<[boolean, boolean]> {\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const pinProtectedKey = await this.storageService.get(ConstantsService.pinProtectedKey);\n return [protectedPin != null, pinProtectedKey != null];\n }\n\n async isBiometricLockSet(): Promise {\n return await this.storageService.get(ConstantsService.biometricUnlockKey);\n }\n\n clear(): Promise {\n this.pinProtectedKey = null;\n return this.storageService.remove(ConstantsService.protectedPin);\n }\n}\n","import { LogLevelType } from '../enums/logLevelType';\n\nimport { LogService as LogServiceAbstraction } from '../abstractions/log.service';\n\nimport * as hrtime from 'browser-hrtime';\n\nexport class ConsoleLogService implements LogServiceAbstraction {\n protected timersMap: Map = new Map();\n\n constructor(protected isDev: boolean, protected filter: (level: LogLevelType) => boolean = null) { }\n\n debug(message: string) {\n if (!this.isDev) {\n return;\n }\n this.write(LogLevelType.Debug, message);\n }\n\n info(message: string) {\n this.write(LogLevelType.Info, message);\n }\n\n warning(message: string) {\n this.write(LogLevelType.Warning, message);\n }\n\n error(message: string) {\n this.write(LogLevelType.Error, message);\n }\n\n write(level: LogLevelType, message: string) {\n if (this.filter != null && this.filter(level)) {\n return;\n }\n\n switch (level) {\n case LogLevelType.Debug:\n // tslint:disable-next-line\n console.log(message);\n break;\n case LogLevelType.Info:\n // tslint:disable-next-line\n console.log(message);\n break;\n case LogLevelType.Warning:\n // tslint:disable-next-line\n console.warn(message);\n break;\n case LogLevelType.Error:\n // tslint:disable-next-line\n console.error(message);\n break;\n default:\n break;\n }\n }\n\n time(label: string = 'default') {\n if (!this.timersMap.has(label)) {\n this.timersMap.set(label, hrtime());\n }\n }\n\n timeEnd(label: string = 'default'): [number, number] {\n const elapsed = hrtime(this.timersMap.get(label));\n this.timersMap.delete(label);\n this.write(LogLevelType.Info, `${label}: ${elapsed[0] * 1000 + elapsed[1] / 10e6}ms`);\n return elapsed;\n }\n}\n","export enum LogLevelType {\n Debug,\n Info,\n Warning,\n Error,\n}\n","import { Cipher } from './cipher';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Cipher as CipherDomain } from '../domain/cipher';\n\nexport class CipherWithIds extends Cipher {\n id: string;\n collectionIds: string[];\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CipherView | CipherDomain) {\n this.id = o.id;\n super.build(o);\n this.collectionIds = o.collectionIds;\n }\n}\n","import { Collection } from './collection';\n\nimport { CollectionView } from '../view/collectionView';\n\nimport { Collection as CollectionDomain } from '../domain/collection';\n\nexport class CollectionWithId extends Collection {\n id: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CollectionView | CollectionDomain) {\n this.id = o.id;\n super.build(o);\n }\n}\n","import { Folder } from './folder';\n\nimport { FolderView } from '../view/folderView';\n\nimport { Folder as FolderDomain } from '../domain/folder';\n\nexport class FolderWithId extends Folder {\n id: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: FolderView | FolderDomain) {\n this.id = o.id;\n super.build(o);\n }\n}\n","import { ImportResult } from '../../models/domain/importResult';\nimport { BaseImporter } from '../baseImporter';\nimport { Importer } from '../importer';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { FieldType } from '../../enums/fieldType';\nimport { CipherView } from '../../models/view';\nimport { CipherImportContext } from './cipherImportContext';\n\nexport const IgnoredProperties = ['ainfo', 'autosubmit', 'notesplain', 'ps', 'scope', 'tags', 'title', 'uuid', 'notes'];\n\nexport abstract class OnePasswordCsvImporter extends BaseImporter implements Importer {\n protected loginPropertyParsers = [this.setLoginUsername, this.setLoginPassword, this.setLoginUris];\n protected creditCardPropertyParsers = [this.setCreditCardNumber, this.setCreditCardVerification, this.setCreditCardCardholderName, this.setCreditCardExpiry];\n protected identityPropertyParsers = [this.setIdentityFirstName, this.setIdentityInitial, this.setIdentityLastName, this.setIdentityUserName, this.setIdentityEmail, this.setIdentityPhone, this.setIdentityCompany];\n\n abstract setCipherType(value: any, cipher: CipherView): void;\n\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true, {\n quoteChar: '\"',\n escapeChar: '\\\\',\n });\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(this.getProp(value, 'title'))) {\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(this.getProp(value, 'title'), '--');\n\n this.setNotes(value, cipher);\n\n this.setCipherType(value, cipher);\n\n let altUsername: string = null;\n for (const property in value) {\n if (!value.hasOwnProperty(property) || this.isNullOrWhitespace(value[property])) {\n continue;\n }\n\n const context = new CipherImportContext(value, property, cipher);\n if (cipher.type === CipherType.Login && this.setKnownLoginValue(context)) {\n continue;\n } else if (cipher.type === CipherType.Card && this.setKnownCreditCardValue(context)) {\n continue;\n } else if (cipher.type === CipherType.Identity && this.setKnownIdentityValue(context)) {\n continue;\n }\n\n altUsername = this.setUnknownValue(context, altUsername);\n }\n\n if (cipher.type === CipherType.Login && !this.isNullOrWhitespace(altUsername) &&\n this.isNullOrWhitespace(cipher.login.username) && altUsername.indexOf('://') === -1) {\n cipher.login.username = altUsername;\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n protected getProp(obj: any, name: string): any {\n const lowerObj = Object.entries(obj).reduce((agg: any, entry: [string, any]) => {\n agg[entry[0].toLowerCase()] = entry[1];\n return agg;\n }, {});\n return lowerObj[name.toLowerCase()];\n }\n\n protected getPropByRegexp(obj: any, regexp: RegExp): any {\n const matchingKeys = Object.keys(obj).reduce((agg: string[], key: string) => {\n if (key.match(regexp)) {\n agg.push(key);\n }\n return agg;\n }, []);\n if (matchingKeys.length === 0) {\n return null;\n } else {\n return obj[matchingKeys[0]];\n }\n }\n\n protected getPropIncluding(obj: any, name: string): any {\n const includesMap = Object.keys(obj).reduce((agg: string[], entry: string) => {\n if (entry.toLowerCase().includes(name.toLowerCase())) {\n agg.push(entry);\n }\n return agg;\n }, []);\n if (includesMap.length === 0) {\n return null;\n } else {\n return obj[includesMap[0]];\n }\n }\n\n protected setNotes(importRecord: any, cipher: CipherView) {\n cipher.notes = this.getValueOrDefault(this.getProp(importRecord, 'notesPlain'), '') + '\\n' +\n this.getValueOrDefault(this.getProp(importRecord, 'notes'), '') + '\\n';\n cipher.notes.trim();\n\n }\n\n protected setKnownLoginValue(context: CipherImportContext): boolean {\n return this.loginPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setKnownCreditCardValue(context: CipherImportContext): boolean {\n return this.creditCardPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setKnownIdentityValue(context: CipherImportContext): boolean {\n return this.identityPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setUnknownValue(context: CipherImportContext, altUsername: string): string {\n if (IgnoredProperties.indexOf(context.lowerProperty) === -1 && !context.lowerProperty.startsWith('section:') &&\n !context.lowerProperty.startsWith('section ')) {\n if (altUsername == null && context.lowerProperty === 'email') {\n return context.importRecord[context.property];\n }\n else if (context.lowerProperty === 'created date' || context.lowerProperty === 'modified date') {\n const readableDate = new Date(parseInt(context.importRecord[context.property], 10) * 1000).toUTCString();\n this.processKvp(context.cipher, '1Password ' + context.property, readableDate);\n return null;\n }\n if (context.lowerProperty.includes('password') || context.lowerProperty.includes('key') || context.lowerProperty.includes('secret')) {\n this.processKvp(context.cipher, context.property, context.importRecord[context.property], FieldType.Hidden);\n } else {\n this.processKvp(context.cipher, context.property, context.importRecord[context.property]);\n }\n }\n return null;\n }\n\n protected setIdentityFirstName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.firstName) && context.lowerProperty.includes('first name')) {\n context.cipher.identity.firstName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityInitial(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.middleName) && context.lowerProperty.includes('initial')) {\n context.cipher.identity.middleName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityLastName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.lastName) && context.lowerProperty.includes('last name')) {\n context.cipher.identity.lastName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityUserName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.username) && context.lowerProperty.includes('username')) {\n context.cipher.identity.username = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityCompany(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.company) && context.lowerProperty.includes('company')) {\n context.cipher.identity.company = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityPhone(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.phone) && context.lowerProperty.includes('default phone')) {\n context.cipher.identity.phone = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityEmail(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.email) && context.lowerProperty.includes('email')) {\n context.cipher.identity.email = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardNumber(context: CipherImportContext): boolean {\n if (this.isNullOrWhitespace(context.cipher.card.number) && context.lowerProperty.includes('number')) {\n context.cipher.card.number = context.importRecord[context.property];\n context.cipher.card.brand = this.getCardBrand(context.cipher.card.number);\n return true;\n }\n return false;\n }\n\n protected setCreditCardVerification(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.code) && context.lowerProperty.includes('verification number')) {\n context.cipher.card.code = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardCardholderName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.cardholderName) && context.lowerProperty.includes('cardholder name')) {\n context.cipher.card.cardholderName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardExpiry(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.expiration) && context.lowerProperty.includes('expiry date') &&\n context.importRecord[context.property].length === 7) {\n context.cipher.card.expMonth = (context.importRecord[context.property] as string).substr(0, 2);\n if (context.cipher.card.expMonth[0] === '0') {\n context.cipher.card.expMonth = context.cipher.card.expMonth.substr(1, 1);\n }\n context.cipher.card.expYear = (context.importRecord[context.property] as string).substr(3, 4);\n return true;\n }\n return false;\n }\n\n protected setLoginPassword(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.login.password) && context.lowerProperty === 'password') {\n context.cipher.login.password = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setLoginUsername(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.login.username) && context.lowerProperty === 'username') {\n context.cipher.login.username = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setLoginUris(context: CipherImportContext) {\n if ((context.cipher.login.uris == null || context.cipher.login.uris.length === 0) && context.lowerProperty === 'urls') {\n const urls = context.importRecord[context.property].split(this.newLineRegex);\n context.cipher.login.uris = this.makeUriArray(urls);\n return true;\n } else if ((context.lowerProperty === 'url')) {\n if (context.cipher.login.uris == null) {\n context.cipher.login.uris = [];\n }\n context.cipher.login.uris.concat(this.makeUriArray(context.importRecord[context.property]));\n return true;\n }\n return false;\n }\n}\n","export { AttachmentView } from './attachmentView';\nexport { CardView } from './cardView';\nexport { CipherView } from './cipherView';\nexport { FieldView } from './fieldView';\nexport { IdentityView } from './identityView';\nexport { LoginUriView } from './loginUriView';\nexport { LoginView } from './loginView';\nexport { SecureNoteView } from './secureNoteView';\nexport { View } from './view';\n","export enum NotificationType {\n SyncCipherUpdate = 0,\n SyncCipherCreate = 1,\n SyncLoginDelete = 2,\n SyncFolderDelete = 3,\n SyncCiphers = 4,\n\n SyncVault = 5,\n SyncOrgKeys = 6,\n SyncFolderCreate = 7,\n SyncFolderUpdate = 8,\n SyncCipherDelete = 9,\n SyncSettings = 10,\n\n LogOut = 11,\n\n SyncSendCreate = 12,\n SyncSendUpdate = 13,\n SyncSendDelete = 14,\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport 'bootstrap';\nimport 'jquery';\nimport 'popper.js';\n\n// tslint:disable-next-line\nrequire('../scss/styles.scss');\n\nimport { AppModule } from './app.module';\n\nif (process.env.ENV === 'production') {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule, { preserveWhitespaces: true });\n","import 'core-js';\n\nimport { ToasterModule } from 'angular2-toaster';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n\nimport { AppRoutingModule } from './app-routing.module';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { ServicesModule } from './services/services.module';\n\nimport { AppComponent } from './app.component';\nimport { ModalComponent } from './modal.component';\n\nimport { AvatarComponent } from './components/avatar.component';\nimport { PasswordStrengthComponent } from './components/password-strength.component';\n\nimport { FooterComponent } from './layouts/footer.component';\nimport { FrontendLayoutComponent } from './layouts/frontend-layout.component';\nimport { NavbarComponent } from './layouts/navbar.component';\nimport { OrganizationLayoutComponent } from './layouts/organization-layout.component';\nimport { UserLayoutComponent } from './layouts/user-layout.component';\n\nimport { AcceptEmergencyComponent } from './accounts/accept-emergency.component';\nimport { AcceptOrganizationComponent } from './accounts/accept-organization.component';\nimport { HintComponent } from './accounts/hint.component';\nimport { LockComponent } from './accounts/lock.component';\nimport { LoginComponent } from './accounts/login.component';\nimport { RecoverDeleteComponent } from './accounts/recover-delete.component';\nimport { RecoverTwoFactorComponent } from './accounts/recover-two-factor.component';\nimport { RegisterComponent } from './accounts/register.component';\nimport { SetPasswordComponent } from './accounts/set-password.component';\nimport { SsoComponent } from './accounts/sso.component';\nimport { TwoFactorOptionsComponent } from './accounts/two-factor-options.component';\nimport { TwoFactorComponent } from './accounts/two-factor.component';\nimport { VerifyEmailTokenComponent } from './accounts/verify-email-token.component';\nimport { VerifyRecoverDeleteComponent } from './accounts/verify-recover-delete.component';\n\nimport {\n CollectionAddEditComponent as OrgCollectionAddEditComponent,\n} from './organizations/manage/collection-add-edit.component';\nimport { CollectionsComponent as OrgManageCollectionsComponent } from './organizations/manage/collections.component';\nimport { EntityEventsComponent as OrgEntityEventsComponent } from './organizations/manage/entity-events.component';\nimport { EntityUsersComponent as OrgEntityUsersComponent } from './organizations/manage/entity-users.component';\nimport { EventsComponent as OrgEventsComponent } from './organizations/manage/events.component';\nimport { GroupAddEditComponent as OrgGroupAddEditComponent } from './organizations/manage/group-add-edit.component';\nimport { GroupsComponent as OrgGroupsComponent } from './organizations/manage/groups.component';\nimport { ManageComponent as OrgManageComponent } from './organizations/manage/manage.component';\nimport { PeopleComponent as OrgPeopleComponent } from './organizations/manage/people.component';\nimport { PoliciesComponent as OrgPoliciesComponent } from './organizations/manage/policies.component';\nimport { PolicyEditComponent as OrgPolicyEditComponent } from './organizations/manage/policy-edit.component';\nimport { UserAddEditComponent as OrgUserAddEditComponent } from './organizations/manage/user-add-edit.component';\nimport { UserConfirmComponent as OrgUserConfirmComponent } from './organizations/manage/user-confirm.component';\nimport { UserGroupsComponent as OrgUserGroupsComponent } from './organizations/manage/user-groups.component';\n\nimport { AccountComponent as OrgAccountComponent } from './organizations/settings/account.component';\nimport { AdjustSeatsComponent } from './organizations/settings/adjust-seats.component';\nimport { ChangePlanComponent } from './organizations/settings/change-plan.component';\nimport { DeleteOrganizationComponent } from './organizations/settings/delete-organization.component';\nimport { DownloadLicenseComponent } from './organizations/settings/download-license.component';\nimport { OrganizationBillingComponent } from './organizations/settings/organization-billing.component';\nimport { OrganizationSubscriptionComponent } from './organizations/settings/organization-subscription.component';\nimport { SettingsComponent as OrgSettingComponent } from './organizations/settings/settings.component';\nimport {\n TwoFactorSetupComponent as OrgTwoFactorSetupComponent,\n} from './organizations/settings/two-factor-setup.component';\n\nimport { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';\nimport {\n ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,\n} from './organizations/tools/exposed-passwords-report.component';\nimport { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';\nimport {\n InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,\n} from './organizations/tools/inactive-two-factor-report.component';\nimport {\n ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,\n} from './organizations/tools/reused-passwords-report.component';\nimport { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';\nimport {\n UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,\n} from './organizations/tools/unsecured-websites-report.component';\nimport {\n WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,\n} from './organizations/tools/weak-passwords-report.component';\n\nimport { AddEditComponent as OrgAddEditComponent } from './organizations/vault/add-edit.component';\nimport { AttachmentsComponent as OrgAttachmentsComponent } from './organizations/vault/attachments.component';\nimport { CiphersComponent as OrgCiphersComponent } from './organizations/vault/ciphers.component';\nimport { CollectionsComponent as OrgCollectionsComponent } from './organizations/vault/collections.component';\nimport { GroupingsComponent as OrgGroupingsComponent } from './organizations/vault/groupings.component';\nimport { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';\n\nimport { AccessComponent } from './send/access.component';\nimport { AddEditComponent as SendAddEditComponent } from './send/add-edit.component';\nimport { SendComponent } from './send/send.component';\n\nimport { AccountComponent } from './settings/account.component';\nimport { AddCreditComponent } from './settings/add-credit.component';\nimport { AdjustPaymentComponent } from './settings/adjust-payment.component';\nimport { AdjustStorageComponent } from './settings/adjust-storage.component';\nimport { ApiKeyComponent } from './settings/api-key.component';\nimport { ChangeEmailComponent } from './settings/change-email.component';\nimport { ChangeKdfComponent } from './settings/change-kdf.component';\nimport { ChangePasswordComponent } from './settings/change-password.component';\nimport { CreateOrganizationComponent } from './settings/create-organization.component';\nimport { DeauthorizeSessionsComponent } from './settings/deauthorize-sessions.component';\nimport { DeleteAccountComponent } from './settings/delete-account.component';\nimport { DomainRulesComponent } from './settings/domain-rules.component';\nimport { EmergencyAccessAddEditComponent } from './settings/emergency-access-add-edit.component';\nimport { EmergencyAccessAttachmentsComponent } from './settings/emergency-access-attachments.component';\nimport { EmergencyAccessConfirmComponent } from './settings/emergency-access-confirm.component';\nimport { EmergencyAccessTakeoverComponent } from './settings/emergency-access-takeover.component';\nimport { EmergencyAccessViewComponent } from './settings/emergency-access-view.component';\nimport { EmergencyAccessComponent } from './settings/emergency-access.component';\nimport { EmergencyAddEditComponent } from './settings/emergency-add-edit.component';\nimport { LinkSsoComponent } from './settings/link-sso.component';\nimport { OptionsComponent } from './settings/options.component';\nimport { OrganizationPlansComponent } from './settings/organization-plans.component';\nimport { OrganizationsComponent } from './settings/organizations.component';\nimport { PaymentComponent } from './settings/payment.component';\nimport { PremiumComponent } from './settings/premium.component';\nimport { ProfileComponent } from './settings/profile.component';\nimport { PurgeVaultComponent } from './settings/purge-vault.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { TaxInfoComponent } from './settings/tax-info.component';\nimport { TwoFactorAuthenticatorComponent } from './settings/two-factor-authenticator.component';\nimport { TwoFactorDuoComponent } from './settings/two-factor-duo.component';\nimport { TwoFactorEmailComponent } from './settings/two-factor-email.component';\nimport { TwoFactorRecoveryComponent } from './settings/two-factor-recovery.component';\nimport { TwoFactorSetupComponent } from './settings/two-factor-setup.component';\nimport { TwoFactorVerifyComponent } from './settings/two-factor-verify.component';\nimport { TwoFactorWebAuthnComponent } from './settings/two-factor-webauthn.component';\nimport { TwoFactorYubiKeyComponent } from './settings/two-factor-yubikey.component';\nimport { UpdateKeyComponent } from './settings/update-key.component';\nimport { UpdateLicenseComponent } from './settings/update-license.component';\nimport { UserBillingComponent } from './settings/user-billing.component';\nimport { UserSubscriptionComponent } from './settings/user-subscription.component';\nimport { VerifyEmailComponent } from './settings/verify-email.component';\n\nimport { BreachReportComponent } from './tools/breach-report.component';\nimport { ExportComponent } from './tools/export.component';\nimport { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';\nimport { ImportComponent } from './tools/import.component';\nimport { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';\nimport { PasswordGeneratorHistoryComponent } from './tools/password-generator-history.component';\nimport { PasswordGeneratorComponent } from './tools/password-generator.component';\nimport { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';\nimport { ToolsComponent } from './tools/tools.component';\nimport { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';\nimport { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';\n\nimport { AddEditComponent } from './vault/add-edit.component';\nimport { AttachmentsComponent } from './vault/attachments.component';\nimport { BulkActionsComponent } from './vault/bulk-actions.component';\nimport { BulkDeleteComponent } from './vault/bulk-delete.component';\nimport { BulkMoveComponent } from './vault/bulk-move.component';\nimport { BulkRestoreComponent } from './vault/bulk-restore.component';\nimport { BulkShareComponent } from './vault/bulk-share.component';\nimport { CiphersComponent } from './vault/ciphers.component';\nimport { CollectionsComponent } from './vault/collections.component';\nimport { FolderAddEditComponent } from './vault/folder-add-edit.component';\nimport { GroupingsComponent } from './vault/groupings.component';\nimport { SendInfoComponent } from './vault/send-info.component';\nimport { ShareComponent } from './vault/share.component';\nimport { VaultComponent } from './vault/vault.component';\n\nimport { CalloutComponent } from 'jslib/angular/components/callout.component';\nimport { IconComponent } from 'jslib/angular/components/icon.component';\n\nimport { A11yTitleDirective } from 'jslib/angular/directives/a11y-title.directive';\nimport { ApiActionDirective } from 'jslib/angular/directives/api-action.directive';\nimport { AutofocusDirective } from 'jslib/angular/directives/autofocus.directive';\nimport { BlurClickDirective } from 'jslib/angular/directives/blur-click.directive';\nimport { BoxRowDirective } from 'jslib/angular/directives/box-row.directive';\nimport { FallbackSrcDirective } from 'jslib/angular/directives/fallback-src.directive';\nimport { InputVerbatimDirective } from 'jslib/angular/directives/input-verbatim.directive';\nimport { SelectCopyDirective } from 'jslib/angular/directives/select-copy.directive';\nimport { StopClickDirective } from 'jslib/angular/directives/stop-click.directive';\nimport { StopPropDirective } from 'jslib/angular/directives/stop-prop.directive';\nimport { TrueFalseValueDirective } from 'jslib/angular/directives/true-false-value.directive';\n\nimport { ColorPasswordPipe } from 'jslib/angular/pipes/color-password.pipe';\nimport { I18nPipe } from 'jslib/angular/pipes/i18n.pipe';\nimport { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe';\nimport { SearchPipe } from 'jslib/angular/pipes/search.pipe';\n\nimport {\n DatePipe,\n registerLocaleData,\n} from '@angular/common';\nimport localeCa from '@angular/common/locales/ca';\nimport localeCs from '@angular/common/locales/cs';\nimport localeDa from '@angular/common/locales/da';\nimport localeDe from '@angular/common/locales/de';\nimport localeEl from '@angular/common/locales/el';\nimport localeEnGb from '@angular/common/locales/en-GB';\nimport localeEs from '@angular/common/locales/es';\nimport localeEt from '@angular/common/locales/et';\nimport localeFr from '@angular/common/locales/fr';\nimport localeHe from '@angular/common/locales/he';\nimport localeIt from '@angular/common/locales/it';\nimport localeJa from '@angular/common/locales/ja';\nimport localeKo from '@angular/common/locales/ko';\nimport localeLv from '@angular/common/locales/lv';\nimport localeMl from '@angular/common/locales/ml';\nimport localeNb from '@angular/common/locales/nb';\nimport localeNl from '@angular/common/locales/nl';\nimport localePl from '@angular/common/locales/pl';\nimport localePtBr from '@angular/common/locales/pt';\nimport localePtPt from '@angular/common/locales/pt-PT';\nimport localeRu from '@angular/common/locales/ru';\nimport localeSk from '@angular/common/locales/sk';\nimport localeSv from '@angular/common/locales/sv';\nimport localeUk from '@angular/common/locales/uk';\nimport localeZhCn from '@angular/common/locales/zh-Hans';\nimport localeZhTw from '@angular/common/locales/zh-Hant';\n\nregisterLocaleData(localeCa, 'ca');\nregisterLocaleData(localeCs, 'cs');\nregisterLocaleData(localeDa, 'da');\nregisterLocaleData(localeDe, 'de');\nregisterLocaleData(localeEl, 'el');\nregisterLocaleData(localeEnGb, 'en-GB');\nregisterLocaleData(localeEs, 'es');\nregisterLocaleData(localeEt, 'et');\nregisterLocaleData(localeFr, 'fr');\nregisterLocaleData(localeHe, 'he');\nregisterLocaleData(localeIt, 'it');\nregisterLocaleData(localeJa, 'ja');\nregisterLocaleData(localeKo, 'ko');\nregisterLocaleData(localeLv, 'lv');\nregisterLocaleData(localeMl, 'ml');\nregisterLocaleData(localeNb, 'nb');\nregisterLocaleData(localeNl, 'nl');\nregisterLocaleData(localePl, 'pl');\nregisterLocaleData(localePtBr, 'pt-BR');\nregisterLocaleData(localePtPt, 'pt-PT');\nregisterLocaleData(localeRu, 'ru');\nregisterLocaleData(localeSk, 'sk');\nregisterLocaleData(localeSv, 'sv');\nregisterLocaleData(localeUk, 'uk');\nregisterLocaleData(localeZhCn, 'zh-CN');\nregisterLocaleData(localeZhTw, 'zh-TW');\n\n@NgModule({\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n AppRoutingModule,\n ServicesModule,\n ToasterModule.forRoot(),\n InfiniteScrollModule,\n DragDropModule,\n ],\n declarations: [\n A11yTitleDirective,\n AcceptEmergencyComponent,\n AccessComponent,\n AcceptOrganizationComponent,\n AccountComponent,\n SetPasswordComponent,\n AddCreditComponent,\n AddEditComponent,\n AdjustPaymentComponent,\n AdjustSeatsComponent,\n AdjustStorageComponent,\n ApiActionDirective,\n ApiKeyComponent,\n AppComponent,\n AttachmentsComponent,\n AutofocusDirective,\n AvatarComponent,\n BlurClickDirective,\n BoxRowDirective,\n BreachReportComponent,\n BulkActionsComponent,\n BulkDeleteComponent,\n BulkMoveComponent,\n BulkRestoreComponent,\n BulkShareComponent,\n CalloutComponent,\n ChangeEmailComponent,\n ChangeKdfComponent,\n ChangePasswordComponent,\n ChangePlanComponent,\n CiphersComponent,\n CollectionsComponent,\n ColorPasswordPipe,\n CreateOrganizationComponent,\n DeauthorizeSessionsComponent,\n DeleteAccountComponent,\n DeleteOrganizationComponent,\n DomainRulesComponent,\n DownloadLicenseComponent,\n EmergencyAccessAddEditComponent,\n EmergencyAccessAttachmentsComponent,\n EmergencyAccessComponent,\n EmergencyAccessConfirmComponent,\n EmergencyAccessTakeoverComponent,\n EmergencyAccessViewComponent,\n EmergencyAddEditComponent,\n ExportComponent,\n ExposedPasswordsReportComponent,\n FallbackSrcDirective,\n FolderAddEditComponent,\n FooterComponent,\n FrontendLayoutComponent,\n GroupingsComponent,\n HintComponent,\n I18nPipe,\n IconComponent,\n ImportComponent,\n InactiveTwoFactorReportComponent,\n InputVerbatimDirective,\n LinkSsoComponent,\n LockComponent,\n LoginComponent,\n ModalComponent,\n NavbarComponent,\n OptionsComponent,\n OrgAccountComponent,\n OrgAddEditComponent,\n OrganizationBillingComponent,\n OrganizationPlansComponent,\n OrganizationSubscriptionComponent,\n OrgAttachmentsComponent,\n OrgCiphersComponent,\n OrgCollectionAddEditComponent,\n OrgCollectionsComponent,\n OrgEntityEventsComponent,\n OrgEntityUsersComponent,\n OrgEventsComponent,\n OrgExportComponent,\n OrgExposedPasswordsReportComponent,\n OrgImportComponent,\n OrgInactiveTwoFactorReportComponent,\n OrgGroupAddEditComponent,\n OrgGroupingsComponent,\n OrgGroupsComponent,\n OrgManageCollectionsComponent,\n OrgManageComponent,\n OrgPeopleComponent,\n OrgPolicyEditComponent,\n OrgPoliciesComponent,\n OrgReusedPasswordsReportComponent,\n OrgSettingComponent,\n OrgToolsComponent,\n OrgTwoFactorSetupComponent,\n OrgUserAddEditComponent,\n OrgUserConfirmComponent,\n OrgUserGroupsComponent,\n OrganizationsComponent,\n OrganizationLayoutComponent,\n OrgUnsecuredWebsitesReportComponent,\n OrgVaultComponent,\n OrgWeakPasswordsReportComponent,\n PasswordGeneratorComponent,\n PasswordGeneratorHistoryComponent,\n PasswordStrengthComponent,\n PaymentComponent,\n PremiumComponent,\n ProfileComponent,\n PurgeVaultComponent,\n RecoverDeleteComponent,\n RecoverTwoFactorComponent,\n RegisterComponent,\n ReusedPasswordsReportComponent,\n SearchCiphersPipe,\n SearchPipe,\n SelectCopyDirective,\n SendAddEditComponent,\n SendComponent,\n SendInfoComponent,\n SettingsComponent,\n ShareComponent,\n SsoComponent,\n StopClickDirective,\n StopPropDirective,\n TaxInfoComponent,\n ToolsComponent,\n TrueFalseValueDirective,\n TwoFactorAuthenticatorComponent,\n TwoFactorComponent,\n TwoFactorDuoComponent,\n TwoFactorEmailComponent,\n TwoFactorOptionsComponent,\n TwoFactorRecoveryComponent,\n TwoFactorSetupComponent,\n TwoFactorVerifyComponent,\n TwoFactorWebAuthnComponent,\n TwoFactorYubiKeyComponent,\n UnsecuredWebsitesReportComponent,\n UpdateKeyComponent,\n UpdateLicenseComponent,\n UserBillingComponent,\n UserLayoutComponent,\n UserSubscriptionComponent,\n VaultComponent,\n VerifyEmailComponent,\n VerifyEmailTokenComponent,\n VerifyRecoverDeleteComponent,\n WeakPasswordsReportComponent,\n ],\n entryComponents: [\n AddEditComponent,\n ApiKeyComponent,\n AttachmentsComponent,\n BulkActionsComponent,\n BulkDeleteComponent,\n BulkMoveComponent,\n BulkRestoreComponent,\n BulkShareComponent,\n CollectionsComponent,\n DeauthorizeSessionsComponent,\n DeleteAccountComponent,\n DeleteOrganizationComponent,\n EmergencyAccessAddEditComponent,\n EmergencyAccessAttachmentsComponent,\n EmergencyAccessConfirmComponent,\n EmergencyAccessTakeoverComponent,\n EmergencyAddEditComponent,\n FolderAddEditComponent,\n ModalComponent,\n OrgAddEditComponent,\n OrgAttachmentsComponent,\n OrgCollectionAddEditComponent,\n OrgCollectionsComponent,\n OrgEntityEventsComponent,\n OrgEntityUsersComponent,\n OrgGroupAddEditComponent,\n OrgPolicyEditComponent,\n OrgUserAddEditComponent,\n OrgUserConfirmComponent,\n OrgUserGroupsComponent,\n PasswordGeneratorHistoryComponent,\n PurgeVaultComponent,\n SendAddEditComponent,\n ShareComponent,\n TwoFactorAuthenticatorComponent,\n TwoFactorDuoComponent,\n TwoFactorEmailComponent,\n TwoFactorOptionsComponent,\n TwoFactorRecoveryComponent,\n TwoFactorWebAuthnComponent,\n TwoFactorYubiKeyComponent,\n UpdateKeyComponent,\n ],\n providers: [DatePipe],\n bootstrap: [AppComponent],\n})\nexport class AppModule { }\n","import { NgModule } from '@angular/core';\nimport {\n RouterModule,\n Routes,\n} from '@angular/router';\n\nimport { FrontendLayoutComponent } from './layouts/frontend-layout.component';\nimport { OrganizationLayoutComponent } from './layouts/organization-layout.component';\nimport { UserLayoutComponent } from './layouts/user-layout.component';\n\nimport { AcceptEmergencyComponent } from './accounts/accept-emergency.component';\nimport { AcceptOrganizationComponent } from './accounts/accept-organization.component';\nimport { HintComponent } from './accounts/hint.component';\nimport { LockComponent } from './accounts/lock.component';\nimport { LoginComponent } from './accounts/login.component';\nimport { RecoverDeleteComponent } from './accounts/recover-delete.component';\nimport { RecoverTwoFactorComponent } from './accounts/recover-two-factor.component';\nimport { RegisterComponent } from './accounts/register.component';\nimport { SetPasswordComponent } from './accounts/set-password.component';\nimport { SsoComponent } from './accounts/sso.component';\nimport { TwoFactorComponent } from './accounts/two-factor.component';\nimport { VerifyEmailTokenComponent } from './accounts/verify-email-token.component';\nimport { VerifyRecoverDeleteComponent } from './accounts/verify-recover-delete.component';\n\nimport { CollectionsComponent as OrgManageCollectionsComponent } from './organizations/manage/collections.component';\nimport { EventsComponent as OrgEventsComponent } from './organizations/manage/events.component';\nimport { GroupsComponent as OrgGroupsComponent } from './organizations/manage/groups.component';\nimport { ManageComponent as OrgManageComponent } from './organizations/manage/manage.component';\nimport { PeopleComponent as OrgPeopleComponent } from './organizations/manage/people.component';\nimport { PoliciesComponent as OrgPoliciesComponent } from './organizations/manage/policies.component';\n\nimport { AccountComponent as OrgAccountComponent } from './organizations/settings/account.component';\nimport { OrganizationBillingComponent } from './organizations/settings/organization-billing.component';\nimport { OrganizationSubscriptionComponent } from './organizations/settings/organization-subscription.component';\nimport { SettingsComponent as OrgSettingsComponent } from './organizations/settings/settings.component';\nimport {\n TwoFactorSetupComponent as OrgTwoFactorSetupComponent,\n} from './organizations/settings/two-factor-setup.component';\n\nimport { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';\nimport {\n ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,\n} from './organizations/tools/exposed-passwords-report.component';\nimport { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';\nimport {\n InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,\n} from './organizations/tools/inactive-two-factor-report.component';\nimport {\n ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,\n} from './organizations/tools/reused-passwords-report.component';\nimport { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';\nimport {\n UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,\n} from './organizations/tools/unsecured-websites-report.component';\nimport {\n WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,\n} from './organizations/tools/weak-passwords-report.component';\n\nimport { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';\n\nimport { AccessComponent } from './send/access.component';\nimport { SendComponent } from './send/send.component';\n\nimport { AccountComponent } from './settings/account.component';\nimport { CreateOrganizationComponent } from './settings/create-organization.component';\nimport { DomainRulesComponent } from './settings/domain-rules.component';\nimport { OptionsComponent } from './settings/options.component';\nimport { OrganizationsComponent } from './settings/organizations.component';\nimport { PremiumComponent } from './settings/premium.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { TwoFactorSetupComponent } from './settings/two-factor-setup.component';\nimport { UserBillingComponent } from './settings/user-billing.component';\nimport { UserSubscriptionComponent } from './settings/user-subscription.component';\n\nimport { BreachReportComponent } from './tools/breach-report.component';\nimport { ExportComponent } from './tools/export.component';\nimport { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';\nimport { ImportComponent } from './tools/import.component';\nimport { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';\nimport { PasswordGeneratorComponent } from './tools/password-generator.component';\nimport { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';\nimport { ToolsComponent } from './tools/tools.component';\nimport { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';\nimport { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';\n\nimport { VaultComponent } from './vault/vault.component';\n\nimport { OrganizationGuardService } from './services/organization-guard.service';\nimport { OrganizationTypeGuardService } from './services/organization-type-guard.service';\n\nimport { AuthGuardService } from 'jslib/angular/services/auth-guard.service';\nimport { LockGuardService } from 'jslib/angular/services/lock-guard.service';\nimport { UnauthGuardService } from 'jslib/angular/services/unauth-guard.service';\n\nimport { Permissions } from 'jslib/enums/permissions';\n\nimport { EmergencyAccessViewComponent } from './settings/emergency-access-view.component';\nimport { EmergencyAccessComponent } from './settings/emergency-access.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: FrontendLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', component: LoginComponent, canActivate: [UnauthGuardService] },\n { path: '2fa', component: TwoFactorComponent, canActivate: [UnauthGuardService] },\n {\n path: 'register', component: RegisterComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'createAccount' },\n },\n {\n path: 'sso', component: SsoComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'enterpriseSingleSignOn' },\n },\n {\n path: 'set-password', component: SetPasswordComponent,\n data: { titleId: 'setMasterPassword' },\n },\n {\n path: 'hint', component: HintComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'passwordHint' },\n },\n {\n path: 'lock',\n component: LockComponent,\n canActivate: [LockGuardService],\n },\n { path: 'verify-email', component: VerifyEmailTokenComponent },\n {\n path: 'accept-organization',\n component: AcceptOrganizationComponent,\n data: { titleId: 'joinOrganization' },\n },\n {\n path: 'accept-emergency',\n component: AcceptEmergencyComponent,\n data: { titleId: 'acceptEmergency' },\n },\n { path: 'recover', pathMatch: 'full', redirectTo: 'recover-2fa' },\n {\n path: 'recover-2fa',\n component: RecoverTwoFactorComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'recoverAccountTwoStep' },\n },\n {\n path: 'recover-delete',\n component: RecoverDeleteComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'deleteAccount' },\n },\n {\n path: 'verify-recover-delete',\n component: VerifyRecoverDeleteComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'deleteAccount' },\n },\n {\n path: 'send/:sendId/:key',\n component: AccessComponent,\n data: { title: 'Bitwarden Send' },\n },\n ],\n },\n {\n path: '',\n component: UserLayoutComponent,\n canActivate: [AuthGuardService],\n children: [\n { path: 'vault', component: VaultComponent, data: { titleId: 'myVault' } },\n { path: 'sends', component: SendComponent, data: { title: 'Send' } },\n {\n path: 'settings',\n component: SettingsComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'account' },\n { path: 'account', component: AccountComponent, data: { titleId: 'myAccount' } },\n { path: 'options', component: OptionsComponent, data: { titleId: 'options' } },\n { path: 'domain-rules', component: DomainRulesComponent, data: { titleId: 'domainRules' } },\n { path: 'two-factor', component: TwoFactorSetupComponent, data: { titleId: 'twoStepLogin' } },\n { path: 'premium', component: PremiumComponent, data: { titleId: 'goPremium' } },\n { path: 'billing', component: UserBillingComponent, data: { titleId: 'billing' } },\n {\n path: 'subscription',\n component: UserSubscriptionComponent,\n data: { titleId: 'premiumMembership' },\n },\n { path: 'organizations', component: OrganizationsComponent, data: { titleId: 'organizations' } },\n {\n path: 'create-organization',\n component: CreateOrganizationComponent,\n data: { titleId: 'newOrganization' },\n },\n {\n path: 'emergency-access',\n children: [\n {\n path: '',\n component: EmergencyAccessComponent,\n data: { titleId: 'emergencyAccess'},\n },\n {\n path: ':id',\n component: EmergencyAccessViewComponent,\n data: { titleId: 'emergencyAccess'},\n },\n ],\n },\n ],\n },\n {\n path: 'tools',\n component: ToolsComponent,\n canActivate: [AuthGuardService],\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'generator' },\n { path: 'import', component: ImportComponent, data: { titleId: 'importData' } },\n { path: 'export', component: ExportComponent, data: { titleId: 'exportVault' } },\n {\n path: 'generator',\n component: PasswordGeneratorComponent,\n data: { titleId: 'passwordGenerator' },\n },\n { path: 'breach-report', component: BreachReportComponent, data: { titleId: 'dataBreachReport' } },\n {\n path: 'reused-passwords-report',\n component: ReusedPasswordsReportComponent,\n data: { titleId: 'reusedPasswordsReport' },\n },\n {\n path: 'unsecured-websites-report',\n component: UnsecuredWebsitesReportComponent,\n data: { titleId: 'unsecuredWebsitesReport' },\n },\n {\n path: 'weak-passwords-report',\n component: WeakPasswordsReportComponent,\n data: { titleId: 'weakPasswordsReport' },\n },\n {\n path: 'exposed-passwords-report',\n component: ExposedPasswordsReportComponent,\n data: { titleId: 'exposedPasswordsReport' },\n },\n {\n path: 'inactive-two-factor-report',\n component: InactiveTwoFactorReportComponent,\n data: { titleId: 'inactive2faReport' },\n },\n ],\n },\n ],\n },\n {\n path: 'organizations/:organizationId',\n component: OrganizationLayoutComponent,\n canActivate: [AuthGuardService, OrganizationGuardService],\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'vault' },\n { path: 'vault', component: OrgVaultComponent, data: { titleId: 'vault' } },\n {\n path: 'tools',\n component: OrgToolsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: { permissions: [Permissions.AccessImportExport, Permissions.AccessReports] },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'import',\n },\n {\n path: 'import',\n component: OrgImportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'importData',\n permissions: [Permissions.AccessImportExport],\n },\n },\n {\n path: 'export',\n component: OrgExportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'exportVault',\n permissions: [Permissions.AccessImportExport],\n },\n },\n {\n path: 'exposed-passwords-report',\n component: OrgExposedPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'exposedPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'inactive-two-factor-report',\n component: OrgInactiveTwoFactorReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'inactive2faReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'reused-passwords-report',\n component: OrgReusedPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'reusedPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'unsecured-websites-report',\n component: OrgUnsecuredWebsitesReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'unsecuredWebsitesReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'weak-passwords-report',\n component: OrgWeakPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'weakPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n ],\n },\n {\n path: 'manage',\n component: OrgManageComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n permissions: [\n Permissions.ManageAssignedCollections,\n Permissions.ManageAllCollections,\n Permissions.AccessEventLogs,\n Permissions.ManageGroups,\n Permissions.ManageUsers,\n Permissions.ManagePolicies,\n ],\n },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'people',\n },\n {\n path: 'collections',\n component: OrgManageCollectionsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'collections',\n permissions: [Permissions.ManageAssignedCollections, Permissions.ManageAllCollections],\n },\n },\n {\n path: 'events',\n component: OrgEventsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'eventLogs',\n permissions: [Permissions.AccessEventLogs],\n },\n },\n {\n path: 'groups',\n component: OrgGroupsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'groups',\n permissions: [Permissions.ManageGroups],\n },\n },\n {\n path: 'people',\n component: OrgPeopleComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'people',\n permissions: [Permissions.ManageUsers],\n },\n },\n {\n path: 'policies',\n component: OrgPoliciesComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'policies',\n permissions: [Permissions.ManagePolicies],\n },\n },\n ],\n },\n {\n path: 'settings',\n component: OrgSettingsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: { permissions: [Permissions.ManageOrganization] },\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'account' },\n { path: 'account', component: OrgAccountComponent, data: { titleId: 'myOrganization' } },\n { path: 'two-factor', component: OrgTwoFactorSetupComponent, data: { titleId: 'twoStepLogin' } },\n {\n path: 'billing',\n component: OrganizationBillingComponent,\n data: { titleId: 'billing' },\n },\n {\n path: 'subscription',\n component: OrganizationSubscriptionComponent,\n data: { titleId: 'subscription' },\n },\n ],\n },\n ],\n },\n { path: '**', redirectTo: '' },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {\n useHash: true,\n paramsInheritanceStrategy: 'always',\n /*enableTracing: true,*/\n })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule { }\n","import { BroadcasterService as BroadcasterServiceAbstraction } from '../abstractions/broadcaster.service';\n\nexport class BroadcasterService implements BroadcasterServiceAbstraction {\n subscribers: Map any> = new Map any>();\n\n send(message: any, id?: string) {\n if (id != null) {\n if (this.subscribers.has(id)) {\n this.subscribers.get(id)(message);\n }\n return;\n }\n\n this.subscribers.forEach(value => {\n value(message);\n });\n }\n\n subscribe(id: string, messageCallback: (message: any) => any) {\n this.subscribers.set(id, messageCallback);\n }\n\n unsubscribe(id: string) {\n if (this.subscribers.has(id)) {\n this.subscribers.delete(id);\n }\n }\n}\n","export function getDomain(host: string): string | null {\n return null;\n}\n","export class EmergencyAccessAcceptRequest {\n token: string;\n}\n","export class OrganizationUserAcceptRequest {\n token: string;\n}\n","import { Router } from '@angular/router';\n\nimport { PasswordHintRequest } from '../../models/request/passwordHintRequest';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nexport class HintComponent {\n email: string = '';\n formPromise: Promise;\n\n protected successRoute = 'login';\n protected onSuccessfulSubmit: () => void;\n\n constructor(protected router: Router, protected i18nService: I18nService,\n protected apiService: ApiService, protected platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n\n try {\n this.formPromise = this.apiService.postPasswordHint(new PasswordHintRequest(this.email));\n await this.formPromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('masterPassSent'));\n if (this.onSuccessfulSubmit != null) {\n this.onSuccessfulSubmit();\n } else if (this.router != null) {\n this.router.navigate([this.successRoute]);\n }\n } catch { }\n }\n}\n","export class PasswordHintRequest {\n email: string;\n\n constructor(email: string) {\n this.email = email;\n }\n}\n","import { OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { EncString } from '../../models/domain/encString';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { PasswordVerificationRequest } from '../../models/request/passwordVerificationRequest';\n\nimport { Utils } from '../../misc/utils';\n\nexport class LockComponent implements OnInit {\n masterPassword: string = '';\n pin: string = '';\n showPassword: boolean = false;\n email: string;\n pinLock: boolean = false;\n webVaultHostname: string = '';\n formPromise: Promise;\n supportsBiometric: boolean;\n biometricLock: boolean;\n biometricText: string;\n\n protected successRoute: string = 'vault';\n protected onSuccessfulSubmit: () => void;\n\n private invalidPinAttempts = 0;\n private pinSet: [boolean, boolean];\n\n constructor(protected router: Router, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected messagingService: MessagingService,\n protected userService: UserService, protected cryptoService: CryptoService,\n protected storageService: StorageService, protected vaultTimeoutService: VaultTimeoutService,\n protected environmentService: EnvironmentService, protected stateService: StateService,\n protected apiService: ApiService) { }\n\n async ngOnInit() {\n this.pinSet = await this.vaultTimeoutService.isPinLockSet();\n this.pinLock = (this.pinSet[0] && this.vaultTimeoutService.pinProtectedKey != null) || this.pinSet[1];\n this.supportsBiometric = await this.platformUtilsService.supportsBiometric();\n this.biometricLock = await this.vaultTimeoutService.isBiometricLockSet() && (await this.cryptoService.hasKey() || !this.platformUtilsService.supportsSecureStorage());\n this.biometricText = await this.storageService.get(ConstantsService.biometricText);\n this.email = await this.userService.getEmail();\n let vaultUrl = this.environmentService.getWebVaultUrl();\n if (vaultUrl == null) {\n vaultUrl = 'https://bitwarden.com';\n }\n this.webVaultHostname = Utils.getHostname(vaultUrl);\n }\n\n async submit() {\n if (this.pinLock && (this.pin == null || this.pin === '')) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('pinRequired'));\n return;\n }\n if (!this.pinLock && (this.masterPassword == null || this.masterPassword === '')) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const kdf = await this.userService.getKdf();\n const kdfIterations = await this.userService.getKdfIterations();\n\n if (this.pinLock) {\n let failed = true;\n try {\n if (this.pinSet[0]) {\n const key = await this.cryptoService.makeKeyFromPin(this.pin, this.email, kdf, kdfIterations,\n this.vaultTimeoutService.pinProtectedKey);\n const encKey = await this.cryptoService.getEncKey(key);\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const decPin = await this.cryptoService.decryptToUtf8(new EncString(protectedPin), encKey);\n failed = decPin !== this.pin;\n if (!failed) {\n await this.setKeyAndContinue(key);\n }\n } else {\n const key = await this.cryptoService.makeKeyFromPin(this.pin, this.email, kdf, kdfIterations);\n failed = false;\n await this.setKeyAndContinue(key);\n }\n } catch {\n failed = true;\n }\n\n if (failed) {\n this.invalidPinAttempts++;\n if (this.invalidPinAttempts >= 5) {\n this.messagingService.send('logout');\n return;\n }\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidPin'));\n }\n } else {\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, kdf, kdfIterations);\n const keyHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n let passwordValid = false;\n\n if (keyHash != null) {\n const storedKeyHash = await this.cryptoService.getKeyHash();\n if (storedKeyHash != null) {\n passwordValid = storedKeyHash === keyHash;\n } else {\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = keyHash;\n try {\n this.formPromise = this.apiService.postAccountVerifyPassword(request);\n await this.formPromise;\n passwordValid = true;\n await this.cryptoService.setKeyHash(keyHash);\n } catch { }\n }\n }\n\n if (passwordValid) {\n if (this.pinSet[0]) {\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const encKey = await this.cryptoService.getEncKey(key);\n const decPin = await this.cryptoService.decryptToUtf8(new EncString(protectedPin), encKey);\n const pinKey = await this.cryptoService.makePinKey(decPin, this.email, kdf, kdfIterations);\n this.vaultTimeoutService.pinProtectedKey = await this.cryptoService.encrypt(key.key, pinKey);\n }\n this.setKeyAndContinue(key);\n } else {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n }\n }\n }\n\n async logOut() {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('logOutConfirmation'),\n this.i18nService.t('logOut'), this.i18nService.t('logOut'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.messagingService.send('logout');\n }\n }\n\n async unlockBiometric() {\n if (!this.biometricLock) {\n return;\n }\n const success = await this.platformUtilsService.authenticateBiometric();\n\n if (success) {\n await this.doContinue();\n }\n }\n\n togglePassword() {\n this.showPassword = !this.showPassword;\n document.getElementById(this.pinLock ? 'pin' : 'masterPassword').focus();\n }\n\n private async setKeyAndContinue(key: SymmetricCryptoKey) {\n await this.cryptoService.setKey(key);\n this.doContinue();\n }\n\n private async doContinue() {\n this.vaultTimeoutService.biometricLocked = false;\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n this.messagingService.send('unlocked');\n if (this.onSuccessfulSubmit != null) {\n this.onSuccessfulSubmit();\n } else if (this.router != null) {\n this.router.navigate([this.successRoute]);\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { Router } from '@angular/router';\n\nimport { AuthResult } from '../../models/domain/authResult';\n\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoFunctionService } from '../../abstractions/cryptoFunction.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nconst Keys = {\n rememberedEmail: 'rememberedEmail',\n rememberEmail: 'rememberEmail',\n};\n\n@Directive()\nexport class LoginComponent implements OnInit {\n @Input() email: string = '';\n @Input() rememberEmail = true;\n\n masterPassword: string = '';\n showPassword: boolean = false;\n formPromise: Promise;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n onSuccessfulLoginTwoFactorNavigate: () => Promise;\n\n protected twoFactorRoute = '2fa';\n protected successRoute = 'vault';\n\n constructor(protected authService: AuthService, protected router: Router,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n protected stateService: StateService, protected environmentService: EnvironmentService,\n protected passwordGenerationService: PasswordGenerationService,\n protected cryptoFunctionService: CryptoFunctionService, private storageService: StorageService) { }\n\n async ngOnInit() {\n if (this.email == null || this.email === '') {\n this.email = await this.storageService.get(Keys.rememberedEmail);\n if (this.email == null) {\n this.email = '';\n }\n }\n this.rememberEmail = await this.storageService.get(Keys.rememberEmail);\n if (this.rememberEmail == null) {\n this.rememberEmail = true;\n }\n if (Utils.isBrowser) {\n document.getElementById(this.email == null || this.email === '' ? 'email' : 'masterPassword').focus();\n }\n }\n\n async submit() {\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n try {\n this.formPromise = this.authService.logIn(this.email, this.masterPassword);\n const response = await this.formPromise;\n await this.storageService.save(Keys.rememberEmail, this.rememberEmail);\n if (this.rememberEmail) {\n await this.storageService.save(Keys.rememberedEmail, this.email);\n } else {\n await this.storageService.remove(Keys.rememberedEmail);\n }\n if (response.twoFactor) {\n if (this.onSuccessfulLoginTwoFactorNavigate != null) {\n this.onSuccessfulLoginTwoFactorNavigate();\n } else {\n this.router.navigate([this.twoFactorRoute]);\n }\n } else {\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n } catch { }\n }\n\n togglePassword() {\n this.showPassword = !this.showPassword;\n document.getElementById('masterPassword').focus();\n }\n\n async launchSsoBrowser(clientId: string, ssoRedirectUri: string) {\n // Generate necessary sso params\n const passwordOptions: any = {\n type: 'password',\n length: 64,\n uppercase: true,\n lowercase: true,\n numbers: true,\n special: false,\n };\n const state = await this.passwordGenerationService.generatePassword(passwordOptions);\n const ssoCodeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions);\n const codeVerifierHash = await this.cryptoFunctionService.hash(ssoCodeVerifier, 'sha256');\n const codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash);\n\n // Save sso params\n await this.storageService.save(ConstantsService.ssoStateKey, state);\n await this.storageService.save(ConstantsService.ssoCodeVerifierKey, ssoCodeVerifier);\n\n // Build URI\n const webUrl = this.environmentService.getWebVaultUrl() == null ? 'https://vault.bitwarden.com' :\n this.environmentService.getWebVaultUrl();\n\n // Launch browser\n this.platformUtilsService.launchUri(webUrl + '/#/sso?clientId=' + clientId +\n '&redirectUri=' + encodeURIComponent(ssoRedirectUri) +\n '&state=' + state + '&codeChallenge=' + codeChallenge);\n }\n}\n","export class DeleteRecoverRequest {\n email: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class TwoFactorRecoveryRequest extends PasswordVerificationRequest {\n recoveryCode: string;\n email: string;\n}\n","import { Router } from '@angular/router';\n\nimport { KeysRequest } from '../../models/request/keysRequest';\nimport { ReferenceEventRequest } from '../../models/request/referenceEventRequest';\nimport { RegisterRequest } from '../../models/request/registerRequest';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class RegisterComponent {\n name: string = '';\n email: string = '';\n masterPassword: string = '';\n confirmMasterPassword: string = '';\n hint: string = '';\n showPassword: boolean = false;\n formPromise: Promise;\n masterPasswordScore: number;\n referenceData: ReferenceEventRequest;\n showTerms = true;\n acceptPolicies: boolean = false;\n\n protected successRoute = 'login';\n private masterPasswordStrengthTimeout: any;\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected cryptoService: CryptoService,\n protected apiService: ApiService, protected stateService: StateService,\n protected platformUtilsService: PlatformUtilsService,\n protected passwordGenerationService: PasswordGenerationService) {\n this.showTerms = !platformUtilsService.isSelfHost();\n }\n\n get masterPasswordScoreWidth() {\n return this.masterPasswordScore == null ? 0 : (this.masterPasswordScore + 1) * 20;\n }\n\n get masterPasswordScoreColor() {\n switch (this.masterPasswordScore) {\n case 4:\n return 'success';\n case 3:\n return 'primary';\n case 2:\n return 'warning';\n default:\n return 'danger';\n }\n }\n\n get masterPasswordScoreText() {\n switch (this.masterPasswordScore) {\n case 4:\n return this.i18nService.t('strong');\n case 3:\n return this.i18nService.t('good');\n case 2:\n return this.i18nService.t('weak');\n default:\n return this.masterPasswordScore != null ? this.i18nService.t('weak') : null;\n }\n }\n\n async submit() {\n if (!this.acceptPolicies && this.showTerms) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('acceptPoliciesError'));\n return;\n }\n\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n if (this.masterPassword.length < 8) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassLength'));\n return;\n }\n if (this.masterPassword !== this.confirmMasterPassword) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassDoesntMatch'));\n return;\n }\n\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n if (strengthResult != null && strengthResult.score < 3) {\n const result = await this.platformUtilsService.showDialog(this.i18nService.t('weakMasterPasswordDesc'),\n this.i18nService.t('weakMasterPassword'), this.i18nService.t('yes'), this.i18nService.t('no'),\n 'warning');\n if (!result) {\n return;\n }\n }\n\n if (this.hint === this.masterPassword) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), this.i18nService.t('hintEqualsPassword'));\n return;\n }\n\n this.name = this.name === '' ? null : this.name;\n this.email = this.email.trim().toLowerCase();\n const kdf = KdfType.PBKDF2_SHA256;\n const useLowerKdf = this.platformUtilsService.isIE();\n const kdfIterations = useLowerKdf ? 10000 : 100000;\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, kdf, kdfIterations);\n const encKey = await this.cryptoService.makeEncKey(key);\n const hashedPassword = await this.cryptoService.hashPassword(this.masterPassword, key);\n const keys = await this.cryptoService.makeKeyPair(encKey[0]);\n const request = new RegisterRequest(this.email, this.name, hashedPassword,\n this.hint, encKey[1].encryptedString, kdf, kdfIterations, this.referenceData);\n request.keys = new KeysRequest(keys[0], keys[1].encryptedString);\n const orgInvite = await this.stateService.get('orgInvitation');\n if (orgInvite != null && orgInvite.token != null && orgInvite.organizationUserId != null) {\n request.token = orgInvite.token;\n request.organizationUserId = orgInvite.organizationUserId;\n }\n\n try {\n this.formPromise = this.apiService.postRegister(request);\n await this.formPromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('newAccountCreated'));\n this.router.navigate([this.successRoute], { queryParams: { email: this.email } });\n } catch { }\n }\n\n togglePassword(confirmField: boolean) {\n this.showPassword = !this.showPassword;\n document.getElementById(confirmField ? 'masterPasswordRetype' : 'masterPassword').focus();\n }\n\n updatePasswordStrength() {\n if (this.masterPasswordStrengthTimeout != null) {\n clearTimeout(this.masterPasswordStrengthTimeout);\n }\n this.masterPasswordStrengthTimeout = setTimeout(() => {\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;\n }, 300);\n }\n\n private getPasswordStrengthUserInput() {\n let userInput: string[] = [];\n const atPosition = this.email.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(this.email.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/));\n }\n if (this.name != null && this.name !== '') {\n userInput = userInput.concat(this.name.trim().toLowerCase().split(' '));\n }\n return userInput;\n }\n}\n","import { KeysRequest } from './keysRequest';\nimport { ReferenceEventRequest } from './referenceEventRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class RegisterRequest {\n name: string;\n email: string;\n masterPasswordHash: string;\n masterPasswordHint: string;\n key: string;\n keys: KeysRequest;\n token: string;\n organizationUserId: string;\n kdf: KdfType;\n kdfIterations: number;\n referenceData: ReferenceEventRequest;\n\n constructor(email: string, name: string, masterPasswordHash: string, masterPasswordHint: string, key: string,\n kdf: KdfType, kdfIterations: number, referenceData: ReferenceEventRequest) {\n this.name = name;\n this.email = email;\n this.masterPasswordHash = masterPasswordHash;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n this.key = key;\n this.kdf = kdf;\n this.kdfIterations = kdfIterations;\n this.referenceData = referenceData;\n }\n}\n","export class ReferenceEventRequest {\n id: string;\n layout: string;\n flow: string;\n}\n","import {\n ActivatedRoute,\n Router\n} from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { SyncService } from '../../abstractions/sync.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { EncString } from '../../models/domain/encString';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { KeysRequest } from '../../models/request/keysRequest';\nimport { SetPasswordRequest } from '../../models/request/setPasswordRequest';\n\nimport { ChangePasswordComponent as BaseChangePasswordComponent } from './change-password.component';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class SetPasswordComponent extends BaseChangePasswordComponent {\n syncLoading: boolean = true;\n showPassword: boolean = false;\n hint: string = '';\n identifier: string = null;\n\n onSuccessfulChangePassword: () => Promise;\n successRoute = 'vault';\n\n constructor(i18nService: I18nService, cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService, private router: Router,\n private apiService: ApiService, private syncService: SyncService, private route: ActivatedRoute) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async ngOnInit() {\n await this.syncService.fullSync(true);\n this.syncLoading = false;\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n super.ngOnInit();\n }\n\n async setupSubmitActions() {\n this.kdf = KdfType.PBKDF2_SHA256;\n const useLowerKdf = this.platformUtilsService.isIE();\n this.kdfIterations = useLowerKdf ? 10000 : 100000;\n return true;\n }\n\n async performSubmitActions(masterPasswordHash: string, key: SymmetricCryptoKey,\n encKey: [SymmetricCryptoKey, EncString]) {\n const request = new SetPasswordRequest();\n request.masterPasswordHash = masterPasswordHash;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHint = this.hint;\n request.kdf = this.kdf;\n request.kdfIterations = this.kdfIterations;\n request.orgIdentifier = this.identifier;\n\n const keys = await this.cryptoService.makeKeyPair(encKey[0]);\n request.keys = new KeysRequest(keys[0], keys[1].encryptedString);\n\n try {\n this.formPromise = this.apiService.setPassword(request);\n await this.formPromise;\n\n await this.userService.setInformation(await this.userService.getUserId(), await this.userService.getEmail(),\n this.kdf, this.kdfIterations);\n await this.cryptoService.setKey(key);\n await this.cryptoService.setKeyHash(masterPasswordHash);\n await this.cryptoService.setEncKey(encKey[1].encryptedString);\n await this.cryptoService.setEncPrivateKey(keys[1].encryptedString);\n\n if (this.onSuccessfulChangePassword != null) {\n this.onSuccessfulChangePassword();\n } else {\n this.router.navigate([this.successRoute]);\n }\n } catch {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n }\n\n togglePassword(confirmField: boolean) {\n this.showPassword = !this.showPassword;\n document.getElementById(confirmField ? 'masterPasswordRetype' : 'masterPassword').focus();\n }\n}\n","import { KeysRequest } from './keysRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class SetPasswordRequest {\n masterPasswordHash: string;\n key: string;\n masterPasswordHint: string;\n keys: KeysRequest;\n kdf: KdfType;\n kdfIterations: number;\n orgIdentifier: string;\n}\n","import {\n Directive,\n EventEmitter,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { AuthService } from '../../abstractions/auth.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\n@Directive()\nexport class TwoFactorOptionsComponent implements OnInit {\n @Output() onProviderSelected = new EventEmitter();\n @Output() onRecoverSelected = new EventEmitter();\n\n providers: any[] = [];\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected win: Window) { }\n\n ngOnInit() {\n this.providers = this.authService.getSupportedTwoFactorProviders(this.win);\n }\n\n choose(p: any) {\n this.onProviderSelected.emit(p.type);\n }\n\n recover() {\n this.platformUtilsService.launchUri('https://help.bitwarden.com/article/lost-two-step-device/');\n this.onRecoverSelected.emit();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n OnDestroy,\n Output,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { MessagingService } from '../../abstractions/messaging.service';\n\n@Component({\n selector: 'app-modal',\n template: ``,\n})\nexport class ModalComponent implements OnDestroy {\n @Output() onClose = new EventEmitter();\n @Output() onClosed = new EventEmitter();\n @Output() onShow = new EventEmitter();\n @Output() onShown = new EventEmitter();\n @ViewChild('container', { read: ViewContainerRef, static: true }) container: ViewContainerRef;\n parentContainer: ViewContainerRef = null;\n fade: boolean = true;\n\n constructor(protected componentFactoryResolver: ComponentFactoryResolver,\n protected messagingService: MessagingService) { }\n\n ngOnDestroy() {\n document.body.classList.remove('modal-open');\n document.body.removeChild(document.querySelector('.modal-backdrop'));\n }\n\n show(type: Type, parentContainer: ViewContainerRef, fade: boolean = true,\n setComponentParameters: (component: T) => void = null): T {\n this.onShow.emit();\n this.messagingService.send('modalShow');\n this.parentContainer = parentContainer;\n this.fade = fade;\n\n document.body.classList.add('modal-open');\n const backdrop = document.createElement('div');\n backdrop.className = 'modal-backdrop' + (this.fade ? ' fade' : '');\n document.body.appendChild(backdrop);\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = this.container.createComponent(factory);\n if (setComponentParameters != null) {\n setComponentParameters(componentRef.instance);\n }\n\n document.querySelector('.modal-dialog').addEventListener('click', (e: Event) => {\n e.stopPropagation();\n });\n\n const modals = Array.from(document.querySelectorAll('.modal, .modal *[data-dismiss=\"modal\"]'));\n for (const closeElement of modals) {\n closeElement.addEventListener('click', event => {\n this.close();\n });\n }\n\n this.onShown.emit();\n this.messagingService.send('modalShown');\n return componentRef.instance;\n }\n\n close() {\n this.onClose.emit();\n this.messagingService.send('modalClose');\n this.onClosed.emit();\n this.messagingService.send('modalClosed');\n if (this.parentContainer != null) {\n this.parentContainer.clear();\n }\n }\n}\n","import {\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { TwoFactorEmailRequest } from '../../models/request/twoFactorEmailRequest';\n\nimport { AuthResult } from '../../models/domain';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { TwoFactorProviders } from '../../services/auth.service';\nimport { ConstantsService } from '../../services/constants.service';\n\nimport * as DuoWebSDK from 'duo_web_sdk';\nimport { WebAuthn } from '../../misc/webauthn';\n\nexport class TwoFactorComponent implements OnInit, OnDestroy {\n token: string = '';\n remember: boolean = false;\n webAuthnReady: boolean = false;\n webAuthnNewTab: boolean = false;\n providers = TwoFactorProviders;\n providerType = TwoFactorProviderType;\n selectedProviderType: TwoFactorProviderType = TwoFactorProviderType.Authenticator;\n webAuthnSupported: boolean = false;\n webAuthn: WebAuthn = null;\n title: string = '';\n twoFactorEmail: string = null;\n formPromise: Promise;\n emailPromise: Promise;\n identifier: string = null;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n\n protected loginRoute = 'login';\n protected successRoute = 'vault';\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected apiService: ApiService,\n protected platformUtilsService: PlatformUtilsService, protected win: Window,\n protected environmentService: EnvironmentService, protected stateService: StateService,\n protected storageService: StorageService, protected route: ActivatedRoute) {\n this.webAuthnSupported = this.platformUtilsService.supportsWebAuthn(win);\n }\n\n async ngOnInit() {\n if (!this.authing || this.authService.twoFactorProvidersData == null) {\n this.router.navigate([this.loginRoute]);\n return;\n }\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n if (this.needsLock) {\n this.successRoute = 'lock';\n }\n\n if (this.win != null && this.webAuthnSupported) {\n let webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl == null) {\n webVaultUrl = 'https://vault.bitwarden.com';\n }\n this.webAuthn = new WebAuthn(this.win, webVaultUrl, this.webAuthnNewTab, this.platformUtilsService,\n this.i18nService, (token: string) => {\n this.token = token;\n this.submit();\n }, (error: string) => {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), error);\n }, (info: string) => {\n if (info === 'ready') {\n this.webAuthnReady = true;\n }\n }\n );\n }\n\n this.selectedProviderType = this.authService.getDefaultTwoFactorProvider(this.webAuthnSupported);\n await this.init();\n }\n\n ngOnDestroy(): void {\n this.cleanupWebAuthn();\n this.webAuthn = null;\n }\n\n async init() {\n if (this.selectedProviderType == null) {\n this.title = this.i18nService.t('loginUnavailable');\n return;\n }\n\n this.cleanupWebAuthn();\n this.title = (TwoFactorProviders as any)[this.selectedProviderType].name;\n const providerData = this.authService.twoFactorProvidersData.get(this.selectedProviderType);\n switch (this.selectedProviderType) {\n case TwoFactorProviderType.WebAuthn:\n if (!this.webAuthnSupported || this.webAuthn == null) {\n break;\n }\n\n setTimeout(() => {\n this.webAuthn.init(providerData);\n }, 500);\n break;\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n setTimeout(() => {\n DuoWebSDK.init({\n iframe: undefined,\n host: providerData.Host,\n sig_request: providerData.Signature,\n submit_callback: async (f: HTMLFormElement) => {\n const sig = f.querySelector('input[name=\"sig_response\"]') as HTMLInputElement;\n if (sig != null) {\n this.token = sig.value;\n await this.submit();\n }\n },\n });\n }, 0);\n break;\n case TwoFactorProviderType.Email:\n this.twoFactorEmail = providerData.Email;\n if (this.authService.twoFactorProvidersData.size > 1) {\n await this.sendEmail(false);\n }\n break;\n default:\n break;\n }\n }\n\n async submit() {\n if (this.token == null || this.token === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('verificationCodeRequired'));\n return;\n }\n\n if (this.selectedProviderType === TwoFactorProviderType.WebAuthn) {\n if (this.webAuthn != null) {\n this.webAuthn.stop();\n } else {\n return;\n }\n } else if (this.selectedProviderType === TwoFactorProviderType.Email ||\n this.selectedProviderType === TwoFactorProviderType.Authenticator) {\n this.token = this.token.replace(' ', '').trim();\n }\n\n try {\n await this.doSubmit();\n } catch {\n if (this.selectedProviderType === TwoFactorProviderType.WebAuthn && this.webAuthn != null) {\n this.webAuthn.start();\n }\n }\n }\n\n async doSubmit() {\n this.formPromise = this.authService.logInTwoFactor(this.selectedProviderType, this.token, this.remember);\n const response: AuthResult = await this.formPromise;\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n if (response.resetMasterPassword) {\n this.successRoute = 'set-password';\n }\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute], {\n queryParams: {\n identifier: this.identifier,\n },\n });\n }\n }\n\n async sendEmail(doToast: boolean) {\n if (this.selectedProviderType !== TwoFactorProviderType.Email) {\n return;\n }\n\n if (this.emailPromise != null) {\n return;\n }\n\n try {\n const request = new TwoFactorEmailRequest(this.authService.email, this.authService.masterPasswordHash);\n this.emailPromise = this.apiService.postTwoFactorEmail(request);\n await this.emailPromise;\n if (doToast) {\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('verificationCodeEmailSent', this.twoFactorEmail));\n }\n } catch { }\n\n this.emailPromise = null;\n }\n\n private cleanupWebAuthn() {\n if (this.webAuthn != null) {\n this.webAuthn.stop();\n this.webAuthn.cleanup();\n }\n }\n\n get authing(): boolean {\n return this.authService.authingWithPassword() || this.authService.authingWithSso() || this.authService.authingWithApiKey();\n }\n\n get needsLock(): boolean {\n return this.authService.authingWithSso() || this.authService.authingWithApiKey();\n }\n}\n","import { DeviceType } from '../../enums/deviceType';\n\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nexport class DeviceRequest {\n type: DeviceType;\n name: string;\n identifier: string;\n pushToken?: string;\n\n constructor(appId: string, platformUtilsService: PlatformUtilsService) {\n this.type = platformUtilsService.getDevice();\n this.name = platformUtilsService.getDeviceString();\n this.identifier = appId;\n this.pushToken = null;\n }\n}\n","export class PreloginRequest {\n email: string;\n\n constructor(email: string) {\n this.email = email;\n }\n}\n","import { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { DeviceRequest } from './deviceRequest';\n\nexport class TokenRequest {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n redirectUri: string;\n clientId: string;\n clientSecret: string;\n token: string;\n provider: TwoFactorProviderType;\n remember: boolean;\n device?: DeviceRequest;\n\n constructor(credentials: string[], codes: string[], clientIdClientSecret: string[], provider: TwoFactorProviderType,\n token: string, remember: boolean, device?: DeviceRequest) {\n if (credentials != null && credentials.length > 1) {\n this.email = credentials[0];\n this.masterPasswordHash = credentials[1];\n } else if (codes != null && codes.length > 2) {\n this.code = codes[0];\n this.codeVerifier = codes[1];\n this.redirectUri = codes[2];\n } else if (clientIdClientSecret != null && clientIdClientSecret.length > 1) {\n this.clientId = clientIdClientSecret[0];\n this.clientSecret = clientIdClientSecret[1];\n }\n this.token = token;\n this.provider = provider;\n this.remember = remember;\n this.device = device != null ? device : null;\n }\n\n toIdentityToken(clientId: string) {\n const obj: any = {\n scope: 'api offline_access',\n client_id: clientId,\n };\n\n if (this.clientSecret != null) {\n obj.scope = 'api';\n obj.grant_type = 'client_credentials';\n obj.client_secret = this.clientSecret;\n } else if (this.masterPasswordHash != null && this.email != null) {\n obj.grant_type = 'password';\n obj.username = this.email;\n obj.password = this.masterPasswordHash;\n } else if (this.code != null && this.codeVerifier != null && this.redirectUri != null) {\n obj.grant_type = 'authorization_code';\n obj.code = this.code;\n obj.code_verifier = this.codeVerifier;\n obj.redirect_uri = this.redirectUri;\n } else {\n throw new Error('must provide credentials or codes');\n }\n\n if (this.device) {\n obj.deviceType = this.device.type;\n obj.deviceIdentifier = this.device.identifier;\n obj.deviceName = this.device.name;\n // no push tokens for browser apps yet\n // obj.devicePushToken = this.device.pushToken;\n }\n\n if (this.token && this.provider != null) {\n obj.twoFactorToken = this.token;\n obj.twoFactorProvider = this.provider;\n obj.twoFactorRemember = this.remember ? '1' : '0';\n }\n\n return obj;\n }\n}\n","import { I18nService } from '../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nexport class WebAuthn {\n private iframe: HTMLIFrameElement = null;\n private connectorLink: HTMLAnchorElement;\n private parseFunction = this.parseMessage.bind(this);\n\n constructor(private win: Window, private webVaultUrl: string, private webAuthnNewTab: boolean,\n private platformUtilsService: PlatformUtilsService, private i18nService: I18nService,\n private successCallback: Function, private errorCallback: Function, private infoCallback: Function) {\n this.connectorLink = win.document.createElement('a');\n }\n\n init(data: any): void {\n const params = new URLSearchParams({\n data: this.base64Encode(JSON.stringify(data)),\n parent: encodeURIComponent(this.win.document.location.href),\n btnText: encodeURIComponent(this.i18nService.t('webAuthnAuthenticate')),\n v: '1',\n });\n\n if (this.webAuthnNewTab) {\n // Firefox fallback which opens the webauthn page in a new tab\n params.append('locale', this.i18nService.translationLocale);\n this.platformUtilsService.launchUri(`${this.webVaultUrl}/webauthn-fallback-connector.html?${params}`);\n } else {\n this.connectorLink.href = `${this.webVaultUrl}/webauthn-connector.html?${params}`;\n this.iframe = this.win.document.getElementById('webauthn_iframe') as HTMLIFrameElement;\n this.iframe.allow = 'publickey-credentials-get ' + new URL(this.webVaultUrl).origin;\n this.iframe.src = this.connectorLink.href;\n\n this.win.addEventListener('message', this.parseFunction, false);\n }\n }\n\n stop() {\n this.sendMessage('stop');\n }\n\n start() {\n this.sendMessage('start');\n }\n\n sendMessage(message: any) {\n if (!this.iframe || !this.iframe.src || !this.iframe.contentWindow) {\n return;\n }\n\n this.iframe.contentWindow.postMessage(message, this.iframe.src);\n }\n\n base64Encode(str: string): string {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => {\n return String.fromCharCode(('0x' + p1) as any);\n }));\n }\n\n cleanup() {\n this.win.removeEventListener('message', this.parseFunction, false);\n }\n\n private parseMessage(event: MessageEvent) {\n if (!this.validMessage(event)) {\n return;\n }\n\n const parts: string[] = event.data.split('|');\n if (parts[0] === 'success' && this.successCallback) {\n this.successCallback(parts[1]);\n } else if (parts[0] === 'error' && this.errorCallback) {\n this.errorCallback(parts[1]);\n } else if (parts[0] === 'info' && this.infoCallback) {\n this.infoCallback(parts[1]);\n }\n }\n\n private validMessage(event: MessageEvent) {\n if (event.origin == null || event.origin === '' || event.origin !== (this.connectorLink as any).origin ||\n event.data == null || typeof (event.data) !== 'string') {\n return false;\n }\n\n return event.data.indexOf('success|') === 0 || event.data.indexOf('error|') === 0 ||\n event.data.indexOf('info|') === 0;\n }\n}\n","export class VerifyEmailRequest {\n userId: string;\n token: string;\n\n constructor(userId: string, token: string) {\n this.userId = userId;\n this.token = token;\n }\n}\n","export class VerifyDeleteRecoverRequest {\n userId: string;\n token: string;\n\n constructor(userId: string, token: string) {\n this.userId = userId;\n this.token = token;\n }\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nexport class GroupRequest {\n name: string;\n accessAll: boolean;\n externalId: string;\n collections: SelectionReadOnlyRequest[] = [];\n}\n","export class OrganizationUserConfirmRequest {\n key: string;\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationUserInviteRequest {\n emails: string[] = [];\n type: OrganizationUserType;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n permissions: PermissionsApi;\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationUserUpdateRequest {\n type: OrganizationUserType;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n permissions: PermissionsApi;\n}\n","export class OrganizationUserUpdateGroupsRequest {\n groupIds: string[] = [];\n}\n","export abstract class AppIdService {\n getAppId: () => Promise;\n getAnonymousAppId: () => Promise;\n}\n","import { LogLevelType } from '../enums/logLevelType';\n\nexport abstract class LogService {\n debug: (message: string) => void;\n info: (message: string) => void;\n warning: (message: string) => void;\n error: (message: string) => void;\n write: (level: LogLevelType, message: string) => void;\n time: (label: string) => void;\n timeEnd: (label: string) => [number, number];\n}\n","import { PolicyType } from '../../enums/policyType';\n\nexport class PolicyRequest {\n type: PolicyType;\n enabled: boolean;\n data: any;\n}\n","export class OrganizationUpdateRequest {\n name: string;\n identifier: string;\n businessName: string;\n billingEmail: string;\n}\n","export enum TransactionType {\n Charge = 0,\n Credit = 1,\n PromotionalCredit = 2,\n ReferralCredit = 3,\n Refund = 4,\n}\n","export class VerifyBankRequest {\n amount1: number;\n amount2: number;\n}\n","export class BitPayInvoiceRequest {\n userId: string;\n organizationId: string;\n credit: boolean;\n amount: number;\n returnUrl: string;\n name: string;\n email: string;\n}\n","import { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { OrganizationTaxInfoUpdateRequest } from '../request/organizationTaxInfoUpdateRequest';\n\nexport class PaymentRequest extends OrganizationTaxInfoUpdateRequest {\n paymentMethodType: PaymentMethodType;\n paymentToken: string;\n}\n","import { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { PlanType } from '../../enums/planType';\n\nexport class OrganizationCreateRequest {\n name: string;\n businessName: string;\n billingEmail: string;\n planType: PlanType;\n key: string;\n paymentMethodType: PaymentMethodType;\n paymentToken: string;\n additionalSeats: number;\n additionalStorageGb: number;\n premiumAccessAddon: boolean;\n collectionName: string;\n taxIdNumber: string;\n billingAddressLine1: string;\n billingAddressLine2: string;\n billingAddressCity: string;\n billingAddressState: string;\n billingAddressPostalCode: string;\n billingAddressCountry: string;\n}\n","import { PlanType } from '../../enums/planType';\n\nexport class OrganizationUpgradeRequest {\n businessName: string;\n planType: PlanType;\n additionalSeats: number;\n additionalStorageGb: number;\n premiumAccessAddon: boolean;\n billingAddressCountry: string;\n billingAddressPostalCode: string;\n}\n","export class SeatRequest {\n seatAdjustment: number;\n}\n","export class StorageRequest {\n storageGbAdjustment: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorDuoRequest extends PasswordVerificationRequest {\n integrationKey: string;\n secretKey: string;\n host: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class TwoFactorProviderRequest extends PasswordVerificationRequest {\n type: TwoFactorProviderType;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorAuthenticatorRequest extends PasswordVerificationRequest {\n token: string;\n key: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorEmailRequest extends PasswordVerificationRequest {\n token: string;\n email: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorWebAuthnDeleteRequest extends PasswordVerificationRequest {\n id: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorWebAuthnRequest extends PasswordVerificationRequest {\n deviceResponse: PublicKeyCredential;\n name: string;\n id: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorYubioOtpRequest extends PasswordVerificationRequest {\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n}\n","import {\n Directive,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { EventService } from '../../abstractions/event.service';\nimport { ExportService } from '../../abstractions/export.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { EventType } from '../../enums/eventType';\n\n@Directive()\nexport class ExportComponent {\n @Output() onSaved = new EventEmitter();\n\n formPromise: Promise;\n masterPassword: string;\n format: 'json' | 'encrypted_json' | 'csv' = 'json';\n showPassword = false;\n\n constructor(protected cryptoService: CryptoService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected exportService: ExportService,\n protected eventService: EventService, protected win: Window) { }\n\n get encryptedFormat() {\n return this.format === 'encrypted_json';\n }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n return;\n }\n\n const acceptedWarning = await this.warningDialog();\n if (!acceptedWarning) {\n return;\n }\n\n const keyHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const storedKeyHash = await this.cryptoService.getKeyHash();\n if (storedKeyHash != null && keyHash != null && storedKeyHash === keyHash) {\n try {\n this.formPromise = this.getExportData();\n const data = await this.formPromise;\n this.downloadFile(data);\n this.saved();\n await this.collectEvent();\n } catch { }\n } else {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n }\n }\n\n async warningDialog() {\n if (this.encryptedFormat) {\n return await this.platformUtilsService.showDialog(\n '

' + this.i18nService.t('encExportKeyWarningDesc') +\n '

' + this.i18nService.t('encExportAccountWarningDesc'),\n this.i18nService.t('confirmVaultExport'), this.i18nService.t('exportVault'),\n this.i18nService.t('cancel'), 'warning',\n true);\n } else {\n return await this.platformUtilsService.showDialog(\n this.i18nService.t('exportWarningDesc'),\n this.i18nService.t('confirmVaultExport'), this.i18nService.t('exportVault'),\n this.i18nService.t('cancel'), 'warning');\n }\n }\n\n togglePassword() {\n this.showPassword = !this.showPassword;\n document.getElementById('masterPassword').focus();\n }\n\n protected saved() {\n this.onSaved.emit();\n }\n\n protected getExportData() {\n return this.exportService.getExport(this.format);\n }\n\n protected getFileName(prefix?: string) {\n let extension = this.format;\n if (this.format === 'encrypted_json') {\n if (prefix == null) {\n prefix = 'encrypted';\n } else {\n prefix = 'encrypted_' + prefix;\n }\n extension = 'json';\n }\n return this.exportService.getFileName(prefix, extension);\n }\n\n protected async collectEvent(): Promise {\n await this.eventService.collect(EventType.User_ClientExportedVault);\n }\n\n private downloadFile(csv: string): void {\n const fileName = this.getFileName();\n this.platformUtilsService.saveFile(this.win, csv, { type: 'text/plain' }, fileName);\n }\n}\n","export class AttachmentRequest {\n fileName: string;\n key: string;\n fileSize: number;\n adminRequest: boolean;\n}\n","import {\n CdkDragDrop,\n moveItemInArray,\n} from '@angular/cdk/drag-drop';\nimport {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { EventType } from '../../enums/eventType';\nimport { FieldType } from '../../enums/fieldType';\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../enums/policyType';\nimport { SecureNoteType } from '../../enums/secureNoteType';\nimport { UriMatchType } from '../../enums/uriMatchType';\n\nimport { AuditService } from '../../abstractions/audit.service';\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { EventService } from '../../abstractions/event.service';\nimport { FolderService } from '../../abstractions/folder.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Cipher } from '../../models/domain/cipher';\n\nimport { CardView } from '../../models/view/cardView';\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\nimport { FieldView } from '../../models/view/fieldView';\nimport { FolderView } from '../../models/view/folderView';\nimport { IdentityView } from '../../models/view/identityView';\nimport { LoginUriView } from '../../models/view/loginUriView';\nimport { LoginView } from '../../models/view/loginView';\nimport { SecureNoteView } from '../../models/view/secureNoteView';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive()\nexport class AddEditComponent implements OnInit {\n @Input() cloneMode: boolean = false;\n @Input() folderId: string = null;\n @Input() cipherId: string;\n @Input() type: CipherType;\n @Input() collectionIds: string[];\n @Input() organizationId: string = null;\n @Output() onSavedCipher = new EventEmitter();\n @Output() onDeletedCipher = new EventEmitter();\n @Output() onRestoredCipher = new EventEmitter();\n @Output() onCancelled = new EventEmitter();\n @Output() onEditAttachments = new EventEmitter();\n @Output() onShareCipher = new EventEmitter();\n @Output() onEditCollections = new EventEmitter();\n @Output() onGeneratePassword = new EventEmitter();\n\n editMode: boolean = false;\n cipher: CipherView;\n folders: FolderView[];\n collections: CollectionView[] = [];\n title: string;\n formPromise: Promise;\n deletePromise: Promise;\n restorePromise: Promise;\n checkPasswordPromise: Promise;\n showPassword: boolean = false;\n showCardCode: boolean = false;\n cipherType = CipherType;\n fieldType = FieldType;\n addFieldType: FieldType = FieldType.Text;\n typeOptions: any[];\n cardBrandOptions: any[];\n cardExpMonthOptions: any[];\n identityTitleOptions: any[];\n addFieldTypeOptions: any[];\n uriMatchOptions: any[];\n ownershipOptions: any[] = [];\n currentDate = new Date();\n allowPersonal = true;\n\n protected writeableCollections: CollectionView[];\n private previousCipherId: string;\n\n constructor(protected cipherService: CipherService, protected folderService: FolderService,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected auditService: AuditService, protected stateService: StateService,\n protected userService: UserService, protected collectionService: CollectionService,\n protected messagingService: MessagingService, protected eventService: EventService,\n protected policyService: PolicyService) {\n this.typeOptions = [\n { name: i18nService.t('typeLogin'), value: CipherType.Login },\n { name: i18nService.t('typeCard'), value: CipherType.Card },\n { name: i18nService.t('typeIdentity'), value: CipherType.Identity },\n { name: i18nService.t('typeSecureNote'), value: CipherType.SecureNote },\n ];\n this.cardBrandOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: 'Visa', value: 'Visa' },\n { name: 'Mastercard', value: 'Mastercard' },\n { name: 'American Express', value: 'Amex' },\n { name: 'Discover', value: 'Discover' },\n { name: 'Diners Club', value: 'Diners Club' },\n { name: 'JCB', value: 'JCB' },\n { name: 'Maestro', value: 'Maestro' },\n { name: 'UnionPay', value: 'UnionPay' },\n { name: i18nService.t('other'), value: 'Other' },\n ];\n this.cardExpMonthOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: '01 - ' + i18nService.t('january'), value: '1' },\n { name: '02 - ' + i18nService.t('february'), value: '2' },\n { name: '03 - ' + i18nService.t('march'), value: '3' },\n { name: '04 - ' + i18nService.t('april'), value: '4' },\n { name: '05 - ' + i18nService.t('may'), value: '5' },\n { name: '06 - ' + i18nService.t('june'), value: '6' },\n { name: '07 - ' + i18nService.t('july'), value: '7' },\n { name: '08 - ' + i18nService.t('august'), value: '8' },\n { name: '09 - ' + i18nService.t('september'), value: '9' },\n { name: '10 - ' + i18nService.t('october'), value: '10' },\n { name: '11 - ' + i18nService.t('november'), value: '11' },\n { name: '12 - ' + i18nService.t('december'), value: '12' },\n ];\n this.identityTitleOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: i18nService.t('mr'), value: i18nService.t('mr') },\n { name: i18nService.t('mrs'), value: i18nService.t('mrs') },\n { name: i18nService.t('ms'), value: i18nService.t('ms') },\n { name: i18nService.t('dr'), value: i18nService.t('dr') },\n ];\n this.addFieldTypeOptions = [\n { name: i18nService.t('cfTypeText'), value: FieldType.Text },\n { name: i18nService.t('cfTypeHidden'), value: FieldType.Hidden },\n { name: i18nService.t('cfTypeBoolean'), value: FieldType.Boolean },\n ];\n this.uriMatchOptions = [\n { name: i18nService.t('defaultMatchDetection'), value: null },\n { name: i18nService.t('baseDomain'), value: UriMatchType.Domain },\n { name: i18nService.t('host'), value: UriMatchType.Host },\n { name: i18nService.t('startsWith'), value: UriMatchType.StartsWith },\n { name: i18nService.t('regEx'), value: UriMatchType.RegularExpression },\n { name: i18nService.t('exact'), value: UriMatchType.Exact },\n { name: i18nService.t('never'), value: UriMatchType.Never },\n ];\n }\n\n async ngOnInit() {\n await this.init();\n }\n\n async init() {\n const policies = await this.policyService.getAll(PolicyType.PersonalOwnership);\n const myEmail = await this.userService.getEmail();\n this.ownershipOptions.push({ name: myEmail, value: null });\n const orgs = await this.userService.getAllOrganizations();\n orgs.sort(Utils.getSortFunction(this.i18nService, 'name')).forEach(o => {\n if (o.enabled && o.status === OrganizationUserStatusType.Confirmed) {\n this.ownershipOptions.push({ name: o.name, value: o.id });\n if (policies != null && o.usePolicies && !o.canManagePolicies && this.allowPersonal) {\n for (const policy of policies) {\n if (policy.organizationId === o.id && policy.enabled) {\n this.allowPersonal = false;\n this.ownershipOptions.splice(0, 1);\n // Default to the organization who owns this policy for now (if necessary)\n if (this.organizationId == null) {\n this.organizationId = o.id;\n }\n break;\n }\n }\n }\n }\n });\n this.writeableCollections = await this.loadCollections();\n }\n\n async load() {\n this.editMode = this.cipherId != null;\n if (this.editMode) {\n this.editMode = true;\n if (this.cloneMode) {\n this.cloneMode = true;\n this.title = this.i18nService.t('addItem');\n } else {\n this.title = this.i18nService.t('editItem');\n }\n } else {\n this.title = this.i18nService.t('addItem');\n }\n\n const addEditCipherInfo: any = await this.stateService.get('addEditCipherInfo');\n if (addEditCipherInfo != null) {\n this.cipher = addEditCipherInfo.cipher;\n this.collectionIds = addEditCipherInfo.collectionIds;\n }\n await this.stateService.remove('addEditCipherInfo');\n\n if (this.cipher == null) {\n if (this.editMode) {\n const cipher = await this.loadCipher();\n this.cipher = await cipher.decrypt();\n\n // Adjust Cipher Name if Cloning\n if (this.cloneMode) {\n this.cipher.name += ' - ' + this.i18nService.t('clone');\n // If not allowing personal ownership, update cipher's org Id to prompt downstream changes\n if (this.cipher.organizationId == null && !this.allowPersonal) {\n this.cipher.organizationId = this.organizationId;\n }\n }\n } else {\n this.cipher = new CipherView();\n this.cipher.organizationId = this.organizationId == null ? null : this.organizationId;\n this.cipher.folderId = this.folderId;\n this.cipher.type = this.type == null ? CipherType.Login : this.type;\n this.cipher.login = new LoginView();\n this.cipher.login.uris = [new LoginUriView()];\n this.cipher.card = new CardView();\n this.cipher.identity = new IdentityView();\n this.cipher.secureNote = new SecureNoteView();\n this.cipher.secureNote.type = SecureNoteType.Generic;\n }\n }\n\n if (this.cipher != null && (!this.editMode || addEditCipherInfo != null || this.cloneMode)) {\n await this.organizationChanged();\n if (this.collectionIds != null && this.collectionIds.length > 0 && this.collections.length > 0) {\n this.collections.forEach(c => {\n if (this.collectionIds.indexOf(c.id) > -1) {\n (c as any).checked = true;\n }\n });\n }\n }\n\n this.folders = await this.folderService.getAllDecrypted();\n\n if (this.editMode && this.previousCipherId !== this.cipherId) {\n this.eventService.collect(EventType.Cipher_ClientViewed, this.cipherId);\n }\n this.previousCipherId = this.cipherId;\n }\n\n async submit(): Promise {\n if (this.cipher.isDeleted) {\n return this.restore();\n }\n\n if (this.cipher.name == null || this.cipher.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n if ((!this.editMode || this.cloneMode) && !this.allowPersonal && this.cipher.organizationId == null) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('personalOwnershipSubmitError'));\n return false;\n }\n\n if ((!this.editMode || this.cloneMode) && this.cipher.type === CipherType.Login &&\n this.cipher.login.uris != null && this.cipher.login.uris.length === 1 &&\n (this.cipher.login.uris[0].uri == null || this.cipher.login.uris[0].uri === '')) {\n this.cipher.login.uris = null;\n }\n\n // Allows saving of selected collections during \"Add\" and \"Clone\" flows\n if ((!this.editMode || this.cloneMode) && this.cipher.organizationId != null) {\n this.cipher.collectionIds = this.collections == null ? [] :\n this.collections.filter(c => (c as any).checked).map(c => c.id);\n }\n\n // Clear current Cipher Id to trigger \"Add\" cipher flow\n if (this.cloneMode) {\n this.cipher.id = null;\n }\n\n const cipher = await this.encryptCipher();\n try {\n this.formPromise = this.saveCipher(cipher);\n await this.formPromise;\n this.cipher.id = cipher.id;\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode && !this.cloneMode ? 'editedItem' : 'addedItem'));\n this.onSavedCipher.emit(this.cipher);\n this.messagingService.send(this.editMode && !this.cloneMode ? 'editedCipher' : 'addedCipher');\n return true;\n } catch { }\n\n return false;\n }\n\n addUri() {\n if (this.cipher.type !== CipherType.Login) {\n return;\n }\n\n if (this.cipher.login.uris == null) {\n this.cipher.login.uris = [];\n }\n\n this.cipher.login.uris.push(new LoginUriView());\n }\n\n removeUri(uri: LoginUriView) {\n if (this.cipher.type !== CipherType.Login || this.cipher.login.uris == null) {\n return;\n }\n\n const i = this.cipher.login.uris.indexOf(uri);\n if (i > -1) {\n this.cipher.login.uris.splice(i, 1);\n }\n }\n\n addField() {\n if (this.cipher.fields == null) {\n this.cipher.fields = [];\n }\n\n const f = new FieldView();\n f.type = this.addFieldType;\n f.newField = true;\n this.cipher.fields.push(f);\n }\n\n removeField(field: FieldView) {\n const i = this.cipher.fields.indexOf(field);\n if (i > -1) {\n this.cipher.fields.splice(i, 1);\n }\n }\n\n trackByFunction(index: number, item: any) {\n return index;\n }\n\n cancel() {\n this.onCancelled.emit(this.cipher);\n }\n\n attachments() {\n this.onEditAttachments.emit(this.cipher);\n }\n\n share() {\n this.onShareCipher.emit(this.cipher);\n }\n\n editCollections() {\n this.onEditCollections.emit(this.cipher);\n }\n\n async delete(): Promise {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t(this.cipher.isDeleted ? 'permanentlyDeleteItemConfirmation' : 'deleteItemConfirmation'),\n this.i18nService.t('deleteItem'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.deleteCipher();\n await this.deletePromise;\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.cipher.isDeleted ? 'permanentlyDeletedItem' : 'deletedItem'));\n this.onDeletedCipher.emit(this.cipher);\n this.messagingService.send(this.cipher.isDeleted ? 'permanentlyDeletedCipher' : 'deletedCipher');\n } catch { }\n\n return true;\n }\n\n async restore(): Promise {\n if (!this.cipher.isDeleted) {\n return false;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('restoreItemConfirmation'), this.i18nService.t('restoreItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.restorePromise = this.restoreCipher();\n await this.restorePromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('restoredItem'));\n this.onRestoredCipher.emit(this.cipher);\n this.messagingService.send('restoredCipher');\n } catch { }\n\n return true;\n }\n\n async generatePassword(): Promise {\n if (this.cipher.login != null && this.cipher.login.password != null && this.cipher.login.password.length) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('overwritePasswordConfirmation'), this.i18nService.t('overwritePassword'),\n this.i18nService.t('yes'), this.i18nService.t('no'));\n if (!confirmed) {\n return false;\n }\n }\n\n this.onGeneratePassword.emit();\n return true;\n }\n\n togglePassword() {\n this.showPassword = !this.showPassword;\n document.getElementById('loginPassword').focus();\n if (this.editMode && this.showPassword) {\n this.eventService.collect(EventType.Cipher_ClientToggledPasswordVisible, this.cipherId);\n }\n }\n\n toggleCardCode() {\n this.showCardCode = !this.showCardCode;\n document.getElementById('cardCode').focus();\n if (this.editMode && this.showCardCode) {\n this.eventService.collect(EventType.Cipher_ClientToggledCardCodeVisible, this.cipherId);\n }\n }\n\n toggleFieldValue(field: FieldView) {\n const f = (field as any);\n f.showValue = !f.showValue;\n if (this.editMode && f.showValue) {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId);\n }\n }\n\n toggleUriOptions(uri: LoginUriView) {\n const u = (uri as any);\n u.showOptions = u.showOptions == null && uri.match != null ? false : !u.showOptions;\n }\n\n loginUriMatchChanged(uri: LoginUriView) {\n const u = (uri as any);\n u.showOptions = u.showOptions == null ? true : u.showOptions;\n }\n\n drop(event: CdkDragDrop) {\n moveItemInArray(this.cipher.fields, event.previousIndex, event.currentIndex);\n }\n\n async organizationChanged() {\n if (this.writeableCollections != null) {\n this.writeableCollections.forEach(c => (c as any).checked = false);\n }\n if (this.cipher.organizationId != null) {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.cipher.organizationId);\n const org = await this.userService.getOrganization(this.cipher.organizationId);\n if (org != null) {\n this.cipher.organizationUseTotp = org.useTotp;\n }\n } else {\n this.collections = [];\n }\n }\n\n async checkPassword() {\n if (this.checkPasswordPromise != null) {\n return;\n }\n\n if (this.cipher.login == null || this.cipher.login.password == null || this.cipher.login.password === '') {\n return;\n }\n\n this.checkPasswordPromise = this.auditService.passwordLeaked(this.cipher.login.password);\n const matches = await this.checkPasswordPromise;\n this.checkPasswordPromise = null;\n\n if (matches > 0) {\n this.platformUtilsService.showToast('warning', null,\n this.i18nService.t('passwordExposed', matches.toString()));\n } else {\n this.platformUtilsService.showToast('success', null, this.i18nService.t('passwordSafe'));\n }\n }\n\n protected async loadCollections() {\n const allCollections = await this.collectionService.getAllDecrypted();\n return allCollections.filter(c => !c.readOnly);\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected encryptCipher() {\n return this.cipherService.encrypt(this.cipher);\n }\n\n protected saveCipher(cipher: Cipher) {\n return this.cipherService.saveWithServer(cipher);\n }\n\n protected deleteCipher() {\n return this.cipher.isDeleted ? this.cipherService.deleteWithServer(this.cipher.id)\n : this.cipherService.softDeleteWithServer(this.cipher.id);\n }\n\n protected restoreCipher() {\n return this.cipherService.restoreWithServer(this.cipher.id);\n }\n}\n","export { AttachmentResponse } from './attachmentResponse';\nexport { CipherResponse } from './cipherResponse';\nexport { CollectionResponse } from './collectionResponse';\nexport { DeviceResponse } from './deviceResponse';\nexport { DomainsResponse } from './domainsResponse';\nexport { ErrorResponse } from './errorResponse';\nexport { FolderResponse } from './folderResponse';\nexport { GlobalDomainResponse } from './globalDomainResponse';\nexport { IdentityTokenResponse } from './identityTokenResponse';\nexport { IdentityTwoFactorResponse } from './identityTwoFactorResponse';\nexport { KeysResponse } from './keysResponse';\nexport { ListResponse } from './listResponse';\nexport { ProfileOrganizationResponse } from './profileOrganizationResponse';\nexport { ProfileResponse } from './profileResponse';\nexport { SyncResponse } from './syncResponse';\n","import { BaseResponse } from './baseResponse';\n\nexport class PasswordHistoryResponse extends BaseResponse {\n password: string;\n lastUsedDate: string;\n\n constructor(response: any) {\n super(response);\n this.password = this.getResponseProperty('Password');\n this.lastUsedDate = this.getResponseProperty('LastUsedDate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { DeviceType } from '../../enums/deviceType';\n\nexport class DeviceResponse extends BaseResponse {\n id: string;\n name: number;\n identifier: string;\n type: DeviceType;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.identifier = this.getResponseProperty('Identifier');\n this.type = this.getResponseProperty('Type');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class KeysResponse extends BaseResponse {\n privateKey: string;\n publicKey: string;\n\n constructor(response: any) {\n super(response);\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.publicKey = this.getResponseProperty('PublicKey');\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { SearchService } from '../../abstractions/search.service';\n\nimport { CipherView } from '../../models/view/cipherView';\n\n@Directive()\nexport class CiphersComponent {\n @Input() activeCipherId: string = null;\n @Output() onCipherClicked = new EventEmitter();\n @Output() onCipherRightClicked = new EventEmitter();\n @Output() onAddCipher = new EventEmitter();\n @Output() onAddCipherOptions = new EventEmitter();\n\n loaded: boolean = false;\n ciphers: CipherView[] = [];\n pagedCiphers: CipherView[] = [];\n searchText: string;\n searchPlaceholder: string = null;\n filter: (cipher: CipherView) => boolean = null;\n deleted: boolean = false;\n\n protected searchPending = false;\n protected didScroll = false;\n protected pageSize = 100;\n\n private searchTimeout: any = null;\n private pagedCiphersCount = 0;\n private refreshing = false;\n\n constructor(protected searchService: SearchService) { }\n\n async load(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {\n this.deleted = deleted || false;\n await this.applyFilter(filter);\n this.loaded = true;\n }\n\n loadMore() {\n if (this.ciphers.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedCiphers.length;\n let pagedSize = this.pageSize;\n if (this.refreshing && pagedLength === 0 && this.pagedCiphersCount > this.pageSize) {\n pagedSize = this.pagedCiphersCount;\n }\n if (this.ciphers.length > pagedLength) {\n this.pagedCiphers = this.pagedCiphers.concat(this.ciphers.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedCiphersCount = this.pagedCiphers.length;\n this.didScroll = this.pagedCiphers.length > this.pageSize;\n }\n\n async reload(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {\n this.loaded = false;\n this.ciphers = [];\n await this.load(filter, deleted);\n }\n\n async refresh() {\n try {\n this.refreshing = true;\n await this.reload(this.filter, this.deleted);\n } finally {\n this.refreshing = false;\n }\n }\n\n async applyFilter(filter: (cipher: CipherView) => boolean = null) {\n this.filter = filter;\n await this.search(null);\n }\n\n async search(timeout: number = null, indexedCiphers?: CipherView[]) {\n this.searchPending = false;\n if (this.searchTimeout != null) {\n clearTimeout(this.searchTimeout);\n }\n const deletedFilter: (cipher: CipherView) => boolean = c => c.isDeleted === this.deleted;\n if (timeout == null) {\n this.ciphers = await this.searchService.searchCiphers(this.searchText, [this.filter, deletedFilter], indexedCiphers);\n await this.resetPaging();\n return;\n }\n this.searchPending = true;\n this.searchTimeout = setTimeout(async () => {\n this.ciphers = await this.searchService.searchCiphers(this.searchText, [this.filter, deletedFilter], indexedCiphers);\n await this.resetPaging();\n this.searchPending = false;\n }, timeout);\n }\n\n selectCipher(cipher: CipherView) {\n this.onCipherClicked.emit(cipher);\n }\n\n rightClickCipher(cipher: CipherView) {\n this.onCipherRightClicked.emit(cipher);\n }\n\n addCipher() {\n this.onAddCipher.emit();\n }\n\n addCipherOptions() {\n this.onAddCipherOptions.emit();\n }\n\n isSearching() {\n return !this.searchPending && this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.ciphers.length > this.pageSize;\n }\n\n async resetPaging() {\n this.pagedCiphers = [];\n this.loadMore();\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\n\nimport { Cipher } from '../../models/domain/cipher';\n\n@Directive()\nexport class CollectionsComponent implements OnInit {\n @Input() cipherId: string;\n @Input() allowSelectNone = false;\n @Output() onSavedCollections = new EventEmitter();\n\n formPromise: Promise;\n cipher: CipherView;\n collectionIds: string[];\n collections: CollectionView[] = [];\n\n protected cipherDomain: Cipher;\n\n constructor(protected collectionService: CollectionService, protected platformUtilsService: PlatformUtilsService,\n protected i18nService: I18nService, protected cipherService: CipherService) { }\n\n async ngOnInit() {\n await this.load();\n }\n\n async load() {\n this.cipherDomain = await this.loadCipher();\n this.collectionIds = this.loadCipherCollections();\n this.cipher = await this.cipherDomain.decrypt();\n this.collections = await this.loadCollections();\n\n this.collections.forEach(c => (c as any).checked = false);\n if (this.collectionIds != null) {\n this.collections.forEach(c => {\n (c as any).checked = this.collectionIds != null && this.collectionIds.indexOf(c.id) > -1;\n });\n }\n }\n\n async submit() {\n const selectedCollectionIds = this.collections\n .filter(c => !!(c as any).checked)\n .map(c => c.id);\n if (!this.allowSelectNone && selectedCollectionIds.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectOneCollection'));\n return;\n }\n this.cipherDomain.collectionIds = selectedCollectionIds;\n try {\n this.formPromise = this.saveCollections();\n await this.formPromise;\n this.onSavedCollections.emit();\n this.platformUtilsService.showToast('success', null, this.i18nService.t('editedItem'));\n } catch { }\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected loadCipherCollections() {\n return this.cipherDomain.collectionIds;\n }\n\n protected async loadCollections() {\n const allCollections = await this.collectionService.getAllDecrypted();\n return allCollections.filter(c => !c.readOnly && c.organizationId === this.cipher.organizationId);\n }\n\n protected saveCollections() {\n return this.cipherService.saveCollectionsWithServer(this.cipherDomain);\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\n\nimport { CollectionView } from '../../models/view/collectionView';\nimport { FolderView } from '../../models/view/folderView';\n\nimport { TreeNode } from '../../models/domain/treeNode';\n\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { FolderService } from '../../abstractions/folder.service';\nimport { StorageService } from '../../abstractions/storage.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\n@Directive()\nexport class GroupingsComponent {\n @Input() showFolders = true;\n @Input() showCollections = true;\n @Input() showFavorites = true;\n @Input() showTrash = true;\n\n @Output() onAllClicked = new EventEmitter();\n @Output() onFavoritesClicked = new EventEmitter();\n @Output() onTrashClicked = new EventEmitter();\n @Output() onCipherTypeClicked = new EventEmitter();\n @Output() onFolderClicked = new EventEmitter();\n @Output() onAddFolder = new EventEmitter();\n @Output() onEditFolder = new EventEmitter();\n @Output() onCollectionClicked = new EventEmitter();\n\n folders: FolderView[];\n nestedFolders: TreeNode[];\n collections: CollectionView[];\n nestedCollections: TreeNode[];\n loaded: boolean = false;\n cipherType = CipherType;\n selectedAll: boolean = false;\n selectedFavorites: boolean = false;\n selectedTrash: boolean = false;\n selectedType: CipherType = null;\n selectedFolder: boolean = false;\n selectedFolderId: string = null;\n selectedCollectionId: string = null;\n\n private collapsedGroupings: Set;\n private collapsedGroupingsKey: string;\n\n constructor(protected collectionService: CollectionService, protected folderService: FolderService,\n protected storageService: StorageService, protected userService: UserService) { }\n\n async load(setLoaded = true) {\n const userId = await this.userService.getUserId();\n this.collapsedGroupingsKey = ConstantsService.collapsedGroupingsKey + '_' + userId;\n const collapsedGroupings = await this.storageService.get(this.collapsedGroupingsKey);\n if (collapsedGroupings == null) {\n this.collapsedGroupings = new Set();\n } else {\n this.collapsedGroupings = new Set(collapsedGroupings);\n }\n\n await this.loadFolders();\n await this.loadCollections();\n\n if (setLoaded) {\n this.loaded = true;\n }\n }\n\n async loadCollections(organizationId?: string) {\n if (!this.showCollections) {\n return;\n }\n const collections = await this.collectionService.getAllDecrypted();\n if (organizationId != null) {\n this.collections = collections.filter(c => c.organizationId === organizationId);\n } else {\n this.collections = collections;\n }\n this.nestedCollections = await this.collectionService.getAllNested(this.collections);\n }\n\n async loadFolders() {\n if (!this.showFolders) {\n return;\n }\n this.folders = await this.folderService.getAllDecrypted();\n this.nestedFolders = await this.folderService.getAllNested();\n }\n\n selectAll() {\n this.clearSelections();\n this.selectedAll = true;\n this.onAllClicked.emit();\n }\n\n selectFavorites() {\n this.clearSelections();\n this.selectedFavorites = true;\n this.onFavoritesClicked.emit();\n }\n\n selectTrash() {\n this.clearSelections();\n this.selectedTrash = true;\n this.onTrashClicked.emit();\n }\n\n selectType(type: CipherType) {\n this.clearSelections();\n this.selectedType = type;\n this.onCipherTypeClicked.emit(type);\n }\n\n selectFolder(folder: FolderView) {\n this.clearSelections();\n this.selectedFolder = true;\n this.selectedFolderId = folder.id;\n this.onFolderClicked.emit(folder);\n }\n\n addFolder() {\n this.onAddFolder.emit();\n }\n\n editFolder(folder: FolderView) {\n this.onEditFolder.emit(folder);\n }\n\n selectCollection(collection: CollectionView) {\n this.clearSelections();\n this.selectedCollectionId = collection.id;\n this.onCollectionClicked.emit(collection);\n }\n\n clearSelections() {\n this.selectedAll = false;\n this.selectedFavorites = false;\n this.selectedTrash = false;\n this.selectedType = null;\n this.selectedFolder = false;\n this.selectedFolderId = null;\n this.selectedCollectionId = null;\n }\n\n collapse(grouping: FolderView | CollectionView, idPrefix = '') {\n if (grouping.id == null) {\n return;\n }\n const id = idPrefix + grouping.id;\n if (this.isCollapsed(grouping, idPrefix)) {\n this.collapsedGroupings.delete(id);\n } else {\n this.collapsedGroupings.add(id);\n }\n this.storageService.save(this.collapsedGroupingsKey, this.collapsedGroupings);\n }\n\n isCollapsed(grouping: FolderView | CollectionView, idPrefix = '') {\n return this.collapsedGroupings.has(idPrefix + grouping.id);\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendAccessResponse } from '../response/sendAccessResponse';\n\nimport { SendAccessView } from '../view/sendAccessView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SendFile } from './sendFile';\nimport { SendText } from './sendText';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class SendAccess extends Domain {\n id: string;\n type: SendType;\n name: EncString;\n file: SendFile;\n text: SendText;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(obj?: SendAccessResponse, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n name: null,\n expirationDate: null,\n creatorIdentifier: null,\n }, alreadyEncrypted, ['id', 'expirationDate', 'creatorIdentifier']);\n\n this.type = obj.type;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendText(obj.text, alreadyEncrypted);\n break;\n case SendType.File:\n this.file = new SendFile(obj.file, alreadyEncrypted);\n break;\n default:\n break;\n }\n }\n\n async decrypt(key: SymmetricCryptoKey): Promise {\n const model = new SendAccessView(this);\n\n await this.decryptObj(model, {\n name: null,\n }, null, key);\n\n switch (this.type) {\n case SendType.File:\n model.file = await this.file.decrypt(key);\n break;\n case SendType.Text:\n model.text = await this.text.decrypt(key);\n break;\n default:\n break;\n }\n\n return model;\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendAccess } from '../domain/sendAccess';\n\nimport { SendFileView } from './sendFileView';\nimport { SendTextView } from './sendTextView';\nimport { View } from './view';\n\nexport class SendAccessView implements View {\n id: string = null;\n name: string = null;\n type: SendType = null;\n text = new SendTextView();\n file = new SendFileView();\n expirationDate: Date = null;\n creatorIdentifier: string = null;\n\n constructor(s?: SendAccess) {\n if (!s) {\n return;\n }\n\n this.id = s.id;\n this.type = s.type;\n this.expirationDate = s.expirationDate;\n this.creatorIdentifier = s.creatorIdentifier;\n }\n}\n","export class SendAccessRequest {\n password: string;\n}\n","import {\n NgZone,\n OnInit,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../../enums/policyType';\nimport { SendType } from '../../../enums/sendType';\n\nimport { SendView } from '../../../models/view/sendView';\n\nimport { EnvironmentService } from '../../../abstractions/environment.service';\nimport { I18nService } from '../../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../../abstractions/policy.service';\nimport { SearchService } from '../../../abstractions/search.service';\nimport { SendService } from '../../../abstractions/send.service';\nimport { UserService } from '../../../abstractions/user.service';\n\nexport class SendComponent implements OnInit {\n\n disableSend = false;\n sendType = SendType;\n loaded = false;\n loading = true;\n refreshing = false;\n expired: boolean = false;\n type: SendType = null;\n sends: SendView[] = [];\n filteredSends: SendView[] = [];\n searchText: string;\n selectedType: SendType;\n selectedAll: boolean;\n searchPlaceholder: string;\n filter: (cipher: SendView) => boolean;\n searchPending = false;\n hasSearched = false; // search() function called - returns true if text qualifies for search\n\n actionPromise: any;\n onSuccessfulRemovePassword: () => Promise;\n onSuccessfulDelete: () => Promise;\n onSuccessfulLoad: () => Promise;\n\n private searchTimeout: any;\n\n constructor(protected sendService: SendService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected environmentService: EnvironmentService,\n protected ngZone: NgZone, protected searchService: SearchService,\n protected policyService: PolicyService, protected userService: UserService) { }\n\n async ngOnInit() {\n const policies = await this.policyService.getAll(PolicyType.DisableSend);\n const organizations = await this.userService.getAllOrganizations();\n this.disableSend = organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n policies.some(p => p.organizationId === o.id && p.enabled);\n });\n }\n\n async load(filter: (send: SendView) => boolean = null) {\n this.loading = true;\n const sends = await this.sendService.getAllDecrypted();\n this.sends = sends;\n if (this.onSuccessfulLoad != null) {\n await this.onSuccessfulLoad();\n } else {\n // Default action\n this.selectAll();\n }\n this.loading = false;\n this.loaded = true;\n }\n\n async reload(filter: (send: SendView) => boolean = null) {\n this.loaded = false;\n this.sends = [];\n await this.load(filter);\n }\n\n async refresh() {\n try {\n this.refreshing = true;\n await this.reload(this.filter);\n } finally {\n this.refreshing = false;\n }\n }\n\n async applyFilter(filter: (send: SendView) => boolean = null) {\n this.filter = filter;\n await this.search(null);\n }\n\n async search(timeout: number = null) {\n this.searchPending = false;\n if (this.searchTimeout != null) {\n clearTimeout(this.searchTimeout);\n }\n if (timeout == null) {\n this.hasSearched = this.searchService.isSearchable(this.searchText);\n this.filteredSends = this.sends.filter(s => this.filter == null || this.filter(s));\n this.applyTextSearch();\n return;\n }\n this.searchPending = true;\n this.searchTimeout = setTimeout(async () => {\n this.hasSearched = this.searchService.isSearchable(this.searchText);\n this.filteredSends = this.sends.filter(s => this.filter == null || this.filter(s));\n this.applyTextSearch();\n this.searchPending = false;\n }, timeout);\n }\n\n async removePassword(s: SendView): Promise {\n if (this.actionPromise != null || s.password == null) {\n return;\n }\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('removePasswordConfirmation'),\n this.i18nService.t('removePassword'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.sendService.removePasswordWithServer(s.id);\n await this.actionPromise;\n if (this.onSuccessfulRemovePassword != null) {\n this.onSuccessfulRemovePassword();\n } else {\n // Default actions\n this.platformUtilsService.showToast('success', null, this.i18nService.t('removedPassword'));\n await this.load();\n }\n } catch { }\n this.actionPromise = null;\n }\n\n async delete(s: SendView): Promise {\n if (this.actionPromise != null) {\n return false;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteSendConfirmation'),\n this.i18nService.t('deleteSend'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.sendService.deleteWithServer(s.id);\n await this.actionPromise;\n\n if (this.onSuccessfulDelete != null) {\n this.onSuccessfulDelete();\n } else {\n // Default actions\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedSend'));\n await this.refresh();\n }\n } catch { }\n this.actionPromise = null;\n return true;\n }\n\n copy(s: SendView) {\n let sendLinkBaseUrl = 'https://send.bitwarden.com/#';\n const webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl != null) {\n sendLinkBaseUrl = webVaultUrl + '/#/send/';\n }\n const link = sendLinkBaseUrl + s.accessId + '/' + s.urlB64Key;\n this.platformUtilsService.copyToClipboard(link);\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('valueCopied', this.i18nService.t('sendLink')));\n }\n\n searchTextChanged() {\n this.search(200);\n }\n\n selectAll() {\n this.clearSelections();\n this.selectedAll = true;\n this.applyFilter(null);\n }\n\n selectType(type: SendType) {\n this.clearSelections();\n this.selectedType = type;\n this.applyFilter(s => s.type === type);\n }\n\n clearSelections() {\n this.selectedAll = false;\n this.selectedType = null;\n }\n\n private applyTextSearch() {\n if (this.searchText != null) {\n this.filteredSends = this.searchService.searchSends(this.filteredSends, this.searchText);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\n\nimport {\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../../enums/policyType';\nimport { SendType } from '../../../enums/sendType';\n\nimport { EnvironmentService } from '../../../abstractions/environment.service';\nimport { I18nService } from '../../../abstractions/i18n.service';\nimport { MessagingService } from '../../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../../abstractions/policy.service';\nimport { SendService } from '../../../abstractions/send.service';\nimport { UserService } from '../../../abstractions/user.service';\n\nimport { SendFileView } from '../../../models/view/sendFileView';\nimport { SendTextView } from '../../../models/view/sendTextView';\nimport { SendView } from '../../../models/view/sendView';\n\nimport { EncArrayBuffer } from '../../../models/domain/encArrayBuffer';\nimport { Send } from '../../../models/domain/send';\n\n// TimeOption is used for the dropdown implementation of custom times\n// Standard = displayed time; Military = stored time\ninterface TimeOption {\n standard: string;\n military: string;\n}\n\nenum DateField {\n DeletionDate = 'deletion',\n ExpriationDate = 'expiration',\n}\n\nexport class AddEditComponent implements OnInit {\n @Input() sendId: string;\n @Input() type: SendType;\n\n @Output() onSavedSend = new EventEmitter();\n @Output() onDeletedSend = new EventEmitter();\n @Output() onCancelled = new EventEmitter();\n\n copyLink = false;\n disableSend = false;\n disableHideEmail = false;\n send: SendView;\n deletionDate: string;\n deletionDateFallback: string;\n deletionTimeFallback: string;\n expirationDate: string = null;\n expirationDateFallback: string;\n expirationTimeFallback: string;\n hasPassword: boolean;\n password: string;\n showPassword = false;\n formPromise: Promise;\n deletePromise: Promise;\n sendType = SendType;\n typeOptions: any[];\n deletionDateOptions: any[];\n expirationDateOptions: any[];\n deletionDateSelect = 168;\n expirationDateSelect: number = null;\n canAccessPremium = true;\n emailVerified = true;\n alertShown = false;\n showOptions = false;\n\n safariDeletionTime: string;\n safariExpirationTime: string;\n safariDeletionTimeOptions: TimeOption[];\n safariExpirationTimeOptions: TimeOption[];\n\n private sendLinkBaseUrl: string;\n\n constructor(protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected environmentService: EnvironmentService, protected datePipe: DatePipe,\n protected sendService: SendService, protected userService: UserService,\n protected messagingService: MessagingService, protected policyService: PolicyService) {\n this.typeOptions = [\n { name: i18nService.t('sendTypeFile'), value: SendType.File },\n { name: i18nService.t('sendTypeText'), value: SendType.Text },\n ];\n this.deletionDateOptions = this.expirationDateOptions = [\n { name: i18nService.t('oneHour'), value: 1 },\n { name: i18nService.t('oneDay'), value: 24 },\n { name: i18nService.t('days', '2'), value: 48 },\n { name: i18nService.t('days', '3'), value: 72 },\n { name: i18nService.t('days', '7'), value: 168 },\n { name: i18nService.t('days', '30'), value: 720 },\n { name: i18nService.t('custom'), value: 0 },\n ];\n this.expirationDateOptions = [\n { name: i18nService.t('never'), value: null },\n ].concat([...this.deletionDateOptions]);\n\n const webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl == null) {\n this.sendLinkBaseUrl = 'https://send.bitwarden.com/#';\n } else {\n this.sendLinkBaseUrl = webVaultUrl + '/#/send/';\n }\n }\n\n get link(): string {\n if (this.send.id != null && this.send.accessId != null) {\n return this.sendLinkBaseUrl + this.send.accessId + '/' + this.send.urlB64Key;\n }\n return null;\n }\n\n get isSafari() {\n return this.platformUtilsService.isSafari();\n }\n\n get isDateTimeLocalSupported(): boolean {\n return !(this.platformUtilsService.isFirefox() || this.platformUtilsService.isSafari());\n }\n\n async ngOnInit() {\n await this.load();\n }\n\n get editMode(): boolean {\n return this.sendId != null;\n }\n\n get title(): string {\n return this.i18nService.t(\n this.editMode ?\n 'editSend' :\n 'createSend'\n );\n }\n\n get expirationDateTimeFallback() {\n return this.nullOrWhiteSpaceCount([this.expirationDateFallback, this.expirationTimeFallback]) > 0 ?\n null :\n `${this.formatDateFallbacks(this.expirationDateFallback)}T${this.expirationTimeFallback}`;\n }\n\n get deletionDateTimeFallback() {\n return this.nullOrWhiteSpaceCount([this.deletionDateFallback, this.deletionTimeFallback]) > 0 ?\n null :\n `${this.formatDateFallbacks(this.deletionDateFallback)}T${this.deletionTimeFallback}`;\n }\n\n async load() {\n const disableSendPolicies = await this.policyService.getAll(PolicyType.DisableSend);\n const organizations = await this.userService.getAllOrganizations();\n this.disableSend = organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n disableSendPolicies.some(p => p.organizationId === o.id && p.enabled);\n });\n\n const sendOptionsPolicies = await this.policyService.getAll(PolicyType.SendOptions);\n this.disableHideEmail = await organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n sendOptionsPolicies.some(p => p.organizationId === o.id && p.enabled && p.data.disableHideEmail);\n });\n\n this.canAccessPremium = await this.userService.canAccessPremium();\n this.emailVerified = await this.userService.getEmailVerified();\n if (!this.canAccessPremium || !this.emailVerified) {\n this.type = SendType.Text;\n }\n\n if (this.send == null) {\n if (this.editMode) {\n const send = await this.loadSend();\n this.send = await send.decrypt();\n } else {\n this.send = new SendView();\n this.send.type = this.type == null ? SendType.File : this.type;\n this.send.file = new SendFileView();\n this.send.text = new SendTextView();\n this.send.deletionDate = new Date();\n this.send.deletionDate.setDate(this.send.deletionDate.getDate() + 7);\n }\n }\n\n this.hasPassword = this.send.password != null && this.send.password.trim() !== '';\n\n // Parse dates\n if (!this.isDateTimeLocalSupported) {\n const deletionDateParts = this.dateToSplitString(this.send.deletionDate);\n if (deletionDateParts !== undefined && deletionDateParts.length > 0) {\n this.deletionDateFallback = deletionDateParts[0];\n this.deletionTimeFallback = deletionDateParts[1];\n if (this.isSafari) {\n this.safariDeletionTime = this.deletionTimeFallback;\n }\n }\n\n const expirationDateParts = this.dateToSplitString(this.send.expirationDate);\n if (expirationDateParts !== undefined && expirationDateParts.length > 0) {\n this.expirationDateFallback = expirationDateParts[0];\n this.expirationTimeFallback = expirationDateParts[1];\n if (this.isSafari) {\n this.safariExpirationTime = this.expirationTimeFallback;\n }\n }\n } else {\n this.deletionDate = this.dateToString(this.send.deletionDate);\n this.expirationDate = this.dateToString(this.send.expirationDate);\n }\n\n if (this.isSafari) {\n this.safariDeletionTimeOptions = this.safariTimeOptions(DateField.DeletionDate);\n this.safariExpirationTimeOptions = this.safariTimeOptions(DateField.ExpriationDate);\n }\n }\n\n async submit(): Promise {\n if (!this.isDateTimeLocalSupported) {\n if (this.isSafari) {\n this.expirationTimeFallback = this.safariExpirationTime ?? this.expirationTimeFallback;\n this.deletionTimeFallback = this.safariDeletionTime ?? this.deletionTimeFallback;\n }\n this.deletionDate = this.deletionDateTimeFallback;\n if (this.expirationDateTimeFallback != null && isNaN(Date.parse(this.expirationDateTimeFallback))) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('expirationDateIsInvalid'));\n return;\n }\n if (isNaN(Date.parse(this.deletionDateTimeFallback))) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('deletionDateIsInvalid'));\n return;\n }\n if (this.nullOrWhiteSpaceCount([this.expirationDateFallback, this.expirationTimeFallback]) === 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('expirationDateAndTimeRequired'));\n return;\n }\n if (this.editMode || this.expirationDateSelect === 0) {\n this.expirationDate = this.expirationDateTimeFallback;\n }\n }\n\n if (this.disableSend) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('sendDisabledWarning'));\n return false;\n }\n\n if (this.send.name == null || this.send.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n let file: File = null;\n if (this.send.type === SendType.File && !this.editMode) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n file = files[0];\n if (files[0].size > 524288000) { // 500 MB\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('maxFileSize'));\n return;\n }\n }\n\n if (!this.editMode) {\n const now = new Date();\n if (this.deletionDateSelect > 0) {\n const d = new Date();\n d.setHours(now.getHours() + this.deletionDateSelect);\n this.deletionDate = this.dateToString(d);\n }\n if (this.expirationDateSelect != null && this.expirationDateSelect > 0) {\n const d = new Date();\n d.setHours(now.getHours() + this.expirationDateSelect);\n this.expirationDate = this.dateToString(d);\n }\n }\n\n if (this.password != null && this.password.trim() === '') {\n this.password = null;\n }\n\n const encSend = await this.encryptSend(file);\n try {\n this.formPromise = this.sendService.saveWithServer(encSend);\n await this.formPromise;\n if (this.send.id == null) {\n this.send.id = encSend[0].id;\n }\n if (this.send.accessId == null) {\n this.send.accessId = encSend[0].accessId;\n }\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode ? 'editedSend' : 'createdSend'));\n this.onSavedSend.emit(this.send);\n if (this.copyLink) {\n this.copyLinkToClipboard(this.link);\n }\n return true;\n } catch { }\n\n return false;\n }\n\n clearExpiration() {\n this.expirationDate = null;\n this.expirationDateFallback = null;\n this.expirationTimeFallback = null;\n this.safariExpirationTime = null;\n }\n\n copyLinkToClipboard(link: string) {\n if (link != null) {\n this.platformUtilsService.copyToClipboard(link);\n }\n }\n\n async delete(): Promise {\n if (this.deletePromise != null) {\n return false;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteSendConfirmation'),\n this.i18nService.t('deleteSend'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.sendService.deleteWithServer(this.send.id);\n await this.deletePromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedSend'));\n await this.load();\n this.onDeletedSend.emit(this.send);\n return true;\n } catch { }\n\n return false;\n }\n\n typeChanged() {\n if (this.send.type === SendType.File && !this.alertShown)\n {\n if (!this.canAccessPremium) {\n this.alertShown = true;\n this.messagingService.send('premiumRequired');\n } else if (!this.emailVerified) {\n this.alertShown = true;\n this.messagingService.send('emailVerificationRequired');\n }\n }\n }\n\n toggleOptions() {\n this.showOptions = !this.showOptions;\n }\n\n expirationDateFallbackChanged() {\n this.isSafari ?\n this.safariExpirationTime = this.safariExpirationTime ?? '00:00' :\n this.expirationTimeFallback = this.expirationTimeFallback ?? this.datePipe.transform(new Date(), 'HH:mm');\n }\n\n protected async loadSend(): Promise {\n return this.sendService.get(this.sendId);\n }\n\n protected async encryptSend(file: File): Promise<[Send, EncArrayBuffer]> {\n const sendData = await this.sendService.encrypt(this.send, file, this.password, null);\n\n // Parse dates\n try {\n sendData[0].deletionDate = this.deletionDate == null ? null : new Date(this.deletionDate);\n } catch {\n sendData[0].deletionDate = null;\n }\n try {\n sendData[0].expirationDate = this.expirationDate == null ? null : new Date(this.expirationDate);\n } catch {\n sendData[0].expirationDate = null;\n }\n\n return sendData;\n }\n\n protected dateToString(d: Date) {\n return d == null ? null : this.datePipe.transform(d, 'yyyy-MM-ddTHH:mm');\n }\n\n protected formatDateFallbacks(dateString: string) {\n try {\n // The Firefox date picker doesn't supply a time, safari's polyfill does.\n // Unknown if Safari's native date picker will or not when it releases.\n if (!this.isSafari) {\n dateString += ' 00:00';\n }\n return this.datePipe.transform(new Date(dateString), 'yyyy-MM-dd');\n } catch {\n // this should never happen\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('dateParsingError'));\n }\n }\n\n protected dateToSplitString(d: Date) {\n if (d != null) {\n const date = !this.isSafari ?\n this.datePipe.transform(d, 'yyyy-MM-dd') :\n this.datePipe.transform(d, 'MM/dd/yyyy');\n const time = this.datePipe.transform(d, 'HH:mm');\n return [date, time];\n }\n }\n\n protected togglePasswordVisible() {\n this.showPassword = !this.showPassword;\n document.getElementById('password').focus();\n }\n\n protected nullOrWhiteSpaceCount(strarray: string[]): number {\n return strarray.filter(str => str == null || str.trim() === '').length;\n }\n\n protected safariTimeOptions(field: DateField): TimeOption[] {\n // init individual arrays for major sort groups\n const noon: TimeOption[] = [];\n const midnight: TimeOption[] = [];\n const ams: TimeOption[] = [];\n const pms: TimeOption[] = [];\n\n // determine minute skip (5 min, 10 min, 15 min, etc.)\n const minuteIncrementer = 15;\n\n // loop through each hour on a 12 hour system\n for (let h = 1; h <= 12; h++) {\n // loop through each minute in the hour using the skip to incriment\n for (let m = 0; m < 60; m += minuteIncrementer) {\n // init the final strings that will be added to the lists\n let hour = h.toString();\n let minutes = m.toString();\n\n // add prepending 0s to single digit hours/minutes\n if (h < 10) {\n hour = '0' + hour;\n }\n if (m < 10) {\n minutes = '0' + minutes;\n }\n\n // build time strings and push to relevant sort groups\n if (h === 12) {\n const midnightOption: TimeOption = {\n standard: `${hour}:${minutes} AM`,\n military: `00:${minutes}`,\n };\n midnight.push(midnightOption);\n\n const noonOption: TimeOption = {\n standard: `${hour}:${minutes} PM`,\n military: `${hour}:${minutes}`,\n };\n noon.push(noonOption);\n } else {\n const amOption: TimeOption = {\n standard: `${hour}:${minutes} AM`,\n military: `${hour}:${minutes}`,\n };\n ams.push(amOption);\n\n const pmOption: TimeOption = {\n standard: `${hour}:${minutes} PM`,\n military: `${h + 12}:${minutes}`,\n };\n pms.push(pmOption);\n }\n }\n }\n\n // bring all the arrays together in the right order\n const validTimes = [...midnight, ...ams, ...noon, ...pms];\n\n // determine if an unsupported value already exists on the send & add that to the top of the option list\n // example: if the Send was created with a different client\n if (field === DateField.ExpriationDate && this.expirationDateTimeFallback != null && this.editMode) {\n const previousValue: TimeOption = {\n standard: this.datePipe.transform(this.expirationDateTimeFallback, 'hh:mm a'),\n military: this.datePipe.transform(this.expirationDateTimeFallback, 'HH:mm'),\n };\n return [previousValue, { standard: null, military: null }, ...validTimes];\n } else if (field === DateField.DeletionDate && this.deletionDateTimeFallback != null && this.editMode) {\n const previousValue: TimeOption = {\n standard: this.datePipe.transform(this.deletionDateTimeFallback, 'hh:mm a'),\n military: this.datePipe.transform(this.deletionDateTimeFallback, 'HH:mm'),\n };\n return [previousValue, ...validTimes];\n } else {\n return [{ standard: null, military: null }, ...validTimes];\n }\n }\n}\n","export class UpdateProfileRequest {\n name: string;\n masterPasswordHint: string;\n culture = 'en-US'; // deprecated\n\n constructor(name: string, masterPasswordHint: string) {\n this.name = name;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n }\n}\n","import { EmailTokenRequest } from './emailTokenRequest';\n\nexport class EmailRequest extends EmailTokenRequest {\n newMasterPasswordHash: string;\n token: string;\n key: string;\n}\n","import { PasswordRequest } from './passwordRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class KdfRequest extends PasswordRequest {\n kdf: KdfType;\n kdfIterations: number;\n}\n","export class UpdateDomainsRequest {\n equivalentDomains: string[][];\n excludedGlobalEquivalentDomains: number[];\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { PasswordGeneratorPolicyOptions } from '../../models/domain/passwordGeneratorPolicyOptions';\n\n@Directive()\nexport class PasswordGeneratorComponent implements OnInit {\n @Input() showSelect: boolean = false;\n @Output() onSelected = new EventEmitter();\n\n options: any = {};\n password: string = '-';\n showOptions = false;\n avoidAmbiguous = false;\n enforcedPolicyOptions: PasswordGeneratorPolicyOptions;\n\n constructor(protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n private win: Window) { }\n\n async ngOnInit() {\n const optionsResponse = await this.passwordGenerationService.getOptions();\n this.options = optionsResponse[0];\n this.enforcedPolicyOptions = optionsResponse[1];\n this.avoidAmbiguous = !this.options.ambiguous;\n this.options.type = this.options.type === 'passphrase' ? 'passphrase' : 'password';\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n await this.passwordGenerationService.addHistory(this.password);\n }\n\n async sliderChanged() {\n this.saveOptions(false);\n await this.passwordGenerationService.addHistory(this.password);\n }\n\n async sliderInput() {\n this.normalizeOptions();\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n }\n\n async saveOptions(regenerate: boolean = true) {\n this.normalizeOptions();\n await this.passwordGenerationService.saveOptions(this.options);\n\n if (regenerate) {\n await this.regenerate();\n }\n }\n\n async regenerate() {\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n await this.passwordGenerationService.addHistory(this.password);\n }\n\n copy() {\n const copyOptions = this.win != null ? { window: this.win } : null;\n this.platformUtilsService.copyToClipboard(this.password, copyOptions);\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t('password')));\n }\n\n select() {\n this.onSelected.emit(this.password);\n }\n\n toggleOptions() {\n this.showOptions = !this.showOptions;\n }\n\n private normalizeOptions() {\n // Application level normalize options depedent on class variables\n this.options.ambiguous = !this.avoidAmbiguous;\n\n if (!this.options.uppercase && !this.options.lowercase && !this.options.number && !this.options.special) {\n this.options.lowercase = true;\n if (this.win != null) {\n const lowercase = this.win.document.querySelector('#lowercase') as HTMLInputElement;\n if (lowercase) {\n lowercase.checked = true;\n }\n }\n }\n\n this.passwordGenerationService.normalizeOptions(this.options, this.enforcedPolicyOptions);\n }\n}\n","import { OnInit } from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { GeneratedPasswordHistory } from '../../models/domain/generatedPasswordHistory';\n\nexport class PasswordGeneratorHistoryComponent implements OnInit {\n history: GeneratedPasswordHistory[] = [];\n\n constructor(protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n private win: Window) { }\n\n async ngOnInit() {\n this.history = await this.passwordGenerationService.getHistory();\n }\n\n clear() {\n this.history = [];\n this.passwordGenerationService.clear();\n }\n\n copy(password: string) {\n const copyOptions = this.win != null ? { window: this.win } : null;\n this.platformUtilsService.copyToClipboard(password, copyOptions);\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t('password')));\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { FolderService } from '../../abstractions/folder.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { FolderView } from '../../models/view/folderView';\n\n@Directive()\nexport class FolderAddEditComponent implements OnInit {\n @Input() folderId: string;\n @Output() onSavedFolder = new EventEmitter();\n @Output() onDeletedFolder = new EventEmitter();\n\n editMode: boolean = false;\n folder: FolderView = new FolderView();\n title: string;\n formPromise: Promise;\n deletePromise: Promise;\n\n constructor(protected folderService: FolderService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n await this.init();\n }\n\n async submit(): Promise {\n if (this.folder.name == null || this.folder.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n try {\n const folder = await this.folderService.encrypt(this.folder);\n this.formPromise = this.folderService.saveWithServer(folder);\n await this.formPromise;\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode ? 'editedFolder' : 'addedFolder'));\n this.onSavedFolder.emit(this.folder);\n return true;\n } catch { }\n\n return false;\n }\n\n async delete(): Promise {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteFolderConfirmation'), this.i18nService.t('deleteFolder'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.folderService.deleteWithServer(this.folder.id);\n await this.deletePromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedFolder'));\n this.onDeletedFolder.emit(this.folder);\n } catch { }\n\n return true;\n }\n\n protected async init() {\n this.editMode = this.folderId != null;\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editFolder');\n const folder = await this.folderService.get(this.folderId);\n this.folder = await folder.decrypt();\n } else {\n this.title = this.i18nService.t('addFolder');\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Organization } from '../../models/domain/organization';\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive()\nexport class ShareComponent implements OnInit {\n @Input() cipherId: string;\n @Input() organizationId: string;\n @Output() onSharedCipher = new EventEmitter();\n\n formPromise: Promise;\n cipher: CipherView;\n collections: CollectionView[] = [];\n organizations: Organization[] = [];\n\n protected writeableCollections: CollectionView[] = [];\n\n constructor(protected collectionService: CollectionService, protected platformUtilsService: PlatformUtilsService,\n protected i18nService: I18nService, protected userService: UserService,\n protected cipherService: CipherService) { }\n\n async ngOnInit() {\n await this.load();\n }\n\n async load() {\n const allCollections = await this.collectionService.getAllDecrypted();\n this.writeableCollections = allCollections.map(c => c).filter(c => !c.readOnly);\n const orgs = await this.userService.getAllOrganizations();\n this.organizations = orgs.sort(Utils.getSortFunction(this.i18nService, 'name'))\n .filter(o => o.enabled && o.status === OrganizationUserStatusType.Confirmed);\n\n const cipherDomain = await this.cipherService.get(this.cipherId);\n this.cipher = await cipherDomain.decrypt();\n if (this.organizationId == null && this.organizations.length > 0) {\n this.organizationId = this.organizations[0].id;\n }\n this.filterCollections();\n }\n\n filterCollections() {\n this.writeableCollections.forEach(c => (c as any).checked = false);\n if (this.organizationId == null || this.writeableCollections.length === 0) {\n this.collections = [];\n } else {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.organizationId);\n }\n }\n\n async submit(): Promise {\n const selectedCollectionIds = this.collections\n .filter(c => !!(c as any).checked)\n .map(c => c.id);\n if (selectedCollectionIds.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectOneCollection'));\n return;\n }\n\n const cipherDomain = await this.cipherService.get(this.cipherId);\n const cipherView = await cipherDomain.decrypt();\n\n try {\n this.formPromise = this.cipherService.shareWithServer(cipherView, this.organizationId,\n selectedCollectionIds).then(async () => {\n this.onSharedCipher.emit();\n this.platformUtilsService.showToast('success', null, this.i18nService.t('sharedItem'));\n });\n await this.formPromise;\n return true;\n } catch { }\n return false;\n }\n\n get canSave() {\n if (this.collections != null) {\n for (let i = 0; i < this.collections.length; i++) {\n if ((this.collections[i] as any).checked) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","export { AttachmentData } from './attachmentData';\nexport { CardData } from './cardData';\nexport { CipherData } from './cipherData';\nexport { CollectionData } from './collectionData';\nexport { FieldData } from './fieldData';\nexport { FolderData } from './folderData';\nexport { IdentityData } from './identityData';\nexport { LoginData } from './loginData';\nexport { LoginUriData } from './loginUriData';\nexport { SecureNoteData } from './secureNoteData';\n","export { Attachment } from './attachment';\nexport { AuthResult } from './authResult';\nexport { Card } from './card';\nexport { Cipher } from './cipher';\nexport { EncString } from './encString';\nexport { Collection } from './collection';\nexport { EncryptedObject } from './encryptedObject';\nexport { EnvironmentUrls } from './environmentUrls';\nexport { Field } from './field';\nexport { Folder } from './folder';\nexport { Identity } from './identity';\nexport { Login } from './login';\nexport { LoginUri } from './loginUri';\nexport { GeneratedPasswordHistory } from './generatedPasswordHistory';\nexport { SecureNote } from './secureNote';\nexport { SymmetricCryptoKey } from './symmetricCryptoKey';\n","export class EmergencyAccessConfirmRequest {\n key: string;\n}\n","import { EmergencyAccessType } from '../../enums/emergencyAccessType';\n\nexport class EmergencyAccessInviteRequest {\n email: string;\n type: EmergencyAccessType;\n waitTimeDays: number;\n}\n","export class EmergencyAccessPasswordRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import {\n APP_INITIALIZER,\n LOCALE_ID,\n NgModule,\n} from '@angular/core';\n\nimport { ToasterModule } from 'angular2-toaster';\n\nimport { BroadcasterMessagingService } from '../../services/broadcasterMessaging.service';\nimport { HtmlStorageService } from '../../services/htmlStorage.service';\nimport { I18nService } from '../../services/i18n.service';\nimport { MemoryStorageService } from '../../services/memoryStorage.service';\nimport { WebPlatformUtilsService } from '../../services/webPlatformUtils.service';\n\nimport { EventService } from './event.service';\nimport { OrganizationGuardService } from './organization-guard.service';\nimport { OrganizationTypeGuardService } from './organization-type-guard.service';\nimport { RouterService } from './router.service';\n\nimport { AuthGuardService } from 'jslib/angular/services/auth-guard.service';\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\nimport { LockGuardService } from 'jslib/angular/services/lock-guard.service';\nimport { UnauthGuardService } from 'jslib/angular/services/unauth-guard.service';\nimport { ValidationService } from 'jslib/angular/services/validation.service';\n\nimport { ApiService } from 'jslib/services/api.service';\nimport { AppIdService } from 'jslib/services/appId.service';\nimport { AuditService } from 'jslib/services/audit.service';\nimport { AuthService } from 'jslib/services/auth.service';\nimport { CipherService } from 'jslib/services/cipher.service';\nimport { CollectionService } from 'jslib/services/collection.service';\nimport { ConsoleLogService } from 'jslib/services/consoleLog.service';\nimport { ConstantsService } from 'jslib/services/constants.service';\nimport { ContainerService } from 'jslib/services/container.service';\nimport { CryptoService } from 'jslib/services/crypto.service';\nimport { EnvironmentService } from 'jslib/services/environment.service';\nimport { EventService as EventLoggingService } from 'jslib/services/event.service';\nimport { ExportService } from 'jslib/services/export.service';\nimport { FileUploadService } from 'jslib/services/fileUpload.service';\nimport { FolderService } from 'jslib/services/folder.service';\nimport { ImportService } from 'jslib/services/import.service';\nimport { NotificationsService } from 'jslib/services/notifications.service';\nimport { PasswordGenerationService } from 'jslib/services/passwordGeneration.service';\nimport { PolicyService } from 'jslib/services/policy.service';\nimport { SearchService } from 'jslib/services/search.service';\nimport { SendService } from 'jslib/services/send.service';\nimport { SettingsService } from 'jslib/services/settings.service';\nimport { StateService } from 'jslib/services/state.service';\nimport { SyncService } from 'jslib/services/sync.service';\nimport { TokenService } from 'jslib/services/token.service';\nimport { TotpService } from 'jslib/services/totp.service';\nimport { UserService } from 'jslib/services/user.service';\nimport { VaultTimeoutService } from 'jslib/services/vaultTimeout.service';\nimport { WebCryptoFunctionService } from 'jslib/services/webCryptoFunction.service';\n\nimport { ApiService as ApiServiceAbstraction } from 'jslib/abstractions/api.service';\nimport { AppIdService as AppIdServiceAbstraction } from 'jslib/abstractions/appId.service';\nimport { AuditService as AuditServiceAbstraction } from 'jslib/abstractions/audit.service';\nimport { AuthService as AuthServiceAbstraction } from 'jslib/abstractions/auth.service';\nimport { CipherService as CipherServiceAbstraction } from 'jslib/abstractions/cipher.service';\nimport { CollectionService as CollectionServiceAbstraction } from 'jslib/abstractions/collection.service';\nimport { CryptoService as CryptoServiceAbstraction } from 'jslib/abstractions/crypto.service';\nimport { CryptoFunctionService as CryptoFunctionServiceAbstraction } from 'jslib/abstractions/cryptoFunction.service';\nimport { EnvironmentService as EnvironmentServiceAbstraction } from 'jslib/abstractions/environment.service';\nimport { EventService as EventLoggingServiceAbstraction } from 'jslib/abstractions/event.service';\nimport { ExportService as ExportServiceAbstraction } from 'jslib/abstractions/export.service';\nimport { FileUploadService as FileUploadServiceAbstraction } from 'jslib/abstractions/fileUpload.service';\nimport { FolderService as FolderServiceAbstraction } from 'jslib/abstractions/folder.service';\nimport { I18nService as I18nServiceAbstraction } from 'jslib/abstractions/i18n.service';\nimport { ImportService as ImportServiceAbstraction } from 'jslib/abstractions/import.service';\nimport { LogService as LogServiceAbstraction } from 'jslib/abstractions/log.service';\nimport { MessagingService as MessagingServiceAbstraction } from 'jslib/abstractions/messaging.service';\nimport { NotificationsService as NotificationsServiceAbstraction } from 'jslib/abstractions/notifications.service';\nimport {\n PasswordGenerationService as PasswordGenerationServiceAbstraction,\n} from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService as PlatformUtilsServiceAbstraction } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService as PolicyServiceAbstraction } from 'jslib/abstractions/policy.service';\nimport { SearchService as SearchServiceAbstraction } from 'jslib/abstractions/search.service';\nimport { SendService as SendServiceAbstraction } from 'jslib/abstractions/send.service';\nimport { SettingsService as SettingsServiceAbstraction } from 'jslib/abstractions/settings.service';\nimport { StateService as StateServiceAbstraction } from 'jslib/abstractions/state.service';\nimport { StorageService as StorageServiceAbstraction } from 'jslib/abstractions/storage.service';\nimport { SyncService as SyncServiceAbstraction } from 'jslib/abstractions/sync.service';\nimport { TokenService as TokenServiceAbstraction } from 'jslib/abstractions/token.service';\nimport { TotpService as TotpServiceAbstraction } from 'jslib/abstractions/totp.service';\nimport { UserService as UserServiceAbstraction } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from 'jslib/abstractions/vaultTimeout.service';\n\nconst i18nService = new I18nService(window.navigator.language, 'locales');\nconst stateService = new StateService();\nconst broadcasterService = new BroadcasterService();\nconst messagingService = new BroadcasterMessagingService(broadcasterService);\nconst platformUtilsService = new WebPlatformUtilsService(i18nService, messagingService);\nconst storageService: StorageServiceAbstraction = new HtmlStorageService(platformUtilsService);\nconst secureStorageService: StorageServiceAbstraction = new MemoryStorageService();\nconst cryptoFunctionService: CryptoFunctionServiceAbstraction = new WebCryptoFunctionService(window,\n platformUtilsService);\nconst consoleLogService = new ConsoleLogService(false);\nconst cryptoService = new CryptoService(storageService,\n platformUtilsService.isDev() ? storageService : secureStorageService, cryptoFunctionService, platformUtilsService,\n consoleLogService);\nconst tokenService = new TokenService(storageService);\nconst appIdService = new AppIdService(storageService);\nconst apiService = new ApiService(tokenService, platformUtilsService,\n async (expired: boolean) => messagingService.send('logout', { expired: expired }));\nconst userService = new UserService(tokenService, storageService);\nconst settingsService = new SettingsService(userService, storageService);\nexport let searchService: SearchService = null;\nconst fileUploadService = new FileUploadService(consoleLogService, apiService);\nconst cipherService = new CipherService(cryptoService, userService, settingsService,\n apiService, fileUploadService, storageService, i18nService, () => searchService);\nconst folderService = new FolderService(cryptoService, userService, apiService, storageService,\n i18nService, cipherService);\nconst collectionService = new CollectionService(cryptoService, userService, storageService, i18nService);\nsearchService = new SearchService(cipherService, consoleLogService, i18nService);\nconst policyService = new PolicyService(userService, storageService);\nconst sendService = new SendService(cryptoService, userService, apiService, fileUploadService, storageService,\n i18nService, cryptoFunctionService);\nconst vaultTimeoutService = new VaultTimeoutService(cipherService, folderService, collectionService,\n cryptoService, platformUtilsService, storageService, messagingService, searchService, userService, tokenService,\n null, async () => messagingService.send('logout', { expired: false }));\nconst syncService = new SyncService(userService, apiService, settingsService,\n folderService, cipherService, cryptoService, collectionService, storageService, messagingService, policyService,\n sendService, async (expired: boolean) => messagingService.send('logout', { expired: expired }));\nconst passwordGenerationService = new PasswordGenerationService(cryptoService, storageService, policyService);\nconst totpService = new TotpService(storageService, cryptoFunctionService);\nconst containerService = new ContainerService(cryptoService);\nconst authService = new AuthService(cryptoService, apiService,\n userService, tokenService, appIdService, i18nService, platformUtilsService, messagingService, vaultTimeoutService,\n consoleLogService);\nconst exportService = new ExportService(folderService, cipherService, apiService);\nconst importService = new ImportService(cipherService, folderService, apiService, i18nService, collectionService,\n platformUtilsService);\nconst notificationsService = new NotificationsService(userService, syncService, appIdService,\n apiService, vaultTimeoutService, async () => messagingService.send('logout', { expired: true }), consoleLogService);\nconst environmentService = new EnvironmentService(apiService, storageService, notificationsService);\nconst auditService = new AuditService(cryptoFunctionService, apiService);\nconst eventLoggingService = new EventLoggingService(storageService, apiService, userService, cipherService);\n\ncontainerService.attachToWindow(window);\n\nexport function initFactory(): Function {\n return async () => {\n await (storageService as HtmlStorageService).init();\n const isDev = platformUtilsService.isDev();\n\n if (isDev || platformUtilsService.isSelfHost()) {\n environmentService.baseUrl = window.location.origin;\n } else {\n environmentService.notificationsUrl = 'https://notifications.bitwarden.com';\n environmentService.enterpriseUrl = 'https://portal.bitwarden.com';\n }\n\n apiService.setUrls({\n base: window.location.origin,\n api: null,\n identity: null,\n events: null,\n });\n setTimeout(() => notificationsService.init(environmentService), 3000);\n\n vaultTimeoutService.init(true);\n const locale = await storageService.get(ConstantsService.localeKey);\n await i18nService.init(locale);\n eventLoggingService.init(true);\n authService.init();\n const htmlEl = window.document.documentElement;\n htmlEl.classList.add('locale_' + i18nService.translationLocale);\n let theme = await storageService.get(ConstantsService.themeKey);\n if (theme == null) {\n theme = 'light';\n }\n htmlEl.classList.add('theme_' + theme);\n stateService.save(ConstantsService.disableFaviconKey,\n await storageService.get(ConstantsService.disableFaviconKey));\n stateService.save('enableGravatars', await storageService.get('enableGravatars'));\n };\n}\n\n@NgModule({\n imports: [\n ToasterModule,\n ],\n declarations: [],\n providers: [\n ValidationService,\n AuthGuardService,\n OrganizationGuardService,\n OrganizationTypeGuardService,\n UnauthGuardService,\n RouterService,\n EventService,\n LockGuardService,\n { provide: AuditServiceAbstraction, useValue: auditService },\n { provide: AuthServiceAbstraction, useValue: authService },\n { provide: CipherServiceAbstraction, useValue: cipherService },\n { provide: FolderServiceAbstraction, useValue: folderService },\n { provide: CollectionServiceAbstraction, useValue: collectionService },\n { provide: EnvironmentServiceAbstraction, useValue: environmentService },\n { provide: TotpServiceAbstraction, useValue: totpService },\n { provide: TokenServiceAbstraction, useValue: tokenService },\n { provide: I18nServiceAbstraction, useValue: i18nService },\n { provide: CryptoServiceAbstraction, useValue: cryptoService },\n { provide: PlatformUtilsServiceAbstraction, useValue: platformUtilsService },\n { provide: PasswordGenerationServiceAbstraction, useValue: passwordGenerationService },\n { provide: ApiServiceAbstraction, useValue: apiService },\n { provide: FileUploadServiceAbstraction, useValue: fileUploadService },\n { provide: SyncServiceAbstraction, useValue: syncService },\n { provide: UserServiceAbstraction, useValue: userService },\n { provide: MessagingServiceAbstraction, useValue: messagingService },\n { provide: BroadcasterService, useValue: broadcasterService },\n { provide: SettingsServiceAbstraction, useValue: settingsService },\n { provide: VaultTimeoutServiceAbstraction, useValue: vaultTimeoutService },\n { provide: StorageServiceAbstraction, useValue: storageService },\n { provide: StateServiceAbstraction, useValue: stateService },\n { provide: ExportServiceAbstraction, useValue: exportService },\n { provide: SearchServiceAbstraction, useValue: searchService },\n { provide: ImportServiceAbstraction, useValue: importService },\n { provide: NotificationsServiceAbstraction, useValue: notificationsService },\n { provide: CryptoFunctionServiceAbstraction, useValue: cryptoFunctionService },\n { provide: EventLoggingServiceAbstraction, useValue: eventLoggingService },\n { provide: PolicyServiceAbstraction, useValue: policyService },\n { provide: SendServiceAbstraction, useValue: sendService },\n {\n provide: APP_INITIALIZER,\n useFactory: initFactory,\n deps: [],\n multi: true,\n },\n {\n provide: LOCALE_ID,\n useFactory: () => i18nService.translationLocale,\n deps: [],\n },\n ],\n})\nexport class ServicesModule {\n}\n","import { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nexport class BroadcasterMessagingService implements MessagingService {\n constructor(private broadcasterService: BroadcasterService) { }\n\n send(subscriber: string, arg: any = {}) {\n const message = Object.assign({}, { command: subscriber }, arg);\n this.broadcasterService.send(message);\n }\n}\n","import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { ConstantsService } from 'jslib/services';\n\nexport class HtmlStorageService implements StorageService {\n private localStorageKeys = new Set(['appId', 'anonymousAppId', 'rememberedEmail', 'passwordGenerationOptions',\n ConstantsService.disableFaviconKey, 'rememberEmail', 'enableGravatars', 'enableFullWidth',\n ConstantsService.localeKey, ConstantsService.autoConfirmFingerprints,\n ConstantsService.vaultTimeoutKey, ConstantsService.vaultTimeoutActionKey, ConstantsService.ssoCodeVerifierKey,\n ConstantsService.ssoStateKey, 'ssoOrgIdentifier']);\n private localStorageStartsWithKeys = ['twoFactorToken_', ConstantsService.collapsedGroupingsKey + '_'];\n private memoryStorageStartsWithKeys = ['ciphers_', 'folders_', 'collections_', 'settings_', 'lastSync_'];\n private memoryStorage = new Map();\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n async init() {\n // LockOption -> VaultTimeout (uses the same legacy string value for backwards compat)\n const vaultTimeout = await this.get(ConstantsService.vaultTimeoutKey);\n if (vaultTimeout == null && !this.platformUtilsService.isDev()) {\n await this.save(ConstantsService.vaultTimeoutKey, 15);\n }\n\n // Default Action to lock\n const vaultTimeoutAction = await this.get(ConstantsService.vaultTimeoutActionKey);\n if (vaultTimeoutAction == null) {\n await this.save(ConstantsService.vaultTimeoutActionKey, 'lock');\n }\n }\n\n get(key: string): Promise {\n let json: string = null;\n if (this.isLocalStorage(key)) {\n json = window.localStorage.getItem(key);\n } else if (this.isMemoryStorage(key)) {\n json = this.memoryStorage.get(key);\n } else {\n json = window.sessionStorage.getItem(key);\n }\n if (json != null) {\n const obj = JSON.parse(json);\n return Promise.resolve(obj as T);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n if (obj == null) {\n return this.remove(key);\n }\n\n const json = JSON.stringify(obj);\n if (this.isLocalStorage(key)) {\n window.localStorage.setItem(key, json);\n } else if (this.isMemoryStorage(key)) {\n this.memoryStorage.set(key, json);\n } else {\n window.sessionStorage.setItem(key, json);\n }\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n if (this.isLocalStorage(key)) {\n window.localStorage.removeItem(key);\n } else if (this.isMemoryStorage(key)) {\n this.memoryStorage.delete(key);\n } else {\n window.sessionStorage.removeItem(key);\n }\n return Promise.resolve();\n }\n\n private isLocalStorage(key: string): boolean {\n if (this.localStorageKeys.has(key)) {\n return true;\n }\n for (const swKey of this.localStorageStartsWithKeys) {\n if (key.startsWith(swKey)) {\n return true;\n }\n }\n return false;\n }\n\n private isMemoryStorage(key: string): boolean {\n for (const swKey of this.memoryStorageStartsWithKeys) {\n if (key.startsWith(swKey)) {\n return true;\n }\n }\n return false;\n }\n}\n","export { ApiService } from './api.service';\nexport { AppIdService } from './appId.service';\nexport { AuditService } from './audit.service';\nexport { AuthService } from './auth.service';\nexport { CipherService } from './cipher.service';\nexport { CollectionService } from './collection.service';\nexport { ConstantsService } from './constants.service';\nexport { ContainerService } from './container.service';\nexport { CryptoService } from './crypto.service';\nexport { EnvironmentService } from './environment.service';\nexport { FolderService } from './folder.service';\nexport { I18nService } from './i18n.service';\nexport { PasswordGenerationService } from './passwordGeneration.service';\nexport { SettingsService } from './settings.service';\nexport { StateService } from './state.service';\nexport { SyncService } from './sync.service';\nexport { TokenService } from './token.service';\nexport { TotpService } from './totp.service';\nexport { UserService } from './user.service';\nexport { VaultTimeoutService } from './vaultTimeout.service';\n","import { BaseResponse } from './baseResponse';\n\nexport class ApiKeyResponse extends BaseResponse {\n apiKey: string;\n\n constructor(response: any) {\n super(response);\n this.apiKey = this.getResponseProperty('ApiKey');\n }\n}\n","import { FileUploadType } from '../../enums/fileUploadType';\nimport { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\n\nexport class AttachmentUploadDataResponse extends BaseResponse {\n attachmentId: string;\n fileUploadType: FileUploadType;\n cipherResponse: CipherResponse;\n cipherMiniResponse: CipherResponse;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.attachmentId = this.getResponseProperty('AttachmentId');\n this.fileUploadType = this.getResponseProperty('FileUploadType');\n const cipherResponse = this.getResponseProperty('CipherResponse');\n const cipherMiniResponse = this.getResponseProperty('CipherMiniResponse');\n this.cipherResponse = cipherResponse == null ? null : new CipherResponse(cipherResponse);\n this.cipherMiniResponse = cipherMiniResponse == null ? null : new CipherResponse(cipherMiniResponse);\n this.url = this.getResponseProperty('Url');\n }\n\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { TransactionType } from '../../enums/transactionType';\n\nexport class BillingResponse extends BaseResponse {\n balance: number;\n paymentSource: BillingSourceResponse;\n invoices: BillingInvoiceResponse[] = [];\n transactions: BillingTransactionResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.balance = this.getResponseProperty('Balance');\n const paymentSource = this.getResponseProperty('PaymentSource');\n const transactions = this.getResponseProperty('Transactions');\n const invoices = this.getResponseProperty('Invoices');\n this.paymentSource = paymentSource == null ? null : new BillingSourceResponse(paymentSource);\n if (transactions != null) {\n this.transactions = transactions.map((t: any) => new BillingTransactionResponse(t));\n }\n if (invoices != null) {\n this.invoices = invoices.map((i: any) => new BillingInvoiceResponse(i));\n }\n }\n}\n\nexport class BillingSourceResponse extends BaseResponse {\n type: PaymentMethodType;\n cardBrand: string;\n description: string;\n needsVerification: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.cardBrand = this.getResponseProperty('CardBrand');\n this.description = this.getResponseProperty('Description');\n this.needsVerification = this.getResponseProperty('NeedsVerification');\n }\n}\n\nexport class BillingInvoiceResponse extends BaseResponse {\n url: string;\n pdfUrl: string;\n number: string;\n paid: boolean;\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.url = this.getResponseProperty('Url');\n this.pdfUrl = this.getResponseProperty('PdfUrl');\n this.number = this.getResponseProperty('Number');\n this.paid = this.getResponseProperty('Paid');\n this.date = this.getResponseProperty('Date');\n this.amount = this.getResponseProperty('Amount');\n }\n}\n\nexport class BillingTransactionResponse extends BaseResponse {\n createdDate: string;\n amount: number;\n refunded: boolean;\n partiallyRefunded: boolean;\n refundedAmount: number;\n type: TransactionType;\n paymentMethodType: PaymentMethodType;\n details: string;\n\n constructor(response: any) {\n super(response);\n this.createdDate = this.getResponseProperty('CreatedDate');\n this.amount = this.getResponseProperty('Amount');\n this.refunded = this.getResponseProperty('Refunded');\n this.partiallyRefunded = this.getResponseProperty('PartiallyRefunded');\n this.refundedAmount = this.getResponseProperty('RefundedAmount');\n this.type = this.getResponseProperty('Type');\n this.paymentMethodType = this.getResponseProperty('PaymentMethodType');\n this.details = this.getResponseProperty('Details');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class BreachAccountResponse extends BaseResponse {\n addedDate: string;\n breachDate: string;\n dataClasses: string[];\n description: string;\n domain: string;\n isActive: boolean;\n isVerified: boolean;\n logoPath: string;\n modifiedDate: string;\n name: string;\n pwnCount: number;\n title: string;\n\n constructor(response: any) {\n super(response);\n this.addedDate = this.getResponseProperty('AddedDate');\n this.breachDate = this.getResponseProperty('BreachDate');\n this.dataClasses = this.getResponseProperty('DataClasses');\n this.description = this.getResponseProperty('Description');\n this.domain = this.getResponseProperty('Domain');\n this.isActive = this.getResponseProperty('IsActive');\n this.isVerified = this.getResponseProperty('IsVerified');\n this.logoPath = this.getResponseProperty('LogoPath');\n this.modifiedDate = this.getResponseProperty('ModifiedDate');\n this.name = this.getResponseProperty('Name');\n this.pwnCount = this.getResponseProperty('PwnCount');\n this.title = this.getResponseProperty('Title');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { DeviceType } from '../../enums/deviceType';\nimport { EventType } from '../../enums/eventType';\n\nexport class EventResponse extends BaseResponse {\n type: EventType;\n userId: string;\n organizationId: string;\n cipherId: string;\n collectionId: string;\n groupId: string;\n policyId: string;\n organizationUserId: string;\n actingUserId: string;\n date: string;\n deviceType: DeviceType;\n ipAddress: string;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.userId = this.getResponseProperty('UserId');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.cipherId = this.getResponseProperty('CipherId');\n this.collectionId = this.getResponseProperty('CollectionId');\n this.groupId = this.getResponseProperty('GroupId');\n this.policyId = this.getResponseProperty('PolicyId');\n this.organizationUserId = this.getResponseProperty('OrganizationUserId');\n this.actingUserId = this.getResponseProperty('ActingUserId');\n this.date = this.getResponseProperty('Date');\n this.deviceType = this.getResponseProperty('DeviceType');\n this.ipAddress = this.getResponseProperty('IpAddress');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nexport class GroupResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n accessAll: boolean;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.name = this.getResponseProperty('Name');\n this.accessAll = this.getResponseProperty('AccessAll');\n this.externalId = this.getResponseProperty('ExternalId');\n }\n}\n\nexport class GroupDetailsResponse extends GroupResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { OrganizationResponse } from './organizationResponse';\nimport {\n BillingSubscriptionResponse,\n BillingSubscriptionUpcomingInvoiceResponse,\n} from './subscriptionResponse';\n\nexport class OrganizationSubscriptionResponse extends OrganizationResponse {\n storageName: string;\n storageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n expiration: string;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty('StorageName');\n this.storageGb = this.getResponseProperty('StorageGb');\n const subscription = this.getResponseProperty('Subscription');\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n const upcomingInvoice = this.getResponseProperty('UpcomingInvoice');\n this.upcomingInvoice = upcomingInvoice == null ? null :\n new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n this.expiration = this.getResponseProperty('Expiration');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nimport { PermissionsApi } from '../api/permissionsApi';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\n\nexport class OrganizationUserResponse extends BaseResponse {\n id: string;\n userId: string;\n type: OrganizationUserType;\n status: OrganizationUserStatusType;\n accessAll: boolean;\n permissions: PermissionsApi;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.permissions = new PermissionsApi(this.getResponseProperty('Permissions'));\n this.accessAll = this.getResponseProperty('AccessAll');\n }\n}\n\nexport class OrganizationUserUserDetailsResponse extends OrganizationUserResponse {\n name: string;\n email: string;\n twoFactorEnabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.twoFactorEnabled = this.getResponseProperty('TwoFactorEnabled');\n }\n}\n\nexport class OrganizationUserDetailsResponse extends OrganizationUserResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { ProfileResponse } from './profileResponse';\n\nexport class PaymentResponse extends BaseResponse {\n userProfile: ProfileResponse;\n paymentIntentClientSecret: string;\n success: boolean;\n\n constructor(response: any) {\n super(response);\n const userProfile = this.getResponseProperty('UserProfile');\n if (userProfile != null) {\n this.userProfile = new ProfileResponse(userProfile);\n }\n this.paymentIntentClientSecret = this.getResponseProperty('PaymentIntentClientSecret');\n this.success = this.getResponseProperty('Success');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class PreloginResponse extends BaseResponse {\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nexport class SendAccessResponse extends BaseResponse {\n id: string;\n type: SendType;\n name: string;\n file: SendFileApi;\n text: SendTextApi;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n\n const text = this.getResponseProperty('Text');\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty('File');\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n\n this.expirationDate = this.getResponseProperty('ExpirationDate');\n this.creatorIdentifier = this.getResponseProperty('CreatorIdentifier');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SendFileDownloadDataResponse extends BaseResponse {\n\n id: string = null;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.url = this.getResponseProperty('Url');\n }\n}\n","import { FileUploadType } from '../../enums/fileUploadType';\n\nimport { BaseResponse } from './baseResponse';\nimport { SendResponse } from './sendResponse';\n\nexport class SendFileUploadDataResponse extends BaseResponse {\n\n fileUploadType: FileUploadType;\n sendResponse: SendResponse;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.fileUploadType = this.getResponseProperty('FileUploadType');\n const sendResponse = this.getResponseProperty('SendResponse');\n this.sendResponse = sendResponse == null ? null : new SendResponse(sendResponse);\n this.url = this.getResponseProperty('Url');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TaxInfoResponse extends BaseResponse {\n taxId: string;\n taxIdType: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n\n constructor(response: any) {\n super(response);\n this.taxId = this.getResponseProperty('TaxIdNumber');\n this.taxIdType = this.getResponseProperty('TaxIdType');\n this.line1 = this.getResponseProperty('Line1');\n this.line2 = this.getResponseProperty('Line2');\n this.city = this.getResponseProperty('City');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.country = this.getResponseProperty('Country');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TaxRateResponse extends BaseResponse {\n id: string;\n country: string;\n state: string;\n postalCode: string;\n rate: number;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.country = this.getResponseProperty('Country');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.rate = this.getResponseProperty('Rate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorAuthenticatorResponse extends BaseResponse {\n enabled: boolean;\n key: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.key = this.getResponseProperty('Key');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorDuoResponse extends BaseResponse {\n enabled: boolean;\n host: string;\n secretKey: string;\n integrationKey: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.host = this.getResponseProperty('Host');\n this.secretKey = this.getResponseProperty('SecretKey');\n this.integrationKey = this.getResponseProperty('IntegrationKey');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorEmailResponse extends BaseResponse {\n enabled: boolean;\n email: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.email = this.getResponseProperty('Email');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class TwoFactorProviderResponse extends BaseResponse {\n enabled: boolean;\n type: TwoFactorProviderType;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.type = this.getResponseProperty('Type');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorRecoverResponse extends BaseResponse {\n code: string;\n\n constructor(response: any) {\n super(response);\n this.code = this.getResponseProperty('Code');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorYubiKeyResponse extends BaseResponse {\n enabled: boolean;\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.key1 = this.getResponseProperty('Key1');\n this.key2 = this.getResponseProperty('Key2');\n this.key3 = this.getResponseProperty('Key3');\n this.key4 = this.getResponseProperty('Key4');\n this.key5 = this.getResponseProperty('Key5');\n this.nfc = this.getResponseProperty('Nfc');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class UserKeyResponse extends BaseResponse {\n userId: string;\n publicKey: string;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.publicKey = this.getResponseProperty('PublicKey');\n }\n}\n","/**\n * Use as a Decorator on async functions, it will limit how many times the function can be\n * in-flight at a time.\n *\n * Calls beyond the limit will be queued, and run when one of the active calls finishes\n */\nexport function throttle(limit: number, throttleKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise>) => {\n const originalMethod: () => Promise = descriptor.value;\n const allThrottles = new Map void)[]>>();\n\n const getThrottles = (obj: any) => {\n let throttles = allThrottles.get(obj);\n if (throttles != null) {\n return throttles;\n }\n throttles = new Map void)[]>();\n allThrottles.set(obj, throttles);\n return throttles;\n };\n\n return {\n value: function(...args: any[]) {\n const throttles = getThrottles(this);\n const argsThrottleKey = throttleKey(args);\n let queue = throttles.get(argsThrottleKey);\n if (queue == null) {\n queue = [];\n throttles.set(argsThrottleKey, queue);\n }\n\n return new Promise((resolve, reject) => {\n const exec = () => {\n const onFinally = () => {\n queue.splice(queue.indexOf(exec), 1);\n if (queue.length >= limit) {\n queue[limit - 1]();\n } else if (queue.length === 0) {\n throttles.delete(argsThrottleKey);\n if (throttles.size === 0) {\n allThrottles.delete(this);\n }\n }\n };\n originalMethod.apply(this, args).then((val: any) => {\n onFinally();\n return val;\n }).catch((err: any) => {\n onFinally();\n throw err;\n }).then(resolve, reject);\n };\n queue.push(exec);\n if (queue.length <= limit) {\n exec();\n }\n });\n },\n };\n };\n}\n","export class CipherBulkMoveRequest {\n ids: string[];\n folderId: string;\n\n constructor(ids: string[], folderId: string) {\n this.ids = ids == null ? [] : ids;\n this.folderId = folderId;\n }\n}\n","export class CipherBulkRestoreRequest {\n ids: string[];\n\n constructor(ids: string[]) {\n this.ids = ids == null ? [] : ids;\n }\n}\n","import { CipherWithIdRequest } from './cipherWithIdRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherBulkShareRequest {\n ciphers: CipherWithIdRequest[];\n collectionIds: string[];\n\n constructor(ciphers: Cipher[], collectionIds: string[]) {\n if (ciphers != null) {\n this.ciphers = [];\n ciphers.forEach(c => {\n this.ciphers.push(new CipherWithIdRequest(c));\n });\n }\n this.collectionIds = collectionIds;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherShareRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { CipherView } from '../view';\n\nconst CacheTTL = 3000;\n\nexport class SortedCiphersCache {\n private readonly sortedCiphersByUrl: Map = new Map();\n private readonly timeouts: Map = new Map();\n\n constructor(private readonly comparator: (a: CipherView, b: CipherView) => number) { }\n\n isCached(url: string) {\n return this.sortedCiphersByUrl.has(url);\n }\n\n addCiphers(url: string, ciphers: CipherView[]) {\n ciphers.sort(this.comparator);\n this.sortedCiphersByUrl.set(url, new Ciphers(ciphers));\n this.resetTimer(url);\n }\n\n getLastUsed(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastUsed() : null;\n }\n\n getLastLaunched(url: string) {\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastLaunched() : null;\n }\n\n getNext(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getNext() : null;\n }\n\n updateLastUsedIndex(url: string) {\n if (this.isCached(url)) {\n this.sortedCiphersByUrl.get(url).updateLastUsedIndex();\n }\n }\n\n clear() {\n this.sortedCiphersByUrl.clear();\n this.timeouts.clear();\n }\n\n private resetTimer(url: string) {\n clearTimeout(this.timeouts.get(url));\n this.timeouts.set(url, setTimeout(() => {\n this.sortedCiphersByUrl.delete(url);\n this.timeouts.delete(url);\n }, CacheTTL));\n }\n}\n\nclass Ciphers {\n lastUsedIndex = -1;\n\n constructor(private readonly ciphers: CipherView[]) { }\n\n getLastUsed() {\n this.lastUsedIndex = Math.max(this.lastUsedIndex, 0);\n return this.ciphers[this.lastUsedIndex];\n }\n\n getLastLaunched() {\n const usedCiphers = this.ciphers.filter(cipher => cipher.localData?.lastLaunched);\n const sortedCiphers = usedCiphers.sort((x, y) => y.localData.lastLaunched.valueOf() - x.localData.lastLaunched.valueOf());\n return sortedCiphers[0];\n }\n\n getNextIndex() {\n return (this.lastUsedIndex + 1) % this.ciphers.length;\n }\n\n getNext() {\n return this.ciphers[this.getNextIndex()];\n }\n\n updateLastUsedIndex() {\n this.lastUsedIndex = this.getNextIndex();\n }\n}\n","export class TreeNode {\n parent: T;\n node: T;\n children: TreeNode[] = [];\n\n constructor(node: T, name: string, parent: T) {\n this.parent = parent;\n this.node = node;\n this.node.name = name;\n }\n}\n\nexport interface ITreeNodeObject {\n id: string;\n name: string;\n}\n","export class EncArrayBuffer {\n constructor(public buffer: ArrayBuffer) { }\n}\n","import Domain from './domainBase';\n\nexport class PasswordGeneratorPolicyOptions extends Domain {\n defaultType: string = '';\n minLength: number = 0;\n useUppercase: boolean = false;\n useLowercase: boolean = false;\n useNumbers: boolean = false;\n numberCount: number = 0;\n useSpecial: boolean = false;\n specialCount: number = 0;\n minNumberWords: number = 0;\n capitalize: boolean = false;\n includeNumber: boolean = false;\n\n inEffect() {\n return this.defaultType !== '' ||\n this.minLength > 0 ||\n this.numberCount > 0 ||\n this.specialCount > 0 ||\n this.useUppercase ||\n this.useLowercase ||\n this.useNumbers ||\n this.useSpecial ||\n this.minNumberWords > 0 ||\n this.capitalize ||\n this.includeNumber;\n }\n}\n","import { ProfileOrganizationResponse } from '../response/profileOrganizationResponse';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationData {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordKey: string;\n userId: string;\n\n constructor(response: ProfileOrganizationResponse) {\n this.id = response.id;\n this.name = response.name;\n this.status = response.status;\n this.type = response.type;\n this.enabled = response.enabled;\n this.usePolicies = response.usePolicies;\n this.useGroups = response.useGroups;\n this.useDirectory = response.useDirectory;\n this.useEvents = response.useEvents;\n this.useTotp = response.useTotp;\n this.use2fa = response.use2fa;\n this.useApi = response.useApi;\n this.useBusinessPortal = response.useBusinessPortal;\n this.useSso = response.useSso;\n this.selfHost = response.selfHost;\n this.usersGetPremium = response.usersGetPremium;\n this.seats = response.seats;\n this.maxCollections = response.maxCollections;\n this.maxStorageGb = response.maxStorageGb;\n this.ssoBound = response.ssoBound;\n this.identifier = response.identifier;\n this.permissions = response.permissions;\n this.resetPasswordKey = response.resetPasswordKey;\n this.userId = response.userId;\n }\n}\n","import { SendFileApi } from '../api/sendFileApi';\n\nexport class SendFileData {\n id: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(data?: SendFileApi) {\n if (data == null) {\n return;\n }\n\n this.id = data.id;\n this.fileName = data.fileName;\n this.key = data.key;\n this.size = data.size;\n this.sizeName = data.sizeName;\n }\n}\n","import { SendTextApi } from '../api/sendTextApi';\n\nexport class SendTextData {\n text: string;\n hidden: boolean;\n\n constructor(data?: SendTextApi) {\n if (data == null) {\n return;\n }\n\n this.text = data.text;\n this.hidden = data.hidden;\n }\n}\n","import { I18nService as BaseI18nService } from 'jslib/services/i18n.service';\n\nexport class I18nService extends BaseI18nService {\n constructor(systemLanguage: string, localesDirectory: string) {\n super(systemLanguage || 'en-US', localesDirectory, async (formattedLocale: string) => {\n const filePath = this.localesDirectory + '/' + formattedLocale + '/messages.json?cache=' +\n process.env.CACHE_TAG;\n const localesResult = await fetch(filePath);\n const locales = await localesResult.json();\n return locales;\n });\n\n this.supportedTranslationLocales = [\n 'en', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'es', 'et', 'fr', 'he', 'it', 'ja', 'ko', 'lv', 'ml', 'nb',\n 'nl', 'pl', 'pt-PT', 'pt-BR', 'ru', 'sk', 'sv', 'uk', 'zh-CN', 'zh-TW',\n ];\n }\n}\n","import { StorageService } from 'jslib/abstractions/storage.service';\n\nexport class MemoryStorageService implements StorageService {\n private store = new Map();\n\n get(key: string): Promise {\n if (this.store.has(key)) {\n const obj = this.store.get(key);\n return Promise.resolve(obj as T);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n if (obj == null) {\n return this.remove(key);\n }\n this.store.set(key, obj);\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n this.store.delete(key);\n return Promise.resolve();\n }\n}\n","import Swal, { SweetAlertIcon } from 'sweetalert2/dist/sweetalert2.js';\n\nimport { DeviceType } from 'jslib/enums/deviceType';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nexport class WebPlatformUtilsService implements PlatformUtilsService {\n identityClientId: string = 'web';\n\n private browserCache: DeviceType = null;\n\n constructor(private i18nService: I18nService, private messagingService: MessagingService) { }\n\n getDevice(): DeviceType {\n if (this.browserCache != null) {\n return this.browserCache;\n }\n\n if (navigator.userAgent.indexOf(' Firefox/') !== -1 || navigator.userAgent.indexOf(' Gecko/') !== -1) {\n this.browserCache = DeviceType.FirefoxBrowser;\n } else if (navigator.userAgent.indexOf(' OPR/') >= 0) {\n this.browserCache = DeviceType.OperaBrowser;\n } else if (navigator.userAgent.indexOf(' Edg/') !== -1) {\n this.browserCache = DeviceType.EdgeBrowser;\n } else if (navigator.userAgent.indexOf(' Vivaldi/') !== -1) {\n this.browserCache = DeviceType.VivaldiBrowser;\n } else if (navigator.userAgent.indexOf(' Safari/') !== -1 && navigator.userAgent.indexOf('Chrome') === -1) {\n this.browserCache = DeviceType.SafariBrowser;\n } else if ((window as any).chrome && navigator.userAgent.indexOf(' Chrome/') !== -1) {\n this.browserCache = DeviceType.ChromeBrowser;\n } else if (navigator.userAgent.indexOf(' Trident/') !== -1) {\n this.browserCache = DeviceType.IEBrowser;\n } else {\n this.browserCache = DeviceType.UnknownBrowser;\n }\n\n return this.browserCache;\n }\n\n getDeviceString(): string {\n const device = DeviceType[this.getDevice()].toLowerCase();\n return device.replace('browser', '');\n }\n\n isFirefox(): boolean {\n return this.getDevice() === DeviceType.FirefoxBrowser;\n }\n\n isChrome(): boolean {\n return this.getDevice() === DeviceType.ChromeBrowser;\n }\n\n isEdge(): boolean {\n return this.getDevice() === DeviceType.EdgeBrowser;\n }\n\n isOpera(): boolean {\n return this.getDevice() === DeviceType.OperaBrowser;\n }\n\n isVivaldi(): boolean {\n return this.getDevice() === DeviceType.VivaldiBrowser;\n }\n\n isSafari(): boolean {\n return this.getDevice() === DeviceType.SafariBrowser;\n }\n\n isIE(): boolean {\n return this.getDevice() === DeviceType.IEBrowser;\n }\n\n isMacAppStore(): boolean {\n return false;\n }\n\n isViewOpen(): Promise {\n return Promise.resolve(false);\n }\n\n lockTimeout(): number {\n return null;\n }\n\n launchUri(uri: string, options?: any): void {\n const a = document.createElement('a');\n a.href = uri;\n if (options == null || !options.sameWindow) {\n a.target = '_blank';\n a.rel = 'noreferrer noopener';\n }\n a.classList.add('d-none');\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n\n saveFile(win: Window, blobData: any, blobOptions: any, fileName: string): void {\n let blob: Blob = null;\n let type: string = null;\n const fileNameLower = fileName.toLowerCase();\n let doDownload = true;\n if (fileNameLower.endsWith('.pdf')) {\n type = 'application/pdf';\n doDownload = false;\n } else if (fileNameLower.endsWith('.xlsx')) {\n type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n } else if (fileNameLower.endsWith('.docx')) {\n type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n } else if (fileNameLower.endsWith('.pptx')) {\n type = 'application/vnd.openxmlformats-officedocument.presentationml.presentation';\n } else if (fileNameLower.endsWith('.csv')) {\n type = 'text/csv';\n } else if (fileNameLower.endsWith('.png')) {\n type = 'image/png';\n } else if (fileNameLower.endsWith('.jpg') || fileNameLower.endsWith('.jpeg')) {\n type = 'image/jpeg';\n } else if (fileNameLower.endsWith('.gif')) {\n type = 'image/gif';\n }\n if (type != null) {\n blobOptions = blobOptions || {};\n if (blobOptions.type == null) {\n blobOptions.type = type;\n }\n }\n if (blobOptions != null && !this.isIE()) {\n blob = new Blob([blobData], blobOptions);\n } else {\n blob = new Blob([blobData]);\n }\n if (navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, fileName);\n } else {\n const a = win.document.createElement('a');\n if (doDownload) {\n a.download = fileName;\n } else if (!this.isSafari()) {\n a.target = '_blank';\n }\n a.href = URL.createObjectURL(blob);\n a.style.position = 'fixed';\n win.document.body.appendChild(a);\n a.click();\n win.document.body.removeChild(a);\n }\n }\n\n getApplicationVersion(): Promise {\n return Promise.resolve(process.env.APPLICATION_VERSION || '-');\n }\n\n supportsWebAuthn(win: Window): boolean {\n return (typeof(PublicKeyCredential) !== 'undefined');\n }\n\n supportsDuo(): boolean {\n return true;\n }\n\n showToast(type: 'error' | 'success' | 'warning' | 'info', title: string, text: string | string[],\n options?: any): void {\n this.messagingService.send('showToast', {\n text: text,\n title: title,\n type: type,\n options: options,\n });\n }\n\n async showDialog(body: string, title?: string, confirmText?: string, cancelText?: string, type?: string,\n bodyIsHtml: boolean = false) {\n let iconClasses: string = null;\n if (type != null) {\n // If you add custom types to this part, the type to SweetAlertIcon cast below needs to be changed.\n switch (type) {\n case 'success':\n iconClasses = 'fa-check text-success';\n break;\n case 'warning':\n iconClasses = 'fa-warning text-warning';\n break;\n case 'error':\n iconClasses = 'fa-bolt text-danger';\n break;\n case 'info':\n iconClasses = 'fa-info-circle text-info';\n break;\n default:\n break;\n }\n }\n\n const iconHtmlStr = iconClasses != null ? `` : undefined;\n const confirmed = await Swal.fire({\n heightAuto: false,\n buttonsStyling: false,\n icon: type as SweetAlertIcon, // required to be any of the SweetAlertIcons to output the iconHtml.\n iconHtml: iconHtmlStr,\n text: bodyIsHtml ? null : body,\n html: bodyIsHtml ? body : null,\n title: title,\n showCancelButton: (cancelText != null),\n cancelButtonText: cancelText,\n showConfirmButton: true,\n confirmButtonText: confirmText == null ? this.i18nService.t('ok') : confirmText,\n });\n\n return confirmed.value;\n }\n\n isDev(): boolean {\n return process.env.ENV === 'development';\n }\n\n isSelfHost(): boolean {\n return process.env.SELF_HOST.toString() === 'true';\n }\n\n copyToClipboard(text: string, options?: any): void {\n let win = window;\n let doc = window.document;\n if (options && (options.window || options.win)) {\n win = options.window || options.win;\n doc = win.document;\n } else if (options && options.doc) {\n doc = options.doc;\n }\n if ((win as any).clipboardData && (win as any).clipboardData.setData) {\n // IE specific code path to prevent textarea being shown while dialog is visible.\n (win as any).clipboardData.setData('Text', text);\n } else if (doc.queryCommandSupported && doc.queryCommandSupported('copy')) {\n const textarea = doc.createElement('textarea');\n textarea.textContent = text;\n // Prevent scrolling to bottom of page in MS Edge.\n textarea.style.position = 'fixed';\n let copyEl = doc.body;\n // For some reason copy command won't work when modal is open if appending to body\n if (doc.body.classList.contains('modal-open')) {\n copyEl = doc.body.querySelector('.modal');\n }\n copyEl.appendChild(textarea);\n textarea.select();\n try {\n // Security exception may be thrown by some browsers.\n doc.execCommand('copy');\n } catch (e) {\n // tslint:disable-next-line\n console.warn('Copy to clipboard failed.', e);\n } finally {\n copyEl.removeChild(textarea);\n }\n }\n }\n\n readFromClipboard(options?: any): Promise {\n throw new Error('Cannot read from clipboard on web.');\n }\n\n supportsBiometric() {\n return Promise.resolve(false);\n }\n\n authenticateBiometric() {\n return Promise.resolve(false);\n }\n\n supportsSecureStorage() {\n return false;\n }\n\n getDefaultSystemTheme() {\n return Promise.resolve(null as 'light' | 'dark');\n }\n\n onDefaultSystemThemeChange() {\n /* noop */\n }\n}\n","import { EventType } from '../enums/eventType';\n\nimport { EventData } from '../models/data/eventData';\n\nimport { EventRequest } from '../models/request/eventRequest';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { EventService as EventServiceAbstraction } from '../abstractions/event.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ConstantsService } from './constants.service';\n\nexport class EventService implements EventServiceAbstraction {\n private inited = false;\n\n constructor(private storageService: StorageService, private apiService: ApiService,\n private userService: UserService, private cipherService: CipherService) { }\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.uploadEvents();\n setInterval(() => this.uploadEvents(), 60 * 1000); // check every 60 seconds\n }\n }\n\n async collect(eventType: EventType, cipherId: string = null, uploadImmediately = false): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n const organizations = await this.userService.getAllOrganizations();\n if (organizations == null) {\n return;\n }\n const orgIds = new Set(organizations.filter(o => o.useEvents).map(o => o.id));\n if (orgIds.size === 0) {\n return;\n }\n if (cipherId != null) {\n const cipher = await this.cipherService.get(cipherId);\n if (cipher == null || cipher.organizationId == null || !orgIds.has(cipher.organizationId)) {\n return;\n }\n }\n let eventCollection = await this.storageService.get(ConstantsService.eventCollectionKey);\n if (eventCollection == null) {\n eventCollection = [];\n }\n const event = new EventData();\n event.type = eventType;\n event.cipherId = cipherId;\n event.date = new Date().toISOString();\n eventCollection.push(event);\n await this.storageService.save(ConstantsService.eventCollectionKey, eventCollection);\n if (uploadImmediately) {\n await this.uploadEvents();\n }\n }\n\n async uploadEvents(): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n const eventCollection = await this.storageService.get(ConstantsService.eventCollectionKey);\n if (eventCollection == null || eventCollection.length === 0) {\n return;\n }\n const request = eventCollection.map(e => {\n const req = new EventRequest();\n req.type = e.type;\n req.cipherId = e.cipherId;\n req.date = e.date;\n return req;\n });\n try {\n await this.apiService.postEventsCollect(request);\n this.clearEvents();\n } catch { }\n }\n\n async clearEvents(): Promise {\n await this.storageService.remove(ConstantsService.eventCollectionKey);\n }\n}\n","import { EventType } from '../../enums/eventType';\n\nexport class EventData {\n type: EventType;\n cipherId: string;\n date: string;\n}\n","import { EventType } from '../../enums/eventType';\n\nexport class EventRequest {\n type: EventType;\n cipherId: string;\n date: string;\n}\n","import * as papa from 'papaparse';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { ExportService as ExportServiceAbstraction } from '../abstractions/export.service';\nimport { FolderService } from '../abstractions/folder.service';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { Cipher } from '../models/domain/cipher';\nimport { Collection } from '../models/domain/collection';\nimport { Folder } from '../models/domain/folder';\n\nimport { CipherData } from '../models/data/cipherData';\nimport { CollectionData } from '../models/data/collectionData';\nimport { CollectionDetailsResponse } from '../models/response/collectionResponse';\n\nimport { CipherWithIds as CipherExport } from '../models/export/cipherWithIds';\nimport { CollectionWithId as CollectionExport } from '../models/export/collectionWithId';\nimport { FolderWithId as FolderExport } from '../models/export/folderWithId';\n\nexport class ExportService implements ExportServiceAbstraction {\n constructor(private folderService: FolderService, private cipherService: CipherService,\n private apiService: ApiService) { }\n\n async getExport(format: 'csv' | 'json' | 'encrypted_json' = 'csv'): Promise {\n if (format === 'encrypted_json') {\n return this.getEncryptedExport();\n } else {\n return this.getDecryptedExport(format);\n }\n }\n\n async getOrganizationExport(organizationId: string,\n format: 'csv' | 'json' | 'encrypted_json' = 'csv'): Promise {\n if (format === 'encrypted_json') {\n return this.getOrganizationEncryptedExport(organizationId);\n } else {\n return this.getOrganizationDecryptedExport(organizationId, format);\n }\n }\n\n getFileName(prefix: string = null, extension: string = 'csv'): string {\n const now = new Date();\n const dateString =\n now.getFullYear() + '' + this.padNumber(now.getMonth() + 1, 2) + '' + this.padNumber(now.getDate(), 2) +\n this.padNumber(now.getHours(), 2) + '' + this.padNumber(now.getMinutes(), 2) +\n this.padNumber(now.getSeconds(), 2);\n\n return 'bitwarden' + (prefix ? ('_' + prefix) : '') + '_export_' + dateString + '.' + extension;\n }\n\n private async getDecryptedExport(format: 'json' | 'csv'): Promise {\n let decFolders: FolderView[] = [];\n let decCiphers: CipherView[] = [];\n const promises = [];\n\n promises.push(this.folderService.getAllDecrypted().then(folders => {\n decFolders = folders;\n }));\n\n promises.push(this.cipherService.getAllDecrypted().then(ciphers => {\n decCiphers = ciphers.filter(f => f.deletedDate == null);\n }));\n\n await Promise.all(promises);\n\n if (format === 'csv') {\n const foldersMap = new Map();\n decFolders.forEach(f => {\n if (f.id != null) {\n foldersMap.set(f.id, f);\n }\n });\n\n const exportCiphers: any[] = [];\n decCiphers.forEach(c => {\n // only export logins and secure notes\n if (c.type !== CipherType.Login && c.type !== CipherType.SecureNote) {\n return;\n }\n if (c.organizationId != null) {\n return;\n }\n\n const cipher: any = {};\n cipher.folder = c.folderId != null && foldersMap.has(c.folderId) ?\n foldersMap.get(c.folderId).name : null;\n cipher.favorite = c.favorite ? 1 : null;\n this.buildCommonCipher(cipher, c);\n exportCiphers.push(cipher);\n });\n\n return papa.unparse(exportCiphers);\n } else {\n const jsonDoc: any = {\n encrypted: false,\n folders: [],\n items: [],\n };\n\n decFolders.forEach(f => {\n if (f.id == null) {\n return;\n }\n const folder = new FolderExport();\n folder.build(f);\n jsonDoc.folders.push(folder);\n });\n\n decCiphers.forEach(c => {\n if (c.organizationId != null) {\n return;\n }\n const cipher = new CipherExport();\n cipher.build(c);\n cipher.collectionIds = null;\n jsonDoc.items.push(cipher);\n });\n\n return JSON.stringify(jsonDoc, null, ' ');\n }\n }\n\n private async getEncryptedExport(): Promise {\n let folders: Folder[] = [];\n let ciphers: Cipher[] = [];\n const promises = [];\n\n promises.push(this.folderService.getAll().then(f => {\n folders = f;\n }));\n\n promises.push(this.cipherService.getAll().then(c => {\n ciphers = c.filter(f => f.deletedDate == null);\n }));\n\n await Promise.all(promises);\n\n const jsonDoc: any = {\n encrypted: true,\n folders: [],\n items: [],\n };\n\n folders.forEach(f => {\n if (f.id == null) {\n return;\n }\n const folder = new FolderExport();\n folder.build(f);\n jsonDoc.folders.push(folder);\n });\n\n ciphers.forEach(c => {\n if (c.organizationId != null) {\n return;\n }\n const cipher = new CipherExport();\n cipher.build(c);\n cipher.collectionIds = null;\n jsonDoc.items.push(cipher);\n });\n\n return JSON.stringify(jsonDoc, null, ' ');\n }\n\n private async getOrganizationDecryptedExport(organizationId: string, format: 'json' | 'csv'): Promise {\n const decCollections: CollectionView[] = [];\n const decCiphers: CipherView[] = [];\n const promises = [];\n\n promises.push(this.apiService.getCollections(organizationId).then(collections => {\n const collectionPromises: any = [];\n if (collections != null && collections.data != null && collections.data.length > 0) {\n collections.data.forEach(c => {\n const collection = new Collection(new CollectionData(c as CollectionDetailsResponse));\n collectionPromises.push(collection.decrypt().then(decCol => {\n decCollections.push(decCol);\n }));\n });\n }\n return Promise.all(collectionPromises);\n }));\n\n promises.push(this.apiService.getCiphersOrganization(organizationId).then(ciphers => {\n const cipherPromises: any = [];\n if (ciphers != null && ciphers.data != null && ciphers.data.length > 0) {\n ciphers.data.filter(c => c.deletedDate === null).forEach(c => {\n const cipher = new Cipher(new CipherData(c));\n cipherPromises.push(cipher.decrypt().then(decCipher => {\n decCiphers.push(decCipher);\n }));\n });\n }\n return Promise.all(cipherPromises);\n }));\n\n await Promise.all(promises);\n\n if (format === 'csv') {\n const collectionsMap = new Map();\n decCollections.forEach(c => {\n collectionsMap.set(c.id, c);\n });\n\n const exportCiphers: any[] = [];\n decCiphers.forEach(c => {\n // only export logins and secure notes\n if (c.type !== CipherType.Login && c.type !== CipherType.SecureNote) {\n return;\n }\n\n const cipher: any = {};\n cipher.collections = [];\n if (c.collectionIds != null) {\n cipher.collections = c.collectionIds.filter(id => collectionsMap.has(id))\n .map(id => collectionsMap.get(id).name);\n }\n this.buildCommonCipher(cipher, c);\n exportCiphers.push(cipher);\n });\n\n return papa.unparse(exportCiphers);\n } else {\n const jsonDoc: any = {\n encrypted: false,\n collections: [],\n items: [],\n };\n\n decCollections.forEach(c => {\n const collection = new CollectionExport();\n collection.build(c);\n jsonDoc.collections.push(collection);\n });\n\n decCiphers.forEach(c => {\n const cipher = new CipherExport();\n cipher.build(c);\n jsonDoc.items.push(cipher);\n });\n return JSON.stringify(jsonDoc, null, ' ');\n }\n }\n\n private async getOrganizationEncryptedExport(organizationId: string): Promise {\n const collections: Collection[] = [];\n const ciphers: Cipher[] = [];\n const promises = [];\n\n promises.push(this.apiService.getCollections(organizationId).then(c => {\n const collectionPromises: any = [];\n if (c != null && c.data != null && c.data.length > 0) {\n c.data.forEach(r => {\n const collection = new Collection(new CollectionData(r as CollectionDetailsResponse));\n collections.push(collection);\n });\n }\n return Promise.all(collectionPromises);\n }));\n\n promises.push(this.apiService.getCiphersOrganization(organizationId).then(c => {\n const cipherPromises: any = [];\n if (c != null && c.data != null && c.data.length > 0) {\n c.data.filter(item => item.deletedDate === null).forEach(item => {\n const cipher = new Cipher(new CipherData(item));\n ciphers.push(cipher);\n });\n }\n return Promise.all(cipherPromises);\n }));\n\n await Promise.all(promises);\n\n const jsonDoc: any = {\n encrypted: true,\n collections: [],\n items: [],\n };\n\n collections.forEach(c => {\n const collection = new CollectionExport();\n collection.build(c);\n jsonDoc.collections.push(collection);\n });\n\n ciphers.forEach(c => {\n const cipher = new CipherExport();\n cipher.build(c);\n jsonDoc.items.push(cipher);\n });\n return JSON.stringify(jsonDoc, null, ' ');\n }\n\n private padNumber(num: number, width: number, padCharacter: string = '0'): string {\n const numString = num.toString();\n return numString.length >= width ? numString :\n new Array(width - numString.length + 1).join(padCharacter) + numString;\n }\n\n private buildCommonCipher(cipher: any, c: CipherView) {\n cipher.type = null;\n cipher.name = c.name;\n cipher.notes = c.notes;\n cipher.fields = null;\n // Login props\n cipher.login_uri = null;\n cipher.login_username = null;\n cipher.login_password = null;\n cipher.login_totp = null;\n\n if (c.fields) {\n c.fields.forEach((f: any) => {\n if (!cipher.fields) {\n cipher.fields = '';\n } else {\n cipher.fields += '\\n';\n }\n\n cipher.fields += ((f.name || '') + ': ' + f.value);\n });\n }\n\n switch (c.type) {\n case CipherType.Login:\n cipher.type = 'login';\n cipher.login_username = c.login.username;\n cipher.login_password = c.login.password;\n cipher.login_totp = c.login.totp;\n\n if (c.login.uris) {\n cipher.login_uri = [];\n c.login.uris.forEach(u => {\n cipher.login_uri.push(u.uri);\n });\n }\n break;\n case CipherType.SecureNote:\n cipher.type = 'note';\n break;\n default:\n return;\n }\n\n return cipher;\n }\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Cipher as CipherDomain } from '../domain/cipher';\nimport { EncString } from '../domain/encString';\n\nimport { Card } from './card';\nimport { Field } from './field';\nimport { Identity } from './identity';\nimport { Login } from './login';\nimport { SecureNote } from './secureNote';\n\nexport class Cipher {\n static template(): Cipher {\n const req = new Cipher();\n req.organizationId = null;\n req.collectionIds = null;\n req.folderId = null;\n req.type = CipherType.Login;\n req.name = 'Item name';\n req.notes = 'Some notes about this item.';\n req.favorite = false;\n req.fields = [];\n req.login = null;\n req.secureNote = null;\n req.card = null;\n req.identity = null;\n return req;\n }\n\n static toView(req: Cipher, view = new CipherView()) {\n view.type = req.type;\n view.folderId = req.folderId;\n if (view.organizationId == null) {\n view.organizationId = req.organizationId;\n }\n if (view.collectionIds || req.collectionIds) {\n const set = new Set((view.collectionIds ?? []).concat(req.collectionIds ?? []));\n view.collectionIds = Array.from(set.values());\n }\n view.name = req.name;\n view.notes = req.notes;\n view.favorite = req.favorite;\n\n if (req.fields != null) {\n view.fields = req.fields.map(f => Field.toView(f));\n }\n\n switch (req.type) {\n case CipherType.Login:\n view.login = Login.toView(req.login);\n break;\n case CipherType.SecureNote:\n view.secureNote = SecureNote.toView(req.secureNote);\n break;\n case CipherType.Card:\n view.card = Card.toView(req.card);\n break;\n case CipherType.Identity:\n view.identity = Identity.toView(req.identity);\n break;\n }\n\n return view;\n }\n\n static toDomain(req: Cipher, domain = new CipherDomain()) {\n domain.type = req.type;\n domain.folderId = req.folderId;\n if (domain.organizationId == null) {\n domain.organizationId = req.organizationId;\n }\n domain.name = req.name != null ? new EncString(req.name) : null;\n domain.notes = req.notes != null ? new EncString(req.notes) : null;\n domain.favorite = req.favorite;\n\n if (req.fields != null) {\n domain.fields = req.fields.map(f => Field.toDomain(f));\n }\n\n switch (req.type) {\n case CipherType.Login:\n domain.login = Login.toDomain(req.login);\n break;\n case CipherType.SecureNote:\n domain.secureNote = SecureNote.toDomain(req.secureNote);\n break;\n case CipherType.Card:\n domain.card = Card.toDomain(req.card);\n break;\n case CipherType.Identity:\n domain.identity = Identity.toDomain(req.identity);\n break;\n }\n\n return domain;\n }\n\n type: CipherType;\n folderId: string;\n organizationId: string;\n collectionIds: string[];\n name: string;\n notes: string;\n favorite: boolean;\n fields: Field[];\n login: Login;\n secureNote: SecureNote;\n card: Card;\n identity: Identity;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CipherView | CipherDomain) {\n this.organizationId = o.organizationId;\n this.folderId = o.folderId;\n this.type = o.type;\n\n if (o instanceof CipherView) {\n this.name = o.name;\n this.notes = o.notes;\n } else {\n this.name = o.name?.encryptedString;\n this.notes = o.notes?.encryptedString;\n }\n\n this.favorite = o.favorite;\n\n if (o.fields != null) {\n if (o instanceof CipherView) {\n this.fields = o.fields.map(f => new Field(f));\n } else {\n this.fields = o.fields.map(f => new Field(f));\n }\n }\n\n switch (o.type) {\n case CipherType.Login:\n this.login = new Login(o.login);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNote(o.secureNote);\n break;\n case CipherType.Card:\n this.card = new Card(o.card);\n break;\n case CipherType.Identity:\n this.identity = new Identity(o.identity);\n break;\n }\n }\n}\n","import { CardView } from '../view/cardView';\n\nimport { Card as CardDomain } from '../domain/card';\nimport { EncString } from '../domain/encString';\n\nexport class Card {\n static template(): Card {\n const req = new Card();\n req.cardholderName = 'John Doe';\n req.brand = 'visa';\n req.number = '4242424242424242';\n req.expMonth = '04';\n req.expYear = '2023';\n req.code = '123';\n return req;\n }\n\n static toView(req: Card, view = new CardView()) {\n view.cardholderName = req.cardholderName;\n view.brand = req.brand;\n view.number = req.number;\n view.expMonth = req.expMonth;\n view.expYear = req.expYear;\n view.code = req.code;\n return view;\n }\n\n static toDomain(req: Card, domain = new CardDomain()) {\n domain.cardholderName = req.cardholderName != null ? new EncString(req.cardholderName) : null;\n domain.brand = req.brand != null ? new EncString(req.brand) : null;\n domain.number = req.number != null ? new EncString(req.number) : null;\n domain.expMonth = req.expMonth != null ? new EncString(req.expMonth) : null;\n domain.expYear = req.expYear != null ? new EncString(req.expYear) : null;\n domain.code = req.code != null ? new EncString(req.code) : null;\n return domain;\n }\n\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(o?: CardView | CardDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof CardView) {\n this.cardholderName = o.cardholderName;\n this.brand = o.brand;\n this.number = o.number;\n this.expMonth = o.expMonth;\n this.expYear = o.expYear;\n this.code = o.code;\n } else {\n this.cardholderName = o.cardholderName?.encryptedString;\n this.brand = o.brand?.encryptedString;\n this.number = o.number?.encryptedString;\n this.expMonth = o.expMonth?.encryptedString;\n this.expYear = o.expYear?.encryptedString;\n this.code = o.code?.encryptedString;\n }\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldView } from '../view/fieldView';\n\nimport { EncString } from '../domain/encString';\nimport { Field as FieldDomain } from '../domain/field';\n\nexport class Field {\n static template(): Field {\n const req = new Field();\n req.name = 'Field name';\n req.value = 'Some value';\n req.type = FieldType.Text;\n return req;\n }\n\n static toView(req: Field, view = new FieldView()) {\n view.type = req.type;\n view.value = req.value;\n view.name = req.name;\n return view;\n }\n\n static toDomain(req: Field, domain = new FieldDomain()) {\n domain.type = req.type;\n domain.value = req.value != null ? new EncString(req.value) : null;\n domain.name = req.name != null ? new EncString(req.name) : null;\n return domain;\n }\n\n name: string;\n value: string;\n type: FieldType;\n\n constructor(o?: FieldView | FieldDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof FieldView) {\n this.name = o.name;\n this.value = o.value;\n } else {\n this.name = o.name?.encryptedString;\n this.value = o.value?.encryptedString;\n }\n this.type = o.type;\n }\n}\n","import { IdentityView } from '../view/identityView';\n\nimport { EncString } from '../domain/encString';\nimport { Identity as IdentityDomain } from '../domain/identity';\n\nexport class Identity {\n static template(): Identity {\n const req = new Identity();\n req.title = 'Mr';\n req.firstName = 'John';\n req.middleName = 'William';\n req.lastName = 'Doe';\n req.address1 = '123 Any St';\n req.address2 = 'Apt #123';\n req.address3 = null;\n req.city = 'New York';\n req.state = 'NY';\n req.postalCode = '10001';\n req.country = 'US';\n req.company = 'Acme Inc.';\n req.email = 'john@company.com';\n req.phone = '5555551234';\n req.ssn = '000-123-4567';\n req.username = 'jdoe';\n req.passportNumber = 'US-123456789';\n req.licenseNumber = 'D123-12-123-12333';\n return req;\n }\n\n static toView(req: Identity, view = new IdentityView()) {\n view.title = req.title;\n view.firstName = req.firstName;\n view.middleName = req.middleName;\n view.lastName = req.lastName;\n view.address1 = req.address1;\n view.address2 = req.address2;\n view.address3 = req.address3;\n view.city = req.city;\n view.state = req.state;\n view.postalCode = req.postalCode;\n view.country = req.country;\n view.company = req.company;\n view.email = req.email;\n view.phone = req.phone;\n view.ssn = req.ssn;\n view.username = req.username;\n view.passportNumber = req.passportNumber;\n view.licenseNumber = req.licenseNumber;\n return view;\n }\n\n static toDomain(req: Identity, domain = new IdentityDomain()) {\n domain.title = req.title != null ? new EncString(req.title) : null;\n domain.firstName = req.firstName != null ? new EncString(req.firstName) : null;\n domain.middleName = req.middleName != null ? new EncString(req.middleName) : null;\n domain.lastName = req.lastName != null ? new EncString(req.lastName) : null;\n domain.address1 = req.address1 != null ? new EncString(req.address1) : null;\n domain.address2 = req.address2 != null ? new EncString(req.address2) : null;\n domain.address3 = req.address3 != null ? new EncString(req.address3) : null;\n domain.city = req.city != null ? new EncString(req.city) : null;\n domain.state = req.state != null ? new EncString(req.state) : null;\n domain.postalCode = req.postalCode != null ? new EncString(req.postalCode) : null;\n domain.country = req.country != null ? new EncString(req.country) : null;\n domain.company = req.company != null ? new EncString(req.company) : null;\n domain.email = req.email != null ? new EncString(req.email) : null;\n domain.phone = req.phone != null ? new EncString(req.phone) : null;\n domain.ssn = req.ssn != null ? new EncString(req.ssn) : null;\n domain.username = req.username != null ? new EncString(req.username) : null;\n domain.passportNumber = req.passportNumber != null ? new EncString(req.passportNumber) : null;\n domain.licenseNumber = req.licenseNumber != null ? new EncString(req.licenseNumber) : null;\n return domain;\n }\n\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(o?: IdentityView | IdentityDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof IdentityView) {\n this.title = o.title;\n this.firstName = o.firstName;\n this.middleName = o.middleName;\n this.lastName = o.lastName;\n this.address1 = o.address1;\n this.address2 = o.address2;\n this.address3 = o.address3;\n this.city = o.city;\n this.state = o.state;\n this.postalCode = o.postalCode;\n this.country = o.country;\n this.company = o.company;\n this.email = o.email;\n this.phone = o.phone;\n this.ssn = o.ssn;\n this.username = o.username;\n this.passportNumber = o.passportNumber;\n this.licenseNumber = o.licenseNumber;\n } else {\n this.title = o.title?.encryptedString;\n this.firstName = o.firstName?.encryptedString;\n this.middleName = o.middleName?.encryptedString;\n this.lastName = o.lastName?.encryptedString;\n this.address1 = o.address1?.encryptedString;\n this.address2 = o.address2?.encryptedString;\n this.address3 = o.address3?.encryptedString;\n this.city = o.city?.encryptedString;\n this.state = o.state?.encryptedString;\n this.postalCode = o.postalCode?.encryptedString;\n this.country = o.country?.encryptedString;\n this.company = o.company?.encryptedString;\n this.email = o.email?.encryptedString;\n this.phone = o.phone?.encryptedString;\n this.ssn = o.ssn?.encryptedString;\n this.username = o.username?.encryptedString;\n this.passportNumber = o.passportNumber?.encryptedString;\n this.licenseNumber = o.licenseNumber?.encryptedString;\n }\n }\n}\n","import { LoginUri } from './loginUri';\n\nimport { LoginView } from '../view/loginView';\n\nimport { EncString } from '../domain/encString';\nimport { Login as LoginDomain } from '../domain/login';\n\nexport class Login {\n static template(): Login {\n const req = new Login();\n req.uris = [];\n req.username = 'jdoe';\n req.password = 'myp@ssword123';\n req.totp = 'JBSWY3DPEHPK3PXP';\n return req;\n }\n\n static toView(req: Login, view = new LoginView()) {\n if (req.uris != null) {\n view.uris = req.uris.map(u => LoginUri.toView(u));\n }\n view.username = req.username;\n view.password = req.password;\n view.totp = req.totp;\n return view;\n }\n\n static toDomain(req: Login, domain = new LoginDomain()) {\n if (req.uris != null) {\n domain.uris = req.uris.map(u => LoginUri.toDomain(u));\n }\n domain.username = req.username != null ? new EncString(req.username) : null;\n domain.password = req.password != null ? new EncString(req.password) : null;\n domain.totp = req.totp != null ? new EncString(req.totp) : null;\n return domain;\n }\n\n uris: LoginUri[];\n username: string;\n password: string;\n totp: string;\n\n constructor(o?: LoginView | LoginDomain) {\n if (o == null) {\n return;\n }\n\n if (o.uris != null) {\n if (o instanceof LoginView) {\n this.uris = o.uris.map(u => new LoginUri(u));\n } else {\n this.uris = o.uris.map(u => new LoginUri(u));\n }\n }\n\n if (o instanceof LoginView) {\n this.username = o.username;\n this.password = o.password;\n this.totp = o.totp;\n } else {\n this.username = o.username?.encryptedString;\n this.password = o.password?.encryptedString;\n this.totp = o.totp?.encryptedString;\n }\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriView } from '../view/loginUriView';\n\nimport { EncString } from '../domain/encString';\nimport { LoginUri as LoginUriDomain } from '../domain/loginUri';\n\nexport class LoginUri {\n static template(): LoginUri {\n const req = new LoginUri();\n req.uri = 'https://google.com';\n req.match = null;\n return req;\n }\n\n static toView(req: LoginUri, view = new LoginUriView()) {\n view.uri = req.uri;\n view.match = req.match;\n return view;\n }\n\n static toDomain(req: LoginUri, domain = new LoginUriDomain()) {\n domain.uri = req.uri != null ? new EncString(req.uri) : null;\n domain.match = req.match;\n return domain;\n }\n\n uri: string;\n match: UriMatchType = null;\n\n constructor(o?: LoginUriView | LoginUriDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof LoginUriView) {\n this.uri = o.uri;\n } else {\n this.uri = o.uri?.encryptedString;\n }\n this.match = o.match;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteView } from '../view/secureNoteView';\n\nimport { SecureNote as SecureNoteDomain } from '../domain/secureNote';\n\nexport class SecureNote {\n static template(): SecureNote {\n const req = new SecureNote();\n req.type = SecureNoteType.Generic;\n return req;\n }\n\n static toView(req: SecureNote, view = new SecureNoteView()) {\n view.type = req.type;\n return view;\n }\n\n static toDomain(req: SecureNote, view = new SecureNoteDomain()) {\n view.type = req.type;\n return view;\n }\n\n type: SecureNoteType;\n\n constructor(o?: SecureNoteView | SecureNoteDomain) {\n if (o == null) {\n return;\n }\n\n this.type = o.type;\n }\n}\n","import { CollectionView } from '../view/collectionView';\n\nimport { Collection as CollectionDomain } from '../domain/collection';\nimport { EncString } from '../domain/encString';\n\nexport class Collection {\n static template(): Collection {\n const req = new Collection();\n req.organizationId = '00000000-0000-0000-0000-000000000000';\n req.name = 'Collection name';\n req.externalId = null;\n return req;\n }\n\n static toView(req: Collection, view = new CollectionView()) {\n view.name = req.name;\n view.externalId = req.externalId;\n if (view.organizationId == null) {\n view.organizationId = req.organizationId;\n }\n return view;\n }\n\n static toDomain(req: Collection, domain = new CollectionDomain()) {\n domain.name = req.name != null ? new EncString(req.name) : null;\n domain.externalId = req.externalId;\n if (domain.organizationId == null) {\n domain.organizationId = req.organizationId;\n }\n return domain;\n }\n\n organizationId: string;\n name: string;\n externalId: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CollectionView | CollectionDomain) {\n this.organizationId = o.organizationId;\n if (o instanceof CollectionView) {\n this.name = o.name;\n } else {\n this.name = o.name?.encryptedString;\n }\n this.externalId = o.externalId;\n }\n}\n","import { FolderView } from '../view/folderView';\n\nimport { EncString } from '../domain/encString';\nimport { Folder as FolderDomain } from '../domain/folder';\n\nexport class Folder {\n static template(): Folder {\n const req = new Folder();\n req.name = 'Folder name';\n return req;\n }\n\n static toView(req: Folder, view = new FolderView()) {\n view.name = req.name;\n return view;\n }\n\n static toDomain(req: Folder, domain = new FolderDomain()) {\n domain.name = req.name != null ? new EncString(req.name) : null;\n return domain;\n }\n\n name: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: FolderView | FolderDomain) {\n if (o instanceof FolderView) {\n this.name = o.name;\n } else {\n this.name = o.name?.encryptedString;\n }\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { FileUploadService as FileUploadServiceAbstraction } from '../abstractions/fileUpload.service';\nimport { LogService } from '../abstractions/log.service';\n\nimport { FileUploadType } from '../enums/fileUploadType';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\n\nimport { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';\nimport { SendFileUploadDataResponse } from '../models/response/sendFileUploadDataResponse';\n\nimport { AzureFileUploadService } from './azureFileUpload.service';\nimport { BitwardenFileUploadService } from './bitwardenFileUpload.service';\n\nexport class FileUploadService implements FileUploadServiceAbstraction {\n private azureFileUploadService: AzureFileUploadService;\n private bitwardenFileUploadService: BitwardenFileUploadService;\n\n constructor(private logService: LogService, private apiService: ApiService) {\n this.azureFileUploadService = new AzureFileUploadService(logService);\n this.bitwardenFileUploadService = new BitwardenFileUploadService(apiService);\n }\n\n async uploadSendFile(uploadData: SendFileUploadDataResponse, fileName: EncString, encryptedFileData: EncArrayBuffer) {\n try {\n switch (uploadData.fileUploadType) {\n case FileUploadType.Direct:\n await this.bitwardenFileUploadService.upload(fileName.encryptedString, encryptedFileData,\n fd => this.apiService.postSendFile(uploadData.sendResponse.id, uploadData.sendResponse.file.id, fd));\n break;\n case FileUploadType.Azure:\n const renewalCallback = async () => {\n const renewalResponse = await this.apiService.renewSendFileUploadUrl(uploadData.sendResponse.id,\n uploadData.sendResponse.file.id);\n return renewalResponse.url;\n };\n await this.azureFileUploadService.upload(uploadData.url, encryptedFileData,\n renewalCallback);\n break;\n default:\n throw new Error('Unknown file upload type');\n }\n } catch (e) {\n await this.apiService.deleteSend(uploadData.sendResponse.id);\n throw e;\n }\n }\n\n async uploadCipherAttachment(admin: boolean, uploadData: AttachmentUploadDataResponse, encryptedFileName: string, encryptedFileData: EncArrayBuffer) {\n const response = admin ? uploadData.cipherMiniResponse : uploadData.cipherResponse;\n try {\n switch (uploadData.fileUploadType) {\n case FileUploadType.Direct:\n await this.bitwardenFileUploadService.upload(encryptedFileName, encryptedFileData,\n fd => this.apiService.postAttachmentFile(response.id, uploadData.attachmentId, fd));\n break;\n case FileUploadType.Azure:\n const renewalCallback = async () => {\n const renewalResponse = await this.apiService.renewAttachmentUploadUrl(response.id,\n uploadData.attachmentId);\n return renewalResponse.url;\n };\n await this.azureFileUploadService.upload(uploadData.url, encryptedFileData, renewalCallback);\n break;\n default:\n throw new Error('Unknown file upload type.');\n }\n } catch (e) {\n if (admin) {\n await this.apiService.deleteCipherAttachmentAdmin(response.id, uploadData.attachmentId);\n } else {\n await this.apiService.deleteCipherAttachment(response.id, uploadData.attachmentId);\n }\n throw e;\n }\n }\n}\n","export enum FileUploadType {\n Direct = 0,\n Azure = 1,\n}\n","import { LogService } from '../abstractions/log.service';\n\nimport { Utils } from '../misc/utils';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\n\nconst MAX_SINGLE_BLOB_UPLOAD_SIZE = 256 * 1024 * 1024; // 256 MiB\nconst MAX_BLOCKS_PER_BLOB = 50000;\n\nexport class AzureFileUploadService {\n constructor(private logService: LogService) { }\n\n async upload(url: string, data: EncArrayBuffer, renewalCallback: () => Promise) {\n if (data.buffer.byteLength <= MAX_SINGLE_BLOB_UPLOAD_SIZE) {\n return await this.azureUploadBlob(url, data);\n } else {\n return await this.azureUploadBlocks(url, data, renewalCallback);\n }\n }\n private async azureUploadBlob(url: string, data: EncArrayBuffer) {\n const urlObject = Utils.getUrl(url);\n const headers = new Headers({\n 'x-ms-date': new Date().toUTCString(),\n 'x-ms-version': urlObject.searchParams.get('sv'),\n 'Content-Length': data.buffer.byteLength.toString(),\n 'x-ms-blob-type': 'BlockBlob',\n });\n\n const request = new Request(url, {\n body: data.buffer,\n cache: 'no-store',\n method: 'PUT',\n headers: headers,\n });\n\n const blobResponse = await fetch(request);\n\n if (blobResponse.status !== 201) {\n throw new Error(`Failed to create Azure blob: ${blobResponse.status}`);\n }\n }\n private async azureUploadBlocks(url: string, data: EncArrayBuffer, renewalCallback: () => Promise) {\n const baseUrl = Utils.getUrl(url);\n const blockSize = this.getMaxBlockSize(baseUrl.searchParams.get('sv'));\n let blockIndex = 0;\n const numBlocks = Math.ceil(data.buffer.byteLength / blockSize);\n const blocksStaged: string[] = [];\n\n if (numBlocks > MAX_BLOCKS_PER_BLOB) {\n throw new Error(`Cannot upload file, exceeds maximum size of ${blockSize * MAX_BLOCKS_PER_BLOB}`);\n }\n\n try {\n while (blockIndex < numBlocks) {\n url = await this.renewUrlIfNecessary(url, renewalCallback);\n const blockUrl = Utils.getUrl(url);\n const blockId = this.encodedBlockId(blockIndex);\n blockUrl.searchParams.append('comp', 'block');\n blockUrl.searchParams.append('blockid', blockId);\n const start = blockIndex * blockSize;\n const blockData = data.buffer.slice(start, start + blockSize);\n const blockHeaders = new Headers({\n 'x-ms-date': new Date().toUTCString(),\n 'x-ms-version': blockUrl.searchParams.get('sv'),\n 'Content-Length': blockData.byteLength.toString(),\n });\n\n const blockRequest = new Request(blockUrl.toString(), {\n body: blockData,\n cache: 'no-store',\n method: 'PUT',\n headers: blockHeaders,\n });\n\n const blockResponse = await fetch(blockRequest);\n\n if (blockResponse.status !== 201) {\n const message = `Unsuccessful block PUT. Received status ${blockResponse.status}`;\n this.logService.error(message + '\\n' + await blockResponse.json());\n throw new Error(message);\n }\n\n blocksStaged.push(blockId);\n blockIndex++;\n }\n\n url = await this.renewUrlIfNecessary(url, renewalCallback);\n const blockListUrl = Utils.getUrl(url);\n const blockListXml = this.blockListXml(blocksStaged);\n blockListUrl.searchParams.append('comp', 'blocklist');\n const headers = new Headers({\n 'x-ms-date': new Date().toUTCString(),\n 'x-ms-version': blockListUrl.searchParams.get('sv'),\n 'Content-Length': blockListXml.length.toString(),\n });\n\n const request = new Request(blockListUrl.toString(), {\n body: blockListXml,\n cache: 'no-store',\n method: 'PUT',\n headers: headers,\n });\n\n const response = await fetch(request);\n\n if (response.status !== 201) {\n const message = `Unsuccessful block list PUT. Received status ${response.status}`;\n this.logService.error(message + '\\n' + await response.json());\n throw new Error(message);\n }\n } catch (e) {\n throw e;\n }\n }\n\n private async renewUrlIfNecessary(url: string, renewalCallback: () => Promise): Promise {\n const urlObject = Utils.getUrl(url);\n const expiry = new Date(urlObject.searchParams.get('se') ?? '');\n\n if (isNaN(expiry.getTime())) {\n expiry.setTime(Date.now() + 3600000);\n }\n\n if (expiry.getTime() < Date.now() + 1000) {\n return await renewalCallback();\n }\n return url;\n }\n\n private encodedBlockId(blockIndex: number) {\n // Encoded blockId max size is 64, so pre-encoding max size is 48\n const utfBlockId = ('000000000000000000000000000000000000000000000000' + blockIndex.toString()).slice(-48);\n return Utils.fromUtf8ToB64(utfBlockId);\n }\n\n private blockListXml(blockIdList: string[]) {\n let xml = '';\n blockIdList.forEach(blockId => {\n xml += `${blockId}`;\n });\n xml += '';\n return xml;\n }\n\n private getMaxBlockSize(version: string) {\n if (Version.compare(version, '2019-12-12') >= 0) {\n return 4000 * 1024 * 1024; // 4000 MiB\n } else if (Version.compare(version, '2016-05-31') >= 0) {\n return 100 * 1024 * 1024; // 100 MiB\n } else {\n return 4 * 1024 * 1024; // 4 MiB\n }\n }\n}\n\nclass Version {\n /**\n * Compares two Azure Versions against each other\n * @param a Version to compare\n * @param b Version to compare\n * @returns a number less than zero if b is newer than a, 0 if equal,\n * and greater than zero if a is newer than b\n */\n static compare(a: Required | string, b: Required | string) {\n if (typeof (a) === 'string') {\n a = new Version(a);\n }\n\n if (typeof (b) === 'string') {\n b = new Version(b);\n }\n\n return a.year !== b.year ? a.year - b.year :\n a.month !== b.month ? a.month - b.month :\n a.day !== b.day ? a.day - b.day :\n 0;\n }\n year = 0;\n month = 0;\n day = 0;\n\n constructor(version: string) {\n try {\n const parts = version.split('-').map(v => Number.parseInt(v, 10));\n this.year = parts[0];\n this.month = parts[1];\n this.day = parts[2];\n } catch { }\n }\n /**\n * Compares two Azure Versions against each other\n * @param compareTo Version to compare against\n * @returns a number less than zero if compareTo is newer, 0 if equal,\n * and greater than zero if this is greater than compareTo\n */\n compare(compareTo: Required | string) {\n return Version.compare(this, compareTo);\n }\n}\n","import { ApiService } from '../abstractions/api.service';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\n\nimport { Utils } from '../misc/utils';\n\nexport class BitwardenFileUploadService\n{\n constructor(private apiService: ApiService) { }\n\n async upload(encryptedFileName: string, encryptedFileData: EncArrayBuffer, apiCall: (fd: FormData) => Promise) {\n const fd = new FormData();\n try {\n const blob = new Blob([encryptedFileData.buffer], { type: 'application/octet-stream' });\n fd.append('data', blob, encryptedFileName);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('data', Buffer.from(encryptedFileData.buffer) as any, {\n filepath: encryptedFileName,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n await apiCall(fd);\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport {\n ImportOption,\n ImportService as ImportServiceAbstraction,\n} from '../abstractions/import.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { Utils } from '../misc/utils';\n\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KvpRequest } from '../models/request/kvpRequest';\n\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { CipherView } from '../models/view/cipherView';\n\nimport { AscendoCsvImporter } from '../importers/ascendoCsvImporter';\nimport { AvastCsvImporter } from '../importers/avastCsvImporter';\nimport { AvastJsonImporter } from '../importers/avastJsonImporter';\nimport { AviraCsvImporter } from '../importers/aviraCsvImporter';\nimport { BitwardenCsvImporter } from '../importers/bitwardenCsvImporter';\nimport { BitwardenJsonImporter } from '../importers/bitwardenJsonImporter';\nimport { BlackBerryCsvImporter } from '../importers/blackBerryCsvImporter';\nimport { BlurCsvImporter } from '../importers/blurCsvImporter';\nimport { ButtercupCsvImporter } from '../importers/buttercupCsvImporter';\nimport { ChromeCsvImporter } from '../importers/chromeCsvImporter';\nimport { ClipperzHtmlImporter } from '../importers/clipperzHtmlImporter';\nimport { CodebookCsvImporter } from '../importers/codebookCsvImporter';\nimport { DashlaneJsonImporter } from '../importers/dashlaneJsonImporter';\nimport { EncryptrCsvImporter } from '../importers/encryptrCsvImporter';\nimport { EnpassCsvImporter } from '../importers/enpassCsvImporter';\nimport { EnpassJsonImporter } from '../importers/enpassJsonImporter';\nimport { FirefoxCsvImporter } from '../importers/firefoxCsvImporter';\nimport { FSecureFskImporter } from '../importers/fsecureFskImporter';\nimport { GnomeJsonImporter } from '../importers/gnomeJsonImporter';\nimport { Importer } from '../importers/importer';\nimport { KasperskyTxtImporter } from '../importers/kasperskyTxtImporter';\nimport { KeePass2XmlImporter } from '../importers/keepass2XmlImporter';\nimport { KeePassXCsvImporter } from '../importers/keepassxCsvImporter';\nimport { KeeperCsvImporter } from '../importers/keeperCsvImporter';\nimport { LastPassCsvImporter } from '../importers/lastpassCsvImporter';\nimport { LogMeOnceCsvImporter } from '../importers/logMeOnceCsvImporter';\nimport { MeldiumCsvImporter } from '../importers/meldiumCsvImporter';\nimport { MSecureCsvImporter } from '../importers/msecureCsvImporter';\nimport { MykiCsvImporter } from '../importers/mykiCsvImporter';\nimport { OnePassword1PifImporter } from '../importers/onepasswordImporters/onepassword1PifImporter';\nimport { OnePasswordMacCsvImporter } from '../importers/onepasswordImporters/onepasswordMacCsvImporter';\nimport { OnePasswordWinCsvImporter } from '../importers/onepasswordImporters/onepasswordWinCsvImporter';\nimport { PadlockCsvImporter } from '../importers/padlockCsvImporter';\nimport { PassKeepCsvImporter } from '../importers/passkeepCsvImporter';\nimport { PassmanJsonImporter } from '../importers/passmanJsonImporter';\nimport { PasspackCsvImporter } from '../importers/passpackCsvImporter';\nimport { PasswordAgentCsvImporter } from '../importers/passwordAgentCsvImporter';\nimport { PasswordBossJsonImporter } from '../importers/passwordBossJsonImporter';\nimport { PasswordDragonXmlImporter } from '../importers/passwordDragonXmlImporter';\nimport { PasswordSafeXmlImporter } from '../importers/passwordSafeXmlImporter';\nimport { PasswordWalletTxtImporter } from '../importers/passwordWalletTxtImporter';\nimport { RememBearCsvImporter } from '../importers/rememBearCsvImporter';\nimport { RoboFormCsvImporter } from '../importers/roboformCsvImporter';\nimport { SafeInCloudXmlImporter } from '../importers/safeInCloudXmlImporter';\nimport { SaferPassCsvImporter } from '../importers/saferpassCsvImport';\nimport { SecureSafeCsvImporter } from '../importers/secureSafeCsvImporter';\nimport { SplashIdCsvImporter } from '../importers/splashIdCsvImporter';\nimport { StickyPasswordXmlImporter } from '../importers/stickyPasswordXmlImporter';\nimport { TrueKeyCsvImporter } from '../importers/truekeyCsvImporter';\nimport { UpmCsvImporter } from '../importers/upmCsvImporter';\nimport { YotiCsvImporter } from '../importers/yotiCsvImporter';\nimport { ZohoVaultCsvImporter } from '../importers/zohoVaultCsvImporter';\n\nexport class ImportService implements ImportServiceAbstraction {\n featuredImportOptions = [\n { id: 'bitwardenjson', name: 'Bitwarden (json)' },\n { id: 'bitwardencsv', name: 'Bitwarden (csv)' },\n { id: 'lastpasscsv', name: 'LastPass (csv)' },\n { id: 'chromecsv', name: 'Chrome (csv)' },\n { id: 'firefoxcsv', name: 'Firefox (csv)' },\n { id: 'keepass2xml', name: 'KeePass 2 (xml)' },\n { id: '1password1pif', name: '1Password (1pif)' },\n { id: 'dashlanejson', name: 'Dashlane (json)' },\n ];\n\n regularImportOptions: ImportOption[] = [\n { id: 'keepassxcsv', name: 'KeePassX (csv)' },\n { id: '1passwordwincsv', name: '1Password 6 and 7 Windows (csv)' },\n { id: '1passwordmaccsv', name: '1Password 6 and 7 Mac (csv)' },\n { id: 'roboformcsv', name: 'RoboForm (csv)' },\n { id: 'keepercsv', name: 'Keeper (csv)' },\n { id: 'enpasscsv', name: 'Enpass (csv)' },\n { id: 'enpassjson', name: 'Enpass (json)' },\n { id: 'safeincloudxml', name: 'SafeInCloud (xml)' },\n { id: 'pwsafexml', name: 'Password Safe (xml)' },\n { id: 'stickypasswordxml', name: 'Sticky Password (xml)' },\n { id: 'msecurecsv', name: 'mSecure (csv)' },\n { id: 'truekeycsv', name: 'True Key (csv)' },\n { id: 'passwordbossjson', name: 'Password Boss (json)' },\n { id: 'zohovaultcsv', name: 'Zoho Vault (csv)' },\n { id: 'splashidcsv', name: 'SplashID (csv)' },\n { id: 'passworddragonxml', name: 'Password Dragon (xml)' },\n { id: 'padlockcsv', name: 'Padlock (csv)' },\n { id: 'passboltcsv', name: 'Passbolt (csv)' },\n { id: 'clipperzhtml', name: 'Clipperz (html)' },\n { id: 'aviracsv', name: 'Avira (csv)' },\n { id: 'saferpasscsv', name: 'SaferPass (csv)' },\n { id: 'upmcsv', name: 'Universal Password Manager (csv)' },\n { id: 'ascendocsv', name: 'Ascendo DataVault (csv)' },\n { id: 'meldiumcsv', name: 'Meldium (csv)' },\n { id: 'passkeepcsv', name: 'PassKeep (csv)' },\n { id: 'operacsv', name: 'Opera (csv)' },\n { id: 'vivaldicsv', name: 'Vivaldi (csv)' },\n { id: 'gnomejson', name: 'GNOME Passwords and Keys/Seahorse (json)' },\n { id: 'blurcsv', name: 'Blur (csv)' },\n { id: 'passwordagentcsv', name: 'Password Agent (csv)' },\n { id: 'passpackcsv', name: 'Passpack (csv)' },\n { id: 'passmanjson', name: 'Passman (json)' },\n { id: 'avastcsv', name: 'Avast Passwords (csv)' },\n { id: 'avastjson', name: 'Avast Passwords (json)' },\n { id: 'fsecurefsk', name: 'F-Secure KEY (fsk)' },\n { id: 'kasperskytxt', name: 'Kaspersky Password Manager (txt)' },\n { id: 'remembearcsv', name: 'RememBear (csv)' },\n { id: 'passwordwallettxt', name: 'PasswordWallet (txt)' },\n { id: 'mykicsv', name: 'Myki (csv)' },\n { id: 'securesafecsv', name: 'SecureSafe (csv)' },\n { id: 'logmeoncecsv', name: 'LogMeOnce (csv)' },\n { id: 'blackberrycsv', name: 'BlackBerry Password Keeper (csv)' },\n { id: 'buttercupcsv', name: 'Buttercup (csv)' },\n { id: 'codebookcsv', name: 'Codebook (csv)' },\n { id: 'encryptrcsv', name: 'Encryptr (csv)' },\n { id: 'yoticsv', name: 'Yoti (csv)' },\n ];\n\n constructor(private cipherService: CipherService, private folderService: FolderService,\n private apiService: ApiService, private i18nService: I18nService,\n private collectionService: CollectionService, private platformUtilsService: PlatformUtilsService) { }\n\n getImportOptions(): ImportOption[] {\n return this.featuredImportOptions.concat(this.regularImportOptions);\n }\n\n async import(importer: Importer, fileContents: string, organizationId: string = null): Promise {\n const importResult = await importer.parse(fileContents);\n if (importResult.success) {\n if (importResult.folders.length === 0 && importResult.ciphers.length === 0) {\n return new Error(this.i18nService.t('importNothingError'));\n } else if (importResult.ciphers.length > 0) {\n const halfway = Math.floor(importResult.ciphers.length / 2);\n const last = importResult.ciphers.length - 1;\n\n if (this.badData(importResult.ciphers[0]) &&\n this.badData(importResult.ciphers[halfway]) &&\n this.badData(importResult.ciphers[last])) {\n return new Error(this.i18nService.t('importFormatError'));\n }\n }\n try {\n await this.postImport(importResult, organizationId);\n } catch (error) {\n const errorResponse = new ErrorResponse(error, 400);\n return this.handleServerError(errorResponse, importResult);\n }\n return null;\n } else {\n return new Error(this.i18nService.t('importFormatError'));\n }\n }\n\n getImporter(format: string, organizationId: string = null): Importer {\n const importer = this.getImporterInstance(format);\n if (importer == null) {\n return null;\n }\n importer.organizationId = organizationId;\n return importer;\n }\n\n private getImporterInstance(format: string) {\n if (format == null || format === '') {\n return null;\n }\n\n switch (format) {\n case 'bitwardencsv':\n return new BitwardenCsvImporter();\n case 'bitwardenjson':\n return new BitwardenJsonImporter();\n case 'lastpasscsv':\n case 'passboltcsv':\n return new LastPassCsvImporter();\n case 'keepassxcsv':\n return new KeePassXCsvImporter();\n case 'aviracsv':\n return new AviraCsvImporter();\n case 'blurcsv':\n return new BlurCsvImporter();\n case 'safeincloudxml':\n return new SafeInCloudXmlImporter();\n case 'padlockcsv':\n return new PadlockCsvImporter();\n case 'keepass2xml':\n return new KeePass2XmlImporter();\n case 'chromecsv':\n case 'operacsv':\n case 'vivaldicsv':\n return new ChromeCsvImporter();\n case 'firefoxcsv':\n return new FirefoxCsvImporter();\n case 'upmcsv':\n return new UpmCsvImporter();\n case 'saferpasscsv':\n return new SaferPassCsvImporter();\n case 'meldiumcsv':\n return new MeldiumCsvImporter();\n case '1password1pif':\n return new OnePassword1PifImporter();\n case '1passwordwincsv':\n return new OnePasswordWinCsvImporter();\n case '1passwordmaccsv':\n return new OnePasswordMacCsvImporter();\n case 'keepercsv':\n return new KeeperCsvImporter();\n case 'passworddragonxml':\n return new PasswordDragonXmlImporter();\n case 'enpasscsv':\n return new EnpassCsvImporter();\n case 'enpassjson':\n return new EnpassJsonImporter();\n case 'pwsafexml':\n return new PasswordSafeXmlImporter();\n case 'dashlanejson':\n return new DashlaneJsonImporter();\n case 'msecurecsv':\n return new MSecureCsvImporter();\n case 'stickypasswordxml':\n return new StickyPasswordXmlImporter();\n case 'truekeycsv':\n return new TrueKeyCsvImporter();\n case 'clipperzhtml':\n return new ClipperzHtmlImporter();\n case 'roboformcsv':\n return new RoboFormCsvImporter();\n case 'ascendocsv':\n return new AscendoCsvImporter();\n case 'passwordbossjson':\n return new PasswordBossJsonImporter();\n case 'zohovaultcsv':\n return new ZohoVaultCsvImporter();\n case 'splashidcsv':\n return new SplashIdCsvImporter();\n case 'passkeepcsv':\n return new PassKeepCsvImporter();\n case 'gnomejson':\n return new GnomeJsonImporter();\n case 'passwordagentcsv':\n return new PasswordAgentCsvImporter();\n case 'passpackcsv':\n return new PasspackCsvImporter();\n case 'passmanjson':\n return new PassmanJsonImporter();\n case 'avastcsv':\n return new AvastCsvImporter();\n case 'avastjson':\n return new AvastJsonImporter();\n case 'fsecurefsk':\n return new FSecureFskImporter();\n case 'kasperskytxt':\n return new KasperskyTxtImporter();\n case 'remembearcsv':\n return new RememBearCsvImporter();\n case 'passwordwallettxt':\n return new PasswordWalletTxtImporter();\n case 'mykicsv':\n return new MykiCsvImporter();\n case 'securesafecsv':\n return new SecureSafeCsvImporter();\n case 'logmeoncecsv':\n return new LogMeOnceCsvImporter();\n case 'blackberrycsv':\n return new BlackBerryCsvImporter();\n case 'buttercupcsv':\n return new ButtercupCsvImporter();\n case 'codebookcsv':\n return new CodebookCsvImporter();\n case 'encryptrcsv':\n return new EncryptrCsvImporter();\n case 'yoticsv':\n return new YotiCsvImporter();\n default:\n return null;\n }\n }\n\n private async postImport(importResult: ImportResult, organizationId: string = null) {\n if (organizationId == null) {\n const request = new ImportCiphersRequest();\n for (let i = 0; i < importResult.ciphers.length; i++) {\n const c = await this.cipherService.encrypt(importResult.ciphers[i]);\n request.ciphers.push(new CipherRequest(c));\n }\n if (importResult.folders != null) {\n for (let i = 0; i < importResult.folders.length; i++) {\n const f = await this.folderService.encrypt(importResult.folders[i]);\n request.folders.push(new FolderRequest(f));\n }\n }\n if (importResult.folderRelationships != null) {\n importResult.folderRelationships.forEach(r =>\n request.folderRelationships.push(new KvpRequest(r[0], r[1])));\n }\n return await this.apiService.postImportCiphers(request);\n } else {\n const request = new ImportOrganizationCiphersRequest();\n for (let i = 0; i < importResult.ciphers.length; i++) {\n importResult.ciphers[i].organizationId = organizationId;\n const c = await this.cipherService.encrypt(importResult.ciphers[i]);\n request.ciphers.push(new CipherRequest(c));\n }\n if (importResult.collections != null) {\n for (let i = 0; i < importResult.collections.length; i++) {\n importResult.collections[i].organizationId = organizationId;\n const c = await this.collectionService.encrypt(importResult.collections[i]);\n request.collections.push(new CollectionRequest(c));\n }\n }\n if (importResult.collectionRelationships != null) {\n importResult.collectionRelationships.forEach(r =>\n request.collectionRelationships.push(new KvpRequest(r[0], r[1])));\n }\n return await this.apiService.postImportOrganizationCiphers(organizationId, request);\n }\n }\n\n private badData(c: CipherView) {\n return (c.name == null || c.name === '--') &&\n (c.type === CipherType.Login && c.login != null && Utils.isNullOrWhitespace(c.login.password));\n }\n\n private handleServerError(errorResponse: ErrorResponse, importResult: ImportResult): Error {\n if (errorResponse.validationErrors == null) {\n return new Error(errorResponse.message);\n }\n\n let errorMessage = '';\n\n Object.entries(errorResponse.validationErrors).forEach(([key, value], index) => {\n let item;\n let itemType;\n const i = Number(key.match(/[0-9]+/)[0]);\n\n switch (key.match(/^\\w+/)[0]) {\n case 'Ciphers':\n item = importResult.ciphers[i];\n itemType = CipherType[item.type];\n break;\n case 'Folders':\n item = importResult.folders[i];\n itemType = 'Folder';\n break;\n case 'Collections':\n item = importResult.collections[i];\n itemType = 'Collection';\n break;\n default:\n return;\n }\n\n if (index > 0) {\n errorMessage += '\\n\\n';\n }\n\n if (itemType !== 'Folder' && itemType !== 'Collection') {\n errorMessage += '[' + (i + 1) + '] ';\n }\n\n errorMessage += '[' + itemType + '] \"' + item.name + '\": ' + value;\n });\n\n return new Error(errorMessage);\n }\n}\n","import { CipherRequest } from './cipherRequest';\nimport { FolderRequest } from './folderRequest';\nimport { KvpRequest } from './kvpRequest';\n\nexport class ImportCiphersRequest {\n ciphers: CipherRequest[] = [];\n folders: FolderRequest[] = [];\n folderRelationships: KvpRequest[] = [];\n}\n","import { CipherRequest } from './cipherRequest';\nimport { CollectionRequest } from './collectionRequest';\nimport { KvpRequest } from './kvpRequest';\n\nexport class ImportOrganizationCiphersRequest {\n ciphers: CipherRequest[] = [];\n collections: CollectionRequest[] = [];\n collectionRelationships: KvpRequest[] = [];\n}\n","export class KvpRequest {\n key: TK;\n value: TV;\n\n constructor(key: TK, value: TV) {\n this.key = key;\n this.value = value;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AscendoCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 2) {\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 1]);\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n if (value.length > 2 && (value.length % 2) === 0) {\n for (let i = 0; i < value.length - 2; i += 2) {\n const val: string = value[i + 2];\n const field: string = value[i + 1];\n if (this.isNullOrWhitespace(val) || this.isNullOrWhitespace(field)) {\n continue;\n }\n\n const fieldLower = field.toLowerCase();\n if (cipher.login.password == null && this.passwordFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.password = this.getValueOrDefault(val);\n } else if (cipher.login.username == null &&\n this.usernameFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.username = this.getValueOrDefault(val);\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.uris = this.makeUriArray(val);\n } else {\n this.processKvp(cipher, field, val);\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AvastCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name);\n cipher.login.uris = this.makeUriArray(value.web);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.login);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class AvastJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n if (results.logins != null) {\n results.logins.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.custName);\n cipher.notes = this.getValueOrDefault(value.note);\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.password = this.getValueOrDefault(value.pwd);\n cipher.login.username = this.getValueOrDefault(value.loginName);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (results.notes != null) {\n results.notes.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.name = this.getValueOrDefault(value.label);\n cipher.notes = this.getValueOrDefault(value.text);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (results.cards != null) {\n results.cards.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.type = CipherType.Card;\n cipher.name = this.getValueOrDefault(value.custName);\n cipher.notes = this.getValueOrDefault(value.note);\n cipher.card.cardholderName = this.getValueOrDefault(value.holderName);\n cipher.card.number = this.getValueOrDefault(value.cardNumber);\n cipher.card.code = this.getValueOrDefault(value.cvv);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n if (value.expirationDate != null) {\n if (value.expirationDate.month != null) {\n cipher.card.expMonth = value.expirationDate.month + '';\n }\n if (value.expirationDate.year != null) {\n cipher.card.expYear = value.expirationDate.year + '';\n }\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AviraCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name,\n this.getValueOrDefault(this.nameFromUrl(value.website), '--'));\n cipher.login.uris = this.makeUriArray(value.website);\n cipher.login.password = this.getValueOrDefault(value.password);\n\n if (this.isNullOrWhitespace(value.username) && !this.isNullOrWhitespace(value.secondary_username)) {\n cipher.login.username = value.secondary_username;\n } else {\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.notes = this.getValueOrDefault(value.secondary_username);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { FieldView } from '../models/view/fieldView';\nimport { FolderView } from '../models/view/folderView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class BitwardenCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.organization && !this.isNullOrWhitespace(value.collections)) {\n const collections = (value.collections as string).split(',');\n collections.forEach(col => {\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === col) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = col;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else if (!this.organization) {\n this.processFolder(result, value.folder);\n }\n\n const cipher = new CipherView();\n cipher.favorite = !this.organization && this.getValueOrDefault(value.favorite, '0') !== '0' ? true : false;\n cipher.type = CipherType.Login;\n cipher.notes = this.getValueOrDefault(value.notes);\n cipher.name = this.getValueOrDefault(value.name, '--');\n\n if (!this.isNullOrWhitespace(value.fields)) {\n const fields = this.splitNewLine(value.fields);\n for (let i = 0; i < fields.length; i++) {\n if (this.isNullOrWhitespace(fields[i])) {\n continue;\n }\n\n const delimPosition = fields[i].lastIndexOf(': ');\n if (delimPosition === -1) {\n continue;\n }\n\n if (cipher.fields == null) {\n cipher.fields = [];\n }\n\n const field = new FieldView();\n field.name = fields[i].substr(0, delimPosition);\n field.value = null;\n field.type = FieldType.Text;\n if (fields[i].length > (delimPosition + 2)) {\n field.value = fields[i].substr(delimPosition + 2);\n }\n cipher.fields.push(field);\n }\n }\n\n const valueType = value.type != null ? value.type.toLowerCase() : null;\n switch (valueType) {\n case 'note':\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n break;\n default:\n cipher.type = CipherType.Login;\n cipher.login = new LoginView();\n cipher.login.totp = this.getValueOrDefault(value.login_totp || value.totp);\n cipher.login.username = this.getValueOrDefault(value.login_username || value.username);\n cipher.login.password = this.getValueOrDefault(value.login_password || value.password);\n const uris = this.parseSingleRowCsv(value.login_uri || value.uri);\n cipher.login.uris = this.makeUriArray(uris);\n break;\n }\n\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherWithIds } from '../models/export/cipherWithIds';\nimport { CollectionWithId } from '../models/export/collectionWithId';\nimport { FolderWithId } from '../models/export/folderWithId';\n\nexport class BitwardenJsonImporter extends BaseImporter implements Importer {\n private results: any;\n private result: ImportResult;\n\n async parse(data: string): Promise {\n this.result = new ImportResult();\n this.results = JSON.parse(data);\n if (this.results == null || this.results.items == null || this.results.items.length === 0) {\n this.result.success = false;\n return this.result;\n }\n\n if (this.results.encrypted) {\n await this.parseEncrypted();\n } else {\n this.parseDecrypted();\n }\n\n this.result.success = true;\n return this.result;\n }\n\n private async parseEncrypted() {\n const groupingsMap = new Map();\n\n if (this.organization && this.results.collections != null) {\n for (const c of this.results.collections as CollectionWithId[]) {\n const collection = CollectionWithId.toDomain(c);\n if (collection != null) {\n collection.id = null;\n collection.organizationId = this.organizationId;\n const view = await collection.decrypt();\n groupingsMap.set(c.id, this.result.collections.length);\n this.result.collections.push(view);\n }\n }\n } else if (!this.organization && this.results.folders != null) {\n for (const f of this.results.folders as FolderWithId[]) {\n const folder = FolderWithId.toDomain(f);\n if (folder != null) {\n folder.id = null;\n const view = await folder.decrypt();\n groupingsMap.set(f.id, this.result.folders.length);\n this.result.folders.push(view);\n }\n }\n }\n\n for (const c of this.results.items as CipherWithIds[]) {\n const cipher = CipherWithIds.toDomain(c);\n // reset ids incase they were set for some reason\n cipher.id = null;\n cipher.folderId = null;\n cipher.organizationId = this.organizationId;\n cipher.collectionIds = null;\n\n // make sure password history is limited\n if (cipher.passwordHistory != null && cipher.passwordHistory.length > 5) {\n cipher.passwordHistory = cipher.passwordHistory.slice(0, 5);\n }\n\n if (!this.organization && c.folderId != null && groupingsMap.has(c.folderId)) {\n this.result.folderRelationships.push([this.result.ciphers.length, groupingsMap.get(c.folderId)]);\n } else if (this.organization && c.collectionIds != null) {\n c.collectionIds.forEach(cId => {\n if (groupingsMap.has(cId)) {\n this.result.collectionRelationships.push([this.result.ciphers.length, groupingsMap.get(cId)]);\n }\n });\n }\n\n const view = await cipher.decrypt();\n this.cleanupCipher(view);\n this.result.ciphers.push(view);\n }\n }\n\n private parseDecrypted() {\n const groupingsMap = new Map();\n if (this.organization && this.results.collections != null) {\n this.results.collections.forEach((c: CollectionWithId) => {\n const collection = CollectionWithId.toView(c);\n if (collection != null) {\n collection.id = null;\n collection.organizationId = null;\n groupingsMap.set(c.id, this.result.collections.length);\n this.result.collections.push(collection);\n }\n });\n } else if (!this.organization && this.results.folders != null) {\n this.results.folders.forEach((f: FolderWithId) => {\n const folder = FolderWithId.toView(f);\n if (folder != null) {\n folder.id = null;\n groupingsMap.set(f.id, this.result.folders.length);\n this.result.folders.push(folder);\n }\n });\n }\n\n this.results.items.forEach((c: CipherWithIds) => {\n const cipher = CipherWithIds.toView(c);\n // reset ids incase they were set for some reason\n cipher.id = null;\n cipher.folderId = null;\n cipher.organizationId = null;\n cipher.collectionIds = null;\n\n // make sure password history is limited\n if (cipher.passwordHistory != null && cipher.passwordHistory.length > 5) {\n cipher.passwordHistory = cipher.passwordHistory.slice(0, 5);\n }\n\n if (!this.organization && c.folderId != null && groupingsMap.has(c.folderId)) {\n this.result.folderRelationships.push([this.result.ciphers.length, groupingsMap.get(c.folderId)]);\n } else if (this.organization && c.collectionIds != null) {\n c.collectionIds.forEach(cId => {\n if (groupingsMap.has(cId)) {\n this.result.collectionRelationships.push([this.result.ciphers.length, groupingsMap.get(cId)]);\n }\n });\n }\n\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class BlackBerryCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.grouping === 'list') {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.favorite = value.fav === '1';\n cipher.name = this.getValueOrDefault(value.name);\n cipher.notes = this.getValueOrDefault(value.extra);\n if (value.grouping !== 'note') {\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.username);\n }\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class BlurCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.label === 'null') {\n value.label = null;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.label,\n this.getValueOrDefault(this.nameFromUrl(value.domain), '--'));\n cipher.login.uris = this.makeUriArray(value.domain);\n cipher.login.password = this.getValueOrDefault(value.password);\n\n if (this.isNullOrWhitespace(value.email) && !this.isNullOrWhitespace(value.username)) {\n cipher.login.username = value.username;\n } else {\n cipher.login.username = this.getValueOrDefault(value.email);\n cipher.notes = this.getValueOrDefault(value.username);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nconst OfficialProps = [\n '!group_id', '!group_name', 'title', 'username', 'password', 'URL', 'id',\n];\n\nexport class ButtercupCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValueOrDefault(value['!group_name']));\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.URL);\n\n let processingCustomFields = false;\n for (const prop in value) {\n if (value.hasOwnProperty(prop)) {\n if (!processingCustomFields && OfficialProps.indexOf(prop) === -1) {\n processingCustomFields = true;\n }\n if (processingCustomFields) {\n this.processKvp(cipher, prop, value[prop]);\n }\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class ChromeCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class ClipperzHtmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const textarea = doc.querySelector('textarea');\n if (textarea == null || this.isNullOrWhitespace(textarea.textContent)) {\n result.errorMessage = 'Missing textarea.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const entries = JSON.parse(textarea.textContent);\n entries.forEach((entry: any) => {\n const cipher = this.initLoginCipher();\n if (!this.isNullOrWhitespace(entry.label)) {\n cipher.name = entry.label.split(' ')[0];\n }\n if (entry.data != null && !this.isNullOrWhitespace(entry.data.notes)) {\n cipher.notes = entry.data.notes.split('\\\\n').join('\\n');\n }\n\n if (entry.currentVersion != null && entry.currentVersion.fields != null) {\n for (const property in entry.currentVersion.fields) {\n if (!entry.currentVersion.fields.hasOwnProperty(property)) {\n continue;\n }\n\n const field = entry.currentVersion.fields[property];\n const actionType = field.actionType != null ? field.actionType.toLowerCase() : null;\n switch (actionType) {\n case 'password':\n cipher.login.password = this.getValueOrDefault(field.value);\n break;\n case 'email':\n case 'username':\n case 'user':\n case 'name':\n cipher.login.username = this.getValueOrDefault(field.value);\n break;\n case 'url':\n cipher.login.uris = this.makeUriArray(field.value);\n break;\n default:\n const labelLower = field.label != null ? field.label.toLowerCase() : null;\n if (cipher.login.password == null && this.passwordFieldNames.indexOf(labelLower) > -1) {\n cipher.login.password = this.getValueOrDefault(field.value);\n } else if (cipher.login.username == null &&\n this.usernameFieldNames.indexOf(labelLower) > -1) {\n cipher.login.username = this.getValueOrDefault(field.value);\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(labelLower) > -1) {\n cipher.login.uris = this.makeUriArray(field.value);\n } else {\n this.processKvp(cipher, field.label, field.value);\n }\n break;\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class CodebookCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValueOrDefault(value.Category));\n\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.Favorite) === 'True';\n cipher.name = this.getValueOrDefault(value.Entry, '--');\n cipher.notes = this.getValueOrDefault(value.Note);\n cipher.login.username = this.getValueOrDefault(value.Username, value.Email);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.totp = this.getValueOrDefault(value.TOTP);\n cipher.login.uris = this.makeUriArray(value.Website);\n\n if (!this.isNullOrWhitespace(value.Username)) {\n this.processKvp(cipher, 'Email', value.Email);\n }\n this.processKvp(cipher, 'Phone', value.Phone);\n this.processKvp(cipher, 'PIN', value.PIN);\n this.processKvp(cipher, 'Account', value.Account);\n this.processKvp(cipher, 'Date', value.Date);\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { IdentityView } from '../models/view/identityView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nconst HandledResults = new Set(['ADDRESS', 'AUTHENTIFIANT', 'BANKSTATEMENT', 'IDCARD', 'IDENTITY',\n 'PAYMENTMEANS_CREDITCARD', 'PAYMENTMEAN_PAYPAL', 'EMAIL']);\n\nexport class DashlaneJsonImporter extends BaseImporter implements Importer {\n private result: ImportResult;\n\n parse(data: string): Promise {\n this.result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.length === 0) {\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n if (results.ADDRESS != null) {\n this.processAddress(results.ADDRESS);\n }\n if (results.AUTHENTIFIANT != null) {\n this.processAuth(results.AUTHENTIFIANT);\n }\n if (results.BANKSTATEMENT != null) {\n this.processNote(results.BANKSTATEMENT, 'BankAccountName');\n }\n if (results.IDCARD != null) {\n this.processNote(results.IDCARD, 'Fullname');\n }\n if (results.PAYMENTMEANS_CREDITCARD != null) {\n this.processCard(results.PAYMENTMEANS_CREDITCARD);\n }\n if (results.IDENTITY != null) {\n this.processIdentity(results.IDENTITY);\n }\n\n for (const key in results) {\n if (results.hasOwnProperty(key) && !HandledResults.has(key)) {\n this.processNote(results[key], null, 'Generic Note');\n }\n }\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n private processAuth(results: any[]) {\n results.forEach((credential: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(credential.title);\n\n cipher.login.username = this.getValueOrDefault(credential.login,\n this.getValueOrDefault(credential.secondaryLogin));\n if (this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = this.getValueOrDefault(credential.email);\n } else if (!this.isNullOrWhitespace(credential.email)) {\n cipher.notes = ('Email: ' + credential.email + '\\n');\n }\n\n cipher.login.password = this.getValueOrDefault(credential.password);\n cipher.login.uris = this.makeUriArray(credential.domain);\n cipher.notes += this.getValueOrDefault(credential.note, '');\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processIdentity(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.name = this.getValueOrDefault(obj.fullName, '');\n const nameParts = cipher.name.split(' ');\n if (nameParts.length > 0) {\n cipher.identity.firstName = this.getValueOrDefault(nameParts[0]);\n }\n if (nameParts.length === 2) {\n cipher.identity.lastName = this.getValueOrDefault(nameParts[1]);\n } else if (nameParts.length === 3) {\n cipher.identity.middleName = this.getValueOrDefault(nameParts[1]);\n cipher.identity.lastName = this.getValueOrDefault(nameParts[2]);\n }\n cipher.identity.username = this.getValueOrDefault(obj.pseudo);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processAddress(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.name = this.getValueOrDefault(obj.addressName);\n cipher.identity.address1 = this.getValueOrDefault(obj.addressFull);\n cipher.identity.city = this.getValueOrDefault(obj.city);\n cipher.identity.state = this.getValueOrDefault(obj.state);\n cipher.identity.postalCode = this.getValueOrDefault(obj.zipcode);\n cipher.identity.country = this.getValueOrDefault(obj.country);\n if (cipher.identity.country != null) {\n cipher.identity.country = cipher.identity.country.toUpperCase();\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processCard(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n cipher.name = this.getValueOrDefault(obj.bank);\n cipher.card.number = this.getValueOrDefault(obj.cardNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.cardholderName = this.getValueOrDefault(obj.owner);\n if (!this.isNullOrWhitespace(cipher.card.brand)) {\n if (this.isNullOrWhitespace(cipher.name)) {\n cipher.name = cipher.card.brand;\n } else {\n cipher.name += (' - ' + cipher.card.brand);\n }\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processNote(results: any[], nameProperty: string, name: string = null) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.secureNote = new SecureNoteView();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n if (name != null) {\n cipher.name = name;\n } else {\n cipher.name = this.getValueOrDefault(obj[nameProperty]);\n }\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && key !== nameProperty) {\n this.processKvp(cipher, key, obj[key].toString());\n }\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class EncryptrCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Label, '--');\n cipher.notes = this.getValueOrDefault(value.Notes);\n const text = this.getValueOrDefault(value.Text);\n if (!this.isNullOrWhitespace(text)) {\n if (this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = text;\n } else {\n cipher.notes += ('\\n\\n' + text);\n }\n }\n\n const type = value['Entry Type'];\n if (type === 'Password') {\n cipher.login.username = this.getValueOrDefault(value.Username);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value['Site URL']);\n } else if (type === 'Credit Card') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value['Name on card']);\n cipher.card.number = this.getValueOrDefault(value['Card Number']);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.CVV);\n const expiry = this.getValueOrDefault(value.Expiry);\n if (!this.isNullOrWhitespace(expiry)) {\n const expParts = expiry.split('/');\n if (expParts.length > 1) {\n cipher.card.expMonth = parseInt(expParts[0], null).toString();\n cipher.card.expYear = (2000 + parseInt(expParts[1], null)).toString();\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { CardView } from '../models/view/cardView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nexport class EnpassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let firstRow = true;\n results.forEach(value => {\n if (value.length < 2 || (firstRow && (value[0] === 'Title' || value[0] === 'title'))) {\n firstRow = false;\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 1]);\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n if (value.length === 2 || (!this.containsField(value, 'username') &&\n !this.containsField(value, 'password') && !this.containsField(value, 'email') &&\n !this.containsField(value, 'url'))) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n }\n\n if (this.containsField(value, 'cardholder') && this.containsField(value, 'number') &&\n this.containsField(value, 'expiry date')) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n }\n\n if (value.length > 2 && (value.length % 2) === 0) {\n for (let i = 0; i < value.length - 2; i += 2) {\n const fieldValue: string = value[i + 2];\n if (this.isNullOrWhitespace(fieldValue)) {\n continue;\n }\n\n const fieldName: string = value[i + 1];\n const fieldNameLower = fieldName.toLowerCase();\n\n if (cipher.type === CipherType.Login) {\n if (fieldNameLower === 'url' && (cipher.login.uris == null || cipher.login.uris.length === 0)) {\n cipher.login.uris = this.makeUriArray(fieldValue);\n continue;\n } else if ((fieldNameLower === 'username' || fieldNameLower === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = fieldValue;\n continue;\n } else if (fieldNameLower === 'password' && this.isNullOrWhitespace(cipher.login.password)) {\n cipher.login.password = fieldValue;\n continue;\n } else if (fieldNameLower === 'totp' && this.isNullOrWhitespace(cipher.login.totp)) {\n cipher.login.totp = fieldValue;\n continue;\n }\n } else if (cipher.type === CipherType.Card) {\n if (fieldNameLower === 'cardholder' && this.isNullOrWhitespace(cipher.card.cardholderName)) {\n cipher.card.cardholderName = fieldValue;\n continue;\n } else if (fieldNameLower === 'number' && this.isNullOrWhitespace(cipher.card.number)) {\n cipher.card.number = fieldValue;\n cipher.card.brand = this.getCardBrand(fieldValue);\n continue;\n } else if (fieldNameLower === 'cvc' && this.isNullOrWhitespace(cipher.card.code)) {\n cipher.card.code = fieldValue;\n continue;\n } else if (fieldNameLower === 'expiry date' && this.isNullOrWhitespace(cipher.card.expMonth) &&\n this.isNullOrWhitespace(cipher.card.expYear)) {\n if (this.setCardExpiration(cipher, fieldValue)) {\n continue;\n }\n } else if (fieldNameLower === 'type') {\n // Skip since brand was determined from number above\n continue;\n }\n }\n\n this.processKvp(cipher, fieldName, fieldValue);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private containsField(fields: any[], name: string) {\n if (fields == null || name == null) {\n return false;\n }\n return fields.filter(f => !this.isNullOrWhitespace(f) &&\n f.toLowerCase() === name.toLowerCase()).length > 0;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\n\nexport class EnpassJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.items == null || results.items.length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n const foldersIndexMap = new Map();\n const folderTree = this.buildFolderTree(results.folders);\n this.flattenFolderTree(null, folderTree, foldersMap);\n foldersMap.forEach((val, key) => {\n foldersIndexMap.set(key, result.folders.length);\n const f = new FolderView();\n f.name = val;\n result.folders.push(f);\n });\n\n results.items.forEach((item: any) => {\n if (item.folders != null && item.folders.length > 0 && foldersIndexMap.has(item.folders[0])) {\n result.folderRelationships.push([result.ciphers.length, foldersIndexMap.get(item.folders[0])]);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(item.title);\n cipher.favorite = item.favorite > 0;\n\n if (item.template_type != null && item.fields != null && item.fields.length > 0) {\n if (item.template_type.indexOf('login.') === 0 || item.template_type.indexOf('password.') === 0) {\n this.processLogin(cipher, item.fields);\n } else if (item.template_type.indexOf('creditcard.') === 0) {\n this.processCard(cipher, item.fields);\n } else if (item.template_type.indexOf('identity.') < 0 &&\n item.fields.some((f: any) => f.type === 'password' && !this.isNullOrWhitespace(f.value))) {\n this.processLogin(cipher, item.fields);\n } else {\n this.processNote(cipher, item.fields);\n }\n }\n\n cipher.notes += ('\\n' + this.getValueOrDefault(item.note, ''));\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private processLogin(cipher: CipherView, fields: any[]) {\n const urls: string[] = [];\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section') {\n return;\n }\n\n if ((field.type === 'username' || field.type === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = field.value;\n } else if (field.type === 'password' && this.isNullOrWhitespace(cipher.login.password)) {\n cipher.login.password = field.value;\n } else if (field.type === 'totp' && this.isNullOrWhitespace(cipher.login.totp)) {\n cipher.login.totp = field.value;\n } else if (field.type === 'url') {\n urls.push(field.value);\n } else {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n });\n cipher.login.uris = this.makeUriArray(urls);\n }\n\n private processCard(cipher: CipherView, fields: any[]) {\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section' || field.type === 'ccType') {\n return;\n }\n\n if (field.type === 'ccName' && this.isNullOrWhitespace(cipher.card.cardholderName)) {\n cipher.card.cardholderName = field.value;\n } else if (field.type === 'ccNumber' && this.isNullOrWhitespace(cipher.card.number)) {\n cipher.card.number = field.value;\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n } else if (field.type === 'ccCvc' && this.isNullOrWhitespace(cipher.card.code)) {\n cipher.card.code = field.value;\n } else if (field.type === 'ccExpiry' && this.isNullOrWhitespace(cipher.card.expYear)) {\n if (!this.setCardExpiration(cipher, field.value)) {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n } else {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n });\n }\n\n private processNote(cipher: CipherView, fields: any[]) {\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section') {\n return;\n }\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n });\n }\n\n private buildFolderTree(folders: any[]): any[] {\n if (folders == null) {\n return [];\n }\n const folderTree: any[] = [];\n const map = new Map([]);\n folders.forEach((obj: any) => {\n map.set(obj.uuid, obj);\n obj.children = [];\n });\n folders.forEach((obj: any) => {\n if (obj.parent_uuid != null && obj.parent_uuid !== '' && map.has(obj.parent_uuid)) {\n map.get(obj.parent_uuid).children.push(obj);\n } else {\n folderTree.push(obj);\n }\n });\n return folderTree;\n }\n\n private flattenFolderTree(titlePrefix: string, tree: any[], map: Map) {\n if (tree == null) {\n return;\n }\n tree.forEach((f: any) => {\n if (f.title != null && f.title.trim() !== '') {\n let title = f.title.trim();\n if (titlePrefix != null && titlePrefix.trim() !== '') {\n title = titlePrefix + '/' + title;\n }\n map.set(f.uuid, title);\n if (f.children != null && f.children.length !== 0) {\n this.flattenFolderTree(title, f.children, map);\n }\n }\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class FirefoxCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.filter(value => {\n return value.url !== 'chrome://FirefoxAccounts';\n }).forEach(value => {\n const cipher = this.initLoginCipher();\n const url = this.getValueOrDefault(value.url, this.getValueOrDefault(value.hostname));\n cipher.name = this.getValueOrDefault(this.nameFromUrl(url), '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class FSecureFskImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.data == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n for (const key in results.data) {\n if (!results.data.hasOwnProperty(key)) {\n continue;\n }\n\n const value = results.data[key];\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.service);\n cipher.notes = this.getValueOrDefault(value.notes);\n\n if (value.style === 'website') {\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n } else if (value.style === 'creditcard') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.username);\n cipher.card.number = this.getValueOrDefault(value.creditNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.creditCvv);\n if (!this.isNullOrWhitespace(value.creditExpiry)) {\n if (!this.setCardExpiration(cipher, value.creditExpiry)) {\n this.processKvp(cipher, 'Expiration', value.creditExpiry);\n }\n }\n if (!this.isNullOrWhitespace(value.password)) {\n this.processKvp(cipher, 'PIN', value.password);\n }\n } else {\n continue;\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class GnomeJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || Object.keys(results).length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n for (const keyRing in results) {\n if (!results.hasOwnProperty(keyRing) || this.isNullOrWhitespace(keyRing) ||\n results[keyRing].length === 0) {\n continue;\n }\n\n results[keyRing].forEach((value: any) => {\n if (this.isNullOrWhitespace(value.display_name) || value.display_name.indexOf('http') !== 0) {\n return;\n }\n\n this.processFolder(result, keyRing);\n const cipher = this.initLoginCipher();\n cipher.name = value.display_name.replace('http://', '').replace('https://', '');\n if (cipher.name.length > 30) {\n cipher.name = cipher.name.substring(0, 30);\n }\n cipher.login.password = this.getValueOrDefault(value.secret);\n cipher.login.uris = this.makeUriArray(value.display_name);\n\n if (value.attributes != null) {\n cipher.login.username = value.attributes != null ?\n this.getValueOrDefault(value.attributes.username_value) : null;\n for (const attr in value.attributes) {\n if (!value.attributes.hasOwnProperty(attr) || attr === 'username_value' ||\n attr === 'xdg:schema') {\n continue;\n }\n this.processKvp(cipher, attr, value.attributes[attr]);\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nconst NotesHeader = 'Notes\\n\\n';\nconst ApplicationsHeader = 'Applications\\n\\n';\nconst WebsitesHeader = 'Websites\\n\\n';\nconst Delimiter = '\\n---\\n';\n\nexport class KasperskyTxtImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n\n let notesData: string;\n let applicationsData: string;\n let websitesData: string;\n let workingData = this.splitNewLine(data).join('\\n');\n\n if (workingData.indexOf(NotesHeader) !== -1) {\n const parts = workingData.split(NotesHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n notesData = parts[1];\n }\n }\n if (workingData.indexOf(ApplicationsHeader) !== -1) {\n const parts = workingData.split(ApplicationsHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n applicationsData = parts[1];\n }\n }\n if (workingData.indexOf(WebsitesHeader) === 0) {\n const parts = workingData.split(WebsitesHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n websitesData = parts[1];\n }\n }\n\n const notes = this.parseDataCategory(notesData);\n const applications = this.parseDataCategory(applicationsData);\n const websites = this.parseDataCategory(websitesData);\n\n notes.forEach(n => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(n.get('Name'));\n cipher.notes = this.getValueOrDefault(n.get('Text'));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n websites.concat(applications).forEach(w => {\n const cipher = this.initLoginCipher();\n const nameKey = w.has('Website name') ? 'Website name' : 'Application';\n cipher.name = this.getValueOrDefault(w.get(nameKey), '');\n if (!this.isNullOrWhitespace(w.get('Login name'))) {\n if (!this.isNullOrWhitespace(cipher.name)) {\n cipher.name += ': ';\n }\n cipher.name += w.get('Login name');\n }\n cipher.notes = this.getValueOrDefault(w.get('Comment'));\n if (w.has('Website URL')) {\n cipher.login.uris = this.makeUriArray(w.get('Website URL'));\n }\n cipher.login.username = this.getValueOrDefault(w.get('Login'));\n cipher.login.password = this.getValueOrDefault(w.get('Password'));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseDataCategory(data: string): Map[] {\n if (this.isNullOrWhitespace(data) || data.indexOf(Delimiter) === -1) {\n return [];\n }\n const items: Map[] = [];\n data.split(Delimiter).forEach(p => {\n if (p.indexOf('\\n') === -1) {\n return;\n }\n const item = new Map();\n let itemComment: string;\n let itemCommentKey: string;\n p.split('\\n').forEach(l => {\n if (itemComment != null) {\n itemComment += ('\\n' + l);\n return;\n }\n const colonIndex = l.indexOf(':');\n let key: string;\n let val: string;\n if (colonIndex === -1) {\n return;\n } else {\n key = l.substring(0, colonIndex);\n if (l.length > colonIndex + 1) {\n val = l.substring(colonIndex + 2);\n }\n }\n if (key != null) {\n item.set(key, val);\n }\n if (key === 'Comment' || key === 'Text') {\n itemComment = val;\n itemCommentKey = key;\n }\n });\n if (itemComment != null && itemCommentKey != null) {\n item.set(itemCommentKey, itemComment);\n }\n if (item.size === 0) {\n return;\n }\n items.push(item);\n });\n return items;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { FieldType } from '../enums/fieldType';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport class KeePass2XmlImporter extends BaseImporter implements Importer {\n result = new ImportResult();\n\n parse(data: string): Promise {\n const doc = this.parseXml(data);\n if (doc == null) {\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n const rootGroup = doc.querySelector('KeePassFile > Root > Group');\n if (rootGroup == null) {\n this.result.errorMessage = 'Missing `KeePassFile > Root > Group` node.';\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n this.traverse(rootGroup, true, '');\n\n if (this.organization) {\n this.moveFoldersToCollections(this.result);\n }\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n traverse(node: Element, isRootNode: boolean, groupPrefixName: string) {\n const folderIndex = this.result.folders.length;\n let groupName = groupPrefixName;\n\n if (!isRootNode) {\n if (groupName !== '') {\n groupName += '/';\n }\n const nameEl = this.querySelectorDirectChild(node, 'Name');\n groupName += nameEl == null ? '-' : nameEl.textContent;\n const folder = new FolderView();\n folder.name = groupName;\n this.result.folders.push(folder);\n }\n\n this.querySelectorAllDirectChild(node, 'Entry').forEach(entry => {\n const cipherIndex = this.result.ciphers.length;\n\n const cipher = this.initLoginCipher();\n this.querySelectorAllDirectChild(entry, 'String').forEach(entryString => {\n const valueEl = this.querySelectorDirectChild(entryString, 'Value');\n const value = valueEl != null ? valueEl.textContent : null;\n if (this.isNullOrWhitespace(value)) {\n return;\n }\n const keyEl = this.querySelectorDirectChild(entryString, 'Key');\n const key = keyEl != null ? keyEl.textContent : null;\n\n if (key === 'URL') {\n cipher.login.uris = this.makeUriArray(value);\n } else if (key === 'UserName') {\n cipher.login.username = value;\n } else if (key === 'Password') {\n cipher.login.password = value;\n } else if (key === 'otp') {\n cipher.login.totp = value.replace('key=', '');\n } else if (key === 'Title') {\n cipher.name = value;\n } else if (key === 'Notes') {\n cipher.notes += (value + '\\n');\n } else {\n let type = FieldType.Text;\n const attrs = (valueEl.attributes as any);\n if (attrs.length > 0 && attrs.ProtectInMemory != null &&\n attrs.ProtectInMemory.value === 'True') {\n type = FieldType.Hidden;\n }\n this.processKvp(cipher, key, value, type);\n }\n });\n\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n\n if (!isRootNode) {\n this.result.folderRelationships.push([cipherIndex, folderIndex]);\n }\n });\n\n this.querySelectorAllDirectChild(node, 'Group').forEach(group => {\n this.traverse(group, false, groupName);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class KeePassXCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(value.Title)) {\n return;\n }\n\n value.Group = !this.isNullOrWhitespace(value.Group) && value.Group.startsWith('Root/') ?\n value.Group.replace('Root/', '') : value.Group;\n const groupName = !this.isNullOrWhitespace(value.Group) ? value.Group : null;\n this.processFolder(result, groupName);\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.name = this.getValueOrDefault(value.Title, '--');\n cipher.login.username = this.getValueOrDefault(value.Username);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport class KeeperCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 6) {\n return;\n }\n\n this.processFolder(result, value[0]);\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[5]) + '\\n';\n cipher.name = this.getValueOrDefault(value[1], '--');\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n\n if (value.length > 7) {\n // we have some custom fields.\n for (let i = 7; i < value.length; i = i + 2) {\n this.processKvp(cipher, value[i], value[i + 1]);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FolderView } from '../models/view/folderView';\nimport { IdentityView } from '../models/view/identityView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class LastPassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach((value, index) => {\n const cipherIndex = result.ciphers.length;\n let folderIndex = result.folders.length;\n let grouping = value.grouping;\n if (grouping != null) {\n grouping = grouping.replace(/\\\\/g, '/').replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, '');\n }\n const hasFolder = this.getValueOrDefault(grouping, '(none)') !== '(none)';\n let addFolder = hasFolder;\n\n if (hasFolder) {\n for (let i = 0; i < result.folders.length; i++) {\n if (result.folders[i].name === grouping) {\n addFolder = false;\n folderIndex = i;\n break;\n }\n }\n }\n\n const cipher = this.buildBaseCipher(value);\n if (cipher.type === CipherType.Login) {\n cipher.notes = this.getValueOrDefault(value.extra);\n cipher.login = new LoginView();\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n } else if (cipher.type === CipherType.SecureNote) {\n this.parseSecureNote(value, cipher);\n } else if (cipher.type === CipherType.Card) {\n cipher.card = this.parseCard(value);\n cipher.notes = this.getValueOrDefault(value.notes);\n } else if (cipher.type === CipherType.Identity) {\n cipher.identity = this.parseIdentity(value);\n cipher.notes = this.getValueOrDefault(value.notes);\n if (!this.isNullOrWhitespace(value.ccnum)) {\n // there is a card on this identity too\n const cardCipher = this.buildBaseCipher(value);\n cardCipher.identity = null;\n cardCipher.type = CipherType.Card;\n cardCipher.card = this.parseCard(value);\n result.ciphers.push(cardCipher);\n }\n }\n\n result.ciphers.push(cipher);\n\n if (addFolder) {\n const f = new FolderView();\n f.name = grouping;\n result.folders.push(f);\n }\n if (hasFolder) {\n result.folderRelationships.push([cipherIndex, folderIndex]);\n }\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private buildBaseCipher(value: any) {\n const cipher = new CipherView();\n if (value.hasOwnProperty('profilename') && value.hasOwnProperty('profilelanguage')) {\n // form fill\n cipher.favorite = false;\n cipher.name = this.getValueOrDefault(value.profilename, '--');\n cipher.type = CipherType.Card;\n\n if (!this.isNullOrWhitespace(value.title) || !this.isNullOrWhitespace(value.firstname) ||\n !this.isNullOrWhitespace(value.lastname) || !this.isNullOrWhitespace(value.address1) ||\n !this.isNullOrWhitespace(value.phone) || !this.isNullOrWhitespace(value.username) ||\n !this.isNullOrWhitespace(value.email)) {\n cipher.type = CipherType.Identity;\n }\n } else {\n // site or secure note\n cipher.favorite = !this.organization && this.getValueOrDefault(value.fav, '0') === '1';\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.type = value.url === 'http://sn' ? CipherType.SecureNote : CipherType.Login;\n }\n return cipher;\n }\n\n private parseCard(value: any): CardView {\n const card = new CardView();\n card.cardholderName = this.getValueOrDefault(value.ccname);\n card.number = this.getValueOrDefault(value.ccnum);\n card.code = this.getValueOrDefault(value.cccsc);\n card.brand = this.getCardBrand(value.ccnum);\n\n if (!this.isNullOrWhitespace(value.ccexp) && value.ccexp.indexOf('-') > -1) {\n const ccexpParts = (value.ccexp as string).split('-');\n if (ccexpParts.length > 1) {\n card.expYear = ccexpParts[0];\n card.expMonth = ccexpParts[1];\n if (card.expMonth.length === 2 && card.expMonth[0] === '0') {\n card.expMonth = card.expMonth[1];\n }\n }\n }\n\n return card;\n }\n\n private parseIdentity(value: any): IdentityView {\n const identity = new IdentityView();\n identity.title = this.getValueOrDefault(value.title);\n identity.firstName = this.getValueOrDefault(value.firstname);\n identity.middleName = this.getValueOrDefault(value.middlename);\n identity.lastName = this.getValueOrDefault(value.lastname);\n identity.username = this.getValueOrDefault(value.username);\n identity.company = this.getValueOrDefault(value.company);\n identity.ssn = this.getValueOrDefault(value.ssn);\n identity.address1 = this.getValueOrDefault(value.address1);\n identity.address2 = this.getValueOrDefault(value.address2);\n identity.address3 = this.getValueOrDefault(value.address3);\n identity.city = this.getValueOrDefault(value.city);\n identity.state = this.getValueOrDefault(value.state);\n identity.postalCode = this.getValueOrDefault(value.zip);\n identity.country = this.getValueOrDefault(value.country);\n identity.email = this.getValueOrDefault(value.email);\n identity.phone = this.getValueOrDefault(value.phone);\n\n if (!this.isNullOrWhitespace(identity.title)) {\n identity.title = identity.title.charAt(0).toUpperCase() + identity.title.slice(1);\n }\n\n return identity;\n }\n\n private parseSecureNote(value: any, cipher: CipherView) {\n const extraParts = this.splitNewLine(value.extra);\n let processedNote = false;\n\n if (extraParts.length) {\n const typeParts = extraParts[0].split(':');\n if (typeParts.length > 1 && typeParts[0] === 'NoteType' &&\n (typeParts[1] === 'Credit Card' || typeParts[1] === 'Address')) {\n if (typeParts[1] === 'Credit Card') {\n const mappedData = this.parseSecureNoteMapping(cipher, extraParts, {\n 'Number': 'number',\n 'Name on Card': 'cardholderName',\n 'Security Code': 'code',\n // LP provides date in a format like 'June,2020'\n // Store in expMonth, then parse and modify\n 'Expiration Date': 'expMonth',\n });\n\n if (this.isNullOrWhitespace(mappedData.expMonth) || mappedData.expMonth === ',') {\n // No expiration data\n mappedData.expMonth = undefined;\n } else {\n const [monthString, year] = mappedData.expMonth.split(',');\n // Parse month name into number\n if (!this.isNullOrWhitespace(monthString)) {\n const month = new Date(Date.parse(monthString.trim() + ' 1, 2012')).getMonth() + 1;\n if (isNaN(month)) {\n mappedData.expMonth = undefined;\n } else {\n mappedData.expMonth = month.toString();\n }\n } else {\n mappedData.expMonth = undefined;\n }\n if (!this.isNullOrWhitespace(year)) {\n mappedData.expYear = year;\n }\n }\n\n cipher.type = CipherType.Card;\n cipher.card = mappedData;\n } else if (typeParts[1] === 'Address') {\n const mappedData = this.parseSecureNoteMapping(cipher, extraParts, {\n 'Title': 'title',\n 'First Name': 'firstName',\n 'Last Name': 'lastName',\n 'Middle Name': 'middleName',\n 'Company': 'company',\n 'Address 1': 'address1',\n 'Address 2': 'address2',\n 'Address 3': 'address3',\n 'City / Town': 'city',\n 'State': 'state',\n 'Zip / Postal Code': 'postalCode',\n 'Country': 'country',\n 'Email Address': 'email',\n 'Username': 'username',\n });\n cipher.type = CipherType.Identity;\n cipher.identity = mappedData;\n }\n processedNote = true;\n }\n }\n\n if (!processedNote) {\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.notes = this.getValueOrDefault(value.extra);\n }\n }\n\n private parseSecureNoteMapping(cipher: CipherView, extraParts: string[], map: any): T {\n const dataObj: any = {};\n\n let processingNotes = false;\n extraParts.forEach(extraPart => {\n let key: string = null;\n let val: string = null;\n if (!processingNotes) {\n if (this.isNullOrWhitespace(extraPart)) {\n return;\n }\n const colonIndex = extraPart.indexOf(':');\n if (colonIndex === -1) {\n key = extraPart;\n } else {\n key = extraPart.substring(0, colonIndex);\n if (extraPart.length > colonIndex) {\n val = extraPart.substring(colonIndex + 1);\n }\n }\n if (this.isNullOrWhitespace(key) || this.isNullOrWhitespace(val) || key === 'NoteType') {\n return;\n }\n }\n\n if (processingNotes) {\n cipher.notes += ('\\n' + extraPart);\n } else if (key === 'Notes') {\n if (!this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes += ('\\n' + val);\n } else {\n cipher.notes = val;\n }\n processingNotes = true;\n } else if (map.hasOwnProperty(key)) {\n dataObj[map[key]] = val;\n } else {\n this.processKvp(cipher, key, val);\n }\n });\n\n return dataObj;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class LogMeOnceCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 4) {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[1]);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class MeldiumCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.DisplayName, '--');\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.login.username = this.getValueOrDefault(value.UserName);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.Url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nexport class MSecureCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 3) {\n return;\n }\n\n const folderName = this.getValueOrDefault(value[0], 'Unassigned') !== 'Unassigned' ? value[0] : null;\n this.processFolder(result, folderName);\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[2], '--');\n\n if (value[1] === 'Web Logins' || value[1] === 'Login') {\n cipher.login.uris = this.makeUriArray(value[4]);\n cipher.login.username = this.getValueOrDefault(value[5]);\n cipher.login.password = this.getValueOrDefault(value[6]);\n cipher.notes = !this.isNullOrWhitespace(value[3]) ? value[3].split('\\\\n').join('\\n') : null;\n } else if (value.length > 3) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n for (let i = 3; i < value.length; i++) {\n if (!this.isNullOrWhitespace(value[i])) {\n cipher.notes += (value[i] + '\\n');\n }\n }\n }\n\n if (!this.isNullOrWhitespace(value[1]) && cipher.type !== CipherType.Login) {\n cipher.name = value[1] + ': ' + cipher.name;\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { CardView } from '../models/view/cardView';\nimport { IdentityView } from '../models/view/identityView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class MykiCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.nickname, '--');\n cipher.notes = this.getValueOrDefault(value.additionalInfo);\n\n if (value.url !== undefined) {\n // Accounts\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.totp = this.getValueOrDefault(value.twoFactAuthToken);\n } else if (value.cardNumber !== undefined) {\n // Cards\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n cipher.card.cardholderName = this.getValueOrDefault(value.cardName);\n cipher.card.number = this.getValueOrDefault(value.cardNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.expMonth = this.getValueOrDefault(value.exp_month);\n cipher.card.expYear = this.getValueOrDefault(value.exp_year);\n cipher.card.code = this.getValueOrDefault(value.cvv);\n } else if (value.firstName !== undefined) {\n // Identities\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.identity.title = this.getValueOrDefault(value.title);\n cipher.identity.firstName = this.getValueOrDefault(value.firstName);\n cipher.identity.middleName = this.getValueOrDefault(value.middleName);\n cipher.identity.lastName = this.getValueOrDefault(value.lastName);\n cipher.identity.phone = this.getValueOrDefault(value.number);\n cipher.identity.email = this.getValueOrDefault(value.email);\n cipher.identity.address1 = this.getValueOrDefault(value.firstAddressLine);\n cipher.identity.address2 = this.getValueOrDefault(value.secondAddressLine);\n cipher.identity.city = this.getValueOrDefault(value.city);\n cipher.identity.country = this.getValueOrDefault(value.country);\n cipher.identity.postalCode = this.getValueOrDefault(value.zipCode);\n } else if (value.content !== undefined) {\n // Notes\n cipher.secureNote = new SecureNoteView();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.notes = this.getValueOrDefault(value.content);\n } else {\n return;\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from '../baseImporter';\nimport { Importer } from '../importer';\n\nimport { ImportResult } from '../../models/domain/importResult';\n\nimport { CardView } from '../../models/view/cardView';\nimport { CipherView } from '../../models/view/cipherView';\nimport { IdentityView } from '../../models/view/identityView';\nimport { PasswordHistoryView } from '../../models/view/passwordHistoryView';\nimport { SecureNoteView } from '../../models/view/secureNoteView';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { FieldType } from '../../enums/fieldType';\nimport { SecureNoteType } from '../../enums/secureNoteType';\n\nexport class OnePassword1PifImporter extends BaseImporter implements Importer {\n result = new ImportResult();\n\n parse(data: string): Promise {\n data.split(this.newLineRegex).forEach(line => {\n if (this.isNullOrWhitespace(line) || line[0] !== '{') {\n return;\n }\n const item = JSON.parse(line);\n if (item.trashed === true) {\n return;\n }\n const cipher = this.initLoginCipher();\n\n if (this.isNullOrWhitespace(item.hmac)) {\n this.processStandardItem(item, cipher);\n } else {\n this.processWinOpVaultItem(item, cipher);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n private processWinOpVaultItem(item: any, cipher: CipherView) {\n if (item.overview != null) {\n cipher.name = this.getValueOrDefault(item.overview.title);\n if (item.overview.URLs != null) {\n const urls: string[] = [];\n item.overview.URLs.forEach((url: any) => {\n if (!this.isNullOrWhitespace(url.u)) {\n urls.push(url.u);\n }\n });\n cipher.login.uris = this.makeUriArray(urls);\n }\n }\n\n if (item.details != null) {\n if (item.details.passwordHistory != null) {\n this.parsePasswordHistory(item.details.passwordHistory, cipher);\n }\n if (!this.isNullOrWhitespace(item.details.ccnum) || !this.isNullOrWhitespace(item.details.cvv)) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n } else if (!this.isNullOrWhitespace(item.details.firstname) ||\n !this.isNullOrWhitespace(item.details.address1)) {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n }\n if (cipher.type === CipherType.Login && !this.isNullOrWhitespace(item.details.password)) {\n cipher.login.password = item.details.password;\n }\n if (!this.isNullOrWhitespace(item.details.notesPlain)) {\n cipher.notes = item.details.notesPlain.split(this.newLineRegex).join('\\n') + '\\n';\n }\n if (item.details.fields != null) {\n this.parseFields(item.details.fields, cipher, 'designation', 'value', 'name');\n }\n if (item.details.sections != null) {\n item.details.sections.forEach((section: any) => {\n if (section.fields != null) {\n this.parseFields(section.fields, cipher, 'n', 'v', 't');\n }\n });\n }\n }\n }\n\n private processStandardItem(item: any, cipher: CipherView) {\n cipher.favorite = item.openContents && item.openContents.faveIndex ? true : false;\n cipher.name = this.getValueOrDefault(item.title);\n\n if (item.typeName === 'securenotes.SecureNote') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n } else if (item.typeName === 'wallet.financial.CreditCard') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n } else if (item.typeName === 'identities.Identity') {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n } else {\n cipher.login.uris = this.makeUriArray(item.location);\n }\n\n if (item.secureContents != null) {\n if (item.secureContents.passwordHistory != null) {\n this.parsePasswordHistory(item.secureContents.passwordHistory, cipher);\n }\n if (!this.isNullOrWhitespace(item.secureContents.notesPlain)) {\n cipher.notes = item.secureContents.notesPlain.split(this.newLineRegex).join('\\n') + '\\n';\n }\n if (cipher.type === CipherType.Login) {\n if (!this.isNullOrWhitespace(item.secureContents.password)) {\n cipher.login.password = item.secureContents.password;\n }\n if (item.secureContents.URLs != null) {\n const urls: string[] = [];\n item.secureContents.URLs.forEach((u: any) => {\n if (!this.isNullOrWhitespace(u.url)) {\n urls.push(u.url);\n }\n });\n if (urls.length > 0) {\n cipher.login.uris = this.makeUriArray(urls);\n }\n }\n }\n if (item.secureContents.fields != null) {\n this.parseFields(item.secureContents.fields, cipher, 'designation', 'value', 'name');\n }\n if (item.secureContents.sections != null) {\n item.secureContents.sections.forEach((section: any) => {\n if (section.fields != null) {\n this.parseFields(section.fields, cipher, 'n', 'v', 't');\n }\n });\n }\n }\n }\n\n private parsePasswordHistory(items: any[], cipher: CipherView) {\n const maxSize = items.length > 5 ? 5 : items.length;\n cipher.passwordHistory = items\n .filter((h: any) => !this.isNullOrWhitespace(h.value) && h.time != null)\n .sort((a, b) => b.time - a.time)\n .slice(0, maxSize)\n .map((h: any) => {\n const ph = new PasswordHistoryView();\n ph.password = h.value;\n ph.lastUsedDate = new Date(('' + h.time).length >= 13 ? h.time : h.time * 1000);\n return ph;\n });\n }\n\n private parseFields(fields: any[], cipher: CipherView, designationKey: string, valueKey: string, nameKey: string) {\n fields.forEach((field: any) => {\n if (field[valueKey] == null || field[valueKey].toString().trim() === '') {\n return;\n }\n\n const fieldValue = field[valueKey].toString();\n const fieldDesignation = field[designationKey] != null ? field[designationKey].toString() : null;\n\n if (cipher.type === CipherType.Login) {\n if (this.isNullOrWhitespace(cipher.login.username) && fieldDesignation === 'username') {\n cipher.login.username = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.login.password) && fieldDesignation === 'password') {\n cipher.login.password = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.login.totp) && fieldDesignation != null &&\n fieldDesignation.startsWith('TOTP_')) {\n cipher.login.totp = fieldValue;\n return;\n }\n } else if (cipher.type === CipherType.Card) {\n if (this.isNullOrWhitespace(cipher.card.number) && fieldDesignation === 'ccnum') {\n cipher.card.number = fieldValue;\n cipher.card.brand = this.getCardBrand(fieldValue);\n return;\n } else if (this.isNullOrWhitespace(cipher.card.code) && fieldDesignation === 'cvv') {\n cipher.card.code = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.card.cardholderName) && fieldDesignation === 'cardholder') {\n cipher.card.cardholderName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.card.expiration) && fieldDesignation === 'expiry' &&\n fieldValue.length === 6) {\n cipher.card.expMonth = (fieldValue as string).substr(4, 2);\n if (cipher.card.expMonth[0] === '0') {\n cipher.card.expMonth = cipher.card.expMonth.substr(1, 1);\n }\n cipher.card.expYear = (fieldValue as string).substr(0, 4);\n return;\n } else if (fieldDesignation === 'type') {\n // Skip since brand was determined from number above\n return;\n }\n } else if (cipher.type === CipherType.Identity) {\n const identity = cipher.identity;\n if (this.isNullOrWhitespace(identity.firstName) && fieldDesignation === 'firstname') {\n identity.firstName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.lastName) && fieldDesignation === 'lastname') {\n identity.lastName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.middleName) && fieldDesignation === 'initial') {\n identity.middleName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.phone) && fieldDesignation === 'defphone') {\n identity.phone = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.company) && fieldDesignation === 'company') {\n identity.company = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.email) && fieldDesignation === 'email') {\n identity.email = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.username) && fieldDesignation === 'username') {\n identity.username = fieldValue;\n return;\n } else if (fieldDesignation === 'address') {\n // fieldValue is an object casted into a string, so access the plain value instead\n const { street, city, country, zip } = field[valueKey];\n identity.address1 = this.getValueOrDefault(street);\n identity.city = this.getValueOrDefault(city);\n if (!this.isNullOrWhitespace(country)) {\n identity.country = country.toUpperCase();\n }\n identity.postalCode = this.getValueOrDefault(zip);\n return;\n }\n }\n\n const fieldName = this.isNullOrWhitespace(field[nameKey]) ? 'no_name' : field[nameKey];\n if (fieldName === 'password' && cipher.passwordHistory != null &&\n cipher.passwordHistory.some(h => h.password === fieldValue)) {\n return;\n }\n\n const fieldType = field.k === 'concealed' ? FieldType.Hidden : FieldType.Text;\n this.processKvp(cipher, fieldName, fieldValue, fieldType);\n });\n }\n}\n","import { Importer } from '../importer';\nimport { IgnoredProperties, OnePasswordCsvImporter } from './onepasswordCsvImporter';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { CardView, CipherView, IdentityView } from '../../models/view';\n\nexport class OnePasswordMacCsvImporter extends OnePasswordCsvImporter implements Importer {\n setCipherType(value: any, cipher: CipherView) {\n const onePassType = this.getValueOrDefault(this.getProp(value, 'type'), 'Login');\n switch (onePassType) {\n case 'Credit Card':\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n IgnoredProperties.push('type');\n break;\n case 'Identity':\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n IgnoredProperties.push('type');\n break;\n case 'Login':\n case 'Secure Note':\n IgnoredProperties.push('type');\n default:\n break;\n }\n }\n}\n","import { CipherView } from '../../models/view';\n\nexport class CipherImportContext {\n lowerProperty: string;\n constructor(public importRecord: any, public property: string, public cipher: CipherView) {\n this.lowerProperty = property.toLowerCase();\n }\n}\n","export class View {\n}\n","import { Importer } from '../importer';\nimport { CipherImportContext } from './cipherImportContext';\nimport { OnePasswordCsvImporter } from './onepasswordCsvImporter';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { CardView, CipherView, IdentityView, LoginView } from '../../models/view';\n\nexport class OnePasswordWinCsvImporter extends OnePasswordCsvImporter implements Importer {\n constructor() {\n super();\n this.identityPropertyParsers.push(this.setIdentityAddress);\n }\n\n setCipherType(value: any, cipher: CipherView) {\n cipher.type = CipherType.Login;\n cipher.login = new LoginView();\n\n if (!this.isNullOrWhitespace(this.getPropByRegexp(value, /\\d+: number/i)) &&\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /\\d+: expiry date/i))) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n }\n\n if (!this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: first name/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: initial/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: last name/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /internet \\d+: email/i))) {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n }\n }\n\n setIdentityAddress(context: CipherImportContext) {\n if (context.lowerProperty.match(/address \\d+: address/i)) {\n this.processKvp(context.cipher, 'address', context.importRecord[context.property]);\n return true;\n }\n return false;\n }\n\n setCreditCardExpiry(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.expiration) && context.lowerProperty.includes('expiry date')) {\n const expSplit = (context.importRecord[context.property] as string).split('/');\n context.cipher.card.expMonth = expSplit[0];\n if (context.cipher.card.expMonth[0] === '0' && context.cipher.card.expMonth.length === 2) {\n context.cipher.card.expMonth = context.cipher.card.expMonth.substr(1, 1);\n }\n context.cipher.card.expYear = expSplit[2].length > 4 ? expSplit[2].substr(0, 4) : expSplit[2];\n return true;\n }\n return false;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CollectionView } from '../models/view/collectionView';\nimport { FolderView } from '../models/view/folderView';\n\nexport class PadlockCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let headers: string[] = null;\n results.forEach(value => {\n if (headers == null) {\n headers = value.map((v: string) => v);\n return;\n }\n\n if (value.length < 2 || value.length !== headers.length) {\n return;\n }\n\n if (!this.isNullOrWhitespace(value[1])) {\n if (this.organization) {\n const tags = (value[1] as string).split(',');\n tags.forEach(tag => {\n tag = tag.trim();\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === tag) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = tag;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else {\n const tags = (value[1] as string).split(',');\n const tag = tags.length > 0 ? tags[0].trim() : null;\n this.processFolder(result, tag);\n }\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n for (let i = 2; i < value.length; i++) {\n const header = headers[i].trim().toLowerCase();\n if (this.isNullOrWhitespace(value[i]) || this.isNullOrWhitespace(header)) {\n continue;\n }\n\n if (this.usernameFieldNames.indexOf(header) > -1) {\n cipher.login.username = value[i];\n } else if (this.passwordFieldNames.indexOf(header) > -1) {\n cipher.login.password = value[i];\n } else if (this.uriFieldNames.indexOf(header) > -1) {\n cipher.login.uris = this.makeUriArray(value[i]);\n } else {\n this.processKvp(cipher, headers[i], value[i]);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PassKeepCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValue('category', value));\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValue('description', value);\n cipher.name = this.getValueOrDefault(this.getValue('title', value), '--');\n cipher.login.username = this.getValue('username', value);\n cipher.login.password = this.getValue('password', value);\n cipher.login.uris = this.makeUriArray(this.getValue('site', value));\n this.processKvp(cipher, 'Password 2', this.getValue('password2', value));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private getValue(key: string, value: any) {\n return this.getValueOrDefault(value[key], this.getValueOrDefault(value[(' ' + key)]));\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PassmanJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach((credential: any) => {\n if (credential.tags != null && credential.tags.length > 0) {\n const folderName = credential.tags[0].text;\n this.processFolder(result, folderName);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = credential.label;\n\n cipher.login.username = this.getValueOrDefault(credential.username);\n if (this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = this.getValueOrDefault(credential.email);\n } else if (!this.isNullOrWhitespace(credential.email)) {\n cipher.notes = ('Email: ' + credential.email + '\\n');\n }\n\n cipher.login.password = this.getValueOrDefault(credential.password);\n cipher.login.uris = this.makeUriArray(credential.url);\n cipher.notes += this.getValueOrDefault(credential.description, '');\n if (credential.otp != null) {\n cipher.login.totp = this.getValueOrDefault(credential.otp.secret);\n }\n\n if (credential.custom_fields != null) {\n credential.custom_fields.forEach((customField: any) => {\n switch (customField.field_type) {\n case 'text':\n case 'password':\n this.processKvp(cipher, customField.label, customField.value);\n break;\n }\n });\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nexport class PasspackCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const tagsJson = !this.isNullOrWhitespace(value.Tags) ? JSON.parse(value.Tags) : null;\n const tags: string[] = tagsJson != null && tagsJson.tags != null && tagsJson.tags.length > 0 ?\n tagsJson.tags.map((tagJson: string) => {\n try {\n const t = JSON.parse(tagJson);\n return this.getValueOrDefault(t.tag);\n } catch { }\n return null;\n }).filter((t: string) => !this.isNullOrWhitespace(t)) : null;\n\n if (this.organization && tags != null && tags.length > 0) {\n tags.forEach(tag => {\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === tag) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = tag;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else if (!this.organization && tags != null && tags.length > 0) {\n this.processFolder(result, tags[0]);\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Notes, '');\n cipher.notes += ('\\n\\n' + this.getValueOrDefault(value['Shared Notes'], '') + '\\n');\n cipher.name = this.getValueOrDefault(value['Entry Name'], '--');\n cipher.login.username = this.getValueOrDefault(value['User ID']);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n\n if (value.__parsed_extra != null && value.__parsed_extra.length > 0) {\n value.__parsed_extra.forEach((extra: string) => {\n if (!this.isNullOrWhitespace(extra)) {\n cipher.notes += ('\\n' + extra);\n }\n });\n }\n\n const fieldsJson = !this.isNullOrWhitespace(value['Extra Fields']) ?\n JSON.parse(value['Extra Fields']) : null;\n const fields = fieldsJson != null && fieldsJson.extraFields != null &&\n fieldsJson.extraFields.length > 0 ? fieldsJson.extraFields.map((fieldJson: string) => {\n try {\n return JSON.parse(fieldJson);\n } catch { }\n return null;\n }) : null;\n if (fields != null) {\n fields.forEach((f: any) => {\n if (f != null) {\n this.processKvp(cipher, f.name, f.data);\n }\n });\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordAgentCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let newVersion = true;\n results.forEach(value => {\n if (value.length !== 5 && value.length < 9) {\n return;\n }\n const altFormat = value.length === 10 && value[0] === '0';\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[altFormat ? 1 : 0], '--');\n cipher.login.username = this.getValueOrDefault(value[altFormat ? 2 : 1]);\n cipher.login.password = this.getValueOrDefault(value[altFormat ? 3 : 2]);\n if (value.length === 5) {\n newVersion = false;\n cipher.notes = this.getValueOrDefault(value[4]);\n cipher.login.uris = this.makeUriArray(value[3]);\n } else {\n const folder = this.getValueOrDefault(value[altFormat ? 9 : 8], '(None)');\n let folderName = folder !== '(None)' ? folder.split('\\\\').join('/') : null;\n if (folderName != null) {\n folderName = folder.split(' > ').join('/');\n folderName = folder.split('>').join('/');\n }\n this.processFolder(result, folderName);\n cipher.notes = this.getValueOrDefault(value[altFormat ? 5 : 3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n }\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (newVersion && this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class PasswordBossJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.items == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n results.folders.forEach((value: any) => {\n foldersMap.set(value.id, value.name);\n });\n const foldersIndexMap = new Map();\n foldersMap.forEach((val, key) => {\n foldersIndexMap.set(key, result.folders.length);\n const f = new FolderView();\n f.name = val;\n result.folders.push(f);\n });\n\n results.items.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.login.uris = this.makeUriArray(value.login_url);\n\n if (value.folder != null && foldersIndexMap.has(value.folder)) {\n result.folderRelationships.push([result.ciphers.length, foldersIndexMap.get(value.folder)]);\n }\n\n if (value.identifiers == null) {\n return;\n }\n\n if (!this.isNullOrWhitespace(value.identifiers.notes)) {\n cipher.notes = value.identifiers.notes.split('\\\\r\\\\n').join('\\n').split('\\\\n').join('\\n');\n }\n\n if (value.type === 'CreditCard') {\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n }\n\n for (const property in value.identifiers) {\n if (!value.identifiers.hasOwnProperty(property)) {\n continue;\n }\n const valObj = value.identifiers[property];\n const val = valObj != null ? valObj.toString() : null;\n if (this.isNullOrWhitespace(val) || property === 'notes' || property === 'ignoreItemInSecurityScore') {\n continue;\n }\n\n if (property === 'custom_fields') {\n valObj.forEach((cf: any) => {\n this.processKvp(cipher, cf.name, cf.value);\n });\n continue;\n }\n\n if (cipher.type === CipherType.Card) {\n if (property === 'cardNumber') {\n cipher.card.number = val;\n cipher.card.brand = this.getCardBrand(val);\n continue;\n } else if (property === 'nameOnCard') {\n cipher.card.cardholderName = val;\n continue;\n } else if (property === 'security_code') {\n cipher.card.code = val;\n continue;\n } else if (property === 'expires') {\n try {\n const expDate = new Date(val);\n cipher.card.expYear = expDate.getFullYear().toString();\n cipher.card.expMonth = (expDate.getMonth() + 1).toString();\n } catch { }\n continue;\n } else if (property === 'cardType') {\n continue;\n }\n } else {\n if ((property === 'username' || property === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = val;\n continue;\n } else if (property === 'password') {\n cipher.login.password = val;\n continue;\n } else if (property === 'totp') {\n cipher.login.totp = val;\n continue;\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(property) > -1) {\n cipher.login.uris = this.makeUriArray(val);\n continue;\n }\n }\n\n this.processKvp(cipher, property, val);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordDragonXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const records = doc.querySelectorAll('PasswordManager > record');\n Array.from(records).forEach(record => {\n const category = this.querySelectorDirectChild(record, 'Category');\n const categoryText = category != null && !this.isNullOrWhitespace(category.textContent) &&\n category.textContent !== 'Unfiled' ? category.textContent : null;\n this.processFolder(result, categoryText);\n\n const accountName = this.querySelectorDirectChild(record, 'Account-Name');\n const userId = this.querySelectorDirectChild(record, 'User-Id');\n const password = this.querySelectorDirectChild(record, 'Password');\n const url = this.querySelectorDirectChild(record, 'URL');\n const notes = this.querySelectorDirectChild(record, 'Notes');\n const cipher = this.initLoginCipher();\n cipher.name = accountName != null ? this.getValueOrDefault(accountName.textContent, '--') : '--';\n cipher.notes = notes != null ? this.getValueOrDefault(notes.textContent) : '';\n cipher.login.username = userId != null ? this.getValueOrDefault(userId.textContent) : null;\n cipher.login.password = password != null ? this.getValueOrDefault(password.textContent) : null;\n cipher.login.uris = url != null ? this.makeUriArray(url.textContent) : null;\n\n const attributes: string[] = [];\n for (let i = 1; i <= 10; i++) {\n attributes.push('Attribute-' + i);\n }\n\n this.querySelectorAllDirectChild(record, attributes.join(',')).forEach(attr => {\n if (this.isNullOrWhitespace(attr.textContent) || attr.textContent === 'null') {\n return;\n }\n this.processKvp(cipher, attr.tagName, attr.textContent);\n });\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordSafeXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const passwordSafe = doc.querySelector('passwordsafe');\n if (passwordSafe == null) {\n result.errorMessage = 'Missing `passwordsafe` node.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const notesDelimiter = passwordSafe.getAttribute('delimiter');\n const entries = doc.querySelectorAll('passwordsafe > entry');\n Array.from(entries).forEach(entry => {\n const group = this.querySelectorDirectChild(entry, 'group');\n const groupText = group != null && !this.isNullOrWhitespace(group.textContent) ?\n group.textContent.split('.').join('/') : null;\n this.processFolder(result, groupText);\n\n const title = this.querySelectorDirectChild(entry, 'title');\n const username = this.querySelectorDirectChild(entry, 'username');\n const email = this.querySelectorDirectChild(entry, 'email');\n const password = this.querySelectorDirectChild(entry, 'password');\n const url = this.querySelectorDirectChild(entry, 'url');\n const notes = this.querySelectorDirectChild(entry, 'notes');\n const cipher = this.initLoginCipher();\n cipher.name = title != null ? this.getValueOrDefault(title.textContent, '--') : '--';\n cipher.notes = notes != null ?\n this.getValueOrDefault(notes.textContent, '').split(notesDelimiter).join('\\n') : null;\n cipher.login.username = username != null ? this.getValueOrDefault(username.textContent) : null;\n cipher.login.password = password != null ? this.getValueOrDefault(password.textContent) : null;\n cipher.login.uris = url != null ? this.makeUriArray(url.textContent) : null;\n\n if (this.isNullOrWhitespace(cipher.login.username) && email != null) {\n cipher.login.username = this.getValueOrDefault(email.textContent);\n } else if (email != null && !this.isNullOrWhitespace(email.textContent)) {\n cipher.notes = this.isNullOrWhitespace(cipher.notes) ? 'Email: ' + email.textContent\n : (cipher.notes + '\\n' + 'Email: ' + email.textContent);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordWalletTxtImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 1) {\n return;\n }\n if (value.length > 5) {\n this.processFolder(result, value[5]);\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n if (value.length > 4) {\n cipher.notes = this.getValueOrDefault(value[4], '').split('¬').join('\\n');\n }\n if (value.length > 2) {\n cipher.login.username = this.getValueOrDefault(value[2]);\n }\n if (value.length > 3) {\n cipher.login.password = this.getValueOrDefault(value[3]);\n }\n if (value.length > 1) {\n cipher.login.uris = this.makeUriArray(value[1]);\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nexport class RememBearCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.trash === 'true') {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name);\n cipher.notes = this.getValueOrDefault(value.notes);\n if (value.type === 'LoginItem') {\n cipher.login.uris = this.makeUriArray(value.website);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.username);\n } else if (value.type === 'CreditCardItem') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.cardholder);\n cipher.card.number = this.getValueOrDefault(value.number);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.verification);\n\n try {\n const expMonth = this.getValueOrDefault(value.expiryMonth);\n if (expMonth != null) {\n const expMonthNumber = parseInt(expMonth, null);\n if (expMonthNumber != null && expMonthNumber >= 1 && expMonthNumber <= 12) {\n cipher.card.expMonth = expMonthNumber.toString();\n }\n }\n } catch { }\n try {\n const expYear = this.getValueOrDefault(value.expiryYear);\n if (expYear != null) {\n const expYearNumber = parseInt(expYear, null);\n if (expYearNumber != null) {\n cipher.card.expYear = expYearNumber.toString();\n }\n }\n } catch { }\n\n const pin = this.getValueOrDefault(value.pin);\n if (pin != null) {\n this.processKvp(cipher, 'PIN', pin);\n }\n const zip = this.getValueOrDefault(value.zipCode);\n if (zip != null) {\n this.processKvp(cipher, 'Zip Code', zip);\n }\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class RoboFormCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let i = 1;\n results.forEach(value => {\n const folder = !this.isNullOrWhitespace(value.Folder) && value.Folder.startsWith('/') ?\n value.Folder.replace('/', '') : value.Folder;\n const folderName = !this.isNullOrWhitespace(folder) ? folder : null;\n this.processFolder(result, folderName);\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Note);\n cipher.name = this.getValueOrDefault(value.Name, '--');\n cipher.login.username = this.getValueOrDefault(value.Login);\n cipher.login.password = this.getValueOrDefault(value.Pwd);\n cipher.login.uris = this.makeUriArray(value.Url);\n\n if (!this.isNullOrWhitespace(value.Rf_fields)) {\n let fields: string[] = [value.Rf_fields];\n if (value.__parsed_extra != null && value.__parsed_extra.length > 0) {\n fields = fields.concat(value.__parsed_extra);\n }\n fields.forEach((field: string) => {\n const parts = field.split(':');\n if (parts.length < 3) {\n return;\n }\n const key = parts[0] === '-no-name-' ? null : parts[0];\n const val = parts.length === 4 && parts[2] === 'rck' ? parts[1] : parts[2];\n this.processKvp(cipher, key, val);\n });\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n\n if (i === results.length && cipher.name === '--' && this.isNullOrWhitespace(cipher.login.password)) {\n return;\n }\n\n result.ciphers.push(cipher);\n i++;\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { FieldType } from '../enums';\nimport { CipherView, FieldView } from '../models/view';\n\nexport class SafeInCloudXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const db = doc.querySelector('database');\n if (db == null) {\n result.errorMessage = 'Missing `database` node.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n\n Array.from(doc.querySelectorAll('database > label')).forEach(labelEl => {\n const name = labelEl.getAttribute('name');\n const id = labelEl.getAttribute('id');\n if (!this.isNullOrWhitespace(name) && !this.isNullOrWhitespace(id)) {\n foldersMap.set(id, result.folders.length);\n const folder = new FolderView();\n folder.name = name;\n result.folders.push(folder);\n }\n });\n\n Array.from(doc.querySelectorAll('database > card')).forEach(cardEl => {\n if (cardEl.getAttribute('template') === 'true' || cardEl.getAttribute('deleted') === 'true') {\n return;\n }\n\n const labelIdEl = this.querySelectorDirectChild(cardEl, 'label_id');\n if (labelIdEl != null) {\n const labelId = labelIdEl.textContent;\n if (!this.isNullOrWhitespace(labelId) && foldersMap.has(labelId)) {\n result.folderRelationships.push([result.ciphers.length, foldersMap.get(labelId)]);\n }\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(cardEl.getAttribute('title'), '--');\n\n if (cardEl.getAttribute('star') === 'true') {\n cipher.favorite = true;\n }\n\n const cardType = cardEl.getAttribute('type');\n if (cardType === 'note') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n } else {\n Array.from(this.querySelectorAllDirectChild(cardEl, 'field')).forEach(fieldEl => {\n const text = fieldEl.textContent;\n if (this.isNullOrWhitespace(text)) {\n return;\n }\n const name = fieldEl.getAttribute('name');\n const fieldType = this.getValueOrDefault(fieldEl.getAttribute('type'), '').toLowerCase();\n if (fieldType === 'login') {\n cipher.login.username = text;\n } else if (fieldType === 'password' || fieldType === 'secret') {\n // safeInCloud allows for more than one password. we just insert them here and find the one used as password later\n this.processKvp(cipher, name, text, FieldType.Hidden);\n } else if (fieldType === 'one_time_password') {\n cipher.login.totp = text;\n } else if (fieldType === 'notes') {\n cipher.notes += (text + '\\n');\n } else if (fieldType === 'weblogin' || fieldType === 'website') {\n cipher.login.uris = this.makeUriArray(text);\n }\n else {\n this.processKvp(cipher, name, text);\n }\n });\n }\n\n Array.from(this.querySelectorAllDirectChild(cardEl, 'notes')).forEach(notesEl => {\n cipher.notes += (notesEl.textContent + '\\n');\n });\n\n this.setPassword(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n // Choose a password from all passwords. Take one that has password in its name, or the first one if there is no such entry\n // if its name is password, we can safely remove it form the fields. otherwise, it would maybe be best to keep it as a hidden field\n setPassword(cipher: CipherView) {\n const candidates = cipher.fields.filter(field => field.type === FieldType.Hidden);\n if (!candidates.length) {\n return;\n }\n\n let choice: FieldView;\n for (const field of candidates) {\n if (this.passwordFieldNames.includes(field.name.toLowerCase())) {\n choice = field;\n cipher.fields = cipher.fields.filter(f => f !== choice);\n break;\n }\n }\n\n if (!choice) {\n choice = candidates[0];\n }\n\n cipher.login.password = choice.value;\n }\n}\n","export { CipherType } from './cipherType';\nexport { DeviceType } from './deviceType';\nexport { EncryptionType } from './encryptionType';\nexport { FieldType } from './fieldType';\nexport { LogLevelType } from './logLevelType';\nexport { SecureNoteType } from './secureNoteType';\nexport { TwoFactorProviderType } from './twoFactorProviderType';\nexport { UriMatchType } from './uriMatchType';\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class SaferPassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(this.nameFromUrl(value.url), '--');\n cipher.notes = this.getValueOrDefault(value.notes);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class SecureSafeCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Title);\n cipher.notes = this.getValueOrDefault(value.Comment);\n cipher.login.uris = this.makeUriArray(value.Url);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.username = this.getValueOrDefault(value.Username);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\nimport { CipherView } from '../models/view/cipherView';\n\nexport class SplashIdCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 3) {\n return;\n }\n\n this.processFolder(result, this.getValueOrDefault(value[value.length - 1]));\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 2], '');\n cipher.name = this.getValueOrDefault(value[1], '--');\n\n if (value[0] === 'Web Logins' || value[0] === 'Servers' || value[0] === 'Email Accounts') {\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n this.parseFieldsToNotes(cipher, 5, value);\n } else {\n this.parseFieldsToNotes(cipher, 2, value);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseFieldsToNotes(cipher: CipherView, startIndex: number, value: any) {\n // last 3 rows do not get parsed\n for (let i = startIndex; i < value.length - 3; i++) {\n if (this.isNullOrWhitespace(value[i])) {\n continue;\n }\n cipher.notes += (value[i] + '\\n');\n }\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class StickyPasswordXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const loginNodes = doc.querySelectorAll('root > Database > Logins > Login');\n Array.from(loginNodes).forEach(loginNode => {\n const accountId = loginNode.getAttribute('ID');\n if (this.isNullOrWhitespace(accountId)) {\n return;\n }\n\n const usernameText = loginNode.getAttribute('Name');\n const passwordText = loginNode.getAttribute('Password');\n let titleText: string = null;\n let linkText: string = null;\n let notesText: string = null;\n let groupId: string = null;\n let groupText: string = null;\n\n const accountLogin = doc.querySelector('root > Database > Accounts > Account > ' +\n 'LoginLinks > Login[SourceLoginID=\"' + accountId + '\"]');\n if (accountLogin != null) {\n const account = accountLogin.parentElement.parentElement;\n if (account != null) {\n titleText = account.getAttribute('Name');\n linkText = account.getAttribute('Link');\n groupId = account.getAttribute('ParentID');\n notesText = account.getAttribute('Comments');\n if (!this.isNullOrWhitespace(notesText)) {\n notesText = notesText.split('/n').join('\\n');\n }\n }\n }\n\n if (!this.isNullOrWhitespace(groupId)) {\n groupText = this.buildGroupText(doc, groupId, '');\n this.processFolder(result, groupText);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(titleText, '--');\n cipher.notes = this.getValueOrDefault(notesText);\n cipher.login.username = this.getValueOrDefault(usernameText);\n cipher.login.password = this.getValueOrDefault(passwordText);\n cipher.login.uris = this.makeUriArray(linkText);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n buildGroupText(doc: Document, groupId: string, groupText: string): string {\n const group = doc.querySelector('root > Database > Groups > Group[ID=\"' + groupId + '\"]');\n if (group == null) {\n return groupText;\n }\n if (!this.isNullOrWhitespace(groupText)) {\n groupText = '/' + groupText;\n }\n groupText = group.getAttribute('Name') + groupText;\n return this.buildGroupText(doc, group.getAttribute('ParentID'), groupText);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nconst PropertiesToIgnore = ['kind', 'autologin', 'favorite', 'hexcolor', 'protectedwithpassword', 'subdomainonly',\n 'type', 'tk_export_version', 'note', 'title', 'document_content',\n];\n\nexport class TrueKeyCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.favorite, '').toLowerCase() === 'true';\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.notes = this.getValueOrDefault(value.memo, '');\n cipher.login.username = this.getValueOrDefault(value.login);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n\n if (value.kind !== 'login') {\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.notes = this.getValueOrDefault(value.note, '');\n }\n\n if (value.kind === 'cc') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.cardholder);\n cipher.card.number = this.getValueOrDefault(value.number);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n if (!this.isNullOrWhitespace(value.expiryDate)) {\n try {\n const expDate = new Date(value.expiryDate);\n cipher.card.expYear = expDate.getFullYear().toString();\n cipher.card.expMonth = (expDate.getMonth() + 1).toString();\n } catch { }\n }\n } else if (value.kind !== 'login') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n if (!this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = this.getValueOrDefault(value.document_content, '');\n }\n for (const property in value) {\n if (value.hasOwnProperty(property) && PropertiesToIgnore.indexOf(property.toLowerCase()) < 0 &&\n !this.isNullOrWhitespace(value[property])) {\n this.processKvp(cipher, property, value[property]);\n }\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class UpmCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length !== 5) {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n cipher.notes = this.getValueOrDefault(value[4]);\n cipher.login.username = this.getValueOrDefault(value[1]);\n cipher.login.password = this.getValueOrDefault(value[2]);\n cipher.login.uris = this.makeUriArray(value[3]);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class YotiCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Name, '--');\n cipher.login.username = this.getValueOrDefault(value['User name']);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\nimport { CipherView } from '../models/view';\n\nexport class ZohoVaultCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(value['Password Name']) && this.isNullOrWhitespace(value['Secret Name'])) {\n return;\n }\n this.processFolder(result, this.getValueOrDefault(value.ChamberName));\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.Favorite, '0') === '1';\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.name = this.getValueOrDefault(\n value['Password Name'], this.getValueOrDefault(value['Secret Name'], '--'));\n cipher.login.uris = this.makeUriArray(\n this.getValueOrDefault(value['Password URL'], this.getValueOrDefault(value['Secret URL'])));\n this.parseData(cipher, value.SecretData);\n this.parseData(cipher, value.CustomData);\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseData(cipher: CipherView, data: string) {\n if (this.isNullOrWhitespace(data)) {\n return;\n }\n const dataLines = this.splitNewLine(data);\n dataLines.forEach(line => {\n const delimPosition = line.indexOf(':');\n if (delimPosition < 0) {\n return;\n }\n const field = line.substring(0, delimPosition);\n const value = line.length > delimPosition ? line.substring(delimPosition + 1) : null;\n if (this.isNullOrWhitespace(field) || this.isNullOrWhitespace(value) || field === 'SecretType') {\n return;\n }\n const fieldLower = field.toLowerCase();\n if (cipher.login.username == null && this.usernameFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.username = value;\n } else if (cipher.login.password == null && this.passwordFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.password = value;\n } else {\n this.processKvp(cipher, field, value);\n }\n });\n }\n}\n","import * as signalR from '@microsoft/signalr';\nimport * as signalRMsgPack from '@microsoft/signalr-protocol-msgpack';\n\nimport { NotificationType } from '../enums/notificationType';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { AppIdService } from '../abstractions/appId.service';\nimport { EnvironmentService } from '../abstractions/environment.service';\nimport { LogService } from '../abstractions/log.service';\nimport { NotificationsService as NotificationsServiceAbstraction } from '../abstractions/notifications.service';\nimport { SyncService } from '../abstractions/sync.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService } from '../abstractions/vaultTimeout.service';\n\nimport {\n NotificationResponse,\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\n\nexport class NotificationsService implements NotificationsServiceAbstraction {\n private signalrConnection: signalR.HubConnection;\n private url: string;\n private connected = false;\n private inited = false;\n private inactive = false;\n private reconnectTimer: any = null;\n\n constructor(private userService: UserService, private syncService: SyncService,\n private appIdService: AppIdService, private apiService: ApiService,\n private vaultTimeoutService: VaultTimeoutService,\n private logoutCallback: () => Promise, private logService: LogService) {\n }\n\n async init(environmentService: EnvironmentService): Promise {\n this.inited = false;\n this.url = 'https://notifications.bitwarden.com';\n if (environmentService.notificationsUrl != null) {\n this.url = environmentService.notificationsUrl;\n } else if (environmentService.baseUrl != null) {\n this.url = environmentService.baseUrl + '/notifications';\n }\n\n // Set notifications server URL to `https://-` to effectively disable communication\n // with the notifications server from the client app\n if (this.url === 'https://-') {\n return;\n }\n\n if (this.signalrConnection != null) {\n this.signalrConnection.off('ReceiveMessage');\n this.signalrConnection.off('Heartbeat');\n await this.signalrConnection.stop();\n this.connected = false;\n this.signalrConnection = null;\n }\n\n this.signalrConnection = new signalR.HubConnectionBuilder()\n .withUrl(this.url + '/hub', {\n accessTokenFactory: () => this.apiService.getActiveBearerToken(),\n skipNegotiation: true,\n transport: signalR.HttpTransportType.WebSockets,\n })\n .withHubProtocol(new signalRMsgPack.MessagePackHubProtocol() as signalR.IHubProtocol)\n // .configureLogging(signalR.LogLevel.Trace)\n .build();\n\n this.signalrConnection.on('ReceiveMessage',\n (data: any) => this.processNotification(new NotificationResponse(data)));\n this.signalrConnection.on('Heartbeat',\n (data: any) => { /*console.log('Heartbeat!');*/ });\n this.signalrConnection.onclose(() => {\n this.connected = false;\n this.reconnect(true);\n });\n this.inited = true;\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(false);\n }\n }\n\n async updateConnection(sync = false): Promise {\n if (!this.inited) {\n return;\n }\n try {\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(sync);\n } else {\n await this.signalrConnection.stop();\n }\n } catch (e) {\n this.logService.error(e.toString());\n }\n }\n\n async reconnectFromActivity(): Promise {\n this.inactive = false;\n if (this.inited && !this.connected) {\n await this.reconnect(true);\n }\n }\n\n async disconnectFromInactivity(): Promise {\n this.inactive = true;\n if (this.inited && this.connected) {\n await this.signalrConnection.stop();\n }\n }\n\n private async processNotification(notification: NotificationResponse) {\n const appId = await this.appIdService.getAppId();\n if (notification == null || notification.contextId === appId) {\n return;\n }\n\n const isAuthenticated = await this.userService.isAuthenticated();\n const payloadUserId = notification.payload.userId || notification.payload.UserId;\n const myUserId = await this.userService.getUserId();\n if (isAuthenticated && payloadUserId != null && payloadUserId !== myUserId) {\n return;\n }\n\n switch (notification.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherUpdate:\n await this.syncService.syncUpsertCipher(notification.payload as SyncCipherNotification,\n notification.type === NotificationType.SyncCipherUpdate);\n break;\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncLoginDelete:\n await this.syncService.syncDeleteCipher(notification.payload as SyncCipherNotification);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderUpdate:\n await this.syncService.syncUpsertFolder(notification.payload as SyncFolderNotification,\n notification.type === NotificationType.SyncFolderUpdate);\n break;\n case NotificationType.SyncFolderDelete:\n await this.syncService.syncDeleteFolder(notification.payload as SyncFolderNotification);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncSettings:\n if (isAuthenticated) {\n await this.syncService.fullSync(false);\n }\n break;\n case NotificationType.SyncOrgKeys:\n if (isAuthenticated) {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n // Stop so a reconnect can be made\n await this.signalrConnection.stop();\n }\n break;\n case NotificationType.LogOut:\n if (isAuthenticated) {\n this.logoutCallback();\n }\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n await this.syncService.syncUpsertSend(notification.payload as SyncSendNotification,\n notification.type === NotificationType.SyncSendUpdate);\n break;\n case NotificationType.SyncSendDelete:\n await this.syncService.syncDeleteSend(notification.payload as SyncSendNotification);\n default:\n break;\n }\n }\n\n private async reconnect(sync: boolean) {\n if (this.reconnectTimer != null) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n if (this.connected || !this.inited || this.inactive) {\n return;\n }\n const authedAndUnlocked = await this.isAuthedAndUnlocked();\n if (!authedAndUnlocked) {\n return;\n }\n\n try {\n await this.signalrConnection.start();\n this.connected = true;\n if (sync) {\n await this.syncService.fullSync(false);\n }\n } catch { }\n\n if (!this.connected) {\n this.reconnectTimer = setTimeout(() => this.reconnect(sync), this.random(120000, 300000));\n }\n }\n\n private async isAuthedAndUnlocked() {\n if (await this.userService.isAuthenticated()) {\n const locked = await this.vaultTimeoutService.isLocked();\n return !locked;\n }\n return false;\n }\n\n private random(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { NotificationType } from '../../enums/notificationType';\n\nexport class NotificationResponse extends BaseResponse {\n contextId: string;\n type: NotificationType;\n payload: any;\n\n constructor(response: any) {\n super(response);\n this.contextId = this.getResponseProperty('ContextId');\n this.type = this.getResponseProperty('Type');\n\n const payload = this.getResponseProperty('Payload');\n switch (this.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncCipherUpdate:\n case NotificationType.SyncLoginDelete:\n this.payload = new SyncCipherNotification(payload);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderDelete:\n case NotificationType.SyncFolderUpdate:\n this.payload = new SyncFolderNotification(payload);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncOrgKeys:\n case NotificationType.SyncSettings:\n case NotificationType.LogOut:\n this.payload = new UserNotification(payload);\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n case NotificationType.SyncSendDelete:\n this.payload = new SyncSendNotification(payload);\n default:\n break;\n }\n }\n}\n\nexport class SyncCipherNotification extends BaseResponse {\n id: string;\n userId: string;\n organizationId: string;\n collectionIds: string[];\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.collectionIds = this.getResponseProperty('CollectionIds');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n\nexport class SyncFolderNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n\nexport class UserNotification extends BaseResponse {\n userId: string;\n date: Date;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.date = new Date(this.getResponseProperty('Date'));\n }\n}\n\nexport class SyncSendNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n","import { PolicyService as PolicyServiceAbstraction } from '../abstractions/policy.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { PolicyData } from '../models/data/policyData';\n\nimport { MasterPasswordPolicyOptions } from '../models/domain/masterPasswordPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { PolicyType } from '../enums/policyType';\n\nconst Keys = {\n policiesPrefix: 'policies_',\n};\n\nexport class PolicyService implements PolicyServiceAbstraction {\n policyCache: Policy[];\n\n constructor(private userService: UserService, private storageService: StorageService) {\n }\n\n clearCache(): void {\n this.policyCache = null;\n }\n\n async getAll(type?: PolicyType): Promise {\n if (this.policyCache == null) {\n const userId = await this.userService.getUserId();\n const policies = await this.storageService.get<{ [id: string]: PolicyData; }>(\n Keys.policiesPrefix + userId);\n const response: Policy[] = [];\n for (const id in policies) {\n if (policies.hasOwnProperty(id)) {\n response.push(new Policy(policies[id]));\n }\n }\n this.policyCache = response;\n }\n if (type != null) {\n return this.policyCache.filter(p => p.type === type);\n } else {\n return this.policyCache;\n }\n }\n\n async replace(policies: { [id: string]: PolicyData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.policiesPrefix + userId, policies);\n this.policyCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.policiesPrefix + userId);\n this.policyCache = null;\n }\n\n async getMasterPasswordPolicyOptions(policies?: Policy[]): Promise {\n let enforcedOptions: MasterPasswordPolicyOptions = null;\n\n if (policies == null) {\n policies = await this.getAll(PolicyType.MasterPassword);\n } else {\n policies = policies.filter(p => p.type === PolicyType.MasterPassword);\n }\n\n if (policies == null || policies.length === 0) {\n return enforcedOptions;\n }\n\n policies.forEach(currentPolicy => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new MasterPasswordPolicyOptions();\n }\n\n if (currentPolicy.data.minComplexity != null\n && currentPolicy.data.minComplexity > enforcedOptions.minComplexity) {\n enforcedOptions.minComplexity = currentPolicy.data.minComplexity;\n }\n\n if (currentPolicy.data.minLength != null\n && currentPolicy.data.minLength > enforcedOptions.minLength) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.requireUpper) {\n enforcedOptions.requireUpper = true;\n }\n\n if (currentPolicy.data.requireLower) {\n enforcedOptions.requireLower = true;\n }\n\n if (currentPolicy.data.requireNumbers) {\n enforcedOptions.requireNumbers = true;\n }\n\n if (currentPolicy.data.requireSpecial) {\n enforcedOptions.requireSpecial = true;\n }\n });\n\n return enforcedOptions;\n }\n\n evaluateMasterPassword(passwordStrength: number, newPassword: string,\n enforcedPolicyOptions: MasterPasswordPolicyOptions): boolean {\n if (enforcedPolicyOptions == null) {\n return true;\n }\n\n if (enforcedPolicyOptions.minComplexity > 0 && enforcedPolicyOptions.minComplexity > passwordStrength) {\n return false;\n }\n\n if (enforcedPolicyOptions.minLength > 0 && enforcedPolicyOptions.minLength > newPassword.length) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireUpper && newPassword.toLocaleLowerCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireLower && newPassword.toLocaleUpperCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireNumbers && !(/[0-9]/.test(newPassword))) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireSpecial && !(/[!@#$%\\^&*]/g.test(newPassword))) {\n return false;\n }\n\n return true;\n }\n}\n","import Domain from './domainBase';\n\nexport class MasterPasswordPolicyOptions extends Domain {\n minComplexity: number = 0;\n minLength: number = 0;\n requireUpper: boolean = false;\n requireLower: boolean = false;\n requireNumbers: boolean = false;\n requireSpecial: boolean = false;\n}\n","import * as lunr from 'lunr';\n\nimport { CipherView } from '../models/view/cipherView';\n\nimport { CipherService } from '../abstractions/cipher.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { LogService } from '../abstractions/log.service';\nimport { SearchService as SearchServiceAbstraction } from '../abstractions/search.service';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { UriMatchType } from '../enums/uriMatchType';\nimport { SendView } from '../models/view/sendView';\n\nexport class SearchService implements SearchServiceAbstraction {\n indexedEntityId?: string = null;\n private indexing = false;\n private index: lunr.Index = null;\n private searchableMinLength = 2;\n\n constructor(private cipherService: CipherService, private logService: LogService,\n private i18nService: I18nService) {\n if (['zh-CN', 'zh-TW'].indexOf(i18nService.locale) !== -1) {\n this.searchableMinLength = 1;\n }\n }\n\n clearIndex(): void {\n this.indexedEntityId = null;\n this.index = null;\n }\n\n isSearchable(query: string): boolean {\n const notSearchable = query == null || (this.index == null && query.length < this.searchableMinLength) ||\n (this.index != null && query.length < this.searchableMinLength && query.indexOf('>') !== 0);\n return !notSearchable;\n }\n\n async indexCiphers(indexedEntityId?: string, ciphers?: CipherView[]): Promise {\n if (this.indexing) {\n return;\n }\n\n this.logService.time('search indexing');\n this.indexing = true;\n this.indexedEntityId = indexedEntityId;\n this.index = null;\n const builder = new lunr.Builder();\n builder.ref('id');\n builder.field('shortid', { boost: 100, extractor: (c: CipherView) => c.id.substr(0, 8) });\n builder.field('name', { boost: 10 });\n builder.field('subtitle', {\n boost: 5,\n extractor: (c: CipherView) => {\n if (c.subTitle != null && c.type === CipherType.Card) {\n return c.subTitle.replace(/\\*/g, '');\n }\n return c.subTitle;\n },\n });\n builder.field('notes');\n builder.field('login.username', {\n extractor: (c: CipherView) => c.type === CipherType.Login && c.login != null ? c.login.username : null,\n });\n builder.field('login.uris', { boost: 2, extractor: (c: CipherView) => this.uriExtractor(c) });\n builder.field('fields', { extractor: (c: CipherView) => this.fieldExtractor(c, false) });\n builder.field('fields_joined', { extractor: (c: CipherView) => this.fieldExtractor(c, true) });\n builder.field('attachments', { extractor: (c: CipherView) => this.attachmentExtractor(c, false) });\n builder.field('attachments_joined',\n { extractor: (c: CipherView) => this.attachmentExtractor(c, true) });\n builder.field('organizationid', { extractor: (c: CipherView) => c.organizationId });\n ciphers = ciphers || await this.cipherService.getAllDecrypted();\n ciphers.forEach(c => builder.add(c));\n this.index = builder.build();\n\n this.indexing = false;\n\n this.logService.timeEnd('search indexing');\n }\n\n async searchCiphers(query: string,\n filter: (((cipher: CipherView) => boolean) | (((cipher: CipherView) => boolean)[])) = null,\n ciphers: CipherView[] = null):\n Promise {\n const results: CipherView[] = [];\n if (query != null) {\n query = query.trim().toLowerCase();\n }\n if (query === '') {\n query = null;\n }\n\n if (ciphers == null) {\n ciphers = await this.cipherService.getAllDecrypted();\n }\n\n if (filter != null && Array.isArray(filter) && filter.length > 0) {\n ciphers = ciphers.filter(c => filter.every(f => f == null || f(c)));\n } else if (filter != null) {\n ciphers = ciphers.filter(filter as (cipher: CipherView) => boolean);\n }\n\n if (!this.isSearchable(query)) {\n return ciphers;\n }\n\n if (this.indexing) {\n await new Promise(r => setTimeout(r, 250));\n if (this.indexing) {\n await new Promise(r => setTimeout(r, 500));\n }\n }\n\n const index = this.getIndexForSearch();\n if (index == null) {\n // Fall back to basic search if index is not available\n return this.searchCiphersBasic(ciphers, query);\n }\n\n const ciphersMap = new Map();\n ciphers.forEach(c => ciphersMap.set(c.id, c));\n\n let searchResults: lunr.Index.Result[] = null;\n const isQueryString = query != null && query.length > 1 && query.indexOf('>') === 0;\n if (isQueryString) {\n try {\n searchResults = index.search(query.substr(1).trim());\n } catch { }\n } else {\n // tslint:disable-next-line\n const soWild = lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING;\n searchResults = index.query(q => {\n lunr.tokenizer(query).forEach(token => {\n const t = token.toString();\n q.term(t, { fields: ['name'], wildcard: soWild });\n q.term(t, { fields: ['subtitle'], wildcard: soWild });\n q.term(t, { fields: ['login.uris'], wildcard: soWild });\n q.term(t, {});\n });\n });\n }\n\n if (searchResults != null) {\n searchResults.forEach(r => {\n if (ciphersMap.has(r.ref)) {\n results.push(ciphersMap.get(r.ref));\n }\n });\n }\n return results;\n }\n\n searchCiphersBasic(ciphers: CipherView[], query: string, deleted: boolean = false) {\n query = query.trim().toLowerCase();\n return ciphers.filter(c => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && c.id.startsWith(query)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n return false;\n });\n }\n\n searchSends(sends: SendView[], query: string) {\n query = query.trim().toLocaleLowerCase();\n\n return sends.filter(s => {\n if (s.name != null && s.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && (s.id.startsWith(query) || s.accessId.toLocaleLowerCase().startsWith(query) || (s.file?.id != null && s.file.id.startsWith(query)))) {\n return true;\n }\n if (s.notes != null && s.notes.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (s.text?.text != null && s.text.text.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (s.file?.fileName != null && s.file.fileName.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n });\n }\n\n getIndexForSearch(): lunr.Index {\n return this.index;\n }\n\n private fieldExtractor(c: CipherView, joined: boolean) {\n if (!c.hasFields) {\n return null;\n }\n let fields: string[] = [];\n c.fields.forEach(f => {\n if (f.name != null) {\n fields.push(f.name);\n }\n if (f.type === FieldType.Text && f.value != null) {\n fields.push(f.value);\n }\n });\n fields = fields.filter(f => f.trim() !== '');\n if (fields.length === 0) {\n return null;\n }\n return joined ? fields.join(' ') : fields;\n }\n\n private attachmentExtractor(c: CipherView, joined: boolean) {\n if (!c.hasAttachments) {\n return null;\n }\n let attachments: string[] = [];\n c.attachments.forEach(a => {\n if (a != null && a.fileName != null) {\n if (joined && a.fileName.indexOf('.') > -1) {\n attachments.push(a.fileName.substr(0, a.fileName.lastIndexOf('.')));\n } else {\n attachments.push(a.fileName);\n }\n }\n });\n attachments = attachments.filter(f => f.trim() !== '');\n if (attachments.length === 0) {\n return null;\n }\n return joined ? attachments.join(' ') : attachments;\n }\n\n private uriExtractor(c: CipherView) {\n if (c.type !== CipherType.Login || c.login == null || !c.login.hasUris) {\n return null;\n }\n const uris: string[] = [];\n c.login.uris.forEach(u => {\n if (u.uri == null || u.uri === '') {\n return;\n }\n if (u.hostname != null) {\n uris.push(u.hostname);\n return;\n }\n let uri = u.uri;\n if (u.match !== UriMatchType.RegularExpression) {\n const protocolIndex = uri.indexOf('://');\n if (protocolIndex > -1) {\n uri = uri.substr(protocolIndex + 3);\n }\n const queryIndex = uri.search(/\\?|&|#/);\n if (queryIndex > -1) {\n uri = uri.substring(0, queryIndex);\n }\n }\n uris.push(uri);\n });\n return uris.length > 0 ? uris : null;\n }\n}\n","import { SendData } from '../models/data/sendData';\n\nimport { SendRequest } from '../models/request/sendRequest';\n\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { SendResponse } from '../models/response/sendResponse';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\nimport { Send } from '../models/domain/send';\nimport { SendFile } from '../models/domain/sendFile';\nimport { SendText } from '../models/domain/sendText';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { FileUploadType } from '../enums/fileUploadType';\nimport { SendType } from '../enums/sendType';\n\nimport { SendView } from '../models/view/sendView';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { FileUploadService } from '../abstractions/fileUpload.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { SendService as SendServiceAbstraction } from '../abstractions/send.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n sendsPrefix: 'sends_',\n};\n\nexport class SendService implements SendServiceAbstraction {\n decryptedSendCache: SendView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private apiService: ApiService, private fileUploadService: FileUploadService,\n private storageService: StorageService, private i18nService: I18nService,\n private cryptoFunctionService: CryptoFunctionService) { }\n\n clearCache(): void {\n this.decryptedSendCache = null;\n }\n\n async encrypt(model: SendView, file: File | ArrayBuffer, password: string,\n key?: SymmetricCryptoKey): Promise<[Send, EncArrayBuffer]> {\n let fileData: EncArrayBuffer = null;\n const send = new Send();\n send.id = model.id;\n send.type = model.type;\n send.disabled = model.disabled;\n send.hideEmail = model.hideEmail;\n send.maxAccessCount = model.maxAccessCount;\n if (model.key == null) {\n model.key = await this.cryptoFunctionService.randomBytes(16);\n model.cryptoKey = await this.cryptoService.makeSendKey(model.key);\n }\n if (password != null) {\n const passwordHash = await this.cryptoFunctionService.pbkdf2(password, model.key, 'sha256', 100000);\n send.password = Utils.fromBufferToB64(passwordHash);\n }\n send.key = await this.cryptoService.encrypt(model.key, key);\n send.name = await this.cryptoService.encrypt(model.name, model.cryptoKey);\n send.notes = await this.cryptoService.encrypt(model.notes, model.cryptoKey);\n if (send.type === SendType.Text) {\n send.text = new SendText();\n send.text.text = await this.cryptoService.encrypt(model.text.text, model.cryptoKey);\n send.text.hidden = model.text.hidden;\n } else if (send.type === SendType.File) {\n send.file = new SendFile();\n if (file != null) {\n if (file instanceof ArrayBuffer) {\n const [name, data] = await this.encryptFileData(model.file.fileName, file, model.cryptoKey);\n send.file.fileName = name;\n fileData = data;\n } else {\n fileData = await this.parseFile(send, file, model.cryptoKey);\n }\n }\n }\n\n return [send, fileData];\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null || !sends.hasOwnProperty(id)) {\n return null;\n }\n\n return new Send(sends[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n const response: Send[] = [];\n for (const id in sends) {\n if (sends.hasOwnProperty(id)) {\n response.push(new Send(sends[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedSendCache != null) {\n return this.decryptedSendCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const decSends: SendView[] = [];\n const promises: Promise[] = [];\n const sends = await this.getAll();\n sends.forEach(send => {\n promises.push(send.decrypt().then(f => decSends.push(f)));\n });\n\n await Promise.all(promises);\n decSends.sort(Utils.getSortFunction(this.i18nService, 'name'));\n\n this.decryptedSendCache = decSends;\n return this.decryptedSendCache;\n }\n\n async saveWithServer(sendData: [Send, EncArrayBuffer]): Promise {\n const request = new SendRequest(sendData[0], sendData[1]?.buffer.byteLength);\n let response: SendResponse;\n if (sendData[0].id == null) {\n if (sendData[0].type === SendType.Text) {\n response = await this.apiService.postSend(request);\n } else {\n try {\n const uploadDataResponse = await this.apiService.postFileTypeSend(request);\n response = uploadDataResponse.sendResponse;\n\n await this.fileUploadService.uploadSendFile(uploadDataResponse, sendData[0].file.fileName, sendData[1]);\n } catch (e) {\n if (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404) {\n response = await this.legacyServerSendFileUpload(sendData, request);\n } else if (e instanceof ErrorResponse) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n } else {\n throw e;\n }\n }\n }\n sendData[0].id = response.id;\n sendData[0].accessId = response.accessId;\n } else {\n response = await this.apiService.putSend(sendData[0].id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new SendData(response, userId);\n await this.upsert(data);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async legacyServerSendFileUpload(sendData: [Send, EncArrayBuffer], request: SendRequest): Promise\n {\n const fd = new FormData();\n try {\n const blob = new Blob([sendData[1].buffer], { type: 'application/octet-stream' });\n fd.append('model', JSON.stringify(request));\n fd.append('data', blob, sendData[0].file.fileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('model', JSON.stringify(request));\n fd.append('data', Buffer.from(sendData[1].buffer) as any, {\n filepath: sendData[0].file.fileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n return await this.apiService.postSendFileLegacy(fd);\n }\n\n async upsert(send: SendData | SendData[]): Promise {\n const userId = await this.userService.getUserId();\n let sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null) {\n sends = {};\n }\n\n if (send instanceof SendData) {\n const s = send as SendData;\n sends[s.id] = s;\n } else {\n (send as SendData[]).forEach(s => {\n sends[s.id] = s;\n });\n }\n\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async replace(sends: { [id: string]: SendData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.sendsPrefix + userId);\n this.decryptedSendCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (sends[id] == null) {\n return;\n }\n delete sends[id];\n } else {\n (id as string[]).forEach(i => {\n delete sends[i];\n });\n }\n\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteSend(id);\n await this.delete(id);\n }\n\n async removePasswordWithServer(id: string): Promise {\n const response = await this.apiService.putSendRemovePassword(id);\n const userId = await this.userService.getUserId();\n const data = new SendData(response, userId);\n await this.upsert(data);\n }\n\n private parseFile(send: Send, file: File, key: SymmetricCryptoKey): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(file);\n reader.onload = async evt => {\n try {\n const [name, data] = await this.encryptFileData(file.name, evt.target.result as ArrayBuffer, key);\n send.file.fileName = name;\n resolve(data);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = evt => {\n reject('Error reading file.');\n };\n });\n }\n\n private async encryptFileData(fileName: string, data: ArrayBuffer,\n key: SymmetricCryptoKey): Promise<[EncString, EncArrayBuffer]> {\n const encFileName = await this.cryptoService.encrypt(fileName, key);\n const encFileData = await this.cryptoService.encryptToBytes(data, key);\n return [encFileName, encFileData];\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nimport { Send } from '../domain/send';\n\nexport class SendRequest {\n type: SendType;\n fileLength?: number;\n name: string;\n notes: string;\n key: string;\n maxAccessCount?: number;\n expirationDate: string;\n deletionDate: string;\n text: SendTextApi;\n file: SendFileApi;\n password: string;\n disabled: boolean;\n hideEmail: boolean;\n\n constructor(send: Send, fileLength?: number) {\n this.type = send.type;\n this.fileLength = fileLength;\n this.name = send.name ? send.name.encryptedString : null;\n this.notes = send.notes ? send.notes.encryptedString : null;\n this.maxAccessCount = send.maxAccessCount;\n this.expirationDate = send.expirationDate != null ? send.expirationDate.toISOString() : null;\n this.deletionDate = send.deletionDate != null ? send.deletionDate.toISOString() : null;\n this.key = send.key != null ? send.key.encryptedString : null;\n this.password = send.password;\n this.disabled = send.disabled;\n this.hideEmail = send.hideEmail;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextApi();\n this.text.text = send.text.text != null ? send.text.text.encryptedString : null;\n this.text.hidden = send.text.hidden;\n break;\n case SendType.File:\n this.file = new SendFileApi();\n this.file.fileName = send.file.fileName != null ? send.file.fileName.encryptedString : null;\n break;\n default:\n break;\n }\n }\n}\n","import { CryptoService } from '../../abstractions/crypto.service';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { Utils } from '../../misc/utils';\n\nimport { SendData } from '../data/sendData';\n\nimport { SendView } from '../view/sendView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SendFile } from './sendFile';\nimport { SendText } from './sendText';\n\nexport class Send extends Domain {\n id: string;\n accessId: string;\n userId: string;\n type: SendType;\n name: EncString;\n notes: EncString;\n file: SendFile;\n text: SendText;\n key: EncString;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: Date;\n expirationDate: Date;\n deletionDate: Date;\n password: string;\n disabled: boolean;\n hideEmail: boolean;\n\n constructor(obj?: SendData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n accessId: null,\n userId: null,\n name: null,\n notes: null,\n key: null,\n }, alreadyEncrypted, ['id', 'accessId', 'userId']);\n\n this.type = obj.type;\n this.maxAccessCount = obj.maxAccessCount;\n this.accessCount = obj.accessCount;\n this.password = obj.password;\n this.disabled = obj.disabled;\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n this.deletionDate = obj.deletionDate != null ? new Date(obj.deletionDate) : null;\n this.expirationDate = obj.expirationDate != null ? new Date(obj.expirationDate) : null;\n this.hideEmail = obj.hideEmail;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendText(obj.text, alreadyEncrypted);\n break;\n case SendType.File:\n this.file = new SendFile(obj.file, alreadyEncrypted);\n break;\n default:\n break;\n }\n }\n\n async decrypt(): Promise {\n const model = new SendView(this);\n\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n model.key = await cryptoService.decryptToBytes(this.key, null);\n model.cryptoKey = await cryptoService.makeSendKey(model.key);\n } catch (e) {\n // TODO: error?\n }\n\n await this.decryptObj(model, {\n name: null,\n notes: null,\n }, null, model.cryptoKey);\n\n switch (this.type) {\n case SendType.File:\n model.file = await this.file.decrypt(model.cryptoKey);\n break;\n case SendType.Text:\n model.text = await this.text.decrypt(model.cryptoKey);\n break;\n default:\n break;\n }\n\n return model;\n }\n}\n","import * as forge from 'node-forge';\n\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nimport { Utils } from '../misc/utils';\n\nimport { DecryptParameters } from '../models/domain/decryptParameters';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport class WebCryptoFunctionService implements CryptoFunctionService {\n private crypto: Crypto;\n private subtle: SubtleCrypto;\n private isIE: boolean;\n private isOldSafari: boolean;\n\n constructor(private win: Window, private platformUtilsService: PlatformUtilsService) {\n this.crypto = typeof win.crypto !== 'undefined' ? win.crypto : null;\n this.subtle = (!!this.crypto && typeof win.crypto.subtle !== 'undefined') ? win.crypto.subtle : null;\n this.isIE = platformUtilsService.isIE();\n const ua = win.navigator.userAgent;\n this.isOldSafari = platformUtilsService.isSafari() &&\n (ua.indexOf(' Version/10.') > -1 || ua.indexOf(' Version/9.') > -1);\n }\n\n async pbkdf2(password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: 'sha256' | 'sha512',\n iterations: number): Promise {\n if (this.isIE || this.isOldSafari) {\n const forgeLen = algorithm === 'sha256' ? 32 : 64;\n const passwordBytes = this.toByteString(password);\n const saltBytes = this.toByteString(salt);\n const derivedKeyBytes = (forge as any).pbkdf2(passwordBytes, saltBytes, iterations, forgeLen, algorithm);\n return Utils.fromByteStringToArray(derivedKeyBytes).buffer;\n }\n\n const wcLen = algorithm === 'sha256' ? 256 : 512;\n const passwordBuf = this.toBuf(password);\n const saltBuf = this.toBuf(salt);\n\n const pbkdf2Params: Pbkdf2Params = {\n name: 'PBKDF2',\n salt: saltBuf,\n iterations: iterations,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', passwordBuf, { name: 'PBKDF2' } as any,\n false, ['deriveBits']);\n return await this.subtle.deriveBits(pbkdf2Params, impKey, wcLen);\n }\n\n async hkdf(ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer,\n outputByteSize: number, algorithm: 'sha256' | 'sha512'): Promise {\n const saltBuf = this.toBuf(salt);\n const infoBuf = this.toBuf(info);\n\n const hkdfParams: HkdfParams = {\n name: 'HKDF',\n salt: saltBuf,\n info: infoBuf,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', ikm, { name: 'HKDF' } as any,\n false, ['deriveBits']);\n return await this.subtle.deriveBits(hkdfParams as any, impKey, outputByteSize * 8);\n }\n\n // ref: https://tools.ietf.org/html/rfc5869\n async hkdfExpand(prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number,\n algorithm: 'sha256' | 'sha512'): Promise {\n const hashLen = algorithm === 'sha256' ? 32 : 64;\n if (outputByteSize > 255 * hashLen) {\n throw new Error('outputByteSize is too large.');\n }\n const prkArr = new Uint8Array(prk);\n if (prkArr.length < hashLen) {\n throw new Error('prk is too small.');\n }\n const infoBuf = this.toBuf(info);\n const infoArr = new Uint8Array(infoBuf);\n let runningOkmLength = 0;\n let previousT = new Uint8Array(0);\n const n = Math.ceil(outputByteSize / hashLen);\n const okm = new Uint8Array(n * hashLen);\n for (let i = 0; i < n; i++) {\n const t = new Uint8Array(previousT.length + infoArr.length + 1);\n t.set(previousT);\n t.set(infoArr, previousT.length);\n t.set([i + 1], t.length - 1);\n previousT = new Uint8Array(await this.hmac(t.buffer, prk, algorithm));\n okm.set(previousT, runningOkmLength);\n runningOkmLength += previousT.length;\n if (runningOkmLength >= outputByteSize) {\n break;\n }\n }\n return okm.slice(0, outputByteSize).buffer;\n }\n\n async hash(value: string | ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5'): Promise {\n if ((this.isIE && algorithm === 'sha1') || algorithm === 'md5') {\n const md = algorithm === 'md5' ? forge.md.md5.create() : forge.md.sha1.create();\n const valueBytes = this.toByteString(value);\n md.update(valueBytes, 'raw');\n return Utils.fromByteStringToArray(md.digest().data).buffer;\n }\n\n const valueBuf = this.toBuf(value);\n return await this.subtle.digest({ name: this.toWebCryptoAlgorithm(algorithm) }, valueBuf);\n }\n\n async hmac(value: ArrayBuffer, key: ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512'): Promise {\n if (this.isIE && algorithm === 'sha512') {\n const hmac = (forge as any).hmac.create();\n const keyBytes = this.toByteString(key);\n const valueBytes = this.toByteString(value);\n hmac.start(algorithm, keyBytes);\n hmac.update(valueBytes, 'raw');\n return Utils.fromByteStringToArray(hmac.digest().data).buffer;\n }\n\n const signingAlgorithm = {\n name: 'HMAC',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', key, signingAlgorithm, false, ['sign']);\n return await this.subtle.sign(signingAlgorithm, impKey, value);\n }\n\n // Safely compare two values in a way that protects against timing attacks (Double HMAC Verification).\n // ref: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/\n // ref: https://paragonie.com/blog/2015/11/preventing-timing-attacks-on-string-comparison-with-double-hmac-strategy\n async compare(a: ArrayBuffer, b: ArrayBuffer): Promise {\n const macKey = await this.randomBytes(32);\n const signingAlgorithm = {\n name: 'HMAC',\n hash: { name: 'SHA-256' },\n };\n const impKey = await this.subtle.importKey('raw', macKey, signingAlgorithm, false, ['sign']);\n const mac1 = await this.subtle.sign(signingAlgorithm, impKey, a);\n const mac2 = await this.subtle.sign(signingAlgorithm, impKey, b);\n\n if (mac1.byteLength !== mac2.byteLength) {\n return false;\n }\n\n const arr1 = new Uint8Array(mac1);\n const arr2 = new Uint8Array(mac2);\n for (let i = 0; i < arr2.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n hmacFast(value: string, key: string, algorithm: 'sha1' | 'sha256' | 'sha512'): Promise {\n const hmac = (forge as any).hmac.create();\n hmac.start(algorithm, key);\n hmac.update(value);\n const bytes = hmac.digest().getBytes();\n return Promise.resolve(bytes);\n }\n\n async compareFast(a: string, b: string): Promise {\n const rand = await this.randomBytes(32);\n const bytes = new Uint32Array(rand);\n const buffer = forge.util.createBuffer();\n for (let i = 0; i < bytes.length; i++) {\n buffer.putInt32(bytes[i]);\n }\n const macKey = buffer.getBytes();\n\n const hmac = (forge as any).hmac.create();\n hmac.start('sha256', macKey);\n hmac.update(a);\n const mac1 = hmac.digest().getBytes();\n\n hmac.start(null, null);\n hmac.update(b);\n const mac2 = hmac.digest().getBytes();\n\n const equals = mac1 === mac2;\n return equals;\n }\n\n async aesEncrypt(data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer): Promise {\n const impKey = await this.subtle.importKey('raw', key, { name: 'AES-CBC' } as any, false, ['encrypt']);\n return await this.subtle.encrypt({ name: 'AES-CBC', iv: iv }, impKey, data);\n }\n\n aesDecryptFastParameters(data: string, iv: string, mac: string, key: SymmetricCryptoKey):\n DecryptParameters {\n const p = new DecryptParameters();\n if (key.meta != null) {\n p.encKey = key.meta.encKeyByteString;\n p.macKey = key.meta.macKeyByteString;\n }\n\n if (p.encKey == null) {\n p.encKey = forge.util.decode64(key.encKeyB64);\n }\n p.data = forge.util.decode64(data);\n p.iv = forge.util.decode64(iv);\n p.macData = p.iv + p.data;\n if (p.macKey == null && key.macKeyB64 != null) {\n p.macKey = forge.util.decode64(key.macKeyB64);\n }\n if (mac != null) {\n p.mac = forge.util.decode64(mac);\n }\n\n // cache byte string keys for later\n if (key.meta == null) {\n key.meta = {};\n }\n if (key.meta.encKeyByteString == null) {\n key.meta.encKeyByteString = p.encKey;\n }\n if (p.macKey != null && key.meta.macKeyByteString == null) {\n key.meta.macKeyByteString = p.macKey;\n }\n\n return p;\n }\n\n aesDecryptFast(parameters: DecryptParameters): Promise {\n const dataBuffer = (forge as any).util.createBuffer(parameters.data);\n const decipher = (forge as any).cipher.createDecipher('AES-CBC', parameters.encKey);\n decipher.start({ iv: parameters.iv });\n decipher.update(dataBuffer);\n decipher.finish();\n const val = decipher.output.toString('utf8');\n return Promise.resolve(val);\n }\n\n async aesDecrypt(data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer): Promise {\n const impKey = await this.subtle.importKey('raw', key, { name: 'AES-CBC' } as any, false, ['decrypt']);\n return await this.subtle.decrypt({ name: 'AES-CBC', iv: iv }, impKey, data);\n }\n\n async rsaEncrypt(data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: 'sha1' | 'sha256'): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: 'RSA-OAEP',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey('spki', publicKey, rsaParams, false, ['encrypt']);\n return await this.subtle.encrypt(rsaParams, impKey, data);\n }\n\n async rsaDecrypt(data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: 'sha1' | 'sha256'): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: 'RSA-OAEP',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey('pkcs8', privateKey, rsaParams, false, ['decrypt']);\n return await this.subtle.decrypt(rsaParams, impKey, data);\n }\n\n async rsaExtractPublicKey(privateKey: ArrayBuffer): Promise {\n const rsaParams = {\n name: 'RSA-OAEP',\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm('sha1') },\n };\n const impPrivateKey = await this.subtle.importKey('pkcs8', privateKey, rsaParams, true, ['decrypt']);\n const jwkPrivateKey = await this.subtle.exportKey('jwk', impPrivateKey);\n const jwkPublicKeyParams = {\n kty: 'RSA',\n e: jwkPrivateKey.e,\n n: jwkPrivateKey.n,\n alg: 'RSA-OAEP',\n ext: true,\n };\n const impPublicKey = await this.subtle.importKey('jwk', jwkPublicKeyParams, rsaParams, true, ['encrypt']);\n return await this.subtle.exportKey('spki', impPublicKey);\n }\n\n async rsaGenerateKeyPair(length: 1024 | 2048 | 4096): Promise<[ArrayBuffer, ArrayBuffer]> {\n const rsaParams = {\n name: 'RSA-OAEP',\n modulusLength: length,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]), // 65537\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm('sha1') },\n };\n const keyPair = await this.subtle.generateKey(rsaParams, true, ['encrypt', 'decrypt']);\n const publicKey = await this.subtle.exportKey('spki', keyPair.publicKey);\n const privateKey = await this.subtle.exportKey('pkcs8', keyPair.privateKey);\n return [publicKey, privateKey];\n }\n\n randomBytes(length: number): Promise {\n const arr = new Uint8Array(length);\n this.crypto.getRandomValues(arr);\n return Promise.resolve(arr.buffer);\n }\n\n private toBuf(value: string | ArrayBuffer): ArrayBuffer {\n let buf: ArrayBuffer;\n if (typeof (value) === 'string') {\n buf = Utils.fromUtf8ToArray(value).buffer;\n } else {\n buf = value;\n }\n return buf;\n }\n\n private toByteString(value: string | ArrayBuffer): string {\n let bytes: string;\n if (typeof (value) === 'string') {\n bytes = forge.util.encodeUtf8(value);\n } else {\n bytes = Utils.fromBufferToByteString(value);\n }\n return bytes;\n }\n\n private toWebCryptoAlgorithm(algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5'): string {\n if (algorithm === 'md5') {\n throw new Error('MD5 is not supported in WebCrypto.');\n }\n return algorithm === 'sha1' ? 'SHA-1' : algorithm === 'sha256' ? 'SHA-256' : 'SHA-512';\n }\n}\n","export class DecryptParameters {\n encKey: T;\n data: T;\n iv: T;\n macKey: T;\n mac: T;\n macData: T;\n}\n","import { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\nimport { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';\nimport { SendFileUploadDataResponse } from '../models/response/sendFileUploadDataResponse';\n\nexport abstract class FileUploadService {\n uploadSendFile: (uploadData: SendFileUploadDataResponse, fileName: EncString,\n encryptedFileData: EncArrayBuffer) => Promise;\n uploadCipherAttachment: (admin: boolean, uploadData: AttachmentUploadDataResponse, fileName: string,\n encryptedFileData: EncArrayBuffer) => Promise;\n}\n","import * as jq from 'jquery';\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\n\nimport {\n BodyOutputType,\n Toast,\n ToasterConfig,\n ToasterService,\n} from 'angular2-toaster';\n\nimport {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n NavigationEnd,\n Router,\n} from '@angular/router';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { NotificationsService } from 'jslib/abstractions/notifications.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { SettingsService } from 'jslib/abstractions/settings.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { RouterService } from './services/router.service';\n\nconst BroadcasterSubscriptionId = 'AppComponent';\nconst IdleTimeout = 60000 * 10; // 10 minutes\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n})\nexport class AppComponent implements OnDestroy, OnInit {\n toasterConfig: ToasterConfig = new ToasterConfig({\n showCloseButton: true,\n mouseoverTimerStop: true,\n animation: 'flyRight',\n limit: 5,\n });\n\n private lastActivity: number = null;\n private idleTimer: number = null;\n private isIdle = false;\n\n constructor(\n private broadcasterService: BroadcasterService, private userService: UserService,\n private tokenService: TokenService, private folderService: FolderService,\n private settingsService: SettingsService, private syncService: SyncService,\n private passwordGenerationService: PasswordGenerationService, private cipherService: CipherService,\n private authService: AuthService, private router: Router,\n private toasterService: ToasterService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private ngZone: NgZone,\n private vaultTimeoutService: VaultTimeoutService, private storageService: StorageService,\n private cryptoService: CryptoService, private collectionService: CollectionService,\n private sanitizer: DomSanitizer, private searchService: SearchService,\n private notificationsService: NotificationsService, private routerService: RouterService,\n private stateService: StateService, private eventService: EventService,\n private policyService: PolicyService) { }\n\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n window.onmousemove = () => this.recordActivity();\n window.onmousedown = () => this.recordActivity();\n window.ontouchstart = () => this.recordActivity();\n window.onclick = () => this.recordActivity();\n window.onscroll = () => this.recordActivity();\n window.onkeypress = () => this.recordActivity();\n });\n\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'loggedIn':\n case 'loggedOut':\n case 'unlocked':\n this.notificationsService.updateConnection(false);\n break;\n case 'authBlocked':\n this.router.navigate(['/']);\n break;\n case 'logout':\n this.logOut(!!message.expired);\n break;\n case 'lockVault':\n await this.vaultTimeoutService.lock();\n break;\n case 'locked':\n this.notificationsService.updateConnection(false);\n this.router.navigate(['lock']);\n break;\n case 'lockedUrl':\n window.setTimeout(() => this.routerService.setPreviousUrl(message.url), 500);\n break;\n case 'syncStarted':\n break;\n case 'syncCompleted':\n break;\n case 'upgradeOrganization':\n const upgradeConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('upgradeOrganizationDesc'), this.i18nService.t('upgradeOrganization'),\n this.i18nService.t('upgradeOrganization'), this.i18nService.t('cancel'));\n if (upgradeConfirmed) {\n this.router.navigate(['organizations', message.organizationId, 'settings', 'billing']);\n }\n break;\n case 'premiumRequired':\n const premiumConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (premiumConfirmed) {\n this.router.navigate(['settings/premium']);\n }\n break;\n case 'emailVerificationRequired':\n const emailVerificationConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('emailVerificationRequiredDesc'),\n this.i18nService.t('emailVerificationRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (emailVerificationConfirmed) {\n this.platformUtilsService.launchUri('https://bitwarden.com/help/article/create-bitwarden-account/');\n }\n break;\n case 'showToast':\n this.showToast(message);\n break;\n case 'setFullWidth':\n this.setFullWidth();\n break;\n default:\n break;\n }\n });\n });\n\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n const modals = Array.from(document.querySelectorAll('.modal'));\n for (const modal of modals) {\n (jq(modal) as any).modal('hide');\n }\n\n if (document.querySelector('.swal-modal') != null) {\n Swal.close(undefined);\n }\n }\n });\n\n this.setFullWidth();\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n private async logOut(expired: boolean) {\n await this.eventService.uploadEvents();\n const userId = await this.userService.getUserId();\n\n await Promise.all([\n this.eventService.clearEvents(),\n this.syncService.setLastSync(new Date(0)),\n this.tokenService.clearToken(),\n this.cryptoService.clearKeys(),\n this.userService.clear(),\n this.settingsService.clear(userId),\n this.cipherService.clear(userId),\n this.folderService.clear(userId),\n this.collectionService.clear(userId),\n this.policyService.clear(userId),\n this.passwordGenerationService.clear(),\n this.stateService.purge(),\n ]);\n\n this.searchService.clearIndex();\n this.authService.logOut(async () => {\n if (expired) {\n this.toasterService.popAsync('warning', this.i18nService.t('loggedOut'),\n this.i18nService.t('loginExpired'));\n }\n\n Swal.close();\n this.router.navigate(['/']);\n });\n }\n\n private async recordActivity() {\n const now = (new Date()).getTime();\n if (this.lastActivity != null && now - this.lastActivity < 250) {\n return;\n }\n\n this.lastActivity = now;\n this.storageService.save(ConstantsService.lastActiveKey, now);\n\n // Idle states\n if (this.isIdle) {\n this.isIdle = false;\n this.idleStateChanged();\n }\n if (this.idleTimer != null) {\n window.clearTimeout(this.idleTimer);\n this.idleTimer = null;\n }\n this.idleTimer = window.setTimeout(() => {\n if (!this.isIdle) {\n this.isIdle = true;\n this.idleStateChanged();\n }\n }, IdleTimeout);\n }\n\n private showToast(msg: any) {\n const toast: Toast = {\n type: msg.type,\n title: msg.title,\n };\n if (typeof (msg.text) === 'string') {\n toast.body = msg.text;\n } else if (msg.text.length === 1) {\n toast.body = msg.text[0];\n } else {\n let message = '';\n msg.text.forEach((t: string) =>\n message += ('

' + this.sanitizer.sanitize(SecurityContext.HTML, t) + '

'));\n toast.body = message;\n toast.bodyOutputType = BodyOutputType.TrustedHtml;\n }\n if (msg.options != null) {\n if (msg.options.trustedHtml === true) {\n toast.bodyOutputType = BodyOutputType.TrustedHtml;\n }\n if (msg.options.timeout != null && msg.options.timeout > 0) {\n toast.timeout = msg.options.timeout;\n }\n }\n this.toasterService.popAsync(toast);\n }\n\n private idleStateChanged() {\n if (this.isIdle) {\n this.notificationsService.disconnectFromInactivity();\n } else {\n this.notificationsService.reconnectFromActivity();\n }\n }\n\n private async setFullWidth() {\n const enableFullWidth = await this.storageService.get('enableFullWidth');\n if (enableFullWidth) {\n document.body.classList.add('full-width');\n } else {\n document.body.classList.remove('full-width');\n }\n }\n}\n","\n\n","import {\n Directive,\n ElementRef,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appBlurClick]',\n})\nexport class BlurClickDirective {\n constructor(private el: ElementRef) {\n }\n\n @HostListener('click') onClick() {\n this.el.nativeElement.blur();\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n OnInit,\n} from '@angular/core';\n\n@Directive({\n selector: '[appBoxRow]',\n})\nexport class BoxRowDirective implements OnInit {\n el: HTMLElement = null;\n formEls: Element[];\n\n constructor(private elRef: ElementRef) {\n this.el = elRef.nativeElement;\n }\n\n ngOnInit(): void {\n this.formEls = Array.from(this.el.querySelectorAll('input:not([type=\"hidden\"]), select, textarea'));\n this.formEls.forEach(formEl => {\n formEl.addEventListener('focus', (event: Event) => {\n this.el.classList.add('active');\n }, false);\n\n formEl.addEventListener('blur', (event: Event) => {\n this.el.classList.remove('active');\n }, false);\n });\n }\n\n @HostListener('click', ['$event']) onClick(event: Event) {\n const target = event.target as HTMLElement;\n if (target !== this.el && !target.classList.contains('progress') &&\n !target.classList.contains('progress-bar')) {\n return;\n }\n\n if (this.formEls.length > 0) {\n const formEl = (this.formEls[0] as HTMLElement);\n if (formEl.tagName.toLowerCase() === 'input') {\n const inputEl = (formEl as HTMLInputElement);\n if (inputEl.type != null && inputEl.type.toLowerCase() === 'checkbox') {\n inputEl.click();\n return;\n }\n }\n formEl.focus();\n }\n }\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\nimport { CipherView } from '../../models/view/cipherView';\n\n@Pipe({\n name: 'searchCiphers',\n})\nexport class SearchCiphersPipe implements PipeTransform {\n transform(ciphers: CipherView[], searchText: string, deleted: boolean = false): CipherView[] {\n if (ciphers == null || ciphers.length === 0) {\n return [];\n }\n\n if (searchText == null || searchText.length < 2) {\n return ciphers.filter(c => {\n return deleted !== c.isDeleted;\n });\n }\n\n searchText = searchText.trim().toLowerCase();\n return ciphers.filter(c => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (searchText.length >= 8 && c.id.startsWith(searchText)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n\n return false;\n });\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/main.d8139e017ad9a069b29d.css b/app/main.d8139e017ad9a069b29d.css deleted file mode 100644 index ea4474e0..00000000 --- a/app/main.d8139e017ad9a069b29d.css +++ /dev/null @@ -1,11460 +0,0 @@ -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 300; - src: url(../fonts/Open_Sans-italic-300.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 400; - src: url(../fonts/Open_Sans-italic-400.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 600; - src: url(../fonts/Open_Sans-italic-600.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 700; - src: url(../fonts/Open_Sans-italic-700.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 800; - src: url(../fonts/Open_Sans-italic-800.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 300; - src: url(../fonts/Open_Sans-normal-300.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - src: url(../fonts/Open_Sans-normal-400.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 600; - src: url(../fonts/Open_Sans-normal-600.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 700; - src: url(../fonts/Open_Sans-normal-700.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 800; - src: url(../fonts/Open_Sans-normal-800.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - - -@charset "UTF-8"; -:root { - --blue: #007bff; - --indigo: #6610f2; - --purple: #6f42c1; - --pink: #e83e8c; - --red: #dc3545; - --orange: #fd7e14; - --yellow: #ffc107; - --green: #28a745; - --teal: #20c997; - --cyan: #17a2b8; - --white: #fff; - --gray: #6c757d; - --gray-dark: #343a40; - --primary: #175DDC; - --secondary: #ced4da; - --success: #00a65a; - --info: #555555; - --warning: #bf7e16; - --danger: #dd4b39; - --light: #f8f9fa; - --dark: #343a40; - --primary-accent: #1252A3; - --secondary-alt: #1A3B66; - --breakpoint-xs: 0; - --breakpoint-sm: 1px; - --breakpoint-md: 2px; - --breakpoint-lg: 3px; - --breakpoint-xl: 4px; - --font-family-sans-serif: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } - -*, -*::before, -*::after { - box-sizing: border-box; } - -html { - font-family: sans-serif; - line-height: 1.15; - -webkit-text-size-adjust: 100%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - -article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { - display: block; } - -body { - margin: 0; - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #333333; - text-align: left; - background-color: #ffffff; } - -[tabindex="-1"]:focus { - outline: 0 !important; } - -hr { - box-sizing: content-box; - height: 0; - overflow: visible; } - -h1, h2, h3, h4, h5, h6 { - margin-top: 0; - margin-bottom: 0.5rem; } - -p { - margin-top: 0; - margin-bottom: 1rem; } - -abbr[title], -abbr[data-original-title] { - text-decoration: underline; - text-decoration: underline dotted; - cursor: help; - border-bottom: 0; - text-decoration-skip-ink: none; } - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; } - -ol, -ul, -dl { - margin-top: 0; - margin-bottom: 1rem; } - -ol ol, -ul ul, -ol ul, -ul ol { - margin-bottom: 0; } - -dt { - font-weight: 700; } - -dd { - margin-bottom: .5rem; - margin-left: 0; } - -blockquote { - margin: 0 0 1rem; } - -b, -strong { - font-weight: bolder; } - -small { - font-size: 80%; } - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; } - -sub { - bottom: -.25em; } - -sup { - top: -.5em; } - -a { - color: #175DDC; - text-decoration: none; - background-color: transparent; } - a:hover { - color: #104097; - text-decoration: underline; } - -a:not([href]):not([tabindex]) { - color: inherit; - text-decoration: none; } - a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { - color: inherit; - text-decoration: none; } - a:not([href]):not([tabindex]):focus { - outline: 0; } - -pre, -code, -kbd, -samp { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - font-size: 1em; } - -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; } - -figure { - margin: 0 0 1rem; } - -img { - vertical-align: middle; - border-style: none; } - -svg { - overflow: hidden; - vertical-align: middle; } - -table { - border-collapse: collapse; } - -caption { - padding-top: 0.75rem; - padding-bottom: 0.75rem; - color: #6c757d; - text-align: left; - caption-side: bottom; } - -th { - text-align: inherit; } - -label { - display: inline-block; - margin-bottom: 0.5rem; } - -button { - border-radius: 0; } - -button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; } - -input, -button, -select, -optgroup, -textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; } - -button, -input { - overflow: visible; } - -button, -select { - text-transform: none; } - -select { - word-wrap: normal; } - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; } - -button:not(:disabled), -[type="button"]:not(:disabled), -[type="reset"]:not(:disabled), -[type="submit"]:not(:disabled) { - cursor: pointer; } - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - padding: 0; - border-style: none; } - -input[type="radio"], -input[type="checkbox"] { - box-sizing: border-box; - padding: 0; } - -input[type="date"], -input[type="time"], -input[type="datetime-local"], -input[type="month"] { - -webkit-appearance: listbox; } - -textarea { - overflow: auto; - resize: vertical; } - -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; } - -legend { - display: block; - width: 100%; - max-width: 100%; - padding: 0; - margin-bottom: .5rem; - font-size: 1.5rem; - line-height: inherit; - color: inherit; - white-space: normal; } - -progress { - vertical-align: baseline; } - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; } - -[type="search"] { - outline-offset: -2px; - -webkit-appearance: none; } - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -::-webkit-file-upload-button { - font: inherit; - -webkit-appearance: button; } - -output { - display: inline-block; } - -summary { - display: list-item; - cursor: pointer; } - -template { - display: none; } - -[hidden] { - display: none !important; } - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 { - margin-bottom: 0.5rem; - font-weight: 500; - line-height: 1.2; } - -h1, .h1 { - font-size: 1.7rem; } - -h2, .h2 { - font-size: 1.3rem; } - -h3, .h3 { - font-size: 1rem; } - -h4, .h4 { - font-size: 1rem; } - -h5, .h5 { - font-size: 1rem; } - -h6, .h6 { - font-size: 1rem; } - -.lead { - font-size: 1.25rem; - font-weight: normal; } - -.display-1 { - font-size: 6rem; - font-weight: 300; - line-height: 1.2; } - -.display-2 { - font-size: 5.5rem; - font-weight: 300; - line-height: 1.2; } - -.display-3 { - font-size: 4.5rem; - font-weight: 300; - line-height: 1.2; } - -.display-4 { - font-size: 3.5rem; - font-weight: 300; - line-height: 1.2; } - -hr { - margin-top: 1rem; - margin-bottom: 1rem; - border: 0; - border-top: 1px solid rgba(0, 0, 0, 0.1); } - -small, -.small { - font-size: 90%; - font-weight: 400; } - -mark, -.mark { - padding: 0.2em; - background-color: #fcf8e3; } - -.list-unstyled { - padding-left: 0; - list-style: none; } - -.list-inline { - padding-left: 0; - list-style: none; } - -.list-inline-item { - display: inline-block; } - .list-inline-item:not(:last-child) { - margin-right: 0.5rem; } - -.initialism { - font-size: 90%; - text-transform: uppercase; } - -.blockquote { - margin-bottom: 1rem; - font-size: 1.25rem; } - -.blockquote-footer { - display: block; - font-size: 90%; - color: #6c757d; } - .blockquote-footer::before { - content: "\2014\A0"; } - -.img-fluid, .table.table-list td.table-list-icon img { - max-width: 100%; - height: auto; } - -.img-thumbnail { - padding: 0.25rem; - background-color: #ffffff; - border: 1px solid #dee2e6; - border-radius: 0.25rem; - max-width: 100%; - height: auto; } - -.figure { - display: inline-block; } - -.figure-img { - margin-bottom: 0.5rem; - line-height: 1; } - -.figure-caption { - font-size: 90%; - color: #6c757d; } - -code { - font-size: 100%; - color: #e83e8c; - word-break: break-word; } - a > code { - color: inherit; } - -kbd { - padding: 0.2rem 0.4rem; - font-size: 100%; - color: #fff; - background-color: #212529; - border-radius: 0.2rem; } - kbd kbd { - padding: 0; - font-size: 100%; - font-weight: 700; } - -pre { - display: block; - font-size: 100%; - color: #212529; } - pre code { - font-size: inherit; - color: inherit; - word-break: normal; } - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; } - -.container { - width: 100%; - padding-right: 10px; - padding-left: 10px; - margin-right: auto; - margin-left: auto; } - @media (min-width: 1px) { - .container { - max-width: 540px; } } - @media (min-width: 2px) { - .container { - max-width: 720px; } } - @media (min-width: 3px) { - .container { - max-width: 960px; } } - @media (min-width: 4px) { - .container { - max-width: 1140px; } } - -.container-fluid { - width: 100%; - padding-right: 10px; - padding-left: 10px; - margin-right: auto; - margin-left: auto; } - -.row { - display: flex; - flex-wrap: wrap; - margin-right: -10px; - margin-left: -10px; } - -.no-gutters { - margin-right: 0; - margin-left: 0; } - .no-gutters > .col, - .no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; } - -.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, -.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, -.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, -.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, -.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, -.col-xl-auto { - position: relative; - width: 100%; - padding-right: 10px; - padding-left: 10px; } - -.col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - -.col-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - -.col-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - -.col-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - -.col-3 { - flex: 0 0 25%; - max-width: 25%; } - -.col-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - -.col-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - -.col-6 { - flex: 0 0 50%; - max-width: 50%; } - -.col-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - -.col-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - -.col-9 { - flex: 0 0 75%; - max-width: 75%; } - -.col-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - -.col-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - -.col-12 { - flex: 0 0 100%; - max-width: 100%; } - -.order-first { - order: -1; } - -.order-last { - order: 13; } - -.order-0 { - order: 0; } - -.order-1 { - order: 1; } - -.order-2 { - order: 2; } - -.order-3 { - order: 3; } - -.order-4 { - order: 4; } - -.order-5 { - order: 5; } - -.order-6 { - order: 6; } - -.order-7 { - order: 7; } - -.order-8 { - order: 8; } - -.order-9 { - order: 9; } - -.order-10 { - order: 10; } - -.order-11 { - order: 11; } - -.order-12 { - order: 12; } - -.offset-1 { - margin-left: 8.33333%; } - -.offset-2 { - margin-left: 16.66667%; } - -.offset-3 { - margin-left: 25%; } - -.offset-4 { - margin-left: 33.33333%; } - -.offset-5 { - margin-left: 41.66667%; } - -.offset-6 { - margin-left: 50%; } - -.offset-7 { - margin-left: 58.33333%; } - -.offset-8 { - margin-left: 66.66667%; } - -.offset-9 { - margin-left: 75%; } - -.offset-10 { - margin-left: 83.33333%; } - -.offset-11 { - margin-left: 91.66667%; } - -@media (min-width: 1px) { - .col-sm { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - .col-sm-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - .col-sm-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-sm-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-sm-3 { - flex: 0 0 25%; - max-width: 25%; } - .col-sm-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-sm-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-sm-6 { - flex: 0 0 50%; - max-width: 50%; } - .col-sm-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-sm-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-sm-9 { - flex: 0 0 75%; - max-width: 75%; } - .col-sm-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-sm-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-sm-12 { - flex: 0 0 100%; - max-width: 100%; } - .order-sm-first { - order: -1; } - .order-sm-last { - order: 13; } - .order-sm-0 { - order: 0; } - .order-sm-1 { - order: 1; } - .order-sm-2 { - order: 2; } - .order-sm-3 { - order: 3; } - .order-sm-4 { - order: 4; } - .order-sm-5 { - order: 5; } - .order-sm-6 { - order: 6; } - .order-sm-7 { - order: 7; } - .order-sm-8 { - order: 8; } - .order-sm-9 { - order: 9; } - .order-sm-10 { - order: 10; } - .order-sm-11 { - order: 11; } - .order-sm-12 { - order: 12; } - .offset-sm-0 { - margin-left: 0; } - .offset-sm-1 { - margin-left: 8.33333%; } - .offset-sm-2 { - margin-left: 16.66667%; } - .offset-sm-3 { - margin-left: 25%; } - .offset-sm-4 { - margin-left: 33.33333%; } - .offset-sm-5 { - margin-left: 41.66667%; } - .offset-sm-6 { - margin-left: 50%; } - .offset-sm-7 { - margin-left: 58.33333%; } - .offset-sm-8 { - margin-left: 66.66667%; } - .offset-sm-9 { - margin-left: 75%; } - .offset-sm-10 { - margin-left: 83.33333%; } - .offset-sm-11 { - margin-left: 91.66667%; } } - -@media (min-width: 2px) { - .col-md { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - .col-md-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - .col-md-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-md-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-md-3 { - flex: 0 0 25%; - max-width: 25%; } - .col-md-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-md-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-md-6 { - flex: 0 0 50%; - max-width: 50%; } - .col-md-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-md-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-md-9 { - flex: 0 0 75%; - max-width: 75%; } - .col-md-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-md-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-md-12 { - flex: 0 0 100%; - max-width: 100%; } - .order-md-first { - order: -1; } - .order-md-last { - order: 13; } - .order-md-0 { - order: 0; } - .order-md-1 { - order: 1; } - .order-md-2 { - order: 2; } - .order-md-3 { - order: 3; } - .order-md-4 { - order: 4; } - .order-md-5 { - order: 5; } - .order-md-6 { - order: 6; } - .order-md-7 { - order: 7; } - .order-md-8 { - order: 8; } - .order-md-9 { - order: 9; } - .order-md-10 { - order: 10; } - .order-md-11 { - order: 11; } - .order-md-12 { - order: 12; } - .offset-md-0 { - margin-left: 0; } - .offset-md-1 { - margin-left: 8.33333%; } - .offset-md-2 { - margin-left: 16.66667%; } - .offset-md-3 { - margin-left: 25%; } - .offset-md-4 { - margin-left: 33.33333%; } - .offset-md-5 { - margin-left: 41.66667%; } - .offset-md-6 { - margin-left: 50%; } - .offset-md-7 { - margin-left: 58.33333%; } - .offset-md-8 { - margin-left: 66.66667%; } - .offset-md-9 { - margin-left: 75%; } - .offset-md-10 { - margin-left: 83.33333%; } - .offset-md-11 { - margin-left: 91.66667%; } } - -@media (min-width: 3px) { - .col-lg { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - .col-lg-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - .col-lg-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-lg-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-lg-3 { - flex: 0 0 25%; - max-width: 25%; } - .col-lg-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-lg-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-lg-6 { - flex: 0 0 50%; - max-width: 50%; } - .col-lg-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-lg-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-lg-9 { - flex: 0 0 75%; - max-width: 75%; } - .col-lg-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-lg-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-lg-12 { - flex: 0 0 100%; - max-width: 100%; } - .order-lg-first { - order: -1; } - .order-lg-last { - order: 13; } - .order-lg-0 { - order: 0; } - .order-lg-1 { - order: 1; } - .order-lg-2 { - order: 2; } - .order-lg-3 { - order: 3; } - .order-lg-4 { - order: 4; } - .order-lg-5 { - order: 5; } - .order-lg-6 { - order: 6; } - .order-lg-7 { - order: 7; } - .order-lg-8 { - order: 8; } - .order-lg-9 { - order: 9; } - .order-lg-10 { - order: 10; } - .order-lg-11 { - order: 11; } - .order-lg-12 { - order: 12; } - .offset-lg-0 { - margin-left: 0; } - .offset-lg-1 { - margin-left: 8.33333%; } - .offset-lg-2 { - margin-left: 16.66667%; } - .offset-lg-3 { - margin-left: 25%; } - .offset-lg-4 { - margin-left: 33.33333%; } - .offset-lg-5 { - margin-left: 41.66667%; } - .offset-lg-6 { - margin-left: 50%; } - .offset-lg-7 { - margin-left: 58.33333%; } - .offset-lg-8 { - margin-left: 66.66667%; } - .offset-lg-9 { - margin-left: 75%; } - .offset-lg-10 { - margin-left: 83.33333%; } - .offset-lg-11 { - margin-left: 91.66667%; } } - -@media (min-width: 4px) { - .col-xl { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - .col-xl-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - .col-xl-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-xl-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-xl-3 { - flex: 0 0 25%; - max-width: 25%; } - .col-xl-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-xl-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-xl-6 { - flex: 0 0 50%; - max-width: 50%; } - .col-xl-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-xl-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-xl-9 { - flex: 0 0 75%; - max-width: 75%; } - .col-xl-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-xl-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-xl-12 { - flex: 0 0 100%; - max-width: 100%; } - .order-xl-first { - order: -1; } - .order-xl-last { - order: 13; } - .order-xl-0 { - order: 0; } - .order-xl-1 { - order: 1; } - .order-xl-2 { - order: 2; } - .order-xl-3 { - order: 3; } - .order-xl-4 { - order: 4; } - .order-xl-5 { - order: 5; } - .order-xl-6 { - order: 6; } - .order-xl-7 { - order: 7; } - .order-xl-8 { - order: 8; } - .order-xl-9 { - order: 9; } - .order-xl-10 { - order: 10; } - .order-xl-11 { - order: 11; } - .order-xl-12 { - order: 12; } - .offset-xl-0 { - margin-left: 0; } - .offset-xl-1 { - margin-left: 8.33333%; } - .offset-xl-2 { - margin-left: 16.66667%; } - .offset-xl-3 { - margin-left: 25%; } - .offset-xl-4 { - margin-left: 33.33333%; } - .offset-xl-5 { - margin-left: 41.66667%; } - .offset-xl-6 { - margin-left: 50%; } - .offset-xl-7 { - margin-left: 58.33333%; } - .offset-xl-8 { - margin-left: 66.66667%; } - .offset-xl-9 { - margin-left: 75%; } - .offset-xl-10 { - margin-left: 83.33333%; } - .offset-xl-11 { - margin-left: 91.66667%; } } - -.table { - width: 100%; - margin-bottom: 1rem; - color: #333333; } - .table th, - .table td { - padding: 0.75rem; - vertical-align: top; - border-top: 1px solid #dee2e6; } - .table thead th { - vertical-align: bottom; - border-bottom: 2px solid #dee2e6; } - .table tbody + tbody { - border-top: 2px solid #dee2e6; } - -.table-sm th, -.table-sm td { - padding: 0.3rem; } - -.table-bordered { - border: 1px solid #dee2e6; } - .table-bordered th, - .table-bordered td { - border: 1px solid #dee2e6; } - .table-bordered thead th, - .table-bordered thead td { - border-bottom-width: 2px; } - -.table-borderless th, -.table-borderless td, -.table-borderless thead th, -.table-borderless tbody + tbody { - border: 0; } - -.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(0, 0, 0, 0.02); } - -.table-hover tbody tr:hover { - color: #333333; - background-color: rgba(0, 0, 0, 0.03); } - -.table-primary, -.table-primary > th, -.table-primary > td { - background-color: #bed2f5; } - -.table-primary th, -.table-primary td, -.table-primary thead th, -.table-primary tbody + tbody { - border-color: #86abed; } - -.table-hover .table-primary:hover { - background-color: #a8c3f2; } - .table-hover .table-primary:hover > td, - .table-hover .table-primary:hover > th { - background-color: #a8c3f2; } - -.table-secondary, -.table-secondary > th, -.table-secondary > td { - background-color: #f1f3f5; } - -.table-secondary th, -.table-secondary td, -.table-secondary thead th, -.table-secondary tbody + tbody { - border-color: #e6e9ec; } - -.table-hover .table-secondary:hover { - background-color: #e2e6ea; } - .table-hover .table-secondary:hover > td, - .table-hover .table-secondary:hover > th { - background-color: #e2e6ea; } - -.table-success, -.table-success > th, -.table-success > td { - background-color: #b8e6d1; } - -.table-success th, -.table-success td, -.table-success thead th, -.table-success tbody + tbody { - border-color: #7ad1a9; } - -.table-hover .table-success:hover { - background-color: #a5dfc5; } - .table-hover .table-success:hover > td, - .table-hover .table-success:hover > th { - background-color: #a5dfc5; } - -.table-info, -.table-info > th, -.table-info > td { - background-color: #cfcfcf; } - -.table-info th, -.table-info td, -.table-info thead th, -.table-info tbody + tbody { - border-color: #a7a7a7; } - -.table-hover .table-info:hover { - background-color: #c2c2c2; } - .table-hover .table-info:hover > td, - .table-hover .table-info:hover > th { - background-color: #c2c2c2; } - -.table-warning, -.table-warning > th, -.table-warning > td { - background-color: #eddbbe; } - -.table-warning th, -.table-warning td, -.table-warning thead th, -.table-warning tbody + tbody { - border-color: #debc86; } - -.table-hover .table-warning:hover { - background-color: #e7d0aa; } - .table-hover .table-warning:hover > td, - .table-hover .table-warning:hover > th { - background-color: #e7d0aa; } - -.table-danger, -.table-danger > th, -.table-danger > td { - background-color: #f5cdc8; } - -.table-danger th, -.table-danger td, -.table-danger thead th, -.table-danger tbody + tbody { - border-color: #eda198; } - -.table-hover .table-danger:hover { - background-color: #f1b9b2; } - .table-hover .table-danger:hover > td, - .table-hover .table-danger:hover > th { - background-color: #f1b9b2; } - -.table-light, -.table-light > th, -.table-light > td { - background-color: #fdfdfe; } - -.table-light th, -.table-light td, -.table-light thead th, -.table-light tbody + tbody { - border-color: #fbfcfc; } - -.table-hover .table-light:hover { - background-color: #ececf6; } - .table-hover .table-light:hover > td, - .table-hover .table-light:hover > th { - background-color: #ececf6; } - -.table-dark, -.table-dark > th, -.table-dark > td { - background-color: #c6c8ca; } - -.table-dark th, -.table-dark td, -.table-dark thead th, -.table-dark tbody + tbody { - border-color: #95999c; } - -.table-hover .table-dark:hover { - background-color: #b9bbbe; } - .table-hover .table-dark:hover > td, - .table-hover .table-dark:hover > th { - background-color: #b9bbbe; } - -.table-primary-accent, -.table-primary-accent > th, -.table-primary-accent > td { - background-color: #bdcfe5; } - -.table-primary-accent th, -.table-primary-accent td, -.table-primary-accent thead th, -.table-primary-accent tbody + tbody { - border-color: #84a5cf; } - -.table-hover .table-primary-accent:hover { - background-color: #abc2de; } - .table-hover .table-primary-accent:hover > td, - .table-hover .table-primary-accent:hover > th { - background-color: #abc2de; } - -.table-secondary-alt, -.table-secondary-alt > th, -.table-secondary-alt > td { - background-color: #bfc8d4; } - -.table-secondary-alt th, -.table-secondary-alt td, -.table-secondary-alt thead th, -.table-secondary-alt tbody + tbody { - border-color: #8899af; } - -.table-hover .table-secondary-alt:hover { - background-color: #b0bbca; } - .table-hover .table-secondary-alt:hover > td, - .table-hover .table-secondary-alt:hover > th { - background-color: #b0bbca; } - -.table-active, -.table-active > th, -.table-active > td { - background-color: rgba(0, 0, 0, 0.03); } - -.table-hover .table-active:hover { - background-color: rgba(0, 0, 0, 0.03); } - .table-hover .table-active:hover > td, - .table-hover .table-active:hover > th { - background-color: rgba(0, 0, 0, 0.03); } - -.table .thead-dark th { - color: #fff; - background-color: #343a40; - border-color: #454d55; } - -.table .thead-light th { - color: #495057; - background-color: #e9ecef; - border-color: #dee2e6; } - -.table-dark { - color: #fff; - background-color: #343a40; } - .table-dark th, - .table-dark td, - .table-dark thead th { - border-color: #454d55; } - .table-dark.table-bordered { - border: 0; } - .table-dark.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(255, 255, 255, 0.05); } - .table-dark.table-hover tbody tr:hover { - color: #fff; - background-color: rgba(255, 255, 255, 0.075); } - -@media (max-width: 0.98px) { - .table-responsive-sm { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; } - .table-responsive-sm > .table-bordered { - border: 0; } } - -@media (max-width: 1.98px) { - .table-responsive-md { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; } - .table-responsive-md > .table-bordered { - border: 0; } } - -@media (max-width: 2.98px) { - .table-responsive-lg { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; } - .table-responsive-lg > .table-bordered { - border: 0; } } - -@media (max-width: 3.98px) { - .table-responsive-xl { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; } - .table-responsive-xl > .table-bordered { - border: 0; } } - -.table-responsive { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; } - .table-responsive > .table-bordered { - border: 0; } - -.form-control { - display: block; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fbfbfb; - background-clip: padding-box; - border: 1px solid #ced4da; - border-radius: 0.25rem; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-control { - transition: none; } } - .form-control::-ms-expand { - background-color: transparent; - border: 0; } - .form-control:focus { - color: #495057; - background-color: #ffffff; - border-color: #81a9f2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .form-control::placeholder { - color: #b4b4b4; - opacity: 1; } - .form-control:disabled, .form-control[readonly] { - background-color: #e0e0e0; - opacity: 1; } - -select.form-control:focus::-ms-value { - color: #495057; - background-color: #fbfbfb; } - -.form-control-file, -.form-control-range { - display: block; - width: 100%; } - -.col-form-label { - padding-top: calc(0.375rem + 1px); - padding-bottom: calc(0.375rem + 1px); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5; } - -.col-form-label-lg { - padding-top: calc(0.5rem + 1px); - padding-bottom: calc(0.5rem + 1px); - font-size: 1.15rem; - line-height: 1.5; } - -.col-form-label-sm { - padding-top: calc(0.25rem + 1px); - padding-bottom: calc(0.25rem + 1px); - font-size: 0.875rem; - line-height: 1.5; } - -.form-control-plaintext { - display: block; - width: 100%; - padding-top: 0.375rem; - padding-bottom: 0.375rem; - margin-bottom: 0; - line-height: 1.5; - color: #333333; - background-color: transparent; - border: solid transparent; - border-width: 1px 0; } - .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { - padding-right: 0; - padding-left: 0; } - -.form-control-sm { - height: calc(1.5em + 0.5rem + 2px); - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; } - -.form-control-lg { - height: calc(1.5em + 1rem + 2px); - padding: 0.5rem 1rem; - font-size: 1.15rem; - line-height: 1.5; - border-radius: 0.3rem; } - -select.form-control[size], select.form-control[multiple] { - height: auto; } - -textarea.form-control { - height: auto; } - -.form-group { - margin-bottom: 1rem; } - -.form-text { - display: block; - margin-top: 0.25rem; } - -.form-row { - display: flex; - flex-wrap: wrap; - margin-right: -5px; - margin-left: -5px; } - .form-row > .col, - .form-row > [class*="col-"] { - padding-right: 5px; - padding-left: 5px; } - -.form-check { - position: relative; - display: block; - padding-left: 1.25rem; } - -.form-check-input { - position: absolute; - margin-top: 0.3rem; - margin-left: -1.25rem; } - .form-check-input:disabled ~ .form-check-label { - color: #6c757d; } - -.form-check-label { - margin-bottom: 0; } - -.form-check-inline { - display: inline-flex; - align-items: center; - padding-left: 0; - margin-right: 0.75rem; } - .form-check-inline .form-check-input { - position: static; - margin-top: 0; - margin-right: 0.3125rem; - margin-left: 0; } - -.valid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 90%; - color: #00a65a; } - -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - line-height: 1.5; - color: #fff; - background-color: rgba(0, 166, 90, 0.9); - border-radius: 0.25rem; } - -.was-validated .form-control:valid, .form-control.is-valid { - border-color: #00a65a; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: center right calc(0.375em + 0.1875rem); - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-control:valid:focus, .form-control.is-valid:focus { - border-color: #00a65a; - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); } - .was-validated .form-control:valid ~ .valid-feedback, - .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback, - .form-control.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated textarea.form-control:valid, textarea.form-control.is-valid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } - -.was-validated .custom-select:valid, .custom-select.is-valid { - border-color: #00a65a; - padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fbfbfb no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { - border-color: #00a65a; - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); } - .was-validated .custom-select:valid ~ .valid-feedback, - .was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback, - .custom-select.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .form-control-file:valid ~ .valid-feedback, -.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback, -.form-control-file.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { - color: #00a65a; } - -.was-validated .form-check-input:valid ~ .valid-feedback, -.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, -.form-check-input.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { - color: #00a65a; } - .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { - border-color: #00a65a; } - -.was-validated .custom-control-input:valid ~ .valid-feedback, -.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback, -.custom-control-input.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { - border-color: #00d976; - background-color: #00d976; } - -.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); } - -.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { - border-color: #00a65a; } - -.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { - border-color: #00a65a; } - -.was-validated .custom-file-input:valid ~ .valid-feedback, -.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback, -.custom-file-input.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { - border-color: #00a65a; - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); } - -.invalid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 90%; - color: #dd4b39; } - -.invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - line-height: 1.5; - color: #fff; - background-color: rgba(221, 75, 57, 0.9); - border-radius: 0.25rem; } - -.was-validated .form-control:invalid, .form-control.is-invalid { - border-color: #dd4b39; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"); - background-repeat: no-repeat; - background-position: center right calc(0.375em + 0.1875rem); - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { - border-color: #dd4b39; - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - .was-validated .form-control:invalid ~ .invalid-feedback, - .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback, - .form-control.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } - -.was-validated .custom-select:invalid, .custom-select.is-invalid { - border-color: #dd4b39; - padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fbfbfb no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { - border-color: #dd4b39; - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - .was-validated .custom-select:invalid ~ .invalid-feedback, - .was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback, - .custom-select.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .form-control-file:invalid ~ .invalid-feedback, -.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback, -.form-control-file.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { - color: #dd4b39; } - -.was-validated .form-check-input:invalid ~ .invalid-feedback, -.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, -.form-check-input.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { - color: #dd4b39; } - .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { - border-color: #dd4b39; } - -.was-validated .custom-control-input:invalid ~ .invalid-feedback, -.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback, -.custom-control-input.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { - border-color: #e47365; - background-color: #e47365; } - -.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - -.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { - border-color: #dd4b39; } - -.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { - border-color: #dd4b39; } - -.was-validated .custom-file-input:invalid ~ .invalid-feedback, -.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback, -.custom-file-input.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { - border-color: #dd4b39; - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - -.form-inline { - display: flex; - flex-flow: row wrap; - align-items: center; } - .form-inline .form-check { - width: 100%; } - @media (min-width: 1px) { - .form-inline label { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 0; } - .form-inline .form-group { - display: flex; - flex: 0 0 auto; - flex-flow: row wrap; - align-items: center; - margin-bottom: 0; } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; } - .form-inline .form-control-plaintext { - display: inline-block; } - .form-inline .input-group, - .form-inline .custom-select { - width: auto; } - .form-inline .form-check { - display: flex; - align-items: center; - justify-content: center; - width: auto; - padding-left: 0; } - .form-inline .form-check-input { - position: relative; - flex-shrink: 0; - margin-top: 0; - margin-right: 0.25rem; - margin-left: 0; } - .form-inline .custom-control { - align-items: center; - justify-content: center; } - .form-inline .custom-control-label { - margin-bottom: 0; } } - -.btn, .swal2-popup .swal2-actions button { - display: inline-block; - font-weight: 600; - color: #333333; - text-align: center; - vertical-align: middle; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.375rem 0.75rem; - font-size: 1rem; - line-height: 1.5; - border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .btn, .swal2-popup .swal2-actions button { - transition: none; } } - .btn:hover, .swal2-popup .swal2-actions button:hover { - color: #333333; - text-decoration: none; } - .btn:focus, .swal2-popup .swal2-actions button:focus, .btn.focus, .swal2-popup .swal2-actions button.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .btn.disabled, .swal2-popup .swal2-actions button.disabled, .btn:disabled, .swal2-popup .swal2-actions button:disabled { - opacity: 0.65; } - -a.btn.disabled, -fieldset:disabled a.btn { - pointer-events: none; } - -.btn-primary, .swal2-popup .swal2-actions button.swal2-confirm { - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - .btn-primary:hover, .swal2-popup .swal2-actions button.swal2-confirm:hover { - color: #fff; - background-color: #134eb9; - border-color: #1249ae; } - .btn-primary:focus, .swal2-popup .swal2-actions button.swal2-confirm:focus, .btn-primary.focus, .swal2-popup .swal2-actions button.focus.swal2-confirm { - box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); } - .btn-primary.disabled, .swal2-popup .swal2-actions button.disabled.swal2-confirm, .btn-primary:disabled, .swal2-popup .swal2-actions button.swal2-confirm:disabled { - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - .btn-primary:not(:disabled):not(.disabled):active, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active, - .show > .btn-primary.dropdown-toggle, - .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-confirm { - color: #fff; - background-color: #1249ae; - border-color: #1145a2; } - .btn-primary:not(:disabled):not(.disabled):active:focus, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active:focus, - .show > .btn-primary.dropdown-toggle:focus, - .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-confirm:focus { - box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); } - -.btn-secondary { - color: #212529; - background-color: #ced4da; - border-color: #ced4da; } - .btn-secondary:hover { - color: #212529; - background-color: #b8c1ca; - border-color: #b1bbc4; } - .btn-secondary:focus, .btn-secondary.focus { - box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); } - .btn-secondary.disabled, .btn-secondary:disabled { - color: #212529; - background-color: #ced4da; - border-color: #ced4da; } - .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, - .show > .btn-secondary.dropdown-toggle { - color: #212529; - background-color: #b1bbc4; - border-color: #aab4bf; } - .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, - .show > .btn-secondary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); } - -.btn-success { - color: #fff; - background-color: #00a65a; - border-color: #00a65a; } - .btn-success:hover { - color: #fff; - background-color: #008045; - border-color: #00733e; } - .btn-success:focus, .btn-success.focus { - box-shadow: 0 0 0 0.2rem rgba(38, 179, 115, 0.5); } - .btn-success.disabled, .btn-success:disabled { - color: #fff; - background-color: #00a65a; - border-color: #00a65a; } - .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, - .show > .btn-success.dropdown-toggle { - color: #fff; - background-color: #00733e; - border-color: #006637; } - .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, - .show > .btn-success.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(38, 179, 115, 0.5); } - -.btn-info { - color: #fff; - background-color: #555555; - border-color: #555555; } - .btn-info:hover { - color: #fff; - background-color: #424242; - border-color: #3c3c3c; } - .btn-info:focus, .btn-info.focus { - box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); } - .btn-info.disabled, .btn-info:disabled { - color: #fff; - background-color: #555555; - border-color: #555555; } - .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, - .show > .btn-info.dropdown-toggle { - color: #fff; - background-color: #3c3c3c; - border-color: #353535; } - .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, - .show > .btn-info.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); } - -.btn-warning { - color: #fff; - background-color: #bf7e16; - border-color: #bf7e16; } - .btn-warning:hover { - color: #fff; - background-color: #9d6712; - border-color: #916011; } - .btn-warning:focus, .btn-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(201, 145, 57, 0.5); } - .btn-warning.disabled, .btn-warning:disabled { - color: #fff; - background-color: #bf7e16; - border-color: #bf7e16; } - .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, - .show > .btn-warning.dropdown-toggle { - color: #fff; - background-color: #916011; - border-color: #86580f; } - .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, - .show > .btn-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(201, 145, 57, 0.5); } - -.btn-danger { - color: #fff; - background-color: #dd4b39; - border-color: #dd4b39; } - .btn-danger:hover { - color: #fff; - background-color: #cd3623; - border-color: #c23321; } - .btn-danger:focus, .btn-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(226, 102, 87, 0.5); } - .btn-danger.disabled, .btn-danger:disabled { - color: #fff; - background-color: #dd4b39; - border-color: #dd4b39; } - .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, - .show > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #c23321; - border-color: #b7301f; } - .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, - .show > .btn-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(226, 102, 87, 0.5); } - -.btn-light { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; } - .btn-light:hover { - color: #212529; - background-color: #e2e6ea; - border-color: #dae0e5; } - .btn-light:focus, .btn-light.focus { - box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); } - .btn-light.disabled, .btn-light:disabled { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; } - .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, - .show > .btn-light.dropdown-toggle { - color: #212529; - background-color: #dae0e5; - border-color: #d3d9df; } - .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, - .show > .btn-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); } - -.btn-dark { - color: #fff; - background-color: #343a40; - border-color: #343a40; } - .btn-dark:hover { - color: #fff; - background-color: #23272b; - border-color: #1d2124; } - .btn-dark:focus, .btn-dark.focus { - box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); } - .btn-dark.disabled, .btn-dark:disabled { - color: #fff; - background-color: #343a40; - border-color: #343a40; } - .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, - .show > .btn-dark.dropdown-toggle { - color: #fff; - background-color: #1d2124; - border-color: #171a1d; } - .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, - .show > .btn-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); } - -.btn-primary-accent { - color: #fff; - background-color: #1252A3; - border-color: #1252A3; } - .btn-primary-accent:hover { - color: #fff; - background-color: #0e4181; - border-color: #0d3b75; } - .btn-primary-accent:focus, .btn-primary-accent.focus { - box-shadow: 0 0 0 0.2rem rgba(54, 108, 177, 0.5); } - .btn-primary-accent.disabled, .btn-primary-accent:disabled { - color: #fff; - background-color: #1252A3; - border-color: #1252A3; } - .btn-primary-accent:not(:disabled):not(.disabled):active, .btn-primary-accent:not(:disabled):not(.disabled).active, - .show > .btn-primary-accent.dropdown-toggle { - color: #fff; - background-color: #0d3b75; - border-color: #0c356a; } - .btn-primary-accent:not(:disabled):not(.disabled):active:focus, .btn-primary-accent:not(:disabled):not(.disabled).active:focus, - .show > .btn-primary-accent.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(54, 108, 177, 0.5); } - -.btn-secondary-alt { - color: #fff; - background-color: #1A3B66; - border-color: #1A3B66; } - .btn-secondary-alt:hover { - color: #fff; - background-color: #122948; - border-color: #10233d; } - .btn-secondary-alt:focus, .btn-secondary-alt.focus { - box-shadow: 0 0 0 0.2rem rgba(60, 88, 125, 0.5); } - .btn-secondary-alt.disabled, .btn-secondary-alt:disabled { - color: #fff; - background-color: #1A3B66; - border-color: #1A3B66; } - .btn-secondary-alt:not(:disabled):not(.disabled):active, .btn-secondary-alt:not(:disabled):not(.disabled).active, - .show > .btn-secondary-alt.dropdown-toggle { - color: #fff; - background-color: #10233d; - border-color: #0d1e33; } - .btn-secondary-alt:not(:disabled):not(.disabled):active:focus, .btn-secondary-alt:not(:disabled):not(.disabled).active:focus, - .show > .btn-secondary-alt.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(60, 88, 125, 0.5); } - -.btn-outline-primary { - color: #175DDC; - border-color: #175DDC; } - .btn-outline-primary:hover { - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - .btn-outline-primary:focus, .btn-outline-primary.focus { - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); } - .btn-outline-primary.disabled, .btn-outline-primary:disabled { - color: #175DDC; - background-color: transparent; } - .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, - .show > .btn-outline-primary.dropdown-toggle { - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); } - -.btn-outline-secondary, .swal2-popup .swal2-actions button.swal2-cancel { - color: #ced4da; - border-color: #ced4da; } - .btn-outline-secondary:hover, .swal2-popup .swal2-actions button.swal2-cancel:hover { - color: #212529; - background-color: #ced4da; - border-color: #ced4da; } - .btn-outline-secondary:focus, .swal2-popup .swal2-actions button.swal2-cancel:focus, .btn-outline-secondary.focus, .swal2-popup .swal2-actions button.focus.swal2-cancel { - box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); } - .btn-outline-secondary.disabled, .swal2-popup .swal2-actions button.disabled.swal2-cancel, .btn-outline-secondary:disabled, .swal2-popup .swal2-actions button.swal2-cancel:disabled { - color: #ced4da; - background-color: transparent; } - .btn-outline-secondary:not(:disabled):not(.disabled):active, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active, - .show > .btn-outline-secondary.dropdown-toggle, - .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-cancel { - color: #212529; - background-color: #ced4da; - border-color: #ced4da; } - .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-secondary.dropdown-toggle:focus, - .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-cancel:focus { - box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); } - -.btn-outline-success { - color: #00a65a; - border-color: #00a65a; } - .btn-outline-success:hover { - color: #fff; - background-color: #00a65a; - border-color: #00a65a; } - .btn-outline-success:focus, .btn-outline-success.focus { - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); } - .btn-outline-success.disabled, .btn-outline-success:disabled { - color: #00a65a; - background-color: transparent; } - .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, - .show > .btn-outline-success.dropdown-toggle { - color: #fff; - background-color: #00a65a; - border-color: #00a65a; } - .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-success.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); } - -.btn-outline-info { - color: #555555; - border-color: #555555; } - .btn-outline-info:hover { - color: #fff; - background-color: #555555; - border-color: #555555; } - .btn-outline-info:focus, .btn-outline-info.focus { - box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); } - .btn-outline-info.disabled, .btn-outline-info:disabled { - color: #555555; - background-color: transparent; } - .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, - .show > .btn-outline-info.dropdown-toggle { - color: #fff; - background-color: #555555; - border-color: #555555; } - .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-info.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); } - -.btn-outline-warning { - color: #bf7e16; - border-color: #bf7e16; } - .btn-outline-warning:hover { - color: #fff; - background-color: #bf7e16; - border-color: #bf7e16; } - .btn-outline-warning:focus, .btn-outline-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); } - .btn-outline-warning.disabled, .btn-outline-warning:disabled { - color: #bf7e16; - background-color: transparent; } - .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, - .show > .btn-outline-warning.dropdown-toggle { - color: #fff; - background-color: #bf7e16; - border-color: #bf7e16; } - .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); } - -.btn-outline-danger { - color: #dd4b39; - border-color: #dd4b39; } - .btn-outline-danger:hover { - color: #fff; - background-color: #dd4b39; - border-color: #dd4b39; } - .btn-outline-danger:focus, .btn-outline-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); } - .btn-outline-danger.disabled, .btn-outline-danger:disabled { - color: #dd4b39; - background-color: transparent; } - .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, - .show > .btn-outline-danger.dropdown-toggle { - color: #fff; - background-color: #dd4b39; - border-color: #dd4b39; } - .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); } - -.btn-outline-light { - color: #f8f9fa; - border-color: #f8f9fa; } - .btn-outline-light:hover { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; } - .btn-outline-light:focus, .btn-outline-light.focus { - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); } - .btn-outline-light.disabled, .btn-outline-light:disabled { - color: #f8f9fa; - background-color: transparent; } - .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, - .show > .btn-outline-light.dropdown-toggle { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; } - .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); } - -.btn-outline-dark { - color: #343a40; - border-color: #343a40; } - .btn-outline-dark:hover { - color: #fff; - background-color: #343a40; - border-color: #343a40; } - .btn-outline-dark:focus, .btn-outline-dark.focus { - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } - .btn-outline-dark.disabled, .btn-outline-dark:disabled { - color: #343a40; - background-color: transparent; } - .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, - .show > .btn-outline-dark.dropdown-toggle { - color: #fff; - background-color: #343a40; - border-color: #343a40; } - .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } - -.btn-outline-primary-accent { - color: #1252A3; - border-color: #1252A3; } - .btn-outline-primary-accent:hover { - color: #fff; - background-color: #1252A3; - border-color: #1252A3; } - .btn-outline-primary-accent:focus, .btn-outline-primary-accent.focus { - box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); } - .btn-outline-primary-accent.disabled, .btn-outline-primary-accent:disabled { - color: #1252A3; - background-color: transparent; } - .btn-outline-primary-accent:not(:disabled):not(.disabled):active, .btn-outline-primary-accent:not(:disabled):not(.disabled).active, - .show > .btn-outline-primary-accent.dropdown-toggle { - color: #fff; - background-color: #1252A3; - border-color: #1252A3; } - .btn-outline-primary-accent:not(:disabled):not(.disabled):active:focus, .btn-outline-primary-accent:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-primary-accent.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); } - -.btn-outline-secondary-alt { - color: #1A3B66; - border-color: #1A3B66; } - .btn-outline-secondary-alt:hover { - color: #fff; - background-color: #1A3B66; - border-color: #1A3B66; } - .btn-outline-secondary-alt:focus, .btn-outline-secondary-alt.focus { - box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); } - .btn-outline-secondary-alt.disabled, .btn-outline-secondary-alt:disabled { - color: #1A3B66; - background-color: transparent; } - .btn-outline-secondary-alt:not(:disabled):not(.disabled):active, .btn-outline-secondary-alt:not(:disabled):not(.disabled).active, - .show > .btn-outline-secondary-alt.dropdown-toggle { - color: #fff; - background-color: #1A3B66; - border-color: #1A3B66; } - .btn-outline-secondary-alt:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary-alt:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-secondary-alt.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); } - -.btn-link { - font-weight: 400; - color: #175DDC; - text-decoration: none; } - .btn-link:hover { - color: #104097; - text-decoration: underline; } - .btn-link:focus, .btn-link.focus { - text-decoration: underline; - box-shadow: none; } - .btn-link:disabled, .btn-link.disabled { - color: #6c757d; - pointer-events: none; } - -.btn-lg, .btn-group-lg > .btn, .swal2-popup .swal2-actions .btn-group-lg > button { - padding: 0.5rem 1rem; - font-size: 1.15rem; - line-height: 1.5; - border-radius: 0.3rem; } - -.btn-sm, .btn-group-sm > .btn, .swal2-popup .swal2-actions .btn-group-sm > button { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; } - -.btn-block { - display: block; - width: 100%; } - .btn-block + .btn-block { - margin-top: 0.5rem; } - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; } - -.fade { - transition: opacity 0.15s linear; } - @media (prefers-reduced-motion: reduce) { - .fade { - transition: none; } } - .fade:not(.show) { - opacity: 0; } - -.collapse:not(.show) { - display: none; } - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - transition: height 0.35s ease; } - @media (prefers-reduced-motion: reduce) { - .collapsing { - transition: none; } } - -.dropup, -.dropright, -.dropdown, -.dropleft { - position: relative; } - -.dropdown-toggle { - white-space: nowrap; } - .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; } - .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 10rem; - padding: 0.5rem 0; - margin: 0.125rem 0 0; - font-size: 1rem; - color: #333333; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 0.25rem; } - -.dropdown-menu-left { - right: auto; - left: 0; } - -.dropdown-menu-right { - right: 0; - left: auto; } - -@media (min-width: 1px) { - .dropdown-menu-sm-left { - right: auto; - left: 0; } - .dropdown-menu-sm-right { - right: 0; - left: auto; } } - -@media (min-width: 2px) { - .dropdown-menu-md-left { - right: auto; - left: 0; } - .dropdown-menu-md-right { - right: 0; - left: auto; } } - -@media (min-width: 3px) { - .dropdown-menu-lg-left { - right: auto; - left: 0; } - .dropdown-menu-lg-right { - right: 0; - left: auto; } } - -@media (min-width: 4px) { - .dropdown-menu-xl-left { - right: auto; - left: 0; } - .dropdown-menu-xl-right { - right: 0; - left: auto; } } - -.dropup .dropdown-menu { - top: auto; - bottom: 100%; - margin-top: 0; - margin-bottom: 0.125rem; } - -.dropup .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; } - -.dropup .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropright .dropdown-menu { - top: 0; - right: auto; - left: 100%; - margin-top: 0; - margin-left: 0.125rem; } - -.dropright .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0; - border-bottom: 0.3em solid transparent; - border-left: 0.3em solid; } - -.dropright .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropright .dropdown-toggle::after { - vertical-align: 0; } - -.dropleft .dropdown-menu { - top: 0; - right: 100%; - left: auto; - margin-top: 0; - margin-right: 0.125rem; } - -.dropleft .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; } - -.dropleft .dropdown-toggle::after { - display: none; } - -.dropleft .dropdown-toggle::before { - display: inline-block; - margin-right: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0.3em solid; - border-bottom: 0.3em solid transparent; } - -.dropleft .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropleft .dropdown-toggle::before { - vertical-align: 0; } - -.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { - right: auto; - bottom: auto; } - -.dropdown-divider { - height: 0; - margin: 0.5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; } - -.dropdown-item { - display: block; - width: 100%; - padding: 0.25rem 1rem; - clear: both; - font-weight: 400; - color: #333333; - text-align: inherit; - white-space: nowrap; - background-color: transparent; - border: 0; } - .dropdown-item:hover, .dropdown-item:focus { - color: #16181b; - text-decoration: none; - background-color: rgba(0, 0, 0, 0.06); } - .dropdown-item.active, .dropdown-item:active { - color: #333333; - text-decoration: none; - background-color: rgba(0, 0, 0, 0.1); } - .dropdown-item.disabled, .dropdown-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: transparent; } - -.dropdown-menu.show { - display: block; } - -.dropdown-header { - display: block; - padding: 0.5rem 1rem; - margin-bottom: 0; - font-size: 0.875rem; - color: #6c757d; - white-space: nowrap; } - -.dropdown-item-text { - display: block; - padding: 0.25rem 1rem; - color: #333333; } - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle; } - .btn-group > .btn, .swal2-popup .swal2-actions .btn-group > button, - .btn-group-vertical > .btn, - .swal2-popup .swal2-actions .btn-group-vertical > button { - position: relative; - flex: 1 1 auto; } - .btn-group > .btn:hover, .swal2-popup .swal2-actions .btn-group > button:hover, - .btn-group-vertical > .btn:hover, - .swal2-popup .swal2-actions .btn-group-vertical > button:hover { - z-index: 1; } - .btn-group > .btn:focus, .swal2-popup .swal2-actions .btn-group > button:focus, .btn-group > .btn:active, .swal2-popup .swal2-actions .btn-group > button:active, .btn-group > .btn.active, .swal2-popup .swal2-actions .btn-group > button.active, - .btn-group-vertical > .btn:focus, - .swal2-popup .swal2-actions .btn-group-vertical > button:focus, - .btn-group-vertical > .btn:active, - .swal2-popup .swal2-actions .btn-group-vertical > button:active, - .btn-group-vertical > .btn.active, - .swal2-popup .swal2-actions .btn-group-vertical > button.active { - z-index: 1; } - -.btn-toolbar { - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - .btn-toolbar .input-group { - width: auto; } - -.btn-group > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group > button:not(:first-child), -.btn-group > .btn-group:not(:first-child) { - margin-left: -1px; } - -.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .swal2-popup .swal2-actions .btn-group > button:not(:last-child):not(.dropdown-toggle), -.btn-group > .btn-group:not(:last-child) > .btn, -.swal2-popup .swal2-actions .btn-group > .btn-group:not(:last-child) > button { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.btn-group > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group > button:not(:first-child), -.btn-group > .btn-group:not(:first-child) > .btn, -.swal2-popup .swal2-actions .btn-group > .btn-group:not(:first-child) > button { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.dropdown-toggle-split { - padding-right: 0.5625rem; - padding-left: 0.5625rem; } - .dropdown-toggle-split::after, - .dropup .dropdown-toggle-split::after, - .dropright .dropdown-toggle-split::after { - margin-left: 0; } - .dropleft .dropdown-toggle-split::before { - margin-right: 0; } - -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split, .swal2-popup .swal2-actions .btn-group-sm > button + .dropdown-toggle-split { - padding-right: 0.375rem; - padding-left: 0.375rem; } - -.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split, .swal2-popup .swal2-actions .btn-group-lg > button + .dropdown-toggle-split { - padding-right: 0.75rem; - padding-left: 0.75rem; } - -.btn-group-vertical { - flex-direction: column; - align-items: flex-start; - justify-content: center; } - - .btn-group-vertical > .btn, - .swal2-popup .swal2-actions .btn-group-vertical > button, - .btn-group-vertical > .btn-group { - width: 100%; } - .btn-group-vertical > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:first-child), - .btn-group-vertical > .btn-group:not(:first-child) { - margin-top: -1px; } - .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:last-child):not(.dropdown-toggle), - .btn-group-vertical > .btn-group:not(:last-child) > .btn, - .swal2-popup .swal2-actions .btn-group-vertical > .btn-group:not(:last-child) > button { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - .btn-group-vertical > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:first-child), - .btn-group-vertical > .btn-group:not(:first-child) > .btn, - .swal2-popup .swal2-actions .btn-group-vertical > .btn-group:not(:first-child) > button { - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.btn-group-toggle > .btn, .swal2-popup .swal2-actions .btn-group-toggle > button, -.btn-group-toggle > .btn-group > .btn, -.swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button { - margin-bottom: 0; } - .btn-group-toggle > .btn input[type="radio"], .swal2-popup .swal2-actions .btn-group-toggle > button input[type="radio"], - .btn-group-toggle > .btn input[type="checkbox"], - .swal2-popup .swal2-actions .btn-group-toggle > button input[type="checkbox"], - .btn-group-toggle > .btn-group > .btn input[type="radio"], - .swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button input[type="radio"], - .btn-group-toggle > .btn-group > .btn input[type="checkbox"], - .swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; } - -.input-group { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100%; } - .input-group > .form-control, - .input-group > .form-control-plaintext, - .input-group > .custom-select, - .input-group > .custom-file { - position: relative; - flex: 1 1 auto; - width: 1%; - margin-bottom: 0; } - .input-group > .form-control + .form-control, - .input-group > .form-control + .custom-select, - .input-group > .form-control + .custom-file, - .input-group > .form-control-plaintext + .form-control, - .input-group > .form-control-plaintext + .custom-select, - .input-group > .form-control-plaintext + .custom-file, - .input-group > .custom-select + .form-control, - .input-group > .custom-select + .custom-select, - .input-group > .custom-select + .custom-file, - .input-group > .custom-file + .form-control, - .input-group > .custom-file + .custom-select, - .input-group > .custom-file + .custom-file { - margin-left: -1px; } - .input-group > .form-control:focus, - .input-group > .custom-select:focus, - .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { - z-index: 3; } - .input-group > .custom-file .custom-file-input:focus { - z-index: 4; } - .input-group > .form-control:not(:last-child), - .input-group > .custom-select:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .input-group > .form-control:not(:first-child), - .input-group > .custom-select:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .input-group > .custom-file { - display: flex; - align-items: center; } - .input-group > .custom-file:not(:last-child) .custom-file-label, - .input-group > .custom-file:not(:last-child) .custom-file-label::after { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .input-group > .custom-file:not(:first-child) .custom-file-label { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.input-group-prepend, -.input-group-append { - display: flex; } - .input-group-prepend .btn, .input-group-prepend .swal2-popup .swal2-actions button, .swal2-popup .swal2-actions .input-group-prepend button, - .input-group-append .btn, - .input-group-append .swal2-popup .swal2-actions button, - .swal2-popup .swal2-actions .input-group-append button { - position: relative; - z-index: 2; } - .input-group-prepend .btn:focus, .input-group-prepend .swal2-popup .swal2-actions button:focus, .swal2-popup .swal2-actions .input-group-prepend button:focus, - .input-group-append .btn:focus, - .input-group-append .swal2-popup .swal2-actions button:focus, - .swal2-popup .swal2-actions .input-group-append button:focus { - z-index: 3; } - .input-group-prepend .btn + .btn, .input-group-prepend .swal2-popup .swal2-actions button + .btn, .swal2-popup .swal2-actions .input-group-prepend button + .btn, .input-group-prepend .swal2-popup .swal2-actions .btn + button, .swal2-popup .swal2-actions .input-group-prepend .btn + button, .input-group-prepend .swal2-popup .swal2-actions button + button, .swal2-popup .swal2-actions .input-group-prepend button + button, - .input-group-prepend .btn + .input-group-text, - .input-group-prepend .swal2-popup .swal2-actions button + .input-group-text, - .swal2-popup .swal2-actions .input-group-prepend button + .input-group-text, - .input-group-prepend .input-group-text + .input-group-text, - .input-group-prepend .input-group-text + .btn, - .input-group-prepend .swal2-popup .swal2-actions .input-group-text + button, - .swal2-popup .swal2-actions .input-group-prepend .input-group-text + button, - .input-group-append .btn + .btn, - .input-group-append .swal2-popup .swal2-actions button + .btn, - .swal2-popup .swal2-actions .input-group-append button + .btn, - .input-group-append .swal2-popup .swal2-actions .btn + button, - .swal2-popup .swal2-actions .input-group-append .btn + button, - .input-group-append .swal2-popup .swal2-actions button + button, - .swal2-popup .swal2-actions .input-group-append button + button, - .input-group-append .btn + .input-group-text, - .input-group-append .swal2-popup .swal2-actions button + .input-group-text, - .swal2-popup .swal2-actions .input-group-append button + .input-group-text, - .input-group-append .input-group-text + .input-group-text, - .input-group-append .input-group-text + .btn, - .input-group-append .swal2-popup .swal2-actions .input-group-text + button, - .swal2-popup .swal2-actions .input-group-append .input-group-text + button { - margin-left: -1px; } - -.input-group-prepend { - margin-right: -1px; } - -.input-group-append { - margin-left: -1px; } - -.input-group-text { - display: flex; - align-items: center; - padding: 0.375rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - text-align: center; - white-space: nowrap; - background-color: #e9ecef; - border: 1px solid #ced4da; - border-radius: 0.25rem; } - .input-group-text input[type="radio"], - .input-group-text input[type="checkbox"] { - margin-top: 0; } - -.input-group-lg > .form-control:not(textarea), -.input-group-lg > .custom-select { - height: calc(1.5em + 1rem + 2px); } - -.input-group-lg > .form-control, -.input-group-lg > .custom-select, -.input-group-lg > .input-group-prepend > .input-group-text, -.input-group-lg > .input-group-append > .input-group-text, -.input-group-lg > .input-group-prepend > .btn, -.swal2-popup .swal2-actions .input-group-lg > .input-group-prepend > button, -.input-group-lg > .input-group-append > .btn, -.swal2-popup .swal2-actions .input-group-lg > .input-group-append > button { - padding: 0.5rem 1rem; - font-size: 1.15rem; - line-height: 1.5; - border-radius: 0.3rem; } - -.input-group-sm > .form-control:not(textarea), -.input-group-sm > .custom-select { - height: calc(1.5em + 0.5rem + 2px); } - -.input-group-sm > .form-control, -.input-group-sm > .custom-select, -.input-group-sm > .input-group-prepend > .input-group-text, -.input-group-sm > .input-group-append > .input-group-text, -.input-group-sm > .input-group-prepend > .btn, -.swal2-popup .swal2-actions .input-group-sm > .input-group-prepend > button, -.input-group-sm > .input-group-append > .btn, -.swal2-popup .swal2-actions .input-group-sm > .input-group-append > button { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; } - -.input-group-lg > .custom-select, -.input-group-sm > .custom-select { - padding-right: 1.75rem; } - -.input-group > .input-group-prepend > .btn, .swal2-popup .swal2-actions .input-group > .input-group-prepend > button, -.input-group > .input-group-prepend > .input-group-text, -.input-group > .input-group-append:not(:last-child) > .btn, -.swal2-popup .swal2-actions .input-group > .input-group-append:not(:last-child) > button, -.input-group > .input-group-append:not(:last-child) > .input-group-text, -.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.swal2-popup .swal2-actions .input-group > .input-group-append:last-child > button:not(:last-child):not(.dropdown-toggle), -.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.input-group > .input-group-append > .btn, .swal2-popup .swal2-actions .input-group > .input-group-append > button, -.input-group > .input-group-append > .input-group-text, -.input-group > .input-group-prepend:not(:first-child) > .btn, -.swal2-popup .swal2-actions .input-group > .input-group-prepend:not(:first-child) > button, -.input-group > .input-group-prepend:not(:first-child) > .input-group-text, -.input-group > .input-group-prepend:first-child > .btn:not(:first-child), -.swal2-popup .swal2-actions .input-group > .input-group-prepend:first-child > button:not(:first-child), -.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.custom-control { - position: relative; - display: block; - min-height: 1.5rem; - padding-left: 1.5rem; } - -.custom-control-inline { - display: inline-flex; - margin-right: 1rem; } - -.custom-control-input { - position: absolute; - z-index: -1; - opacity: 0; } - .custom-control-input:checked ~ .custom-control-label::before { - color: #fff; - border-color: #175DDC; - background-color: #175DDC; } - .custom-control-input:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-control-input:focus:not(:checked) ~ .custom-control-label::before { - border-color: #81a9f2; } - .custom-control-input:not(:disabled):active ~ .custom-control-label::before { - color: #fff; - background-color: #afc8f7; - border-color: #afc8f7; } - .custom-control-input:disabled ~ .custom-control-label { - color: #6c757d; } - .custom-control-input:disabled ~ .custom-control-label::before { - background-color: #e0e0e0; } - -.custom-control-label { - position: relative; - margin-bottom: 0; - vertical-align: top; } - .custom-control-label::before { - position: absolute; - top: 0.25rem; - left: -1.5rem; - display: block; - width: 1rem; - height: 1rem; - pointer-events: none; - content: ""; - background-color: #fbfbfb; - border: #adb5bd solid 1px; } - .custom-control-label::after { - position: absolute; - top: 0.25rem; - left: -1.5rem; - display: block; - width: 1rem; - height: 1rem; - content: ""; - background: no-repeat 50% / 50% 50%; } - -.custom-checkbox .custom-control-label::before { - border-radius: 0.25rem; } - -.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); } - -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { - border-color: #175DDC; - background-color: #175DDC; } - -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); } - -.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(23, 93, 220, 0.5); } - -.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { - background-color: rgba(23, 93, 220, 0.5); } - -.custom-radio .custom-control-label::before { - border-radius: 50%; } - -.custom-radio .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } - -.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(23, 93, 220, 0.5); } - -.custom-switch { - padding-left: 2.25rem; } - .custom-switch .custom-control-label::before { - left: -2.25rem; - width: 1.75rem; - pointer-events: all; - border-radius: 0.5rem; } - .custom-switch .custom-control-label::after { - top: calc(0.25rem + 2px); - left: calc(-2.25rem + 2px); - width: calc(1rem - 4px); - height: calc(1rem - 4px); - background-color: #adb5bd; - border-radius: 0.5rem; - transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .custom-switch .custom-control-label::after { - transition: none; } } - .custom-switch .custom-control-input:checked ~ .custom-control-label::after { - background-color: #fbfbfb; - transform: translateX(0.75rem); } - .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(23, 93, 220, 0.5); } - -.custom-select { - display: inline-block; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - padding: 0.375rem 1.75rem 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - vertical-align: middle; - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; - background-color: #fbfbfb; - border: 1px solid #ced4da; - border-radius: 0.25rem; - appearance: none; } - .custom-select:focus { - border-color: #81a9f2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-select:focus::-ms-value { - color: #495057; - background-color: #fbfbfb; } - .custom-select[multiple], .custom-select[size]:not([size="1"]) { - height: auto; - padding-right: 0.75rem; - background-image: none; } - .custom-select:disabled { - color: #6c757d; - background-color: #e9ecef; } - .custom-select::-ms-expand { - display: none; } - -.custom-select-sm { - height: calc(1.5em + 0.5rem + 2px); - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - font-size: 0.875rem; } - -.custom-select-lg { - height: calc(1.5em + 1rem + 2px); - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 1rem; - font-size: 1.15rem; } - -.custom-file { - position: relative; - display: inline-block; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - margin-bottom: 0; } - -.custom-file-input { - position: relative; - z-index: 2; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - margin: 0; - opacity: 0; } - .custom-file-input:focus ~ .custom-file-label { - border-color: #81a9f2; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-file-input:disabled ~ .custom-file-label { - background-color: #e0e0e0; } - .custom-file-input:lang(en) ~ .custom-file-label::after { - content: "Browse"; } - .custom-file-input ~ .custom-file-label[data-browse]::after { - content: attr(data-browse); } - -.custom-file-label { - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 1; - height: calc(1.5em + 0.75rem + 2px); - padding: 0.375rem 0.75rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fbfbfb; - border: 1px solid #ced4da; - border-radius: 0.25rem; } - .custom-file-label::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - z-index: 3; - display: block; - height: calc(1.5em + 0.75rem); - padding: 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - content: "Browse"; - background-color: #e9ecef; - border-left: inherit; - border-radius: 0 0.25rem 0.25rem 0; } - -.custom-range { - width: 100%; - height: calc(1rem + 0.4rem); - padding: 0; - background-color: transparent; - appearance: none; } - .custom-range:focus { - outline: none; } - .custom-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-range:focus::-ms-thumb { - box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-range::-moz-focus-outer { - border: 0; } - .custom-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -0.25rem; - background-color: #175DDC; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - appearance: none; } - @media (prefers-reduced-motion: reduce) { - .custom-range::-webkit-slider-thumb { - transition: none; } } - .custom-range::-webkit-slider-thumb:active { - background-color: #afc8f7; } - .custom-range::-webkit-slider-runnable-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem; } - .custom-range::-moz-range-thumb { - width: 1rem; - height: 1rem; - background-color: #175DDC; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - appearance: none; } - @media (prefers-reduced-motion: reduce) { - .custom-range::-moz-range-thumb { - transition: none; } } - .custom-range::-moz-range-thumb:active { - background-color: #afc8f7; } - .custom-range::-moz-range-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem; } - .custom-range::-ms-thumb { - width: 1rem; - height: 1rem; - margin-top: 0; - margin-right: 0.2rem; - margin-left: 0.2rem; - background-color: #175DDC; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - appearance: none; } - @media (prefers-reduced-motion: reduce) { - .custom-range::-ms-thumb { - transition: none; } } - .custom-range::-ms-thumb:active { - background-color: #afc8f7; } - .custom-range::-ms-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: transparent; - border-color: transparent; - border-width: 0.5rem; } - .custom-range::-ms-fill-lower { - background-color: #dee2e6; - border-radius: 1rem; } - .custom-range::-ms-fill-upper { - margin-right: 15px; - background-color: #dee2e6; - border-radius: 1rem; } - .custom-range:disabled::-webkit-slider-thumb { - background-color: #adb5bd; } - .custom-range:disabled::-webkit-slider-runnable-track { - cursor: default; } - .custom-range:disabled::-moz-range-thumb { - background-color: #adb5bd; } - .custom-range:disabled::-moz-range-track { - cursor: default; } - .custom-range:disabled::-ms-thumb { - background-color: #adb5bd; } - -.custom-control-label::before, -.custom-file-label, -.custom-select { - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .custom-control-label::before, - .custom-file-label, - .custom-select { - transition: none; } } - -.nav { - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; } - -.nav-link { - display: block; - padding: 0.5rem 1rem; } - .nav-link:hover, .nav-link:focus { - text-decoration: none; } - .nav-link.disabled { - color: #6c757d; - pointer-events: none; - cursor: default; } - -.nav-tabs { - border-bottom: 1px solid #dee2e6; } - .nav-tabs .nav-item { - margin-bottom: -1px; } - .nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } - .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e9ecef #e9ecef #dee2e6; } - .nav-tabs .nav-link.disabled { - color: #6c757d; - background-color: transparent; - border-color: transparent; } - .nav-tabs .nav-link.active, - .nav-tabs .nav-item.show .nav-link { - color: #495057; - background-color: #ffffff; - border-color: #dee2e6 #dee2e6 #ffffff; } - .nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.nav-pills .nav-link { - border-radius: 0.25rem; } - -.nav-pills .nav-link.active, -.nav-pills .show > .nav-link { - color: #fff; - background-color: #175DDC; } - -.nav-fill .nav-item { - flex: 1 1 auto; - text-align: center; } - -.nav-justified .nav-item { - flex-basis: 0; - flex-grow: 1; - text-align: center; } - -.tab-content > .tab-pane { - display: none; } - -.tab-content > .active { - display: block; } - -.navbar { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding: 0.75rem 1rem; } - .navbar > .container, - .navbar > .container-fluid { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; } - -.navbar-brand { - display: inline-block; - padding-top: 0; - padding-bottom: 0; - margin-right: 1rem; - font-size: 2.1875rem; - line-height: inherit; - white-space: nowrap; } - .navbar-brand:hover, .navbar-brand:focus { - text-decoration: none; } - -.navbar-nav { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none; } - .navbar-nav .nav-link { - padding-right: 0; - padding-left: 0; } - .navbar-nav .dropdown-menu { - position: static; - float: none; } - -.navbar-text { - display: inline-block; - padding-top: 0.5rem; - padding-bottom: 0.5rem; } - -.navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center; } - -.navbar-toggler { - padding: 0.25rem 0.75rem; - font-size: 1.15rem; - line-height: 1; - background-color: transparent; - border: 1px solid transparent; - border-radius: 0.25rem; } - .navbar-toggler:hover, .navbar-toggler:focus { - text-decoration: none; } - -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - content: ""; - background: no-repeat center center; - background-size: 100% 100%; } - -@media (max-width: 0.98px) { - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid { - padding-right: 0; - padding-left: 0; } } - -@media (min-width: 1px) { - .navbar-expand-sm { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand-sm .navbar-nav { - flex-direction: row; } - .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-sm .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-sm .navbar-toggler { - display: none; } } - -@media (max-width: 1.98px) { - .navbar-expand-md > .container, - .navbar-expand-md > .container-fluid { - padding-right: 0; - padding-left: 0; } } - -@media (min-width: 2px) { - .navbar-expand-md { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand-md .navbar-nav { - flex-direction: row; } - .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-md .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand-md > .container, - .navbar-expand-md > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand-md .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-md .navbar-toggler { - display: none; } } - -@media (max-width: 2.98px) { - .navbar-expand-lg > .container, - .navbar-expand-lg > .container-fluid { - padding-right: 0; - padding-left: 0; } } - -@media (min-width: 3px) { - .navbar-expand-lg { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand-lg .navbar-nav { - flex-direction: row; } - .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-lg .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand-lg > .container, - .navbar-expand-lg > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand-lg .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-lg .navbar-toggler { - display: none; } } - -@media (max-width: 3.98px) { - .navbar-expand-xl > .container, - .navbar-expand-xl > .container-fluid { - padding-right: 0; - padding-left: 0; } } - -@media (min-width: 4px) { - .navbar-expand-xl { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand-xl .navbar-nav { - flex-direction: row; } - .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-xl .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand-xl > .container, - .navbar-expand-xl > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand-xl .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-xl .navbar-toggler { - display: none; } } - -.navbar-expand { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand > .container, - .navbar-expand > .container-fluid { - padding-right: 0; - padding-left: 0; } - .navbar-expand .navbar-nav { - flex-direction: row; } - .navbar-expand .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand > .container, - .navbar-expand > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand .navbar-toggler { - display: none; } - -.navbar-light .navbar-brand { - color: rgba(0, 0, 0, 0.9); } - .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { - color: rgba(0, 0, 0, 0.9); } - -.navbar-light .navbar-nav .nav-link { - color: rgba(0, 0, 0, 0.5); } - .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { - color: rgba(0, 0, 0, 0.7); } - .navbar-light .navbar-nav .nav-link.disabled { - color: rgba(0, 0, 0, 0.3); } - -.navbar-light .navbar-nav .show > .nav-link, -.navbar-light .navbar-nav .active > .nav-link, -.navbar-light .navbar-nav .nav-link.show, -.navbar-light .navbar-nav .nav-link.active { - color: rgba(0, 0, 0, 0.9); } - -.navbar-light .navbar-toggler { - color: rgba(0, 0, 0, 0.5); - border-color: rgba(0, 0, 0, 0.1); } - -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } - -.navbar-light .navbar-text { - color: rgba(0, 0, 0, 0.5); } - .navbar-light .navbar-text a { - color: rgba(0, 0, 0, 0.9); } - .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { - color: rgba(0, 0, 0, 0.9); } - -.navbar-dark .navbar-brand { - color: #fff; } - .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { - color: #fff; } - -.navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.7); } - .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { - color: rgba(255, 255, 255, 0.9); } - .navbar-dark .navbar-nav .nav-link.disabled { - color: rgba(255, 255, 255, 0.25); } - -.navbar-dark .navbar-nav .show > .nav-link, -.navbar-dark .navbar-nav .active > .nav-link, -.navbar-dark .navbar-nav .nav-link.show, -.navbar-dark .navbar-nav .nav-link.active { - color: #fff; } - -.navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.7); - border-color: rgba(255, 255, 255, 0.1); } - -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } - -.navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.7); } - .navbar-dark .navbar-text a { - color: #fff; } - .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { - color: #fff; } - -.card { - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - border: 1px solid rgba(0, 0, 0, 0.125); - border-radius: 0.25rem; } - .card > hr { - margin-right: 0; - margin-left: 0; } - .card > .list-group:first-child .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } - .card > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } - -.card-body { - flex: 1 1 auto; - padding: 1.25rem; } - -.card-title { - margin-bottom: 0.6rem; } - -.card-subtitle { - margin-top: -0.3rem; - margin-bottom: 0; } - -.card-text:last-child { - margin-bottom: 0; } - -.card-link:hover { - text-decoration: none; } - -.card-link + .card-link { - margin-left: 1.25rem; } - -.card-header { - padding: 0.6rem 1.25rem; - margin-bottom: 0; - background-color: rgba(0, 0, 0, 0.03); - border-bottom: 1px solid rgba(0, 0, 0, 0.125); } - .card-header:first-child { - border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; } - .card-header + .list-group .list-group-item:first-child { - border-top: 0; } - -.card-footer { - padding: 0.6rem 1.25rem; - background-color: rgba(0, 0, 0, 0.03); - border-top: 1px solid rgba(0, 0, 0, 0.125); } - .card-footer:last-child { - border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); } - -.card-header-tabs { - margin-right: -0.625rem; - margin-bottom: -0.6rem; - margin-left: -0.625rem; - border-bottom: 0; } - -.card-header-pills { - margin-right: -0.625rem; - margin-left: -0.625rem; } - -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 1.25rem; } - -.card-img { - width: 100%; - border-radius: calc(0.25rem - 1px); } - -.card-img-top { - width: 100%; - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); } - -.card-img-bottom { - width: 100%; - border-bottom-right-radius: calc(0.25rem - 1px); - border-bottom-left-radius: calc(0.25rem - 1px); } - -.card-deck { - display: flex; - flex-direction: column; } - .card-deck .card { - margin-bottom: 10px; } - @media (min-width: 1px) { - .card-deck { - flex-flow: row wrap; - margin-right: -10px; - margin-left: -10px; } - .card-deck .card { - display: flex; - flex: 1 0 0%; - flex-direction: column; - margin-right: 10px; - margin-bottom: 0; - margin-left: 10px; } } - -.card-group { - display: flex; - flex-direction: column; } - .card-group > .card { - margin-bottom: 10px; } - @media (min-width: 1px) { - .card-group { - flex-flow: row wrap; } - .card-group > .card { - flex: 1 0 0%; - margin-bottom: 0; } - .card-group > .card + .card { - margin-left: 0; - border-left: 0; } - .card-group > .card:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .card-group > .card:not(:last-child) .card-img-top, - .card-group > .card:not(:last-child) .card-header { - border-top-right-radius: 0; } - .card-group > .card:not(:last-child) .card-img-bottom, - .card-group > .card:not(:last-child) .card-footer { - border-bottom-right-radius: 0; } - .card-group > .card:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .card-group > .card:not(:first-child) .card-img-top, - .card-group > .card:not(:first-child) .card-header { - border-top-left-radius: 0; } - .card-group > .card:not(:first-child) .card-img-bottom, - .card-group > .card:not(:first-child) .card-footer { - border-bottom-left-radius: 0; } } - -.card-columns .card { - margin-bottom: 0.6rem; } - -@media (min-width: 1px) { - .card-columns { - column-count: 3; - column-gap: 1.25rem; - orphans: 1; - widows: 1; } - .card-columns .card { - display: inline-block; - width: 100%; } } - -.accordion > .card { - overflow: hidden; } - .accordion > .card:not(:first-of-type) .card-header:first-child { - border-radius: 0; } - .accordion > .card:not(:first-of-type):not(:last-of-type) { - border-bottom: 0; - border-radius: 0; } - .accordion > .card:first-of-type { - border-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - .accordion > .card:last-of-type { - border-top-left-radius: 0; - border-top-right-radius: 0; } - .accordion > .card .card-header { - margin-bottom: -1px; } - -.breadcrumb { - display: flex; - flex-wrap: wrap; - padding: 0.75rem 1rem; - margin-bottom: 1rem; - list-style: none; - background-color: #e9ecef; - border-radius: 0.25rem; } - -.breadcrumb-item + .breadcrumb-item { - padding-left: 0.5rem; } - .breadcrumb-item + .breadcrumb-item::before { - display: inline-block; - padding-right: 0.5rem; - color: #6c757d; - content: "/"; } - -.breadcrumb-item + .breadcrumb-item:hover::before { - text-decoration: underline; } - -.breadcrumb-item + .breadcrumb-item:hover::before { - text-decoration: none; } - -.breadcrumb-item.active { - color: #6c757d; } - -.pagination { - display: flex; - padding-left: 0; - list-style: none; - border-radius: 0.25rem; } - -.page-link { - position: relative; - display: block; - padding: 0.5rem 0.75rem; - margin-left: -1px; - line-height: 1.25; - color: #175DDC; - background-color: #fff; - border: 1px solid #dee2e6; } - .page-link:hover { - z-index: 2; - color: #104097; - text-decoration: none; - background-color: #e9ecef; - border-color: #dee2e6; } - .page-link:focus { - z-index: 2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - -.page-item:first-child .page-link { - margin-left: 0; - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } - -.page-item:last-child .page-link { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; } - -.page-item.active .page-link { - z-index: 1; - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - -.page-item.disabled .page-link { - color: #6c757d; - pointer-events: none; - cursor: auto; - background-color: #fff; - border-color: #dee2e6; } - -.pagination-lg .page-link { - padding: 0.75rem 1.5rem; - font-size: 1.15rem; - line-height: 1.5; } - -.pagination-lg .page-item:first-child .page-link { - border-top-left-radius: 0.3rem; - border-bottom-left-radius: 0.3rem; } - -.pagination-lg .page-item:last-child .page-link { - border-top-right-radius: 0.3rem; - border-bottom-right-radius: 0.3rem; } - -.pagination-sm .page-link { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; } - -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: 0.2rem; - border-bottom-left-radius: 0.2rem; } - -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: 0.2rem; - border-bottom-right-radius: 0.2rem; } - -.badge { - display: inline-block; - padding: 0.25em 0.4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .badge { - transition: none; } } - a.badge:hover, a.badge:focus { - text-decoration: none; } - .badge:empty { - display: none; } - -.btn .badge, .swal2-popup .swal2-actions button .badge { - position: relative; - top: -1px; } - -.badge-pill { - padding-right: 0.6em; - padding-left: 0.6em; - border-radius: 10rem; } - -.badge-primary { - color: #fff; - background-color: #175DDC; } - a.badge-primary:hover, a.badge-primary:focus { - color: #fff; - background-color: #1249ae; } - a.badge-primary:focus, a.badge-primary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); } - -.badge-secondary { - color: #212529; - background-color: #ced4da; } - a.badge-secondary:hover, a.badge-secondary:focus { - color: #212529; - background-color: #b1bbc4; } - a.badge-secondary:focus, a.badge-secondary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); } - -.badge-success { - color: #fff; - background-color: #00a65a; } - a.badge-success:hover, a.badge-success:focus { - color: #fff; - background-color: #00733e; } - a.badge-success:focus, a.badge-success.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); } - -.badge-info { - color: #fff; - background-color: #555555; } - a.badge-info:hover, a.badge-info:focus { - color: #fff; - background-color: #3c3c3c; } - a.badge-info:focus, a.badge-info.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); } - -.badge-warning { - color: #fff; - background-color: #bf7e16; } - a.badge-warning:hover, a.badge-warning:focus { - color: #fff; - background-color: #916011; } - a.badge-warning:focus, a.badge-warning.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); } - -.badge-danger { - color: #fff; - background-color: #dd4b39; } - a.badge-danger:hover, a.badge-danger:focus { - color: #fff; - background-color: #c23321; } - a.badge-danger:focus, a.badge-danger.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); } - -.badge-light { - color: #212529; - background-color: #f8f9fa; } - a.badge-light:hover, a.badge-light:focus { - color: #212529; - background-color: #dae0e5; } - a.badge-light:focus, a.badge-light.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); } - -.badge-dark { - color: #fff; - background-color: #343a40; } - a.badge-dark:hover, a.badge-dark:focus { - color: #fff; - background-color: #1d2124; } - a.badge-dark:focus, a.badge-dark.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } - -.badge-primary-accent { - color: #fff; - background-color: #1252A3; } - a.badge-primary-accent:hover, a.badge-primary-accent:focus { - color: #fff; - background-color: #0d3b75; } - a.badge-primary-accent:focus, a.badge-primary-accent.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); } - -.badge-secondary-alt { - color: #fff; - background-color: #1A3B66; } - a.badge-secondary-alt:hover, a.badge-secondary-alt:focus { - color: #fff; - background-color: #10233d; } - a.badge-secondary-alt:focus, a.badge-secondary-alt.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); } - -.jumbotron { - padding: 2rem 1rem; - margin-bottom: 2rem; - background-color: #e9ecef; - border-radius: 0.3rem; } - @media (min-width: 1px) { - .jumbotron { - padding: 4rem 2rem; } } - -.jumbotron-fluid { - padding-right: 0; - padding-left: 0; - border-radius: 0; } - -.alert { - position: relative; - padding: 0.75rem 1.25rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: 0.25rem; } - -.alert-heading { - color: inherit; } - -.alert-link { - font-weight: 700; } - -.alert-dismissible { - padding-right: 4rem; } - .alert-dismissible .close { - position: absolute; - top: 0; - right: 0; - padding: 0.75rem 1.25rem; - color: inherit; } - -.alert-primary { - color: #0c3072; - background-color: #d1dff8; - border-color: #bed2f5; } - .alert-primary hr { - border-top-color: #a8c3f2; } - .alert-primary .alert-link { - color: #071d44; } - -.alert-secondary { - color: #6b6e71; - background-color: #f5f6f8; - border-color: #f1f3f5; } - .alert-secondary hr { - border-top-color: #e2e6ea; } - .alert-secondary .alert-link { - color: #525557; } - -.alert-success { - color: #00562f; - background-color: #ccedde; - border-color: #b8e6d1; } - .alert-success hr { - border-top-color: #a5dfc5; } - .alert-success .alert-link { - color: #002313; } - -.alert-info { - color: #2c2c2c; - background-color: #dddddd; - border-color: #cfcfcf; } - .alert-info hr { - border-top-color: #c2c2c2; } - .alert-info .alert-link { - color: #131313; } - -.alert-warning { - color: #63420b; - background-color: #f2e5d0; - border-color: #eddbbe; } - .alert-warning hr { - border-top-color: #e7d0aa; } - .alert-warning .alert-link { - color: #352306; } - -.alert-danger { - color: #73271e; - background-color: #f8dbd7; - border-color: #f5cdc8; } - .alert-danger hr { - border-top-color: #f1b9b2; } - .alert-danger .alert-link { - color: #4b1913; } - -.alert-light { - color: #818182; - background-color: #fefefe; - border-color: #fdfdfe; } - .alert-light hr { - border-top-color: #ececf6; } - .alert-light .alert-link { - color: #686868; } - -.alert-dark { - color: #1b1e21; - background-color: #d6d8d9; - border-color: #c6c8ca; } - .alert-dark hr { - border-top-color: #b9bbbe; } - .alert-dark .alert-link { - color: #040505; } - -.alert-primary-accent { - color: #092b55; - background-color: #d0dced; - border-color: #bdcfe5; } - .alert-primary-accent hr { - border-top-color: #abc2de; } - .alert-primary-accent .alert-link { - color: #041427; } - -.alert-secondary-alt { - color: #0e1f35; - background-color: #d1d8e0; - border-color: #bfc8d4; } - .alert-secondary-alt hr { - border-top-color: #b0bbca; } - .alert-secondary-alt .alert-link { - color: #03070d; } - -@keyframes progress-bar-stripes { - from { - background-position: 1rem 0; } - to { - background-position: 0 0; } } - -.progress { - display: flex; - height: 1rem; - overflow: hidden; - font-size: 0.75rem; - background-color: #e9ecef; - border-radius: 0.25rem; } - -.progress-bar { - display: flex; - flex-direction: column; - justify-content: center; - color: #fff; - text-align: center; - white-space: nowrap; - background-color: #175DDC; - transition: width 0.6s ease; } - @media (prefers-reduced-motion: reduce) { - .progress-bar { - transition: none; } } - -.progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 1rem 1rem; } - -.progress-bar-animated { - animation: progress-bar-stripes 1s linear infinite; } - @media (prefers-reduced-motion: reduce) { - .progress-bar-animated { - animation: none; } } - -.media { - display: flex; - align-items: flex-start; } - -.media-body { - flex: 1; } - -.list-group { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; } - -.list-group-item-action { - width: 100%; - color: #495057; - text-align: inherit; } - .list-group-item-action:hover, .list-group-item-action:focus { - z-index: 1; - color: #495057; - text-decoration: none; - background-color: #f8f9fa; } - .list-group-item-action:active { - color: #333333; - background-color: #e9ecef; } - -.list-group-item { - position: relative; - display: block; - padding: 0.6rem 1.25rem; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.125); } - .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } - .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } - .list-group-item.disabled, .list-group-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: #fff; } - .list-group-item.active { - z-index: 2; - color: #333333; - background-color: #ffffff; - border-color: rgba(0, 0, 0, 0.125); } - -.list-group-horizontal { - flex-direction: row; } - .list-group-horizontal .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } - -@media (min-width: 1px) { - .list-group-horizontal-sm { - flex-direction: row; } - .list-group-horizontal-sm .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal-sm .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal-sm .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } } - -@media (min-width: 2px) { - .list-group-horizontal-md { - flex-direction: row; } - .list-group-horizontal-md .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal-md .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal-md .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } } - -@media (min-width: 3px) { - .list-group-horizontal-lg { - flex-direction: row; } - .list-group-horizontal-lg .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal-lg .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal-lg .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } } - -@media (min-width: 4px) { - .list-group-horizontal-xl { - flex-direction: row; } - .list-group-horizontal-xl .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal-xl .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal-xl .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } } - -.list-group-flush .list-group-item { - border-right: 0; - border-left: 0; - border-radius: 0; } - .list-group-flush .list-group-item:last-child { - margin-bottom: -1px; } - -.list-group-flush:first-child .list-group-item:first-child { - border-top: 0; } - -.list-group-flush:last-child .list-group-item:last-child { - margin-bottom: 0; - border-bottom: 0; } - -.list-group-item-primary { - color: #0c3072; - background-color: #bed2f5; } - .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { - color: #0c3072; - background-color: #a8c3f2; } - .list-group-item-primary.list-group-item-action.active { - color: #fff; - background-color: #0c3072; - border-color: #0c3072; } - -.list-group-item-secondary { - color: #6b6e71; - background-color: #f1f3f5; } - .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { - color: #6b6e71; - background-color: #e2e6ea; } - .list-group-item-secondary.list-group-item-action.active { - color: #fff; - background-color: #6b6e71; - border-color: #6b6e71; } - -.list-group-item-success { - color: #00562f; - background-color: #b8e6d1; } - .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { - color: #00562f; - background-color: #a5dfc5; } - .list-group-item-success.list-group-item-action.active { - color: #fff; - background-color: #00562f; - border-color: #00562f; } - -.list-group-item-info { - color: #2c2c2c; - background-color: #cfcfcf; } - .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { - color: #2c2c2c; - background-color: #c2c2c2; } - .list-group-item-info.list-group-item-action.active { - color: #fff; - background-color: #2c2c2c; - border-color: #2c2c2c; } - -.list-group-item-warning { - color: #63420b; - background-color: #eddbbe; } - .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { - color: #63420b; - background-color: #e7d0aa; } - .list-group-item-warning.list-group-item-action.active { - color: #fff; - background-color: #63420b; - border-color: #63420b; } - -.list-group-item-danger { - color: #73271e; - background-color: #f5cdc8; } - .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { - color: #73271e; - background-color: #f1b9b2; } - .list-group-item-danger.list-group-item-action.active { - color: #fff; - background-color: #73271e; - border-color: #73271e; } - -.list-group-item-light { - color: #818182; - background-color: #fdfdfe; } - .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { - color: #818182; - background-color: #ececf6; } - .list-group-item-light.list-group-item-action.active { - color: #fff; - background-color: #818182; - border-color: #818182; } - -.list-group-item-dark { - color: #1b1e21; - background-color: #c6c8ca; } - .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { - color: #1b1e21; - background-color: #b9bbbe; } - .list-group-item-dark.list-group-item-action.active { - color: #fff; - background-color: #1b1e21; - border-color: #1b1e21; } - -.list-group-item-primary-accent { - color: #092b55; - background-color: #bdcfe5; } - .list-group-item-primary-accent.list-group-item-action:hover, .list-group-item-primary-accent.list-group-item-action:focus { - color: #092b55; - background-color: #abc2de; } - .list-group-item-primary-accent.list-group-item-action.active { - color: #fff; - background-color: #092b55; - border-color: #092b55; } - -.list-group-item-secondary-alt { - color: #0e1f35; - background-color: #bfc8d4; } - .list-group-item-secondary-alt.list-group-item-action:hover, .list-group-item-secondary-alt.list-group-item-action:focus { - color: #0e1f35; - background-color: #b0bbca; } - .list-group-item-secondary-alt.list-group-item-action.active { - color: #fff; - background-color: #0e1f35; - border-color: #0e1f35; } - -.close { - float: right; - font-size: 1.5rem; - font-weight: 700; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: .5; } - .close:hover { - color: #000; - text-decoration: none; } - .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { - opacity: .75; } - -button.close { - padding: 0; - background-color: transparent; - border: 0; - appearance: none; } - -a.close.disabled { - pointer-events: none; } - -.modal-open { - overflow: hidden; } - .modal-open .modal { - overflow-x: hidden; - overflow-y: auto; } - -.modal { - position: fixed; - top: 0; - left: 0; - z-index: 1050; - display: none; - width: 100%; - height: 100%; - overflow: hidden; - outline: 0; } - -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; } - .modal.fade .modal-dialog { - transition: transform 0.3s ease-out; - transform: translate(0, -50px); } - @media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none; } } - .modal.show .modal-dialog { - transform: none; } - -.modal-dialog-scrollable { - display: flex; - max-height: calc(100% - 1rem); } - .modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 1rem); - overflow: hidden; } - .modal-dialog-scrollable .modal-header, - .modal-dialog-scrollable .modal-footer { - flex-shrink: 0; } - .modal-dialog-scrollable .modal-body { - overflow-y: auto; } - -.modal-dialog-centered { - display: flex; - align-items: center; - min-height: calc(100% - 1rem); } - .modal-dialog-centered::before { - display: block; - height: calc(100vh - 1rem); - content: ""; } - .modal-dialog-centered.modal-dialog-scrollable { - flex-direction: column; - justify-content: center; - height: 100%; } - .modal-dialog-centered.modal-dialog-scrollable .modal-content { - max-height: none; } - .modal-dialog-centered.modal-dialog-scrollable::before { - content: none; } - -.modal-content { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; - outline: 0; } - -.modal-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 1040; - width: 100vw; - height: 100vh; - background-color: #000; } - .modal-backdrop.fade { - opacity: 0; } - .modal-backdrop.show { - opacity: 0.3; } - -.modal-header { - display: flex; - align-items: flex-start; - justify-content: space-between; - padding: 1rem 1rem; - border-bottom: 1px solid #dee2e6; - border-top-left-radius: 0.3rem; - border-top-right-radius: 0.3rem; } - .modal-header .close { - padding: 1rem 1rem; - margin: -1rem -1rem -1rem auto; } - -.modal-title { - margin-bottom: 0; - line-height: 1.5; } - -.modal-body { - position: relative; - flex: 1 1 auto; - padding: 1rem; } - -.modal-footer { - display: flex; - align-items: center; - justify-content: flex-end; - padding: 1rem; - border-top: 1px solid #dee2e6; - border-bottom-right-radius: 0.3rem; - border-bottom-left-radius: 0.3rem; } - .modal-footer > :not(:first-child) { - margin-left: .25rem; } - .modal-footer > :not(:last-child) { - margin-right: .25rem; } - -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; } - -@media (min-width: 1px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; } - .modal-dialog-scrollable { - max-height: calc(100% - 3.5rem); } - .modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 3.5rem); } - .modal-dialog-centered { - min-height: calc(100% - 3.5rem); } - .modal-dialog-centered::before { - height: calc(100vh - 3.5rem); } - .modal-sm { - max-width: 300px; } } - -@media (min-width: 3px) { - .modal-lg, - .modal-xl { - max-width: 800px; } } - -@media (min-width: 4px) { - .modal-xl { - max-width: 1140px; } } - -.tooltip { - position: absolute; - z-index: 1070; - display: block; - margin: 0; - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - opacity: 0; } - .tooltip.show { - opacity: 0.9; } - .tooltip .arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; } - .tooltip .arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; } - -.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { - padding: 0.4rem 0; } - .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { - bottom: 0; } - .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { - top: 0; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000; } - -.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { - padding: 0 0.4rem; } - .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; } - .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { - right: 0; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000; } - -.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { - padding: 0.4rem 0; } - .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { - top: 0; } - .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { - bottom: 0; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000; } - -.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { - padding: 0 0.4rem; } - .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; } - .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { - left: 0; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000; } - -.tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 0.25rem; } - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; } - .popover .arrow { - position: absolute; - display: block; - width: 1rem; - height: 0.5rem; - margin: 0 0.3rem; } - .popover .arrow::before, .popover .arrow::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; } - -.bs-popover-top, .bs-popover-auto[x-placement^="top"] { - margin-bottom: 0.5rem; } - .bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { - bottom: calc((0.5rem + 1px) * -1); } - .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { - bottom: 0; - border-width: 0.5rem 0.5rem 0; - border-top-color: rgba(0, 0, 0, 0.25); } - .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { - bottom: 1px; - border-width: 0.5rem 0.5rem 0; - border-top-color: #fff; } - -.bs-popover-right, .bs-popover-auto[x-placement^="right"] { - margin-left: 0.5rem; } - .bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { - left: calc((0.5rem + 1px) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; } - .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { - left: 0; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: rgba(0, 0, 0, 0.25); } - .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { - left: 1px; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #fff; } - -.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { - margin-top: 0.5rem; } - .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { - top: calc((0.5rem + 1px) * -1); } - .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { - top: 0; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: rgba(0, 0, 0, 0.25); } - .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { - top: 1px; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #fff; } - .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 1rem; - margin-left: -0.5rem; - content: ""; - border-bottom: 1px solid #f7f7f7; } - -.bs-popover-left, .bs-popover-auto[x-placement^="left"] { - margin-right: 0.5rem; } - .bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { - right: calc((0.5rem + 1px) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; } - .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { - right: 0; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: rgba(0, 0, 0, 0.25); } - .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { - right: 1px; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #fff; } - -.popover-header { - padding: 0.5rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); } - .popover-header:empty { - display: none; } - -.popover-body { - padding: 0.5rem 0.75rem; - color: #333333; } - -.carousel { - position: relative; } - -.carousel.pointer-event { - touch-action: pan-y; } - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; } - .carousel-inner::after { - display: block; - clear: both; - content: ""; } - -.carousel-item { - position: relative; - display: none; - float: left; - width: 100%; - margin-right: -100%; - backface-visibility: hidden; - transition: transform 0.6s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .carousel-item { - transition: none; } } - -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: block; } - -.carousel-item-next:not(.carousel-item-left), -.active.carousel-item-right { - transform: translateX(100%); } - -.carousel-item-prev:not(.carousel-item-right), -.active.carousel-item-left { - transform: translateX(-100%); } - -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - transform: none; } - -.carousel-fade .carousel-item.active, -.carousel-fade .carousel-item-next.carousel-item-left, -.carousel-fade .carousel-item-prev.carousel-item-right { - z-index: 1; - opacity: 1; } - -.carousel-fade .active.carousel-item-left, -.carousel-fade .active.carousel-item-right { - z-index: 0; - opacity: 0; - transition: 0s 0.6s opacity; } - @media (prefers-reduced-motion: reduce) { - .carousel-fade .active.carousel-item-left, - .carousel-fade .active.carousel-item-right { - transition: none; } } - -.carousel-control-prev, -.carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - z-index: 1; - display: flex; - align-items: center; - justify-content: center; - width: 15%; - color: #fff; - text-align: center; - opacity: 0.5; - transition: opacity 0.15s ease; } - @media (prefers-reduced-motion: reduce) { - .carousel-control-prev, - .carousel-control-next { - transition: none; } } - .carousel-control-prev:hover, .carousel-control-prev:focus, - .carousel-control-next:hover, - .carousel-control-next:focus { - color: #fff; - text-decoration: none; - outline: 0; - opacity: 0.9; } - -.carousel-control-prev { - left: 0; } - -.carousel-control-next { - right: 0; } - -.carousel-control-prev-icon, -.carousel-control-next-icon { - display: inline-block; - width: 20px; - height: 20px; - background: no-repeat 50% / 100% 100%; } - -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e"); } - -.carousel-control-next-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"); } - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 15; - display: flex; - justify-content: center; - padding-left: 0; - margin-right: 15%; - margin-left: 15%; - list-style: none; } - .carousel-indicators li { - box-sizing: content-box; - flex: 0 1 auto; - width: 30px; - height: 3px; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - cursor: pointer; - background-color: #fff; - background-clip: padding-box; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - opacity: .5; - transition: opacity 0.6s ease; } - @media (prefers-reduced-motion: reduce) { - .carousel-indicators li { - transition: none; } } - .carousel-indicators .active { - opacity: 1; } - -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; } - -@keyframes spinner-border { - to { - transform: rotate(360deg); } } - -.spinner-border { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - border: 0.25em solid currentColor; - border-right-color: transparent; - border-radius: 50%; - animation: spinner-border .75s linear infinite; } - -.spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: 0.2em; } - -@keyframes spinner-grow { - 0% { - transform: scale(0); } - 50% { - opacity: 1; } } - -.spinner-grow { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - background-color: currentColor; - border-radius: 50%; - opacity: 0; - animation: spinner-grow .75s linear infinite; } - -.spinner-grow-sm { - width: 1rem; - height: 1rem; } - -.align-baseline { - vertical-align: baseline !important; } - -.align-top { - vertical-align: top !important; } - -.align-middle { - vertical-align: middle !important; } - -.align-bottom { - vertical-align: bottom !important; } - -.align-text-bottom { - vertical-align: text-bottom !important; } - -.align-text-top { - vertical-align: text-top !important; } - -.bg-primary { - background-color: #175DDC !important; } - -a.bg-primary:hover, a.bg-primary:focus, -button.bg-primary:hover, -button.bg-primary:focus { - background-color: #1249ae !important; } - -.bg-secondary { - background-color: #ced4da !important; } - -a.bg-secondary:hover, a.bg-secondary:focus, -button.bg-secondary:hover, -button.bg-secondary:focus { - background-color: #b1bbc4 !important; } - -.bg-success { - background-color: #00a65a !important; } - -a.bg-success:hover, a.bg-success:focus, -button.bg-success:hover, -button.bg-success:focus { - background-color: #00733e !important; } - -.bg-info { - background-color: #555555 !important; } - -a.bg-info:hover, a.bg-info:focus, -button.bg-info:hover, -button.bg-info:focus { - background-color: #3c3c3c !important; } - -.bg-warning { - background-color: #bf7e16 !important; } - -a.bg-warning:hover, a.bg-warning:focus, -button.bg-warning:hover, -button.bg-warning:focus { - background-color: #916011 !important; } - -.bg-danger { - background-color: #dd4b39 !important; } - -a.bg-danger:hover, a.bg-danger:focus, -button.bg-danger:hover, -button.bg-danger:focus { - background-color: #c23321 !important; } - -.bg-light { - background-color: #f8f9fa !important; } - -a.bg-light:hover, a.bg-light:focus, -button.bg-light:hover, -button.bg-light:focus { - background-color: #dae0e5 !important; } - -.bg-dark { - background-color: #343a40 !important; } - -a.bg-dark:hover, a.bg-dark:focus, -button.bg-dark:hover, -button.bg-dark:focus { - background-color: #1d2124 !important; } - -.bg-primary-accent { - background-color: #1252A3 !important; } - -a.bg-primary-accent:hover, a.bg-primary-accent:focus, -button.bg-primary-accent:hover, -button.bg-primary-accent:focus { - background-color: #0d3b75 !important; } - -.bg-secondary-alt { - background-color: #1A3B66 !important; } - -a.bg-secondary-alt:hover, a.bg-secondary-alt:focus, -button.bg-secondary-alt:hover, -button.bg-secondary-alt:focus { - background-color: #10233d !important; } - -.bg-white { - background-color: #fff !important; } - -.bg-transparent { - background-color: transparent !important; } - -.border { - border: 1px solid #dee2e6 !important; } - -.border-top { - border-top: 1px solid #dee2e6 !important; } - -.border-right { - border-right: 1px solid #dee2e6 !important; } - -.border-bottom { - border-bottom: 1px solid #dee2e6 !important; } - -.border-left { - border-left: 1px solid #dee2e6 !important; } - -.border-0 { - border: 0 !important; } - -.border-top-0 { - border-top: 0 !important; } - -.border-right-0 { - border-right: 0 !important; } - -.border-bottom-0 { - border-bottom: 0 !important; } - -.border-left-0 { - border-left: 0 !important; } - -.border-primary { - border-color: #175DDC !important; } - -.border-secondary { - border-color: #ced4da !important; } - -.border-success { - border-color: #00a65a !important; } - -.border-info { - border-color: #555555 !important; } - -.border-warning { - border-color: #bf7e16 !important; } - -.border-danger { - border-color: #dd4b39 !important; } - -.border-light { - border-color: #f8f9fa !important; } - -.border-dark { - border-color: #343a40 !important; } - -.border-primary-accent { - border-color: #1252A3 !important; } - -.border-secondary-alt { - border-color: #1A3B66 !important; } - -.border-white { - border-color: #fff !important; } - -.rounded-sm { - border-radius: 0.2rem !important; } - -.rounded, .table.table-list td.table-list-icon img, app-avatar img { - border-radius: 0.25rem !important; } - -.rounded-top { - border-top-left-radius: 0.25rem !important; - border-top-right-radius: 0.25rem !important; } - -.rounded-right { - border-top-right-radius: 0.25rem !important; - border-bottom-right-radius: 0.25rem !important; } - -.rounded-bottom { - border-bottom-right-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; } - -.rounded-left { - border-top-left-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; } - -.rounded-lg { - border-radius: 0.3rem !important; } - -.rounded-circle { - border-radius: 50% !important; } - -.rounded-pill { - border-radius: 50rem !important; } - -.rounded-0 { - border-radius: 0 !important; } - -.clearfix::after { - display: block; - clear: both; - content: ""; } - -.d-none { - display: none !important; } - -.d-inline { - display: inline !important; } - -.d-inline-block { - display: inline-block !important; } - -.d-block { - display: block !important; } - -.d-table { - display: table !important; } - -.d-table-row { - display: table-row !important; } - -.d-table-cell { - display: table-cell !important; } - -.d-flex { - display: flex !important; } - -.d-inline-flex { - display: inline-flex !important; } - -@media (min-width: 1px) { - .d-sm-none { - display: none !important; } - .d-sm-inline { - display: inline !important; } - .d-sm-inline-block { - display: inline-block !important; } - .d-sm-block { - display: block !important; } - .d-sm-table { - display: table !important; } - .d-sm-table-row { - display: table-row !important; } - .d-sm-table-cell { - display: table-cell !important; } - .d-sm-flex { - display: flex !important; } - .d-sm-inline-flex { - display: inline-flex !important; } } - -@media (min-width: 2px) { - .d-md-none { - display: none !important; } - .d-md-inline { - display: inline !important; } - .d-md-inline-block { - display: inline-block !important; } - .d-md-block { - display: block !important; } - .d-md-table { - display: table !important; } - .d-md-table-row { - display: table-row !important; } - .d-md-table-cell { - display: table-cell !important; } - .d-md-flex { - display: flex !important; } - .d-md-inline-flex { - display: inline-flex !important; } } - -@media (min-width: 3px) { - .d-lg-none { - display: none !important; } - .d-lg-inline { - display: inline !important; } - .d-lg-inline-block { - display: inline-block !important; } - .d-lg-block { - display: block !important; } - .d-lg-table { - display: table !important; } - .d-lg-table-row { - display: table-row !important; } - .d-lg-table-cell { - display: table-cell !important; } - .d-lg-flex { - display: flex !important; } - .d-lg-inline-flex { - display: inline-flex !important; } } - -@media (min-width: 4px) { - .d-xl-none { - display: none !important; } - .d-xl-inline { - display: inline !important; } - .d-xl-inline-block { - display: inline-block !important; } - .d-xl-block { - display: block !important; } - .d-xl-table { - display: table !important; } - .d-xl-table-row { - display: table-row !important; } - .d-xl-table-cell { - display: table-cell !important; } - .d-xl-flex { - display: flex !important; } - .d-xl-inline-flex { - display: inline-flex !important; } } - -@media print { - .d-print-none { - display: none !important; } - .d-print-inline { - display: inline !important; } - .d-print-inline-block { - display: inline-block !important; } - .d-print-block { - display: block !important; } - .d-print-table { - display: table !important; } - .d-print-table-row { - display: table-row !important; } - .d-print-table-cell { - display: table-cell !important; } - .d-print-flex { - display: flex !important; } - .d-print-inline-flex { - display: inline-flex !important; } } - -.embed-responsive { - position: relative; - display: block; - width: 100%; - padding: 0; - overflow: hidden; } - .embed-responsive::before { - display: block; - content: ""; } - .embed-responsive .embed-responsive-item, - .embed-responsive iframe, - .embed-responsive embed, - .embed-responsive object, - .embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; } - -.embed-responsive-21by9::before { - padding-top: 42.85714%; } - -.embed-responsive-16by9::before { - padding-top: 56.25%; } - -.embed-responsive-4by3::before { - padding-top: 75%; } - -.embed-responsive-1by1::before { - padding-top: 100%; } - -.flex-row { - flex-direction: row !important; } - -.flex-column { - flex-direction: column !important; } - -.flex-row-reverse { - flex-direction: row-reverse !important; } - -.flex-column-reverse { - flex-direction: column-reverse !important; } - -.flex-wrap { - flex-wrap: wrap !important; } - -.flex-nowrap { - flex-wrap: nowrap !important; } - -.flex-wrap-reverse { - flex-wrap: wrap-reverse !important; } - -.flex-fill { - flex: 1 1 auto !important; } - -.flex-grow-0 { - flex-grow: 0 !important; } - -.flex-grow-1 { - flex-grow: 1 !important; } - -.flex-shrink-0 { - flex-shrink: 0 !important; } - -.flex-shrink-1 { - flex-shrink: 1 !important; } - -.justify-content-start { - justify-content: flex-start !important; } - -.justify-content-end { - justify-content: flex-end !important; } - -.justify-content-center { - justify-content: center !important; } - -.justify-content-between { - justify-content: space-between !important; } - -.justify-content-around { - justify-content: space-around !important; } - -.align-items-start { - align-items: flex-start !important; } - -.align-items-end { - align-items: flex-end !important; } - -.align-items-center { - align-items: center !important; } - -.align-items-baseline { - align-items: baseline !important; } - -.align-items-stretch { - align-items: stretch !important; } - -.align-content-start { - align-content: flex-start !important; } - -.align-content-end { - align-content: flex-end !important; } - -.align-content-center { - align-content: center !important; } - -.align-content-between { - align-content: space-between !important; } - -.align-content-around { - align-content: space-around !important; } - -.align-content-stretch { - align-content: stretch !important; } - -.align-self-auto { - align-self: auto !important; } - -.align-self-start { - align-self: flex-start !important; } - -.align-self-end { - align-self: flex-end !important; } - -.align-self-center { - align-self: center !important; } - -.align-self-baseline { - align-self: baseline !important; } - -.align-self-stretch { - align-self: stretch !important; } - -@media (min-width: 1px) { - .flex-sm-row { - flex-direction: row !important; } - .flex-sm-column { - flex-direction: column !important; } - .flex-sm-row-reverse { - flex-direction: row-reverse !important; } - .flex-sm-column-reverse { - flex-direction: column-reverse !important; } - .flex-sm-wrap { - flex-wrap: wrap !important; } - .flex-sm-nowrap { - flex-wrap: nowrap !important; } - .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .flex-sm-fill { - flex: 1 1 auto !important; } - .flex-sm-grow-0 { - flex-grow: 0 !important; } - .flex-sm-grow-1 { - flex-grow: 1 !important; } - .flex-sm-shrink-0 { - flex-shrink: 0 !important; } - .flex-sm-shrink-1 { - flex-shrink: 1 !important; } - .justify-content-sm-start { - justify-content: flex-start !important; } - .justify-content-sm-end { - justify-content: flex-end !important; } - .justify-content-sm-center { - justify-content: center !important; } - .justify-content-sm-between { - justify-content: space-between !important; } - .justify-content-sm-around { - justify-content: space-around !important; } - .align-items-sm-start { - align-items: flex-start !important; } - .align-items-sm-end { - align-items: flex-end !important; } - .align-items-sm-center { - align-items: center !important; } - .align-items-sm-baseline { - align-items: baseline !important; } - .align-items-sm-stretch { - align-items: stretch !important; } - .align-content-sm-start { - align-content: flex-start !important; } - .align-content-sm-end { - align-content: flex-end !important; } - .align-content-sm-center { - align-content: center !important; } - .align-content-sm-between { - align-content: space-between !important; } - .align-content-sm-around { - align-content: space-around !important; } - .align-content-sm-stretch { - align-content: stretch !important; } - .align-self-sm-auto { - align-self: auto !important; } - .align-self-sm-start { - align-self: flex-start !important; } - .align-self-sm-end { - align-self: flex-end !important; } - .align-self-sm-center { - align-self: center !important; } - .align-self-sm-baseline { - align-self: baseline !important; } - .align-self-sm-stretch { - align-self: stretch !important; } } - -@media (min-width: 2px) { - .flex-md-row { - flex-direction: row !important; } - .flex-md-column { - flex-direction: column !important; } - .flex-md-row-reverse { - flex-direction: row-reverse !important; } - .flex-md-column-reverse { - flex-direction: column-reverse !important; } - .flex-md-wrap { - flex-wrap: wrap !important; } - .flex-md-nowrap { - flex-wrap: nowrap !important; } - .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .flex-md-fill { - flex: 1 1 auto !important; } - .flex-md-grow-0 { - flex-grow: 0 !important; } - .flex-md-grow-1 { - flex-grow: 1 !important; } - .flex-md-shrink-0 { - flex-shrink: 0 !important; } - .flex-md-shrink-1 { - flex-shrink: 1 !important; } - .justify-content-md-start { - justify-content: flex-start !important; } - .justify-content-md-end { - justify-content: flex-end !important; } - .justify-content-md-center { - justify-content: center !important; } - .justify-content-md-between { - justify-content: space-between !important; } - .justify-content-md-around { - justify-content: space-around !important; } - .align-items-md-start { - align-items: flex-start !important; } - .align-items-md-end { - align-items: flex-end !important; } - .align-items-md-center { - align-items: center !important; } - .align-items-md-baseline { - align-items: baseline !important; } - .align-items-md-stretch { - align-items: stretch !important; } - .align-content-md-start { - align-content: flex-start !important; } - .align-content-md-end { - align-content: flex-end !important; } - .align-content-md-center { - align-content: center !important; } - .align-content-md-between { - align-content: space-between !important; } - .align-content-md-around { - align-content: space-around !important; } - .align-content-md-stretch { - align-content: stretch !important; } - .align-self-md-auto { - align-self: auto !important; } - .align-self-md-start { - align-self: flex-start !important; } - .align-self-md-end { - align-self: flex-end !important; } - .align-self-md-center { - align-self: center !important; } - .align-self-md-baseline { - align-self: baseline !important; } - .align-self-md-stretch { - align-self: stretch !important; } } - -@media (min-width: 3px) { - .flex-lg-row { - flex-direction: row !important; } - .flex-lg-column { - flex-direction: column !important; } - .flex-lg-row-reverse { - flex-direction: row-reverse !important; } - .flex-lg-column-reverse { - flex-direction: column-reverse !important; } - .flex-lg-wrap { - flex-wrap: wrap !important; } - .flex-lg-nowrap { - flex-wrap: nowrap !important; } - .flex-lg-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .flex-lg-fill { - flex: 1 1 auto !important; } - .flex-lg-grow-0 { - flex-grow: 0 !important; } - .flex-lg-grow-1 { - flex-grow: 1 !important; } - .flex-lg-shrink-0 { - flex-shrink: 0 !important; } - .flex-lg-shrink-1 { - flex-shrink: 1 !important; } - .justify-content-lg-start { - justify-content: flex-start !important; } - .justify-content-lg-end { - justify-content: flex-end !important; } - .justify-content-lg-center { - justify-content: center !important; } - .justify-content-lg-between { - justify-content: space-between !important; } - .justify-content-lg-around { - justify-content: space-around !important; } - .align-items-lg-start { - align-items: flex-start !important; } - .align-items-lg-end { - align-items: flex-end !important; } - .align-items-lg-center { - align-items: center !important; } - .align-items-lg-baseline { - align-items: baseline !important; } - .align-items-lg-stretch { - align-items: stretch !important; } - .align-content-lg-start { - align-content: flex-start !important; } - .align-content-lg-end { - align-content: flex-end !important; } - .align-content-lg-center { - align-content: center !important; } - .align-content-lg-between { - align-content: space-between !important; } - .align-content-lg-around { - align-content: space-around !important; } - .align-content-lg-stretch { - align-content: stretch !important; } - .align-self-lg-auto { - align-self: auto !important; } - .align-self-lg-start { - align-self: flex-start !important; } - .align-self-lg-end { - align-self: flex-end !important; } - .align-self-lg-center { - align-self: center !important; } - .align-self-lg-baseline { - align-self: baseline !important; } - .align-self-lg-stretch { - align-self: stretch !important; } } - -@media (min-width: 4px) { - .flex-xl-row { - flex-direction: row !important; } - .flex-xl-column { - flex-direction: column !important; } - .flex-xl-row-reverse { - flex-direction: row-reverse !important; } - .flex-xl-column-reverse { - flex-direction: column-reverse !important; } - .flex-xl-wrap { - flex-wrap: wrap !important; } - .flex-xl-nowrap { - flex-wrap: nowrap !important; } - .flex-xl-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .flex-xl-fill { - flex: 1 1 auto !important; } - .flex-xl-grow-0 { - flex-grow: 0 !important; } - .flex-xl-grow-1 { - flex-grow: 1 !important; } - .flex-xl-shrink-0 { - flex-shrink: 0 !important; } - .flex-xl-shrink-1 { - flex-shrink: 1 !important; } - .justify-content-xl-start { - justify-content: flex-start !important; } - .justify-content-xl-end { - justify-content: flex-end !important; } - .justify-content-xl-center { - justify-content: center !important; } - .justify-content-xl-between { - justify-content: space-between !important; } - .justify-content-xl-around { - justify-content: space-around !important; } - .align-items-xl-start { - align-items: flex-start !important; } - .align-items-xl-end { - align-items: flex-end !important; } - .align-items-xl-center { - align-items: center !important; } - .align-items-xl-baseline { - align-items: baseline !important; } - .align-items-xl-stretch { - align-items: stretch !important; } - .align-content-xl-start { - align-content: flex-start !important; } - .align-content-xl-end { - align-content: flex-end !important; } - .align-content-xl-center { - align-content: center !important; } - .align-content-xl-between { - align-content: space-between !important; } - .align-content-xl-around { - align-content: space-around !important; } - .align-content-xl-stretch { - align-content: stretch !important; } - .align-self-xl-auto { - align-self: auto !important; } - .align-self-xl-start { - align-self: flex-start !important; } - .align-self-xl-end { - align-self: flex-end !important; } - .align-self-xl-center { - align-self: center !important; } - .align-self-xl-baseline { - align-self: baseline !important; } - .align-self-xl-stretch { - align-self: stretch !important; } } - -.float-left { - float: left !important; } - -.float-right { - float: right !important; } - -.float-none { - float: none !important; } - -@media (min-width: 1px) { - .float-sm-left { - float: left !important; } - .float-sm-right { - float: right !important; } - .float-sm-none { - float: none !important; } } - -@media (min-width: 2px) { - .float-md-left { - float: left !important; } - .float-md-right { - float: right !important; } - .float-md-none { - float: none !important; } } - -@media (min-width: 3px) { - .float-lg-left { - float: left !important; } - .float-lg-right { - float: right !important; } - .float-lg-none { - float: none !important; } } - -@media (min-width: 4px) { - .float-xl-left { - float: left !important; } - .float-xl-right { - float: right !important; } - .float-xl-none { - float: none !important; } } - -.overflow-auto { - overflow: auto !important; } - -.overflow-hidden { - overflow: hidden !important; } - -.position-static { - position: static !important; } - -.position-relative { - position: relative !important; } - -.position-absolute { - position: absolute !important; } - -.position-fixed { - position: fixed !important; } - -.position-sticky { - position: sticky !important; } - -.fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; } - -.fixed-bottom { - position: fixed; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; } - -@supports (position: sticky) { - .sticky-top { - position: sticky; - top: 0; - z-index: 1020; } } - -.sr-only, .table.table-list tr:not(:hover) td.table-list-options > .dropdown:not(.show) button:not(:focus):not(:active), .table.table-list tr:not(:hover) td.table-list-options > button:not(:focus):not(:active) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - overflow: visible; - clip: auto; - white-space: normal; } - -.shadow-sm { - box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; } - -.shadow { - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; } - -.shadow-lg { - box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; } - -.shadow-none { - box-shadow: none !important; } - -.w-25 { - width: 25% !important; } - -.w-50 { - width: 50% !important; } - -.w-75 { - width: 75% !important; } - -.w-100 { - width: 100% !important; } - -.w-auto { - width: auto !important; } - -.h-25 { - height: 25% !important; } - -.h-50 { - height: 50% !important; } - -.h-75 { - height: 75% !important; } - -.h-100 { - height: 100% !important; } - -.h-auto { - height: auto !important; } - -.mw-100 { - max-width: 100% !important; } - -.mh-100 { - max-height: 100% !important; } - -.min-vw-100 { - min-width: 100vw !important; } - -.min-vh-100 { - min-height: 100vh !important; } - -.vw-100 { - width: 100vw !important; } - -.vh-100 { - height: 100vh !important; } - -.stretched-link::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - pointer-events: auto; - content: ""; - background-color: rgba(0, 0, 0, 0); } - -.m-0 { - margin: 0 !important; } - -.mt-0, -.my-0 { - margin-top: 0 !important; } - -.mr-0, -.mx-0 { - margin-right: 0 !important; } - -.mb-0, -.my-0 { - margin-bottom: 0 !important; } - -.ml-0, -.mx-0 { - margin-left: 0 !important; } - -.m-1 { - margin: 0.25rem !important; } - -.mt-1, -.my-1 { - margin-top: 0.25rem !important; } - -.mr-1, -.mx-1 { - margin-right: 0.25rem !important; } - -.mb-1, -.my-1 { - margin-bottom: 0.25rem !important; } - -.ml-1, -.mx-1 { - margin-left: 0.25rem !important; } - -.m-2 { - margin: 0.5rem !important; } - -.mt-2, .form-check-block .form-check-label > span, -.my-2 { - margin-top: 0.5rem !important; } - -.mr-2, -.mx-2 { - margin-right: 0.5rem !important; } - -.mb-2, -.my-2 { - margin-bottom: 0.5rem !important; } - -.ml-2, -.mx-2 { - margin-left: 0.5rem !important; } - -.m-3 { - margin: 1rem !important; } - -.mt-3, .form-check-block + .form-check-block:not(.mt-2), -.my-3 { - margin-top: 1rem !important; } - -.mr-3, -.mx-3 { - margin-right: 1rem !important; } - -.mb-3, -.my-3 { - margin-bottom: 1rem !important; } - -.ml-3, -.mx-3 { - margin-left: 1rem !important; } - -.m-4 { - margin: 1.5rem !important; } - -.mt-4, -.my-4 { - margin-top: 1.5rem !important; } - -.mr-4, -.mx-4 { - margin-right: 1.5rem !important; } - -.mb-4, .card-body-header, -.my-4 { - margin-bottom: 1.5rem !important; } - -.ml-4, -.mx-4 { - margin-left: 1.5rem !important; } - -.m-5 { - margin: 3rem !important; } - -.mt-5, -.my-5 { - margin-top: 3rem !important; } - -.mr-5, -.mx-5 { - margin-right: 3rem !important; } - -.mb-5, -.my-5 { - margin-bottom: 3rem !important; } - -.ml-5, -.mx-5 { - margin-left: 3rem !important; } - -.p-0 { - padding: 0 !important; } - -.pt-0, -.py-0 { - padding-top: 0 !important; } - -.pr-0, -.px-0 { - padding-right: 0 !important; } - -.pb-0, -.py-0 { - padding-bottom: 0 !important; } - -.pl-0, -.px-0 { - padding-left: 0 !important; } - -.p-1 { - padding: 0.25rem !important; } - -.pt-1, -.py-1 { - padding-top: 0.25rem !important; } - -.pr-1, -.px-1 { - padding-right: 0.25rem !important; } - -.pb-1, -.py-1 { - padding-bottom: 0.25rem !important; } - -.pl-1, -.px-1 { - padding-left: 0.25rem !important; } - -.p-2 { - padding: 0.5rem !important; } - -.pt-2, -.py-2 { - padding-top: 0.5rem !important; } - -.pr-2, -.px-2 { - padding-right: 0.5rem !important; } - -.pb-2, -.py-2 { - padding-bottom: 0.5rem !important; } - -.pl-2, -.px-2 { - padding-left: 0.5rem !important; } - -.p-3 { - padding: 1rem !important; } - -.pt-3, -.py-3 { - padding-top: 1rem !important; } - -.pr-3, -.px-3 { - padding-right: 1rem !important; } - -.pb-3, -.py-3 { - padding-bottom: 1rem !important; } - -.pl-3, -.px-3 { - padding-left: 1rem !important; } - -.p-4 { - padding: 1.5rem !important; } - -.pt-4, -.py-4 { - padding-top: 1.5rem !important; } - -.pr-4, -.px-4 { - padding-right: 1.5rem !important; } - -.pb-4, -.py-4 { - padding-bottom: 1.5rem !important; } - -.pl-4, -.px-4 { - padding-left: 1.5rem !important; } - -.p-5 { - padding: 3rem !important; } - -.pt-5, -.py-5 { - padding-top: 3rem !important; } - -.pr-5, -.px-5 { - padding-right: 3rem !important; } - -.pb-5, -.py-5 { - padding-bottom: 3rem !important; } - -.pl-5, -.px-5 { - padding-left: 3rem !important; } - -.m-n1 { - margin: -0.25rem !important; } - -.mt-n1, -.my-n1 { - margin-top: -0.25rem !important; } - -.mr-n1, -.mx-n1 { - margin-right: -0.25rem !important; } - -.mb-n1, -.my-n1 { - margin-bottom: -0.25rem !important; } - -.ml-n1, -.mx-n1 { - margin-left: -0.25rem !important; } - -.m-n2 { - margin: -0.5rem !important; } - -.mt-n2, -.my-n2 { - margin-top: -0.5rem !important; } - -.mr-n2, -.mx-n2 { - margin-right: -0.5rem !important; } - -.mb-n2, -.my-n2 { - margin-bottom: -0.5rem !important; } - -.ml-n2, -.mx-n2 { - margin-left: -0.5rem !important; } - -.m-n3 { - margin: -1rem !important; } - -.mt-n3, -.my-n3 { - margin-top: -1rem !important; } - -.mr-n3, -.mx-n3 { - margin-right: -1rem !important; } - -.mb-n3, -.my-n3 { - margin-bottom: -1rem !important; } - -.ml-n3, -.mx-n3 { - margin-left: -1rem !important; } - -.m-n4 { - margin: -1.5rem !important; } - -.mt-n4, -.my-n4 { - margin-top: -1.5rem !important; } - -.mr-n4, -.mx-n4 { - margin-right: -1.5rem !important; } - -.mb-n4, -.my-n4 { - margin-bottom: -1.5rem !important; } - -.ml-n4, -.mx-n4 { - margin-left: -1.5rem !important; } - -.m-n5 { - margin: -3rem !important; } - -.mt-n5, -.my-n5 { - margin-top: -3rem !important; } - -.mr-n5, -.mx-n5 { - margin-right: -3rem !important; } - -.mb-n5, -.my-n5 { - margin-bottom: -3rem !important; } - -.ml-n5, -.mx-n5 { - margin-left: -3rem !important; } - -.m-auto { - margin: auto !important; } - -.mt-auto, -.my-auto { - margin-top: auto !important; } - -.mr-auto, -.mx-auto { - margin-right: auto !important; } - -.mb-auto, -.my-auto { - margin-bottom: auto !important; } - -.ml-auto, -.mx-auto { - margin-left: auto !important; } - -@media (min-width: 1px) { - .m-sm-0 { - margin: 0 !important; } - .mt-sm-0, - .my-sm-0 { - margin-top: 0 !important; } - .mr-sm-0, - .mx-sm-0 { - margin-right: 0 !important; } - .mb-sm-0, - .my-sm-0 { - margin-bottom: 0 !important; } - .ml-sm-0, - .mx-sm-0 { - margin-left: 0 !important; } - .m-sm-1 { - margin: 0.25rem !important; } - .mt-sm-1, - .my-sm-1 { - margin-top: 0.25rem !important; } - .mr-sm-1, - .mx-sm-1 { - margin-right: 0.25rem !important; } - .mb-sm-1, - .my-sm-1 { - margin-bottom: 0.25rem !important; } - .ml-sm-1, - .mx-sm-1 { - margin-left: 0.25rem !important; } - .m-sm-2 { - margin: 0.5rem !important; } - .mt-sm-2, - .my-sm-2 { - margin-top: 0.5rem !important; } - .mr-sm-2, - .mx-sm-2 { - margin-right: 0.5rem !important; } - .mb-sm-2, - .my-sm-2 { - margin-bottom: 0.5rem !important; } - .ml-sm-2, - .mx-sm-2 { - margin-left: 0.5rem !important; } - .m-sm-3 { - margin: 1rem !important; } - .mt-sm-3, - .my-sm-3 { - margin-top: 1rem !important; } - .mr-sm-3, - .mx-sm-3 { - margin-right: 1rem !important; } - .mb-sm-3, - .my-sm-3 { - margin-bottom: 1rem !important; } - .ml-sm-3, - .mx-sm-3 { - margin-left: 1rem !important; } - .m-sm-4 { - margin: 1.5rem !important; } - .mt-sm-4, - .my-sm-4 { - margin-top: 1.5rem !important; } - .mr-sm-4, - .mx-sm-4 { - margin-right: 1.5rem !important; } - .mb-sm-4, - .my-sm-4 { - margin-bottom: 1.5rem !important; } - .ml-sm-4, - .mx-sm-4 { - margin-left: 1.5rem !important; } - .m-sm-5 { - margin: 3rem !important; } - .mt-sm-5, - .my-sm-5 { - margin-top: 3rem !important; } - .mr-sm-5, - .mx-sm-5 { - margin-right: 3rem !important; } - .mb-sm-5, - .my-sm-5 { - margin-bottom: 3rem !important; } - .ml-sm-5, - .mx-sm-5 { - margin-left: 3rem !important; } - .p-sm-0 { - padding: 0 !important; } - .pt-sm-0, - .py-sm-0 { - padding-top: 0 !important; } - .pr-sm-0, - .px-sm-0 { - padding-right: 0 !important; } - .pb-sm-0, - .py-sm-0 { - padding-bottom: 0 !important; } - .pl-sm-0, - .px-sm-0 { - padding-left: 0 !important; } - .p-sm-1 { - padding: 0.25rem !important; } - .pt-sm-1, - .py-sm-1 { - padding-top: 0.25rem !important; } - .pr-sm-1, - .px-sm-1 { - padding-right: 0.25rem !important; } - .pb-sm-1, - .py-sm-1 { - padding-bottom: 0.25rem !important; } - .pl-sm-1, - .px-sm-1 { - padding-left: 0.25rem !important; } - .p-sm-2 { - padding: 0.5rem !important; } - .pt-sm-2, - .py-sm-2 { - padding-top: 0.5rem !important; } - .pr-sm-2, - .px-sm-2 { - padding-right: 0.5rem !important; } - .pb-sm-2, - .py-sm-2 { - padding-bottom: 0.5rem !important; } - .pl-sm-2, - .px-sm-2 { - padding-left: 0.5rem !important; } - .p-sm-3 { - padding: 1rem !important; } - .pt-sm-3, - .py-sm-3 { - padding-top: 1rem !important; } - .pr-sm-3, - .px-sm-3 { - padding-right: 1rem !important; } - .pb-sm-3, - .py-sm-3 { - padding-bottom: 1rem !important; } - .pl-sm-3, - .px-sm-3 { - padding-left: 1rem !important; } - .p-sm-4 { - padding: 1.5rem !important; } - .pt-sm-4, - .py-sm-4 { - padding-top: 1.5rem !important; } - .pr-sm-4, - .px-sm-4 { - padding-right: 1.5rem !important; } - .pb-sm-4, - .py-sm-4 { - padding-bottom: 1.5rem !important; } - .pl-sm-4, - .px-sm-4 { - padding-left: 1.5rem !important; } - .p-sm-5 { - padding: 3rem !important; } - .pt-sm-5, - .py-sm-5 { - padding-top: 3rem !important; } - .pr-sm-5, - .px-sm-5 { - padding-right: 3rem !important; } - .pb-sm-5, - .py-sm-5 { - padding-bottom: 3rem !important; } - .pl-sm-5, - .px-sm-5 { - padding-left: 3rem !important; } - .m-sm-n1 { - margin: -0.25rem !important; } - .mt-sm-n1, - .my-sm-n1 { - margin-top: -0.25rem !important; } - .mr-sm-n1, - .mx-sm-n1 { - margin-right: -0.25rem !important; } - .mb-sm-n1, - .my-sm-n1 { - margin-bottom: -0.25rem !important; } - .ml-sm-n1, - .mx-sm-n1 { - margin-left: -0.25rem !important; } - .m-sm-n2 { - margin: -0.5rem !important; } - .mt-sm-n2, - .my-sm-n2 { - margin-top: -0.5rem !important; } - .mr-sm-n2, - .mx-sm-n2 { - margin-right: -0.5rem !important; } - .mb-sm-n2, - .my-sm-n2 { - margin-bottom: -0.5rem !important; } - .ml-sm-n2, - .mx-sm-n2 { - margin-left: -0.5rem !important; } - .m-sm-n3 { - margin: -1rem !important; } - .mt-sm-n3, - .my-sm-n3 { - margin-top: -1rem !important; } - .mr-sm-n3, - .mx-sm-n3 { - margin-right: -1rem !important; } - .mb-sm-n3, - .my-sm-n3 { - margin-bottom: -1rem !important; } - .ml-sm-n3, - .mx-sm-n3 { - margin-left: -1rem !important; } - .m-sm-n4 { - margin: -1.5rem !important; } - .mt-sm-n4, - .my-sm-n4 { - margin-top: -1.5rem !important; } - .mr-sm-n4, - .mx-sm-n4 { - margin-right: -1.5rem !important; } - .mb-sm-n4, - .my-sm-n4 { - margin-bottom: -1.5rem !important; } - .ml-sm-n4, - .mx-sm-n4 { - margin-left: -1.5rem !important; } - .m-sm-n5 { - margin: -3rem !important; } - .mt-sm-n5, - .my-sm-n5 { - margin-top: -3rem !important; } - .mr-sm-n5, - .mx-sm-n5 { - margin-right: -3rem !important; } - .mb-sm-n5, - .my-sm-n5 { - margin-bottom: -3rem !important; } - .ml-sm-n5, - .mx-sm-n5 { - margin-left: -3rem !important; } - .m-sm-auto { - margin: auto !important; } - .mt-sm-auto, - .my-sm-auto { - margin-top: auto !important; } - .mr-sm-auto, - .mx-sm-auto { - margin-right: auto !important; } - .mb-sm-auto, - .my-sm-auto { - margin-bottom: auto !important; } - .ml-sm-auto, - .mx-sm-auto { - margin-left: auto !important; } } - -@media (min-width: 2px) { - .m-md-0 { - margin: 0 !important; } - .mt-md-0, - .my-md-0 { - margin-top: 0 !important; } - .mr-md-0, - .mx-md-0 { - margin-right: 0 !important; } - .mb-md-0, - .my-md-0 { - margin-bottom: 0 !important; } - .ml-md-0, - .mx-md-0 { - margin-left: 0 !important; } - .m-md-1 { - margin: 0.25rem !important; } - .mt-md-1, - .my-md-1 { - margin-top: 0.25rem !important; } - .mr-md-1, - .mx-md-1 { - margin-right: 0.25rem !important; } - .mb-md-1, - .my-md-1 { - margin-bottom: 0.25rem !important; } - .ml-md-1, - .mx-md-1 { - margin-left: 0.25rem !important; } - .m-md-2 { - margin: 0.5rem !important; } - .mt-md-2, - .my-md-2 { - margin-top: 0.5rem !important; } - .mr-md-2, - .mx-md-2 { - margin-right: 0.5rem !important; } - .mb-md-2, - .my-md-2 { - margin-bottom: 0.5rem !important; } - .ml-md-2, - .mx-md-2 { - margin-left: 0.5rem !important; } - .m-md-3 { - margin: 1rem !important; } - .mt-md-3, - .my-md-3 { - margin-top: 1rem !important; } - .mr-md-3, - .mx-md-3 { - margin-right: 1rem !important; } - .mb-md-3, - .my-md-3 { - margin-bottom: 1rem !important; } - .ml-md-3, - .mx-md-3 { - margin-left: 1rem !important; } - .m-md-4 { - margin: 1.5rem !important; } - .mt-md-4, - .my-md-4 { - margin-top: 1.5rem !important; } - .mr-md-4, - .mx-md-4 { - margin-right: 1.5rem !important; } - .mb-md-4, - .my-md-4 { - margin-bottom: 1.5rem !important; } - .ml-md-4, - .mx-md-4 { - margin-left: 1.5rem !important; } - .m-md-5 { - margin: 3rem !important; } - .mt-md-5, - .my-md-5 { - margin-top: 3rem !important; } - .mr-md-5, - .mx-md-5 { - margin-right: 3rem !important; } - .mb-md-5, - .my-md-5 { - margin-bottom: 3rem !important; } - .ml-md-5, - .mx-md-5 { - margin-left: 3rem !important; } - .p-md-0 { - padding: 0 !important; } - .pt-md-0, - .py-md-0 { - padding-top: 0 !important; } - .pr-md-0, - .px-md-0 { - padding-right: 0 !important; } - .pb-md-0, - .py-md-0 { - padding-bottom: 0 !important; } - .pl-md-0, - .px-md-0 { - padding-left: 0 !important; } - .p-md-1 { - padding: 0.25rem !important; } - .pt-md-1, - .py-md-1 { - padding-top: 0.25rem !important; } - .pr-md-1, - .px-md-1 { - padding-right: 0.25rem !important; } - .pb-md-1, - .py-md-1 { - padding-bottom: 0.25rem !important; } - .pl-md-1, - .px-md-1 { - padding-left: 0.25rem !important; } - .p-md-2 { - padding: 0.5rem !important; } - .pt-md-2, - .py-md-2 { - padding-top: 0.5rem !important; } - .pr-md-2, - .px-md-2 { - padding-right: 0.5rem !important; } - .pb-md-2, - .py-md-2 { - padding-bottom: 0.5rem !important; } - .pl-md-2, - .px-md-2 { - padding-left: 0.5rem !important; } - .p-md-3 { - padding: 1rem !important; } - .pt-md-3, - .py-md-3 { - padding-top: 1rem !important; } - .pr-md-3, - .px-md-3 { - padding-right: 1rem !important; } - .pb-md-3, - .py-md-3 { - padding-bottom: 1rem !important; } - .pl-md-3, - .px-md-3 { - padding-left: 1rem !important; } - .p-md-4 { - padding: 1.5rem !important; } - .pt-md-4, - .py-md-4 { - padding-top: 1.5rem !important; } - .pr-md-4, - .px-md-4 { - padding-right: 1.5rem !important; } - .pb-md-4, - .py-md-4 { - padding-bottom: 1.5rem !important; } - .pl-md-4, - .px-md-4 { - padding-left: 1.5rem !important; } - .p-md-5 { - padding: 3rem !important; } - .pt-md-5, - .py-md-5 { - padding-top: 3rem !important; } - .pr-md-5, - .px-md-5 { - padding-right: 3rem !important; } - .pb-md-5, - .py-md-5 { - padding-bottom: 3rem !important; } - .pl-md-5, - .px-md-5 { - padding-left: 3rem !important; } - .m-md-n1 { - margin: -0.25rem !important; } - .mt-md-n1, - .my-md-n1 { - margin-top: -0.25rem !important; } - .mr-md-n1, - .mx-md-n1 { - margin-right: -0.25rem !important; } - .mb-md-n1, - .my-md-n1 { - margin-bottom: -0.25rem !important; } - .ml-md-n1, - .mx-md-n1 { - margin-left: -0.25rem !important; } - .m-md-n2 { - margin: -0.5rem !important; } - .mt-md-n2, - .my-md-n2 { - margin-top: -0.5rem !important; } - .mr-md-n2, - .mx-md-n2 { - margin-right: -0.5rem !important; } - .mb-md-n2, - .my-md-n2 { - margin-bottom: -0.5rem !important; } - .ml-md-n2, - .mx-md-n2 { - margin-left: -0.5rem !important; } - .m-md-n3 { - margin: -1rem !important; } - .mt-md-n3, - .my-md-n3 { - margin-top: -1rem !important; } - .mr-md-n3, - .mx-md-n3 { - margin-right: -1rem !important; } - .mb-md-n3, - .my-md-n3 { - margin-bottom: -1rem !important; } - .ml-md-n3, - .mx-md-n3 { - margin-left: -1rem !important; } - .m-md-n4 { - margin: -1.5rem !important; } - .mt-md-n4, - .my-md-n4 { - margin-top: -1.5rem !important; } - .mr-md-n4, - .mx-md-n4 { - margin-right: -1.5rem !important; } - .mb-md-n4, - .my-md-n4 { - margin-bottom: -1.5rem !important; } - .ml-md-n4, - .mx-md-n4 { - margin-left: -1.5rem !important; } - .m-md-n5 { - margin: -3rem !important; } - .mt-md-n5, - .my-md-n5 { - margin-top: -3rem !important; } - .mr-md-n5, - .mx-md-n5 { - margin-right: -3rem !important; } - .mb-md-n5, - .my-md-n5 { - margin-bottom: -3rem !important; } - .ml-md-n5, - .mx-md-n5 { - margin-left: -3rem !important; } - .m-md-auto { - margin: auto !important; } - .mt-md-auto, - .my-md-auto { - margin-top: auto !important; } - .mr-md-auto, - .mx-md-auto { - margin-right: auto !important; } - .mb-md-auto, - .my-md-auto { - margin-bottom: auto !important; } - .ml-md-auto, - .mx-md-auto { - margin-left: auto !important; } } - -@media (min-width: 3px) { - .m-lg-0 { - margin: 0 !important; } - .mt-lg-0, - .my-lg-0 { - margin-top: 0 !important; } - .mr-lg-0, - .mx-lg-0 { - margin-right: 0 !important; } - .mb-lg-0, - .my-lg-0 { - margin-bottom: 0 !important; } - .ml-lg-0, - .mx-lg-0 { - margin-left: 0 !important; } - .m-lg-1 { - margin: 0.25rem !important; } - .mt-lg-1, - .my-lg-1 { - margin-top: 0.25rem !important; } - .mr-lg-1, - .mx-lg-1 { - margin-right: 0.25rem !important; } - .mb-lg-1, - .my-lg-1 { - margin-bottom: 0.25rem !important; } - .ml-lg-1, - .mx-lg-1 { - margin-left: 0.25rem !important; } - .m-lg-2 { - margin: 0.5rem !important; } - .mt-lg-2, - .my-lg-2 { - margin-top: 0.5rem !important; } - .mr-lg-2, - .mx-lg-2 { - margin-right: 0.5rem !important; } - .mb-lg-2, - .my-lg-2 { - margin-bottom: 0.5rem !important; } - .ml-lg-2, - .mx-lg-2 { - margin-left: 0.5rem !important; } - .m-lg-3 { - margin: 1rem !important; } - .mt-lg-3, - .my-lg-3 { - margin-top: 1rem !important; } - .mr-lg-3, - .mx-lg-3 { - margin-right: 1rem !important; } - .mb-lg-3, - .my-lg-3 { - margin-bottom: 1rem !important; } - .ml-lg-3, - .mx-lg-3 { - margin-left: 1rem !important; } - .m-lg-4 { - margin: 1.5rem !important; } - .mt-lg-4, - .my-lg-4 { - margin-top: 1.5rem !important; } - .mr-lg-4, - .mx-lg-4 { - margin-right: 1.5rem !important; } - .mb-lg-4, - .my-lg-4 { - margin-bottom: 1.5rem !important; } - .ml-lg-4, - .mx-lg-4 { - margin-left: 1.5rem !important; } - .m-lg-5 { - margin: 3rem !important; } - .mt-lg-5, - .my-lg-5 { - margin-top: 3rem !important; } - .mr-lg-5, - .mx-lg-5 { - margin-right: 3rem !important; } - .mb-lg-5, - .my-lg-5 { - margin-bottom: 3rem !important; } - .ml-lg-5, - .mx-lg-5 { - margin-left: 3rem !important; } - .p-lg-0 { - padding: 0 !important; } - .pt-lg-0, - .py-lg-0 { - padding-top: 0 !important; } - .pr-lg-0, - .px-lg-0 { - padding-right: 0 !important; } - .pb-lg-0, - .py-lg-0 { - padding-bottom: 0 !important; } - .pl-lg-0, - .px-lg-0 { - padding-left: 0 !important; } - .p-lg-1 { - padding: 0.25rem !important; } - .pt-lg-1, - .py-lg-1 { - padding-top: 0.25rem !important; } - .pr-lg-1, - .px-lg-1 { - padding-right: 0.25rem !important; } - .pb-lg-1, - .py-lg-1 { - padding-bottom: 0.25rem !important; } - .pl-lg-1, - .px-lg-1 { - padding-left: 0.25rem !important; } - .p-lg-2 { - padding: 0.5rem !important; } - .pt-lg-2, - .py-lg-2 { - padding-top: 0.5rem !important; } - .pr-lg-2, - .px-lg-2 { - padding-right: 0.5rem !important; } - .pb-lg-2, - .py-lg-2 { - padding-bottom: 0.5rem !important; } - .pl-lg-2, - .px-lg-2 { - padding-left: 0.5rem !important; } - .p-lg-3 { - padding: 1rem !important; } - .pt-lg-3, - .py-lg-3 { - padding-top: 1rem !important; } - .pr-lg-3, - .px-lg-3 { - padding-right: 1rem !important; } - .pb-lg-3, - .py-lg-3 { - padding-bottom: 1rem !important; } - .pl-lg-3, - .px-lg-3 { - padding-left: 1rem !important; } - .p-lg-4 { - padding: 1.5rem !important; } - .pt-lg-4, - .py-lg-4 { - padding-top: 1.5rem !important; } - .pr-lg-4, - .px-lg-4 { - padding-right: 1.5rem !important; } - .pb-lg-4, - .py-lg-4 { - padding-bottom: 1.5rem !important; } - .pl-lg-4, - .px-lg-4 { - padding-left: 1.5rem !important; } - .p-lg-5 { - padding: 3rem !important; } - .pt-lg-5, - .py-lg-5 { - padding-top: 3rem !important; } - .pr-lg-5, - .px-lg-5 { - padding-right: 3rem !important; } - .pb-lg-5, - .py-lg-5 { - padding-bottom: 3rem !important; } - .pl-lg-5, - .px-lg-5 { - padding-left: 3rem !important; } - .m-lg-n1 { - margin: -0.25rem !important; } - .mt-lg-n1, - .my-lg-n1 { - margin-top: -0.25rem !important; } - .mr-lg-n1, - .mx-lg-n1 { - margin-right: -0.25rem !important; } - .mb-lg-n1, - .my-lg-n1 { - margin-bottom: -0.25rem !important; } - .ml-lg-n1, - .mx-lg-n1 { - margin-left: -0.25rem !important; } - .m-lg-n2 { - margin: -0.5rem !important; } - .mt-lg-n2, - .my-lg-n2 { - margin-top: -0.5rem !important; } - .mr-lg-n2, - .mx-lg-n2 { - margin-right: -0.5rem !important; } - .mb-lg-n2, - .my-lg-n2 { - margin-bottom: -0.5rem !important; } - .ml-lg-n2, - .mx-lg-n2 { - margin-left: -0.5rem !important; } - .m-lg-n3 { - margin: -1rem !important; } - .mt-lg-n3, - .my-lg-n3 { - margin-top: -1rem !important; } - .mr-lg-n3, - .mx-lg-n3 { - margin-right: -1rem !important; } - .mb-lg-n3, - .my-lg-n3 { - margin-bottom: -1rem !important; } - .ml-lg-n3, - .mx-lg-n3 { - margin-left: -1rem !important; } - .m-lg-n4 { - margin: -1.5rem !important; } - .mt-lg-n4, - .my-lg-n4 { - margin-top: -1.5rem !important; } - .mr-lg-n4, - .mx-lg-n4 { - margin-right: -1.5rem !important; } - .mb-lg-n4, - .my-lg-n4 { - margin-bottom: -1.5rem !important; } - .ml-lg-n4, - .mx-lg-n4 { - margin-left: -1.5rem !important; } - .m-lg-n5 { - margin: -3rem !important; } - .mt-lg-n5, - .my-lg-n5 { - margin-top: -3rem !important; } - .mr-lg-n5, - .mx-lg-n5 { - margin-right: -3rem !important; } - .mb-lg-n5, - .my-lg-n5 { - margin-bottom: -3rem !important; } - .ml-lg-n5, - .mx-lg-n5 { - margin-left: -3rem !important; } - .m-lg-auto { - margin: auto !important; } - .mt-lg-auto, - .my-lg-auto { - margin-top: auto !important; } - .mr-lg-auto, - .mx-lg-auto { - margin-right: auto !important; } - .mb-lg-auto, - .my-lg-auto { - margin-bottom: auto !important; } - .ml-lg-auto, - .mx-lg-auto { - margin-left: auto !important; } } - -@media (min-width: 4px) { - .m-xl-0 { - margin: 0 !important; } - .mt-xl-0, - .my-xl-0 { - margin-top: 0 !important; } - .mr-xl-0, - .mx-xl-0 { - margin-right: 0 !important; } - .mb-xl-0, - .my-xl-0 { - margin-bottom: 0 !important; } - .ml-xl-0, - .mx-xl-0 { - margin-left: 0 !important; } - .m-xl-1 { - margin: 0.25rem !important; } - .mt-xl-1, - .my-xl-1 { - margin-top: 0.25rem !important; } - .mr-xl-1, - .mx-xl-1 { - margin-right: 0.25rem !important; } - .mb-xl-1, - .my-xl-1 { - margin-bottom: 0.25rem !important; } - .ml-xl-1, - .mx-xl-1 { - margin-left: 0.25rem !important; } - .m-xl-2 { - margin: 0.5rem !important; } - .mt-xl-2, - .my-xl-2 { - margin-top: 0.5rem !important; } - .mr-xl-2, - .mx-xl-2 { - margin-right: 0.5rem !important; } - .mb-xl-2, - .my-xl-2 { - margin-bottom: 0.5rem !important; } - .ml-xl-2, - .mx-xl-2 { - margin-left: 0.5rem !important; } - .m-xl-3 { - margin: 1rem !important; } - .mt-xl-3, - .my-xl-3 { - margin-top: 1rem !important; } - .mr-xl-3, - .mx-xl-3 { - margin-right: 1rem !important; } - .mb-xl-3, - .my-xl-3 { - margin-bottom: 1rem !important; } - .ml-xl-3, - .mx-xl-3 { - margin-left: 1rem !important; } - .m-xl-4 { - margin: 1.5rem !important; } - .mt-xl-4, - .my-xl-4 { - margin-top: 1.5rem !important; } - .mr-xl-4, - .mx-xl-4 { - margin-right: 1.5rem !important; } - .mb-xl-4, - .my-xl-4 { - margin-bottom: 1.5rem !important; } - .ml-xl-4, - .mx-xl-4 { - margin-left: 1.5rem !important; } - .m-xl-5 { - margin: 3rem !important; } - .mt-xl-5, - .my-xl-5 { - margin-top: 3rem !important; } - .mr-xl-5, - .mx-xl-5 { - margin-right: 3rem !important; } - .mb-xl-5, - .my-xl-5 { - margin-bottom: 3rem !important; } - .ml-xl-5, - .mx-xl-5 { - margin-left: 3rem !important; } - .p-xl-0 { - padding: 0 !important; } - .pt-xl-0, - .py-xl-0 { - padding-top: 0 !important; } - .pr-xl-0, - .px-xl-0 { - padding-right: 0 !important; } - .pb-xl-0, - .py-xl-0 { - padding-bottom: 0 !important; } - .pl-xl-0, - .px-xl-0 { - padding-left: 0 !important; } - .p-xl-1 { - padding: 0.25rem !important; } - .pt-xl-1, - .py-xl-1 { - padding-top: 0.25rem !important; } - .pr-xl-1, - .px-xl-1 { - padding-right: 0.25rem !important; } - .pb-xl-1, - .py-xl-1 { - padding-bottom: 0.25rem !important; } - .pl-xl-1, - .px-xl-1 { - padding-left: 0.25rem !important; } - .p-xl-2 { - padding: 0.5rem !important; } - .pt-xl-2, - .py-xl-2 { - padding-top: 0.5rem !important; } - .pr-xl-2, - .px-xl-2 { - padding-right: 0.5rem !important; } - .pb-xl-2, - .py-xl-2 { - padding-bottom: 0.5rem !important; } - .pl-xl-2, - .px-xl-2 { - padding-left: 0.5rem !important; } - .p-xl-3 { - padding: 1rem !important; } - .pt-xl-3, - .py-xl-3 { - padding-top: 1rem !important; } - .pr-xl-3, - .px-xl-3 { - padding-right: 1rem !important; } - .pb-xl-3, - .py-xl-3 { - padding-bottom: 1rem !important; } - .pl-xl-3, - .px-xl-3 { - padding-left: 1rem !important; } - .p-xl-4 { - padding: 1.5rem !important; } - .pt-xl-4, - .py-xl-4 { - padding-top: 1.5rem !important; } - .pr-xl-4, - .px-xl-4 { - padding-right: 1.5rem !important; } - .pb-xl-4, - .py-xl-4 { - padding-bottom: 1.5rem !important; } - .pl-xl-4, - .px-xl-4 { - padding-left: 1.5rem !important; } - .p-xl-5 { - padding: 3rem !important; } - .pt-xl-5, - .py-xl-5 { - padding-top: 3rem !important; } - .pr-xl-5, - .px-xl-5 { - padding-right: 3rem !important; } - .pb-xl-5, - .py-xl-5 { - padding-bottom: 3rem !important; } - .pl-xl-5, - .px-xl-5 { - padding-left: 3rem !important; } - .m-xl-n1 { - margin: -0.25rem !important; } - .mt-xl-n1, - .my-xl-n1 { - margin-top: -0.25rem !important; } - .mr-xl-n1, - .mx-xl-n1 { - margin-right: -0.25rem !important; } - .mb-xl-n1, - .my-xl-n1 { - margin-bottom: -0.25rem !important; } - .ml-xl-n1, - .mx-xl-n1 { - margin-left: -0.25rem !important; } - .m-xl-n2 { - margin: -0.5rem !important; } - .mt-xl-n2, - .my-xl-n2 { - margin-top: -0.5rem !important; } - .mr-xl-n2, - .mx-xl-n2 { - margin-right: -0.5rem !important; } - .mb-xl-n2, - .my-xl-n2 { - margin-bottom: -0.5rem !important; } - .ml-xl-n2, - .mx-xl-n2 { - margin-left: -0.5rem !important; } - .m-xl-n3 { - margin: -1rem !important; } - .mt-xl-n3, - .my-xl-n3 { - margin-top: -1rem !important; } - .mr-xl-n3, - .mx-xl-n3 { - margin-right: -1rem !important; } - .mb-xl-n3, - .my-xl-n3 { - margin-bottom: -1rem !important; } - .ml-xl-n3, - .mx-xl-n3 { - margin-left: -1rem !important; } - .m-xl-n4 { - margin: -1.5rem !important; } - .mt-xl-n4, - .my-xl-n4 { - margin-top: -1.5rem !important; } - .mr-xl-n4, - .mx-xl-n4 { - margin-right: -1.5rem !important; } - .mb-xl-n4, - .my-xl-n4 { - margin-bottom: -1.5rem !important; } - .ml-xl-n4, - .mx-xl-n4 { - margin-left: -1.5rem !important; } - .m-xl-n5 { - margin: -3rem !important; } - .mt-xl-n5, - .my-xl-n5 { - margin-top: -3rem !important; } - .mr-xl-n5, - .mx-xl-n5 { - margin-right: -3rem !important; } - .mb-xl-n5, - .my-xl-n5 { - margin-bottom: -3rem !important; } - .ml-xl-n5, - .mx-xl-n5 { - margin-left: -3rem !important; } - .m-xl-auto { - margin: auto !important; } - .mt-xl-auto, - .my-xl-auto { - margin-top: auto !important; } - .mr-xl-auto, - .mx-xl-auto { - margin-right: auto !important; } - .mb-xl-auto, - .my-xl-auto { - margin-bottom: auto !important; } - .ml-xl-auto, - .mx-xl-auto { - margin-left: auto !important; } } - -.text-monospace, .totp .totp-code { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; } - -.text-justify { - text-align: justify !important; } - -.text-wrap { - white-space: normal !important; } - -.text-nowrap { - white-space: nowrap !important; } - -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - -.text-left { - text-align: left !important; } - -.text-right { - text-align: right !important; } - -.text-center { - text-align: center !important; } - -@media (min-width: 1px) { - .text-sm-left { - text-align: left !important; } - .text-sm-right { - text-align: right !important; } - .text-sm-center { - text-align: center !important; } } - -@media (min-width: 2px) { - .text-md-left { - text-align: left !important; } - .text-md-right { - text-align: right !important; } - .text-md-center { - text-align: center !important; } } - -@media (min-width: 3px) { - .text-lg-left { - text-align: left !important; } - .text-lg-right { - text-align: right !important; } - .text-lg-center { - text-align: center !important; } } - -@media (min-width: 4px) { - .text-xl-left { - text-align: left !important; } - .text-xl-right { - text-align: right !important; } - .text-xl-center { - text-align: center !important; } } - -.text-lowercase { - text-transform: lowercase !important; } - -.text-uppercase { - text-transform: uppercase !important; } - -.text-capitalize { - text-transform: capitalize !important; } - -.font-weight-light { - font-weight: 300 !important; } - -.font-weight-lighter { - font-weight: lighter !important; } - -.font-weight-normal { - font-weight: 400 !important; } - -.font-weight-bold { - font-weight: 700 !important; } - -.font-weight-bolder { - font-weight: bolder !important; } - -.font-italic { - font-style: italic !important; } - -.text-white { - color: #fff !important; } - -.text-primary { - color: #175DDC !important; } - -a.text-primary:hover, a.text-primary:focus { - color: #104097 !important; } - -.text-secondary { - color: #ced4da !important; } - -a.text-secondary:hover, a.text-secondary:focus { - color: #a2aeb9 !important; } - -.text-success { - color: #00a65a !important; } - -a.text-success:hover, a.text-success:focus { - color: #005a31 !important; } - -.text-info { - color: #555555 !important; } - -a.text-info:hover, a.text-info:focus { - color: #2f2f2f !important; } - -.text-warning { - color: #bf7e16 !important; } - -a.text-warning:hover, a.text-warning:focus { - color: #7a510e !important; } - -.text-danger { - color: #dd4b39 !important; } - -a.text-danger:hover, a.text-danger:focus { - color: #ac2d1e !important; } - -.text-light { - color: #f8f9fa !important; } - -a.text-light:hover, a.text-light:focus { - color: #cbd3da !important; } - -.text-dark { - color: #343a40 !important; } - -a.text-dark:hover, a.text-dark:focus { - color: #121416 !important; } - -.text-primary-accent { - color: #1252A3 !important; } - -a.text-primary-accent:hover, a.text-primary-accent:focus { - color: #0a2f5e !important; } - -.text-secondary-alt { - color: #1A3B66 !important; } - -a.text-secondary-alt:hover, a.text-secondary-alt:focus { - color: #0a1829 !important; } - -.text-body { - color: #333333 !important; } - -.text-muted, .card-header small, .modal-header small { - color: #6c757d !important; } - -.text-black-50 { - color: rgba(0, 0, 0, 0.5) !important; } - -.text-white-50 { - color: rgba(255, 255, 255, 0.5) !important; } - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; } - -.text-decoration-none { - text-decoration: none !important; } - -.text-break { - word-break: break-word !important; - overflow-wrap: break-word !important; } - -.text-reset { - color: inherit !important; } - -.visible { - visibility: visible !important; } - -.invisible { - visibility: hidden !important; } - -@media print { - *, - *::before, - *::after { - text-shadow: none !important; - box-shadow: none !important; } - a:not(.btn) { - text-decoration: underline; } - abbr[title]::after { - content: " (" attr(title) ")"; } - pre { - white-space: pre-wrap !important; } - pre, - blockquote { - border: 1px solid #adb5bd; - page-break-inside: avoid; } - thead { - display: table-header-group; } - tr, - img { - page-break-inside: avoid; } - p, - h2, - h3 { - orphans: 3; - widows: 3; } - h2, - h3 { - page-break-after: avoid; } - @page { - size: a3; } - body { - min-width: 3px !important; } - .container { - min-width: 3px !important; } - .navbar { - display: none; } - .badge { - border: 1px solid #000; } - .table { - border-collapse: collapse !important; } - .table td, - .table th { - background-color: #fff !important; } - .table-bordered th, - .table-bordered td { - border: 1px solid #dee2e6 !important; } - .table-dark { - color: inherit; } - .table-dark th, - .table-dark td, - .table-dark thead th, - .table-dark tbody + tbody { - border-color: #dee2e6; } - .table .thead-dark th { - color: inherit; - border-color: #dee2e6; } } - -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url(../fonts/fontawesome-webfont.eot); - src: url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"), url(../fonts/fontawesome-webfont.woff2) format("woff2"), url(../fonts/fontawesome-webfont.woff) format("woff"), url(../fonts/fontawesome-webfont.ttf) format("truetype"), url(../fonts/fontawesome-webfont.svg#fontawesomeregular) format("svg"); - font-weight: normal; - font-style: normal; } - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -15%; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-fw { - width: 1.28571em; - text-align: center; } - -.fa-ul { - padding-left: 0; - margin-left: 2.14286em; - list-style-type: none; } - .fa-ul > li { - position: relative; } - -.fa-li { - position: absolute; - left: -2.14286em; - width: 2.14286em; - top: 0.14286em; - text-align: center; } - .fa-li.fa-lg { - left: -1.85714em; } - -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em; } - -.fa-pull-left { - float: left; } - -.fa-pull-right { - float: right; } - -.fa.fa-pull-left { - margin-right: .3em; } - -.fa.fa-pull-right { - margin-left: .3em; } - -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; } - -.pull-left { - float: left; } - -.fa.pull-left { - margin-right: .3em; } - -.fa.pull-right { - margin-left: .3em; } - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; } - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); } - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); } } - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); } } - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); } - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); } - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); } - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); } - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); } - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; } - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; } - -.fa-stack-1x, .fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: #fff; } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\F000"; } - -.fa-music:before { - content: "\F001"; } - -.fa-search:before { - content: "\F002"; } - -.fa-envelope-o:before { - content: "\F003"; } - -.fa-heart:before { - content: "\F004"; } - -.fa-star:before { - content: "\F005"; } - -.fa-star-o:before { - content: "\F006"; } - -.fa-user:before { - content: "\F007"; } - -.fa-film:before { - content: "\F008"; } - -.fa-th-large:before { - content: "\F009"; } - -.fa-th:before { - content: "\F00A"; } - -.fa-th-list:before { - content: "\F00B"; } - -.fa-check:before { - content: "\F00C"; } - -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\F00D"; } - -.fa-search-plus:before { - content: "\F00E"; } - -.fa-search-minus:before { - content: "\F010"; } - -.fa-power-off:before { - content: "\F011"; } - -.fa-signal:before { - content: "\F012"; } - -.fa-gear:before, -.fa-cog:before { - content: "\F013"; } - -.fa-trash-o:before { - content: "\F014"; } - -.fa-home:before { - content: "\F015"; } - -.fa-file-o:before { - content: "\F016"; } - -.fa-clock-o:before { - content: "\F017"; } - -.fa-road:before { - content: "\F018"; } - -.fa-download:before { - content: "\F019"; } - -.fa-arrow-circle-o-down:before { - content: "\F01A"; } - -.fa-arrow-circle-o-up:before { - content: "\F01B"; } - -.fa-inbox:before { - content: "\F01C"; } - -.fa-play-circle-o:before { - content: "\F01D"; } - -.fa-rotate-right:before, -.fa-repeat:before { - content: "\F01E"; } - -.fa-refresh:before { - content: "\F021"; } - -.fa-list-alt:before { - content: "\F022"; } - -.fa-lock:before { - content: "\F023"; } - -.fa-flag:before { - content: "\F024"; } - -.fa-headphones:before { - content: "\F025"; } - -.fa-volume-off:before { - content: "\F026"; } - -.fa-volume-down:before { - content: "\F027"; } - -.fa-volume-up:before { - content: "\F028"; } - -.fa-qrcode:before { - content: "\F029"; } - -.fa-barcode:before { - content: "\F02A"; } - -.fa-tag:before { - content: "\F02B"; } - -.fa-tags:before { - content: "\F02C"; } - -.fa-book:before { - content: "\F02D"; } - -.fa-bookmark:before { - content: "\F02E"; } - -.fa-print:before { - content: "\F02F"; } - -.fa-camera:before { - content: "\F030"; } - -.fa-font:before { - content: "\F031"; } - -.fa-bold:before { - content: "\F032"; } - -.fa-italic:before { - content: "\F033"; } - -.fa-text-height:before { - content: "\F034"; } - -.fa-text-width:before { - content: "\F035"; } - -.fa-align-left:before { - content: "\F036"; } - -.fa-align-center:before { - content: "\F037"; } - -.fa-align-right:before { - content: "\F038"; } - -.fa-align-justify:before { - content: "\F039"; } - -.fa-list:before { - content: "\F03A"; } - -.fa-dedent:before, -.fa-outdent:before { - content: "\F03B"; } - -.fa-indent:before { - content: "\F03C"; } - -.fa-video-camera:before { - content: "\F03D"; } - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\F03E"; } - -.fa-pencil:before { - content: "\F040"; } - -.fa-map-marker:before { - content: "\F041"; } - -.fa-adjust:before { - content: "\F042"; } - -.fa-tint:before { - content: "\F043"; } - -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\F044"; } - -.fa-share-square-o:before { - content: "\F045"; } - -.fa-check-square-o:before { - content: "\F046"; } - -.fa-arrows:before { - content: "\F047"; } - -.fa-step-backward:before { - content: "\F048"; } - -.fa-fast-backward:before { - content: "\F049"; } - -.fa-backward:before { - content: "\F04A"; } - -.fa-play:before { - content: "\F04B"; } - -.fa-pause:before { - content: "\F04C"; } - -.fa-stop:before { - content: "\F04D"; } - -.fa-forward:before { - content: "\F04E"; } - -.fa-fast-forward:before { - content: "\F050"; } - -.fa-step-forward:before { - content: "\F051"; } - -.fa-eject:before { - content: "\F052"; } - -.fa-chevron-left:before { - content: "\F053"; } - -.fa-chevron-right:before { - content: "\F054"; } - -.fa-plus-circle:before { - content: "\F055"; } - -.fa-minus-circle:before { - content: "\F056"; } - -.fa-times-circle:before { - content: "\F057"; } - -.fa-check-circle:before { - content: "\F058"; } - -.fa-question-circle:before { - content: "\F059"; } - -.fa-info-circle:before { - content: "\F05A"; } - -.fa-crosshairs:before { - content: "\F05B"; } - -.fa-times-circle-o:before { - content: "\F05C"; } - -.fa-check-circle-o:before { - content: "\F05D"; } - -.fa-ban:before { - content: "\F05E"; } - -.fa-arrow-left:before { - content: "\F060"; } - -.fa-arrow-right:before { - content: "\F061"; } - -.fa-arrow-up:before { - content: "\F062"; } - -.fa-arrow-down:before { - content: "\F063"; } - -.fa-mail-forward:before, -.fa-share:before { - content: "\F064"; } - -.fa-expand:before { - content: "\F065"; } - -.fa-compress:before { - content: "\F066"; } - -.fa-plus:before { - content: "\F067"; } - -.fa-minus:before { - content: "\F068"; } - -.fa-asterisk:before { - content: "\F069"; } - -.fa-exclamation-circle:before { - content: "\F06A"; } - -.fa-gift:before { - content: "\F06B"; } - -.fa-leaf:before { - content: "\F06C"; } - -.fa-fire:before { - content: "\F06D"; } - -.fa-eye:before { - content: "\F06E"; } - -.fa-eye-slash:before { - content: "\F070"; } - -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\F071"; } - -.fa-plane:before { - content: "\F072"; } - -.fa-calendar:before { - content: "\F073"; } - -.fa-random:before { - content: "\F074"; } - -.fa-comment:before { - content: "\F075"; } - -.fa-magnet:before { - content: "\F076"; } - -.fa-chevron-up:before { - content: "\F077"; } - -.fa-chevron-down:before { - content: "\F078"; } - -.fa-retweet:before { - content: "\F079"; } - -.fa-shopping-cart:before { - content: "\F07A"; } - -.fa-folder:before { - content: "\F07B"; } - -.fa-folder-open:before { - content: "\F07C"; } - -.fa-arrows-v:before { - content: "\F07D"; } - -.fa-arrows-h:before { - content: "\F07E"; } - -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\F080"; } - -.fa-twitter-square:before { - content: "\F081"; } - -.fa-facebook-square:before { - content: "\F082"; } - -.fa-camera-retro:before { - content: "\F083"; } - -.fa-key:before { - content: "\F084"; } - -.fa-gears:before, -.fa-cogs:before { - content: "\F085"; } - -.fa-comments:before { - content: "\F086"; } - -.fa-thumbs-o-up:before { - content: "\F087"; } - -.fa-thumbs-o-down:before { - content: "\F088"; } - -.fa-star-half:before { - content: "\F089"; } - -.fa-heart-o:before { - content: "\F08A"; } - -.fa-sign-out:before { - content: "\F08B"; } - -.fa-linkedin-square:before { - content: "\F08C"; } - -.fa-thumb-tack:before { - content: "\F08D"; } - -.fa-external-link:before { - content: "\F08E"; } - -.fa-sign-in:before { - content: "\F090"; } - -.fa-trophy:before { - content: "\F091"; } - -.fa-github-square:before { - content: "\F092"; } - -.fa-upload:before { - content: "\F093"; } - -.fa-lemon-o:before { - content: "\F094"; } - -.fa-phone:before { - content: "\F095"; } - -.fa-square-o:before { - content: "\F096"; } - -.fa-bookmark-o:before { - content: "\F097"; } - -.fa-phone-square:before { - content: "\F098"; } - -.fa-twitter:before { - content: "\F099"; } - -.fa-facebook-f:before, -.fa-facebook:before { - content: "\F09A"; } - -.fa-github:before { - content: "\F09B"; } - -.fa-unlock:before { - content: "\F09C"; } - -.fa-credit-card:before { - content: "\F09D"; } - -.fa-feed:before, -.fa-rss:before { - content: "\F09E"; } - -.fa-hdd-o:before { - content: "\F0A0"; } - -.fa-bullhorn:before { - content: "\F0A1"; } - -.fa-bell:before { - content: "\F0F3"; } - -.fa-certificate:before { - content: "\F0A3"; } - -.fa-hand-o-right:before { - content: "\F0A4"; } - -.fa-hand-o-left:before { - content: "\F0A5"; } - -.fa-hand-o-up:before { - content: "\F0A6"; } - -.fa-hand-o-down:before { - content: "\F0A7"; } - -.fa-arrow-circle-left:before { - content: "\F0A8"; } - -.fa-arrow-circle-right:before { - content: "\F0A9"; } - -.fa-arrow-circle-up:before { - content: "\F0AA"; } - -.fa-arrow-circle-down:before { - content: "\F0AB"; } - -.fa-globe:before { - content: "\F0AC"; } - -.fa-wrench:before { - content: "\F0AD"; } - -.fa-tasks:before { - content: "\F0AE"; } - -.fa-filter:before { - content: "\F0B0"; } - -.fa-briefcase:before { - content: "\F0B1"; } - -.fa-arrows-alt:before { - content: "\F0B2"; } - -.fa-group:before, -.fa-users:before { - content: "\F0C0"; } - -.fa-chain:before, -.fa-link:before { - content: "\F0C1"; } - -.fa-cloud:before { - content: "\F0C2"; } - -.fa-flask:before { - content: "\F0C3"; } - -.fa-cut:before, -.fa-scissors:before { - content: "\F0C4"; } - -.fa-copy:before, -.fa-files-o:before { - content: "\F0C5"; } - -.fa-paperclip:before { - content: "\F0C6"; } - -.fa-save:before, -.fa-floppy-o:before { - content: "\F0C7"; } - -.fa-square:before { - content: "\F0C8"; } - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\F0C9"; } - -.fa-list-ul:before { - content: "\F0CA"; } - -.fa-list-ol:before { - content: "\F0CB"; } - -.fa-strikethrough:before { - content: "\F0CC"; } - -.fa-underline:before { - content: "\F0CD"; } - -.fa-table:before { - content: "\F0CE"; } - -.fa-magic:before { - content: "\F0D0"; } - -.fa-truck:before { - content: "\F0D1"; } - -.fa-pinterest:before { - content: "\F0D2"; } - -.fa-pinterest-square:before { - content: "\F0D3"; } - -.fa-google-plus-square:before { - content: "\F0D4"; } - -.fa-google-plus:before { - content: "\F0D5"; } - -.fa-money:before { - content: "\F0D6"; } - -.fa-caret-down:before { - content: "\F0D7"; } - -.fa-caret-up:before { - content: "\F0D8"; } - -.fa-caret-left:before { - content: "\F0D9"; } - -.fa-caret-right:before { - content: "\F0DA"; } - -.fa-columns:before { - content: "\F0DB"; } - -.fa-unsorted:before, -.fa-sort:before { - content: "\F0DC"; } - -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\F0DD"; } - -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\F0DE"; } - -.fa-envelope:before { - content: "\F0E0"; } - -.fa-linkedin:before { - content: "\F0E1"; } - -.fa-rotate-left:before, -.fa-undo:before { - content: "\F0E2"; } - -.fa-legal:before, -.fa-gavel:before { - content: "\F0E3"; } - -.fa-dashboard:before, -.fa-tachometer:before { - content: "\F0E4"; } - -.fa-comment-o:before { - content: "\F0E5"; } - -.fa-comments-o:before { - content: "\F0E6"; } - -.fa-flash:before, -.fa-bolt:before { - content: "\F0E7"; } - -.fa-sitemap:before { - content: "\F0E8"; } - -.fa-umbrella:before { - content: "\F0E9"; } - -.fa-paste:before, -.fa-clipboard:before { - content: "\F0EA"; } - -.fa-lightbulb-o:before { - content: "\F0EB"; } - -.fa-exchange:before { - content: "\F0EC"; } - -.fa-cloud-download:before { - content: "\F0ED"; } - -.fa-cloud-upload:before { - content: "\F0EE"; } - -.fa-user-md:before { - content: "\F0F0"; } - -.fa-stethoscope:before { - content: "\F0F1"; } - -.fa-suitcase:before { - content: "\F0F2"; } - -.fa-bell-o:before { - content: "\F0A2"; } - -.fa-coffee:before { - content: "\F0F4"; } - -.fa-cutlery:before { - content: "\F0F5"; } - -.fa-file-text-o:before { - content: "\F0F6"; } - -.fa-building-o:before { - content: "\F0F7"; } - -.fa-hospital-o:before { - content: "\F0F8"; } - -.fa-ambulance:before { - content: "\F0F9"; } - -.fa-medkit:before { - content: "\F0FA"; } - -.fa-fighter-jet:before { - content: "\F0FB"; } - -.fa-beer:before { - content: "\F0FC"; } - -.fa-h-square:before { - content: "\F0FD"; } - -.fa-plus-square:before { - content: "\F0FE"; } - -.fa-angle-double-left:before { - content: "\F100"; } - -.fa-angle-double-right:before { - content: "\F101"; } - -.fa-angle-double-up:before { - content: "\F102"; } - -.fa-angle-double-down:before { - content: "\F103"; } - -.fa-angle-left:before { - content: "\F104"; } - -.fa-angle-right:before { - content: "\F105"; } - -.fa-angle-up:before { - content: "\F106"; } - -.fa-angle-down:before { - content: "\F107"; } - -.fa-desktop:before { - content: "\F108"; } - -.fa-laptop:before { - content: "\F109"; } - -.fa-tablet:before { - content: "\F10A"; } - -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\F10B"; } - -.fa-circle-o:before { - content: "\F10C"; } - -.fa-quote-left:before { - content: "\F10D"; } - -.fa-quote-right:before { - content: "\F10E"; } - -.fa-spinner:before { - content: "\F110"; } - -.fa-circle:before { - content: "\F111"; } - -.fa-mail-reply:before, -.fa-reply:before { - content: "\F112"; } - -.fa-github-alt:before { - content: "\F113"; } - -.fa-folder-o:before { - content: "\F114"; } - -.fa-folder-open-o:before { - content: "\F115"; } - -.fa-smile-o:before { - content: "\F118"; } - -.fa-frown-o:before { - content: "\F119"; } - -.fa-meh-o:before { - content: "\F11A"; } - -.fa-gamepad:before { - content: "\F11B"; } - -.fa-keyboard-o:before { - content: "\F11C"; } - -.fa-flag-o:before { - content: "\F11D"; } - -.fa-flag-checkered:before { - content: "\F11E"; } - -.fa-terminal:before { - content: "\F120"; } - -.fa-code:before { - content: "\F121"; } - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\F122"; } - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\F123"; } - -.fa-location-arrow:before { - content: "\F124"; } - -.fa-crop:before { - content: "\F125"; } - -.fa-code-fork:before { - content: "\F126"; } - -.fa-unlink:before, -.fa-chain-broken:before { - content: "\F127"; } - -.fa-question:before { - content: "\F128"; } - -.fa-info:before { - content: "\F129"; } - -.fa-exclamation:before { - content: "\F12A"; } - -.fa-superscript:before { - content: "\F12B"; } - -.fa-subscript:before { - content: "\F12C"; } - -.fa-eraser:before { - content: "\F12D"; } - -.fa-puzzle-piece:before { - content: "\F12E"; } - -.fa-microphone:before { - content: "\F130"; } - -.fa-microphone-slash:before { - content: "\F131"; } - -.fa-shield:before { - content: "\F132"; } - -.fa-calendar-o:before { - content: "\F133"; } - -.fa-fire-extinguisher:before { - content: "\F134"; } - -.fa-rocket:before { - content: "\F135"; } - -.fa-maxcdn:before { - content: "\F136"; } - -.fa-chevron-circle-left:before { - content: "\F137"; } - -.fa-chevron-circle-right:before { - content: "\F138"; } - -.fa-chevron-circle-up:before { - content: "\F139"; } - -.fa-chevron-circle-down:before { - content: "\F13A"; } - -.fa-html5:before { - content: "\F13B"; } - -.fa-css3:before { - content: "\F13C"; } - -.fa-anchor:before { - content: "\F13D"; } - -.fa-unlock-alt:before { - content: "\F13E"; } - -.fa-bullseye:before { - content: "\F140"; } - -.fa-ellipsis-h:before { - content: "\F141"; } - -.fa-ellipsis-v:before { - content: "\F142"; } - -.fa-rss-square:before { - content: "\F143"; } - -.fa-play-circle:before { - content: "\F144"; } - -.fa-ticket:before { - content: "\F145"; } - -.fa-minus-square:before { - content: "\F146"; } - -.fa-minus-square-o:before { - content: "\F147"; } - -.fa-level-up:before { - content: "\F148"; } - -.fa-level-down:before { - content: "\F149"; } - -.fa-check-square:before { - content: "\F14A"; } - -.fa-pencil-square:before { - content: "\F14B"; } - -.fa-external-link-square:before { - content: "\F14C"; } - -.fa-share-square:before { - content: "\F14D"; } - -.fa-compass:before { - content: "\F14E"; } - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\F150"; } - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\F151"; } - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\F152"; } - -.fa-euro:before, -.fa-eur:before { - content: "\F153"; } - -.fa-gbp:before { - content: "\F154"; } - -.fa-dollar:before, -.fa-usd:before { - content: "\F155"; } - -.fa-rupee:before, -.fa-inr:before { - content: "\F156"; } - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\F157"; } - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\F158"; } - -.fa-won:before, -.fa-krw:before { - content: "\F159"; } - -.fa-bitcoin:before, -.fa-btc:before { - content: "\F15A"; } - -.fa-file:before { - content: "\F15B"; } - -.fa-file-text:before { - content: "\F15C"; } - -.fa-sort-alpha-asc:before { - content: "\F15D"; } - -.fa-sort-alpha-desc:before { - content: "\F15E"; } - -.fa-sort-amount-asc:before { - content: "\F160"; } - -.fa-sort-amount-desc:before { - content: "\F161"; } - -.fa-sort-numeric-asc:before { - content: "\F162"; } - -.fa-sort-numeric-desc:before { - content: "\F163"; } - -.fa-thumbs-up:before { - content: "\F164"; } - -.fa-thumbs-down:before { - content: "\F165"; } - -.fa-youtube-square:before { - content: "\F166"; } - -.fa-youtube:before { - content: "\F167"; } - -.fa-xing:before { - content: "\F168"; } - -.fa-xing-square:before { - content: "\F169"; } - -.fa-youtube-play:before { - content: "\F16A"; } - -.fa-dropbox:before { - content: "\F16B"; } - -.fa-stack-overflow:before { - content: "\F16C"; } - -.fa-instagram:before { - content: "\F16D"; } - -.fa-flickr:before { - content: "\F16E"; } - -.fa-adn:before { - content: "\F170"; } - -.fa-bitbucket:before { - content: "\F171"; } - -.fa-bitbucket-square:before { - content: "\F172"; } - -.fa-tumblr:before { - content: "\F173"; } - -.fa-tumblr-square:before { - content: "\F174"; } - -.fa-long-arrow-down:before { - content: "\F175"; } - -.fa-long-arrow-up:before { - content: "\F176"; } - -.fa-long-arrow-left:before { - content: "\F177"; } - -.fa-long-arrow-right:before { - content: "\F178"; } - -.fa-apple:before { - content: "\F179"; } - -.fa-windows:before { - content: "\F17A"; } - -.fa-android:before { - content: "\F17B"; } - -.fa-linux:before { - content: "\F17C"; } - -.fa-dribbble:before { - content: "\F17D"; } - -.fa-skype:before { - content: "\F17E"; } - -.fa-foursquare:before { - content: "\F180"; } - -.fa-trello:before { - content: "\F181"; } - -.fa-female:before { - content: "\F182"; } - -.fa-male:before { - content: "\F183"; } - -.fa-gittip:before, -.fa-gratipay:before { - content: "\F184"; } - -.fa-sun-o:before { - content: "\F185"; } - -.fa-moon-o:before { - content: "\F186"; } - -.fa-archive:before { - content: "\F187"; } - -.fa-bug:before { - content: "\F188"; } - -.fa-vk:before { - content: "\F189"; } - -.fa-weibo:before { - content: "\F18A"; } - -.fa-renren:before { - content: "\F18B"; } - -.fa-pagelines:before { - content: "\F18C"; } - -.fa-stack-exchange:before { - content: "\F18D"; } - -.fa-arrow-circle-o-right:before { - content: "\F18E"; } - -.fa-arrow-circle-o-left:before { - content: "\F190"; } - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\F191"; } - -.fa-dot-circle-o:before { - content: "\F192"; } - -.fa-wheelchair:before { - content: "\F193"; } - -.fa-vimeo-square:before { - content: "\F194"; } - -.fa-turkish-lira:before, -.fa-try:before { - content: "\F195"; } - -.fa-plus-square-o:before { - content: "\F196"; } - -.fa-space-shuttle:before { - content: "\F197"; } - -.fa-slack:before { - content: "\F198"; } - -.fa-envelope-square:before { - content: "\F199"; } - -.fa-wordpress:before { - content: "\F19A"; } - -.fa-openid:before { - content: "\F19B"; } - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\F19C"; } - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\F19D"; } - -.fa-yahoo:before { - content: "\F19E"; } - -.fa-google:before { - content: "\F1A0"; } - -.fa-reddit:before { - content: "\F1A1"; } - -.fa-reddit-square:before { - content: "\F1A2"; } - -.fa-stumbleupon-circle:before { - content: "\F1A3"; } - -.fa-stumbleupon:before { - content: "\F1A4"; } - -.fa-delicious:before { - content: "\F1A5"; } - -.fa-digg:before { - content: "\F1A6"; } - -.fa-pied-piper-pp:before { - content: "\F1A7"; } - -.fa-pied-piper-alt:before { - content: "\F1A8"; } - -.fa-drupal:before { - content: "\F1A9"; } - -.fa-joomla:before { - content: "\F1AA"; } - -.fa-language:before { - content: "\F1AB"; } - -.fa-fax:before { - content: "\F1AC"; } - -.fa-building:before { - content: "\F1AD"; } - -.fa-child:before { - content: "\F1AE"; } - -.fa-paw:before { - content: "\F1B0"; } - -.fa-spoon:before { - content: "\F1B1"; } - -.fa-cube:before { - content: "\F1B2"; } - -.fa-cubes:before { - content: "\F1B3"; } - -.fa-behance:before { - content: "\F1B4"; } - -.fa-behance-square:before { - content: "\F1B5"; } - -.fa-steam:before { - content: "\F1B6"; } - -.fa-steam-square:before { - content: "\F1B7"; } - -.fa-recycle:before { - content: "\F1B8"; } - -.fa-automobile:before, -.fa-car:before { - content: "\F1B9"; } - -.fa-cab:before, -.fa-taxi:before { - content: "\F1BA"; } - -.fa-tree:before { - content: "\F1BB"; } - -.fa-spotify:before { - content: "\F1BC"; } - -.fa-deviantart:before { - content: "\F1BD"; } - -.fa-soundcloud:before { - content: "\F1BE"; } - -.fa-database:before { - content: "\F1C0"; } - -.fa-file-pdf-o:before { - content: "\F1C1"; } - -.fa-file-word-o:before { - content: "\F1C2"; } - -.fa-file-excel-o:before { - content: "\F1C3"; } - -.fa-file-powerpoint-o:before { - content: "\F1C4"; } - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\F1C5"; } - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\F1C6"; } - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\F1C7"; } - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\F1C8"; } - -.fa-file-code-o:before { - content: "\F1C9"; } - -.fa-vine:before { - content: "\F1CA"; } - -.fa-codepen:before { - content: "\F1CB"; } - -.fa-jsfiddle:before { - content: "\F1CC"; } - -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\F1CD"; } - -.fa-circle-o-notch:before { - content: "\F1CE"; } - -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "\F1D0"; } - -.fa-ge:before, -.fa-empire:before { - content: "\F1D1"; } - -.fa-git-square:before { - content: "\F1D2"; } - -.fa-git:before { - content: "\F1D3"; } - -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "\F1D4"; } - -.fa-tencent-weibo:before { - content: "\F1D5"; } - -.fa-qq:before { - content: "\F1D6"; } - -.fa-wechat:before, -.fa-weixin:before { - content: "\F1D7"; } - -.fa-send:before, -.fa-paper-plane:before { - content: "\F1D8"; } - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\F1D9"; } - -.fa-history:before { - content: "\F1DA"; } - -.fa-circle-thin:before { - content: "\F1DB"; } - -.fa-header:before { - content: "\F1DC"; } - -.fa-paragraph:before { - content: "\F1DD"; } - -.fa-sliders:before { - content: "\F1DE"; } - -.fa-share-alt:before { - content: "\F1E0"; } - -.fa-share-alt-square:before { - content: "\F1E1"; } - -.fa-bomb:before { - content: "\F1E2"; } - -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\F1E3"; } - -.fa-tty:before { - content: "\F1E4"; } - -.fa-binoculars:before { - content: "\F1E5"; } - -.fa-plug:before { - content: "\F1E6"; } - -.fa-slideshare:before { - content: "\F1E7"; } - -.fa-twitch:before { - content: "\F1E8"; } - -.fa-yelp:before { - content: "\F1E9"; } - -.fa-newspaper-o:before { - content: "\F1EA"; } - -.fa-wifi:before { - content: "\F1EB"; } - -.fa-calculator:before { - content: "\F1EC"; } - -.fa-paypal:before { - content: "\F1ED"; } - -.fa-google-wallet:before { - content: "\F1EE"; } - -.fa-cc-visa:before { - content: "\F1F0"; } - -.fa-cc-mastercard:before { - content: "\F1F1"; } - -.fa-cc-discover:before { - content: "\F1F2"; } - -.fa-cc-amex:before { - content: "\F1F3"; } - -.fa-cc-paypal:before { - content: "\F1F4"; } - -.fa-cc-stripe:before { - content: "\F1F5"; } - -.fa-bell-slash:before { - content: "\F1F6"; } - -.fa-bell-slash-o:before { - content: "\F1F7"; } - -.fa-trash:before { - content: "\F1F8"; } - -.fa-copyright:before { - content: "\F1F9"; } - -.fa-at:before { - content: "\F1FA"; } - -.fa-eyedropper:before { - content: "\F1FB"; } - -.fa-paint-brush:before { - content: "\F1FC"; } - -.fa-birthday-cake:before { - content: "\F1FD"; } - -.fa-area-chart:before { - content: "\F1FE"; } - -.fa-pie-chart:before { - content: "\F200"; } - -.fa-line-chart:before { - content: "\F201"; } - -.fa-lastfm:before { - content: "\F202"; } - -.fa-lastfm-square:before { - content: "\F203"; } - -.fa-toggle-off:before { - content: "\F204"; } - -.fa-toggle-on:before { - content: "\F205"; } - -.fa-bicycle:before { - content: "\F206"; } - -.fa-bus:before { - content: "\F207"; } - -.fa-ioxhost:before { - content: "\F208"; } - -.fa-angellist:before { - content: "\F209"; } - -.fa-cc:before { - content: "\F20A"; } - -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\F20B"; } - -.fa-meanpath:before { - content: "\F20C"; } - -.fa-buysellads:before { - content: "\F20D"; } - -.fa-connectdevelop:before { - content: "\F20E"; } - -.fa-dashcube:before { - content: "\F210"; } - -.fa-forumbee:before { - content: "\F211"; } - -.fa-leanpub:before { - content: "\F212"; } - -.fa-sellsy:before { - content: "\F213"; } - -.fa-shirtsinbulk:before { - content: "\F214"; } - -.fa-simplybuilt:before { - content: "\F215"; } - -.fa-skyatlas:before { - content: "\F216"; } - -.fa-cart-plus:before { - content: "\F217"; } - -.fa-cart-arrow-down:before { - content: "\F218"; } - -.fa-diamond:before { - content: "\F219"; } - -.fa-ship:before { - content: "\F21A"; } - -.fa-user-secret:before { - content: "\F21B"; } - -.fa-motorcycle:before { - content: "\F21C"; } - -.fa-street-view:before { - content: "\F21D"; } - -.fa-heartbeat:before { - content: "\F21E"; } - -.fa-venus:before { - content: "\F221"; } - -.fa-mars:before { - content: "\F222"; } - -.fa-mercury:before { - content: "\F223"; } - -.fa-intersex:before, -.fa-transgender:before { - content: "\F224"; } - -.fa-transgender-alt:before { - content: "\F225"; } - -.fa-venus-double:before { - content: "\F226"; } - -.fa-mars-double:before { - content: "\F227"; } - -.fa-venus-mars:before { - content: "\F228"; } - -.fa-mars-stroke:before { - content: "\F229"; } - -.fa-mars-stroke-v:before { - content: "\F22A"; } - -.fa-mars-stroke-h:before { - content: "\F22B"; } - -.fa-neuter:before { - content: "\F22C"; } - -.fa-genderless:before { - content: "\F22D"; } - -.fa-facebook-official:before { - content: "\F230"; } - -.fa-pinterest-p:before { - content: "\F231"; } - -.fa-whatsapp:before { - content: "\F232"; } - -.fa-server:before { - content: "\F233"; } - -.fa-user-plus:before { - content: "\F234"; } - -.fa-user-times:before { - content: "\F235"; } - -.fa-hotel:before, -.fa-bed:before { - content: "\F236"; } - -.fa-viacoin:before { - content: "\F237"; } - -.fa-train:before { - content: "\F238"; } - -.fa-subway:before { - content: "\F239"; } - -.fa-medium:before { - content: "\F23A"; } - -.fa-yc:before, -.fa-y-combinator:before { - content: "\F23B"; } - -.fa-optin-monster:before { - content: "\F23C"; } - -.fa-opencart:before { - content: "\F23D"; } - -.fa-expeditedssl:before { - content: "\F23E"; } - -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "\F240"; } - -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "\F241"; } - -.fa-battery-2:before, -.fa-battery-half:before { - content: "\F242"; } - -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "\F243"; } - -.fa-battery-0:before, -.fa-battery-empty:before { - content: "\F244"; } - -.fa-mouse-pointer:before { - content: "\F245"; } - -.fa-i-cursor:before { - content: "\F246"; } - -.fa-object-group:before { - content: "\F247"; } - -.fa-object-ungroup:before { - content: "\F248"; } - -.fa-sticky-note:before { - content: "\F249"; } - -.fa-sticky-note-o:before { - content: "\F24A"; } - -.fa-cc-jcb:before { - content: "\F24B"; } - -.fa-cc-diners-club:before { - content: "\F24C"; } - -.fa-clone:before { - content: "\F24D"; } - -.fa-balance-scale:before { - content: "\F24E"; } - -.fa-hourglass-o:before { - content: "\F250"; } - -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "\F251"; } - -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "\F252"; } - -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "\F253"; } - -.fa-hourglass:before { - content: "\F254"; } - -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "\F255"; } - -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "\F256"; } - -.fa-hand-scissors-o:before { - content: "\F257"; } - -.fa-hand-lizard-o:before { - content: "\F258"; } - -.fa-hand-spock-o:before { - content: "\F259"; } - -.fa-hand-pointer-o:before { - content: "\F25A"; } - -.fa-hand-peace-o:before { - content: "\F25B"; } - -.fa-trademark:before { - content: "\F25C"; } - -.fa-registered:before { - content: "\F25D"; } - -.fa-creative-commons:before { - content: "\F25E"; } - -.fa-gg:before { - content: "\F260"; } - -.fa-gg-circle:before { - content: "\F261"; } - -.fa-tripadvisor:before { - content: "\F262"; } - -.fa-odnoklassniki:before { - content: "\F263"; } - -.fa-odnoklassniki-square:before { - content: "\F264"; } - -.fa-get-pocket:before { - content: "\F265"; } - -.fa-wikipedia-w:before { - content: "\F266"; } - -.fa-safari:before { - content: "\F267"; } - -.fa-chrome:before { - content: "\F268"; } - -.fa-firefox:before { - content: "\F269"; } - -.fa-opera:before { - content: "\F26A"; } - -.fa-internet-explorer:before { - content: "\F26B"; } - -.fa-tv:before, -.fa-television:before { - content: "\F26C"; } - -.fa-contao:before { - content: "\F26D"; } - -.fa-500px:before { - content: "\F26E"; } - -.fa-amazon:before { - content: "\F270"; } - -.fa-calendar-plus-o:before { - content: "\F271"; } - -.fa-calendar-minus-o:before { - content: "\F272"; } - -.fa-calendar-times-o:before { - content: "\F273"; } - -.fa-calendar-check-o:before { - content: "\F274"; } - -.fa-industry:before { - content: "\F275"; } - -.fa-map-pin:before { - content: "\F276"; } - -.fa-map-signs:before { - content: "\F277"; } - -.fa-map-o:before { - content: "\F278"; } - -.fa-map:before { - content: "\F279"; } - -.fa-commenting:before { - content: "\F27A"; } - -.fa-commenting-o:before { - content: "\F27B"; } - -.fa-houzz:before { - content: "\F27C"; } - -.fa-vimeo:before { - content: "\F27D"; } - -.fa-black-tie:before { - content: "\F27E"; } - -.fa-fonticons:before { - content: "\F280"; } - -.fa-reddit-alien:before { - content: "\F281"; } - -.fa-edge:before { - content: "\F282"; } - -.fa-credit-card-alt:before { - content: "\F283"; } - -.fa-codiepie:before { - content: "\F284"; } - -.fa-modx:before { - content: "\F285"; } - -.fa-fort-awesome:before { - content: "\F286"; } - -.fa-usb:before { - content: "\F287"; } - -.fa-product-hunt:before { - content: "\F288"; } - -.fa-mixcloud:before { - content: "\F289"; } - -.fa-scribd:before { - content: "\F28A"; } - -.fa-pause-circle:before { - content: "\F28B"; } - -.fa-pause-circle-o:before { - content: "\F28C"; } - -.fa-stop-circle:before { - content: "\F28D"; } - -.fa-stop-circle-o:before { - content: "\F28E"; } - -.fa-shopping-bag:before { - content: "\F290"; } - -.fa-shopping-basket:before { - content: "\F291"; } - -.fa-hashtag:before { - content: "\F292"; } - -.fa-bluetooth:before { - content: "\F293"; } - -.fa-bluetooth-b:before { - content: "\F294"; } - -.fa-percent:before { - content: "\F295"; } - -.fa-gitlab:before { - content: "\F296"; } - -.fa-wpbeginner:before { - content: "\F297"; } - -.fa-wpforms:before { - content: "\F298"; } - -.fa-envira:before { - content: "\F299"; } - -.fa-universal-access:before { - content: "\F29A"; } - -.fa-wheelchair-alt:before { - content: "\F29B"; } - -.fa-question-circle-o:before { - content: "\F29C"; } - -.fa-blind:before { - content: "\F29D"; } - -.fa-audio-description:before { - content: "\F29E"; } - -.fa-volume-control-phone:before { - content: "\F2A0"; } - -.fa-braille:before { - content: "\F2A1"; } - -.fa-assistive-listening-systems:before { - content: "\F2A2"; } - -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "\F2A3"; } - -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "\F2A4"; } - -.fa-glide:before { - content: "\F2A5"; } - -.fa-glide-g:before { - content: "\F2A6"; } - -.fa-signing:before, -.fa-sign-language:before { - content: "\F2A7"; } - -.fa-low-vision:before { - content: "\F2A8"; } - -.fa-viadeo:before { - content: "\F2A9"; } - -.fa-viadeo-square:before { - content: "\F2AA"; } - -.fa-snapchat:before { - content: "\F2AB"; } - -.fa-snapchat-ghost:before { - content: "\F2AC"; } - -.fa-snapchat-square:before { - content: "\F2AD"; } - -.fa-pied-piper:before { - content: "\F2AE"; } - -.fa-first-order:before { - content: "\F2B0"; } - -.fa-yoast:before { - content: "\F2B1"; } - -.fa-themeisle:before { - content: "\F2B2"; } - -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "\F2B3"; } - -.fa-fa:before, -.fa-font-awesome:before { - content: "\F2B4"; } - -.fa-handshake-o:before { - content: "\F2B5"; } - -.fa-envelope-open:before { - content: "\F2B6"; } - -.fa-envelope-open-o:before { - content: "\F2B7"; } - -.fa-linode:before { - content: "\F2B8"; } - -.fa-address-book:before { - content: "\F2B9"; } - -.fa-address-book-o:before { - content: "\F2BA"; } - -.fa-vcard:before, -.fa-address-card:before { - content: "\F2BB"; } - -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "\F2BC"; } - -.fa-user-circle:before { - content: "\F2BD"; } - -.fa-user-circle-o:before { - content: "\F2BE"; } - -.fa-user-o:before { - content: "\F2C0"; } - -.fa-id-badge:before { - content: "\F2C1"; } - -.fa-drivers-license:before, -.fa-id-card:before { - content: "\F2C2"; } - -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "\F2C3"; } - -.fa-quora:before { - content: "\F2C4"; } - -.fa-free-code-camp:before { - content: "\F2C5"; } - -.fa-telegram:before { - content: "\F2C6"; } - -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "\F2C7"; } - -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "\F2C8"; } - -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "\F2C9"; } - -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "\F2CA"; } - -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "\F2CB"; } - -.fa-shower:before { - content: "\F2CC"; } - -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "\F2CD"; } - -.fa-podcast:before { - content: "\F2CE"; } - -.fa-window-maximize:before { - content: "\F2D0"; } - -.fa-window-minimize:before { - content: "\F2D1"; } - -.fa-window-restore:before { - content: "\F2D2"; } - -.fa-times-rectangle:before, -.fa-window-close:before { - content: "\F2D3"; } - -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "\F2D4"; } - -.fa-bandcamp:before { - content: "\F2D5"; } - -.fa-grav:before { - content: "\F2D6"; } - -.fa-etsy:before { - content: "\F2D7"; } - -.fa-imdb:before { - content: "\F2D8"; } - -.fa-ravelry:before { - content: "\F2D9"; } - -.fa-eercast:before { - content: "\F2DA"; } - -.fa-microchip:before { - content: "\F2DB"; } - -.fa-snowflake-o:before { - content: "\F2DC"; } - -.fa-superpowers:before { - content: "\F2DD"; } - -.fa-wpexplorer:before { - content: "\F2DE"; } - -.fa-meetup:before { - content: "\F2E0"; } - -.sr-only, .table.table-list tr:not(:hover) td.table-list-options > .dropdown:not(.show) button:not(:focus):not(:active), .table.table-list tr:not(:hover) td.table-list-options > button:not(:focus):not(:active) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; } - -.toaster-icon { - position: absolute; - left: 0.0em; - top: 0.0em; - font-weight: normal; - color: #ffffff; } - -.toast-title { - font-weight: bold; } - -.toast-message { - -ms-word-wrap: break-word; - word-wrap: break-word; } - -.toast-message a, -.toast-message label { - color: #ffffff; } - -.toast-message a:hover { - color: #cccccc; - text-decoration: none; } - -.toast-close-button { - position: relative; - right: -0.3em; - top: -0.3em; - float: right; - font-size: 20px; - font-weight: bold; - color: #ffffff; - -webkit-text-shadow: 0 1px 0 #ffffff; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.8; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); - filter: alpha(opacity=80); - z-index: 999; } - -.toast-close-button:hover, .toast-close-button:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); - filter: alpha(opacity=40); } - -/*Additional properties for button version - iOS requires the button element instead of an anchor tag. - If you want the anchor version, it requires `href="#"`.*/ -button.toast-close-button { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; } - -.toast-content { - display: inline-block; - width: 95%; } - -.toast-top-full-width { - top: 0; - right: 0; - width: 100%; } - -.toast-bottom-full-width { - bottom: 0; - right: 0; - width: 100%; } - -.toast-top-left { - top: 12px; - left: 12px; } - -.toast-top-center { - top: 12px; } - -.toast-top-right { - top: 12px; - right: 12px; } - -.toast-bottom-right { - right: 12px; - bottom: 12px; } - -.toast-bottom-center { - bottom: 12px; } - -.toast-bottom-left { - bottom: 12px; - left: 12px; } - -.toast-center { - top: 45%; } - -#toast-container { - position: fixed; - z-index: 999999; - /*overrides*/ - pointer-events: auto; } - -#toast-container.toast-center, -#toast-container.toast-top-center, -#toast-container.toast-bottom-center { - width: 100%; - pointer-events: none; - left: 0; - right: 0; } - -#toast-container.toast-center > div, -#toast-container.toast-top-center > div, -#toast-container.toast-bottom-center > div { - margin: 6px auto; - pointer-events: auto; } - -#toast-container.toast-center > button, -#toast-container.toast-top-center > button, -#toast-container.toast-bottom-center > button { - pointer-events: auto; } - -#toast-container * { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; } - -#toast-container > div { - margin: 0 0 6px; - padding: 15px 15px 15px 50px; - width: 300px; - -moz-border-radius: 3px 3px 3px 3px; - -webkit-border-radius: 3px 3px 3px 3px; - border-radius: 3px 3px 3px 3px; - background-position: 15px center; - background-repeat: no-repeat; - -moz-box-shadow: 0 0 12px #999999; - -webkit-box-shadow: 0 0 12px #999999; - box-shadow: 0 0 12px #999999; - color: #ffffff; - opacity: 0.8; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); - filter: alpha(opacity=80); } - -#toast-container > :hover { - -moz-box-shadow: 0 0 12px #000000; - -webkit-box-shadow: 0 0 12px #000000; - box-shadow: 0 0 12px #000000; - opacity: 1; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); - filter: alpha(opacity=100); - cursor: pointer; } - -.icon-success { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; } - -.icon-error { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; } - -.icon-info { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; } - -.icon-wait { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/gif;base64,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") !important; } - -.icon-warning { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; } - -#toast-container.toast-top-full-width > div, -#toast-container.toast-bottom-full-width > div { - width: 96%; - margin: auto; } - -.toast { - position: relative; - background-color: #030303; } - -.toast-success { - background-color: #51a351; } - -.toast-error { - background-color: #bd362f; } - -.toast-info { - background-color: #2f96b4; } - -.toast-wait { - background-color: #2f96b4; } - -.toast-warning { - background-color: #f89406; } - -/*Responsive Design*/ -@media all and (max-width: 240px) { - #toast-container > div { - padding: 8px 8px 8px 50px; - width: 11em; } - #toast-container .toast-close-button { - right: -0.1em; - top: -0.2em; } - .toast-content { - width: 94%; } } - -@media all and (min-width: 241px) and (max-width: 480px) { - #toast-container > div { - padding: 8px 8px 8px 50px; - width: 18em; } - #toast-container .toast-close-button { - right: -0.1em; - top: -0.2em; } - .toast-content { - width: 94%; } } - -@media all and (min-width: 481px) and (max-width: 768px) { - #toast-container > div { - padding: 15px 15px 15px 50px; - width: 25em; } } - -.swal2-popup.swal2-toast { - flex-direction: row; - align-items: center; - width: auto; - padding: 0.625em; - overflow-y: hidden; - background: #fff; - box-shadow: 0 0 0.625em #d9d9d9; } - .swal2-popup.swal2-toast .swal2-header { - flex-direction: row; - padding: 0; } - .swal2-popup.swal2-toast .swal2-title { - flex-grow: 1; - justify-content: flex-start; - margin: 0 0.6em; - font-size: 1em; } - .swal2-popup.swal2-toast .swal2-footer { - margin: 0.5em 0 0; - padding: 0.5em 0 0; - font-size: 0.8em; } - .swal2-popup.swal2-toast .swal2-close { - position: static; - width: 0.8em; - height: 0.8em; - line-height: 0.8; } - .swal2-popup.swal2-toast .swal2-content { - justify-content: flex-start; - padding: 0; - font-size: 1em; } - .swal2-popup.swal2-toast .swal2-icon { - width: 2em; - min-width: 2em; - height: 2em; - margin: 0; } - .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { - display: flex; - align-items: center; - font-size: 1.8em; - font-weight: bold; } - @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { - .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { - font-size: .25em; } } - .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring { - width: 2em; - height: 2em; } - .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { - top: .875em; - width: 1.375em; } - .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] { - left: .3125em; } - .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] { - right: .3125em; } - .swal2-popup.swal2-toast .swal2-actions { - flex-basis: auto !important; - width: auto; - height: auto; - margin: 0 .3125em; - padding: 0; } - .swal2-popup.swal2-toast .swal2-styled { - margin: .125em .3125em; - padding: .3125em .625em; - font-size: 1em; } - .swal2-popup.swal2-toast .swal2-styled:focus { - box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(100, 150, 200, 0.5); } - .swal2-popup.swal2-toast .swal2-success { - border-color: #a5dc86; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] { - position: absolute; - width: 1.6em; - height: 3em; - transform: rotate(45deg); - border-radius: 50%; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] { - top: -.8em; - left: -.5em; - transform: rotate(-45deg); - transform-origin: 2em 2em; - border-radius: 4em 0 0 4em; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] { - top: -.25em; - left: .9375em; - transform-origin: 0 1.5em; - border-radius: 0 4em 4em 0; } - .swal2-popup.swal2-toast .swal2-success .swal2-success-ring { - width: 2em; - height: 2em; } - .swal2-popup.swal2-toast .swal2-success .swal2-success-fix { - top: 0; - left: .4375em; - width: .4375em; - height: 2.6875em; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] { - height: .3125em; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] { - top: 1.125em; - left: .1875em; - width: .75em; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] { - top: .9375em; - right: .1875em; - width: 1.375em; } - .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip { - animation: swal2-toast-animate-success-line-tip .75s; } - .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long { - animation: swal2-toast-animate-success-line-long .75s; } - .swal2-popup.swal2-toast.swal2-show { - animation: swal2-toast-show 0.5s; } - .swal2-popup.swal2-toast.swal2-hide { - animation: swal2-toast-hide 0.1s forwards; } - -.swal2-container { - display: flex; - position: fixed; - z-index: 1060; - top: 0; - right: 0; - bottom: 0; - left: 0; - flex-direction: row; - align-items: center; - justify-content: center; - padding: 0.625em; - overflow-x: hidden; - transition: background-color 0.1s; - -webkit-overflow-scrolling: touch; } - .swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation { - background: rgba(0, 0, 0, 0.4); } - .swal2-container.swal2-backdrop-hide { - background: transparent !important; } - .swal2-container.swal2-top { - align-items: flex-start; } - .swal2-container.swal2-top-start, .swal2-container.swal2-top-left { - align-items: flex-start; - justify-content: flex-start; } - .swal2-container.swal2-top-end, .swal2-container.swal2-top-right { - align-items: flex-start; - justify-content: flex-end; } - .swal2-container.swal2-center { - align-items: center; } - .swal2-container.swal2-center-start, .swal2-container.swal2-center-left { - align-items: center; - justify-content: flex-start; } - .swal2-container.swal2-center-end, .swal2-container.swal2-center-right { - align-items: center; - justify-content: flex-end; } - .swal2-container.swal2-bottom { - align-items: flex-end; } - .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left { - align-items: flex-end; - justify-content: flex-start; } - .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right { - align-items: flex-end; - justify-content: flex-end; } - .swal2-container.swal2-bottom > :first-child, - .swal2-container.swal2-bottom-start > :first-child, - .swal2-container.swal2-bottom-left > :first-child, - .swal2-container.swal2-bottom-end > :first-child, - .swal2-container.swal2-bottom-right > :first-child { - margin-top: auto; } - .swal2-container.swal2-grow-fullscreen > .swal2-modal { - display: flex !important; - flex: 1; - align-self: stretch; - justify-content: center; } - .swal2-container.swal2-grow-row > .swal2-modal { - display: flex !important; - flex: 1; - align-content: center; - justify-content: center; } - .swal2-container.swal2-grow-column { - flex: 1; - flex-direction: column; } - .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom { - align-items: center; } - .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left { - align-items: flex-start; } - .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right { - align-items: flex-end; } - .swal2-container.swal2-grow-column > .swal2-modal { - display: flex !important; - flex: 1; - align-content: center; - justify-content: center; } - .swal2-container.swal2-no-transition { - transition: none !important; } - .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal { - margin: auto; } - @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { - .swal2-container .swal2-modal { - margin: 0 !important; } } - -.swal2-popup { - display: none; - position: relative; - box-sizing: border-box; - flex-direction: column; - justify-content: center; - width: 32em; - max-width: 100%; - padding: 1.25em; - border: none; - border-radius: 5px; - background: #fff; - font-family: inherit; - font-size: 1rem; } - .swal2-popup:focus { - outline: none; } - .swal2-popup.swal2-loading { - overflow-y: hidden; } - -.swal2-header { - display: flex; - flex-direction: column; - align-items: center; - padding: 0 1.8em; } - -.swal2-title { - position: relative; - max-width: 100%; - margin: 0 0 0.4em; - padding: 0; - color: #595959; - font-size: 1.875em; - font-weight: 600; - text-align: center; - text-transform: none; - word-wrap: break-word; } - -.swal2-actions { - display: flex; - z-index: 1; - box-sizing: border-box; - flex-wrap: wrap; - align-items: center; - justify-content: center; - width: 100%; - margin: 1.25em auto 0; - padding: 0 1.6em; } - .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] { - opacity: .4; } - .swal2-actions:not(.swal2-loading) .swal2-styled:hover { - background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); } - .swal2-actions:not(.swal2-loading) .swal2-styled:active { - background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); } - -.swal2-loader { - display: none; - align-items: center; - justify-content: center; - width: 2.2em; - height: 2.2em; - margin: 0 1.875em; - animation: swal2-rotate-loading 1.5s linear 0s infinite normal; - border-width: 0.25em; - border-style: solid; - border-radius: 100%; - border-color: #2778c4 transparent #2778c4 transparent; } - -.swal2-styled { - margin: 0.3125em; - padding: 0.625em 1.1em; - box-shadow: none; - font-weight: 500; } - .swal2-styled:not([disabled]) { - cursor: pointer; } - .swal2-styled.swal2-confirm { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #2778c4; - color: #fff; - font-size: 1.0625em; } - .swal2-styled.swal2-deny { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #d14529; - color: #fff; - font-size: 1.0625em; } - .swal2-styled.swal2-cancel { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #757575; - color: #fff; - font-size: 1.0625em; } - .swal2-styled:focus { - outline: none; - box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); } - .swal2-styled::-moz-focus-inner { - border: 0; } - -.swal2-footer { - justify-content: center; - margin: 1.25em 0 0; - padding: 1em 0 0; - border-top: 1px solid #eee; - color: #545454; - font-size: 1em; } - -.swal2-timer-progress-bar-container { - position: absolute; - right: 0; - bottom: 0; - left: 0; - height: 0.25em; - overflow: hidden; - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; } - -.swal2-timer-progress-bar { - width: 100%; - height: 0.25em; - background: rgba(0, 0, 0, 0.2); } - -.swal2-image { - max-width: 100%; - margin: 1.25em auto; } - -.swal2-close { - position: absolute; - z-index: 2; - top: 0; - right: 0; - align-items: center; - justify-content: center; - width: 1.2em; - height: 1.2em; - padding: 0; - overflow: hidden; - transition: color 0.1s ease-out; - border: none; - border-radius: 5px; - background: transparent; - color: #cccccc; - font-family: serif; - font-size: 2.5em; - line-height: 1.2; - cursor: pointer; } - .swal2-close:hover { - transform: none; - background: transparent; - color: #f27474; } - .swal2-close:focus { - outline: none; - box-shadow: inset 0 0 0 3px rgba(100, 150, 200, 0.5); } - .swal2-close::-moz-focus-inner { - border: 0; } - -.swal2-content { - z-index: 1; - justify-content: center; - margin: 0; - padding: 0 1.6em; - color: #545454; - font-size: 1.125em; - font-weight: normal; - line-height: normal; - text-align: center; - word-wrap: break-word; } - -.swal2-input, -.swal2-file, -.swal2-textarea, -.swal2-select, -.swal2-radio, -.swal2-checkbox { - margin: 1em auto; } - -.swal2-input, -.swal2-file, -.swal2-textarea { - box-sizing: border-box; - width: 100%; - transition: border-color 0.3s, box-shadow 0.3s; - border: 1px solid #d9d9d9; - border-radius: 0.1875em; - background: inherit; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06); - color: inherit; - font-size: 1.125em; } - .swal2-input.swal2-inputerror, - .swal2-file.swal2-inputerror, - .swal2-textarea.swal2-inputerror { - border-color: #f27474 !important; - box-shadow: 0 0 2px #f27474 !important; } - .swal2-input:focus, - .swal2-file:focus, - .swal2-textarea:focus { - border: 1px solid #b4dbed; - outline: none; - box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); } - .swal2-input::placeholder, - .swal2-file::placeholder, - .swal2-textarea::placeholder { - color: #cccccc; } - -.swal2-range { - margin: 1em auto; - background: #fff; } - .swal2-range input { - width: 80%; } - .swal2-range output { - width: 20%; - color: inherit; - font-weight: 600; - text-align: center; } - .swal2-range input, - .swal2-range output { - height: 2.625em; - padding: 0; - font-size: 1.125em; - line-height: 2.625em; } - -.swal2-input { - height: 2.625em; - padding: 0 0.75em; } - .swal2-input[type='number'] { - max-width: 10em; } - -.swal2-file { - background: inherit; - font-size: 1.125em; } - -.swal2-textarea { - height: 6.75em; - padding: 0.75em; } - -.swal2-select { - min-width: 50%; - max-width: 100%; - padding: .375em .625em; - background: inherit; - color: inherit; - font-size: 1.125em; } - -.swal2-radio, -.swal2-checkbox { - align-items: center; - justify-content: center; - background: #fff; - color: inherit; } - .swal2-radio label, - .swal2-checkbox label { - margin: 0 .6em; - font-size: 1.125em; } - .swal2-radio input, - .swal2-checkbox input { - margin: 0 .4em; } - -.swal2-input-label { - display: flex; - justify-content: center; - margin: 1em auto; } - -.swal2-validation-message { - display: none; - align-items: center; - justify-content: center; - margin: 0 -2.7em; - padding: 0.625em; - overflow: hidden; - background: #f0f0f0; - color: #666666; - font-size: 1em; - font-weight: 300; } - .swal2-validation-message::before { - content: '!'; - display: inline-block; - width: 1.5em; - min-width: 1.5em; - height: 1.5em; - margin: 0 .625em; - border-radius: 50%; - background-color: #f27474; - color: #fff; - font-weight: 600; - line-height: 1.5em; - text-align: center; } - -.swal2-icon { - position: relative; - box-sizing: content-box; - justify-content: center; - width: 5em; - height: 5em; - margin: 1.25em auto 1.875em; - border: 0.25em solid transparent; - border-radius: 50%; - border-color: #000; - font-family: inherit; - line-height: 5em; - cursor: default; - user-select: none; } - .swal2-icon .swal2-icon-content { - display: flex; - align-items: center; - font-size: 3.75em; } - .swal2-icon.swal2-error { - border-color: #f27474; - color: #f27474; } - .swal2-icon.swal2-error .swal2-x-mark { - position: relative; - flex-grow: 1; } - .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { - display: block; - position: absolute; - top: 2.3125em; - width: 2.9375em; - height: .3125em; - border-radius: .125em; - background-color: #f27474; } - .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] { - left: 1.0625em; - transform: rotate(45deg); } - .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] { - right: 1em; - transform: rotate(-45deg); } - .swal2-icon.swal2-error.swal2-icon-show { - animation: swal2-animate-error-icon .5s; } - .swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark { - animation: swal2-animate-error-x-mark .5s; } - .swal2-icon.swal2-warning { - border-color: #facea8; - color: #f8bb86; } - .swal2-icon.swal2-info { - border-color: #9de0f6; - color: #3fc3ee; } - .swal2-icon.swal2-question { - border-color: #c9dae1; - color: #87adbd; } - .swal2-icon.swal2-success { - border-color: #a5dc86; - color: #a5dc86; } - .swal2-icon.swal2-success [class^='swal2-success-circular-line'] { - position: absolute; - width: 3.75em; - height: 7.5em; - transform: rotate(45deg); - border-radius: 50%; } - .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] { - top: -.4375em; - left: -2.0635em; - transform: rotate(-45deg); - transform-origin: 3.75em 3.75em; - border-radius: 7.5em 0 0 7.5em; } - .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] { - top: -.6875em; - left: 1.875em; - transform: rotate(-45deg); - transform-origin: 0 3.75em; - border-radius: 0 7.5em 7.5em 0; } - .swal2-icon.swal2-success .swal2-success-ring { - position: absolute; - z-index: 2; - top: -.25em; - left: -.25em; - box-sizing: content-box; - width: 100%; - height: 100%; - border: 0.25em solid rgba(165, 220, 134, 0.3); - border-radius: 50%; } - .swal2-icon.swal2-success .swal2-success-fix { - position: absolute; - z-index: 1; - top: .5em; - left: 1.625em; - width: .4375em; - height: 5.625em; - transform: rotate(-45deg); } - .swal2-icon.swal2-success [class^='swal2-success-line'] { - display: block; - position: absolute; - z-index: 2; - height: .3125em; - border-radius: .125em; - background-color: #a5dc86; } - .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] { - top: 2.875em; - left: .8125em; - width: 1.5625em; - transform: rotate(45deg); } - .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] { - top: 2.375em; - right: .5em; - width: 2.9375em; - transform: rotate(-45deg); } - .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip { - animation: swal2-animate-success-line-tip .75s; } - .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long { - animation: swal2-animate-success-line-long .75s; } - .swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right { - animation: swal2-rotate-success-circular-line 4.25s ease-in; } - -.swal2-progress-steps { - flex-wrap: wrap; - align-items: center; - max-width: 100%; - margin: 0 0 1.25em; - padding: 0; - background: inherit; - font-weight: 600; } - .swal2-progress-steps li { - display: inline-block; - position: relative; } - .swal2-progress-steps .swal2-progress-step { - z-index: 20; - flex-shrink: 0; - width: 2em; - height: 2em; - border-radius: 2em; - background: #2778c4; - color: #fff; - line-height: 2em; - text-align: center; } - .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step { - background: #2778c4; } - .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step { - background: #add8e6; - color: #fff; } - .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line { - background: #add8e6; } - .swal2-progress-steps .swal2-progress-step-line { - z-index: 10; - flex-shrink: 0; - width: 2.5em; - height: .4em; - margin: 0 -1px; - background: #2778c4; } - -[class^='swal2'] { - -webkit-tap-highlight-color: transparent; } - -.swal2-show { - animation: swal2-show 0.3s; } - -.swal2-hide { - animation: swal2-hide 0.15s forwards; } - -.swal2-noanimation { - transition: none; } - -.swal2-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; } - -.swal2-rtl .swal2-close { - right: auto; - left: 0; } - -.swal2-rtl .swal2-timer-progress-bar { - right: 0; - left: auto; } - -@supports (-ms-accelerator: true) { - .swal2-range input { - width: 100% !important; } - .swal2-range output { - display: none; } } - -@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { - .swal2-range input { - width: 100% !important; } - .swal2-range output { - display: none; } } - -@keyframes swal2-toast-show { - 0% { - transform: translateY(-0.625em) rotateZ(2deg); } - 33% { - transform: translateY(0) rotateZ(-2deg); } - 66% { - transform: translateY(0.3125em) rotateZ(2deg); } - 100% { - transform: translateY(0) rotateZ(0deg); } } - -@keyframes swal2-toast-hide { - 100% { - transform: rotateZ(1deg); - opacity: 0; } } - -@keyframes swal2-toast-animate-success-line-tip { - 0% { - top: .5625em; - left: .0625em; - width: 0; } - 54% { - top: .125em; - left: .125em; - width: 0; } - 70% { - top: .625em; - left: -.25em; - width: 1.625em; } - 84% { - top: 1.0625em; - left: .75em; - width: .5em; } - 100% { - top: 1.125em; - left: .1875em; - width: .75em; } } - -@keyframes swal2-toast-animate-success-line-long { - 0% { - top: 1.625em; - right: 1.375em; - width: 0; } - 65% { - top: 1.25em; - right: .9375em; - width: 0; } - 84% { - top: .9375em; - right: 0; - width: 1.125em; } - 100% { - top: .9375em; - right: .1875em; - width: 1.375em; } } - -@keyframes swal2-show { - 0% { - transform: scale(0.7); } - 45% { - transform: scale(1.05); } - 80% { - transform: scale(0.95); } - 100% { - transform: scale(1); } } - -@keyframes swal2-hide { - 0% { - transform: scale(1); - opacity: 1; } - 100% { - transform: scale(0.5); - opacity: 0; } } - -@keyframes swal2-animate-success-line-tip { - 0% { - top: 1.1875em; - left: .0625em; - width: 0; } - 54% { - top: 1.0625em; - left: .125em; - width: 0; } - 70% { - top: 2.1875em; - left: -.375em; - width: 3.125em; } - 84% { - top: 3em; - left: 1.3125em; - width: 1.0625em; } - 100% { - top: 2.8125em; - left: .8125em; - width: 1.5625em; } } - -@keyframes swal2-animate-success-line-long { - 0% { - top: 3.375em; - right: 2.875em; - width: 0; } - 65% { - top: 3.375em; - right: 2.875em; - width: 0; } - 84% { - top: 2.1875em; - right: 0; - width: 3.4375em; } - 100% { - top: 2.375em; - right: .5em; - width: 2.9375em; } } - -@keyframes swal2-rotate-success-circular-line { - 0% { - transform: rotate(-45deg); } - 5% { - transform: rotate(-45deg); } - 12% { - transform: rotate(-405deg); } - 100% { - transform: rotate(-405deg); } } - -@keyframes swal2-animate-error-x-mark { - 0% { - margin-top: 1.625em; - transform: scale(0.4); - opacity: 0; } - 50% { - margin-top: 1.625em; - transform: scale(0.4); - opacity: 0; } - 80% { - margin-top: -.375em; - transform: scale(1.15); } - 100% { - margin-top: 0; - transform: scale(1); - opacity: 1; } } - -@keyframes swal2-animate-error-icon { - 0% { - transform: rotateX(100deg); - opacity: 0; } - 100% { - transform: rotateX(0deg); - opacity: 1; } } - -@keyframes swal2-rotate-loading { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { - overflow: hidden; } - -body.swal2-height-auto { - height: auto !important; } - -body.swal2-no-backdrop .swal2-container { - top: auto; - right: auto; - bottom: auto; - left: auto; - max-width: calc(100% - 0.625em * 2); - background-color: transparent !important; } - body.swal2-no-backdrop .swal2-container > .swal2-modal { - box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); } - body.swal2-no-backdrop .swal2-container.swal2-top { - top: 0; - left: 50%; - transform: translateX(-50%); } - body.swal2-no-backdrop .swal2-container.swal2-top-start, body.swal2-no-backdrop .swal2-container.swal2-top-left { - top: 0; - left: 0; } - body.swal2-no-backdrop .swal2-container.swal2-top-end, body.swal2-no-backdrop .swal2-container.swal2-top-right { - top: 0; - right: 0; } - body.swal2-no-backdrop .swal2-container.swal2-center { - top: 50%; - left: 50%; - transform: translate(-50%, -50%); } - body.swal2-no-backdrop .swal2-container.swal2-center-start, body.swal2-no-backdrop .swal2-container.swal2-center-left { - top: 50%; - left: 0; - transform: translateY(-50%); } - body.swal2-no-backdrop .swal2-container.swal2-center-end, body.swal2-no-backdrop .swal2-container.swal2-center-right { - top: 50%; - right: 0; - transform: translateY(-50%); } - body.swal2-no-backdrop .swal2-container.swal2-bottom { - bottom: 0; - left: 50%; - transform: translateX(-50%); } - body.swal2-no-backdrop .swal2-container.swal2-bottom-start, body.swal2-no-backdrop .swal2-container.swal2-bottom-left { - bottom: 0; - left: 0; } - body.swal2-no-backdrop .swal2-container.swal2-bottom-end, body.swal2-no-backdrop .swal2-container.swal2-bottom-right { - right: 0; - bottom: 0; } - -@media print { - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { - overflow-y: scroll !important; } - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden='true'] { - display: none; } - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container { - position: static !important; } } - -body.swal2-toast-shown .swal2-container { - background-color: transparent; } - body.swal2-toast-shown .swal2-container.swal2-top { - top: 0; - right: auto; - bottom: auto; - left: 50%; - transform: translateX(-50%); } - body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right { - top: 0; - right: 0; - bottom: auto; - left: auto; } - body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left { - top: 0; - right: auto; - bottom: auto; - left: 0; } - body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left { - top: 50%; - right: auto; - bottom: auto; - left: 0; - transform: translateY(-50%); } - body.swal2-toast-shown .swal2-container.swal2-center { - top: 50%; - right: auto; - bottom: auto; - left: 50%; - transform: translate(-50%, -50%); } - body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right { - top: 50%; - right: 0; - bottom: auto; - left: auto; - transform: translateY(-50%); } - body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left { - top: auto; - right: auto; - bottom: 0; - left: 0; } - body.swal2-toast-shown .swal2-container.swal2-bottom { - top: auto; - right: auto; - bottom: 0; - left: 50%; - transform: translateX(-50%); } - body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right { - top: auto; - right: 0; - bottom: 0; - left: auto; } - -body.swal2-toast-column .swal2-toast { - flex-direction: column; - align-items: stretch; } - body.swal2-toast-column .swal2-toast .swal2-actions { - flex: 1; - align-self: stretch; - height: 2.2em; - margin-top: .3125em; } - body.swal2-toast-column .swal2-toast .swal2-loading { - justify-content: center; } - body.swal2-toast-column .swal2-toast .swal2-input { - height: 2em; - margin: .3125em auto; - font-size: 1em; } - body.swal2-toast-column .swal2-toast .swal2-validation-message { - font-size: 1em; } - -#toast-container.toast-top-right { - top: 76px; } - -#toast-container .toast-close-button { - right: -0.15em; } - -#toast-container .toast { - opacity: 1 !important; - background-image: none !important; - border-radius: 0.25rem; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); - display: flex; - align-items: center; } - #toast-container .toast:hover { - box-shadow: 0 0 10px rgba(0, 0, 0, 0.6); } - #toast-container .toast:before { - font-family: FontAwesome; - font-size: 25px; - line-height: 20px; - float: left; - color: #ffffff; - padding-right: 10px; - margin: auto 0 auto -36px; } - #toast-container .toast .toaster-icon { - display: none; } - #toast-container .toast .toast-message p { - margin-bottom: 0.5rem; } - #toast-container .toast .toast-message p:last-child { - margin-bottom: 0; } - #toast-container .toast.toast-danger, #toast-container .toast.toast-error { - background-image: none !important; - background-color: #dd4b39; } - #toast-container .toast.toast-danger:before, #toast-container .toast.toast-error:before { - content: "\F0E7"; - margin-left: -30px; } - #toast-container .toast.toast-warning { - background-image: none !important; - background-color: #bf7e16; } - #toast-container .toast.toast-warning:before { - content: "\F071"; } - #toast-container .toast.toast-info { - background-image: none !important; - background-color: #555555; } - #toast-container .toast.toast-info:before { - content: "\F05A"; } - #toast-container .toast.toast-success { - background-image: none !important; - background-color: #00a65a; } - #toast-container .toast.toast-success:before { - content: "\F00C"; } - -.swal2-container { - background-color: rgba(0, 0, 0, 0.3); } - -.swal2-popup { - padding: 15px 0 0; - background-color: #fff; - color: #333333; - border: 1px solid #9a9a9a; - border-radius: 0.3rem; - width: 34em; } - .swal2-popup .swal2-header { - padding: 0 15px; } - .swal2-popup .swal2-icon { - margin: 0 auto; - width: auto; - height: auto; - border: none; } - .swal2-popup .swal2-content { - padding-bottom: 15px; - font-size: 1rem; - border-bottom: 1px solid #dee2e6; } - .swal2-popup i.swal-custom-icon { - display: block; - margin: 0 auto; - font-size: 35px; } - .swal2-popup .swal2-title { - padding: 10px 0 15px; - margin: 0; - font-size: 1.15rem; - color: #333333; } - .swal2-popup .swal2-content { - font-size: 1rem; - color: #333333; - padding: 0 15px 15px; } - .swal2-popup .swal2-actions { - padding: 15px; - margin: 0; - background-color: #fbfbfb; - border-radius: 0.3rem; - display: flex; - flex-direction: row; - justify-content: flex-start; - font-size: 1rem; } - .swal2-popup .swal2-actions button { - margin-right: 10px; } - .swal2-popup .swal2-actions button.swal2-confirm { - font-weight: bold; } - .swal2-popup .swal2-actions button.swal2-cancel { - background-color: #ffffff; } - -date-input-polyfill[data-open="true"] { - z-index: 10000 !important; } - -html { - font-size: 14px; } - -body { - min-width: 1010px; } - body.layout_frontend { - background-color: #ecf0f5; } - body.full-width:not(.layout_frontend) .container { - min-width: 980px; - width: 90%; } - -.page-header, .secondary-header { - border-bottom: 1px solid #dee2e6; - padding-bottom: 0.6rem; - margin-bottom: 0.5rem; } - .page-header h1, .page-header h2, .page-header h3, .page-header h4, .secondary-header h1, .secondary-header h2, .secondary-header h3, .secondary-header h4 { - margin: 0; } - -h1 small, h2 small, h3 small, h4 small, h5 small { - font-size: 80%; } - -input:required, select:required, textarea:required { - box-shadow: none; } - -.secondary-header, .spaced-header { - margin-top: 4rem; } - -.navbar { - padding-left: 0; - padding-right: 0; } - .navbar .dropdown-menu { - min-width: 200px; - max-width: 300px; } - .navbar .dropdown-menu .dropdown-item-text { - line-height: 1.3; } - .navbar .dropdown-menu .dropdown-item-text span, .navbar .dropdown-menu .dropdown-item-text small { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .navbar .nav-link { - font-weight: 600; } - -.navbar-brand { - margin-top: -20px; - margin-bottom: -20px; } - -.dropdown-menu button { - cursor: pointer; } - -.container { - width: 980px; - max-width: none !important; - margin: 0 auto; - padding: 0; } - -.page-content { - margin-top: 20px; } - -.footer { - margin-top: 40px; - padding: 40px 0 40px 0; - border-top: 1px solid #dee2e6; } - -.list-group-item.active { - border-left: 3px solid #175DDC; - font-weight: bold; - padding-left: calc(1.25rem - 3px); } - -.card-header, .modal-header { - font-weight: bold; - text-transform: uppercase; } - .card-header small, .modal-header small { - font-weight: normal; - text-transform: none; } - -.card-body-header { - font-size: 1.15rem; } - -.card ul.fa-ul.card-ul { - margin-left: 1.9em; } - .card ul.fa-ul.card-ul li { - word-break: break-all; } - .card ul.fa-ul.card-ul .fa-li { - top: 4px; } - .card ul.fa-ul.card-ul.carets { - margin-left: 1.1em; } - .card ul.fa-ul.card-ul.carets .fa-li { - left: -17px; - width: 1.1em; } - .card ul.fa-ul.card-ul ul.carets { - margin-left: 0.85em; } - -.card-org-plans h2 { - font-size: 1.15rem; } - -.modal-dialog { - width: 500px; } - -.modal-sm { - width: 300px; } - -.modal-lg { - width: 800px; } - -.modal-body h3, .modal-body .section-header > * { - font-weight: normal; - text-transform: uppercase; - color: #6c757d; } - -.modal .list-group-flush :first-child { - border-top: none; } - -.modal .list-group-flush :last-child { - border-bottom: none; } - -.modal-footer { - justify-content: flex-start; - background-color: #fbfbfb; - border-radius: 0.3rem; } - -label:not(.form-check-label):not(.btn), label.bold { - font-weight: 600; } - -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: searchfield-cancel-button; } - -.btn[class*="btn-outline-"]:not(:hover), .swal2-popup .swal2-actions button[class*="btn-outline-"]:not(:hover) { - border-color: #ced4da; - background-color: #fbfbfb; } - -.btn-link:focus, .btn-link.focus { - outline-color: -webkit-focus-ring-color; - outline-offset: 1px; - outline-style: auto; - outline-width: 1px; } - -.btn-outline-secondary, .swal2-popup .swal2-actions button.swal2-cancel { - color: #6c757d; } - .btn-outline-secondary:hover:not(:disabled), .swal2-popup .swal2-actions button.swal2-cancel:hover:not(:disabled) { - color: #333333; } - .btn-outline-secondary:disabled, .swal2-popup .swal2-actions button.swal2-cancel:disabled { - opacity: 1; } - .btn-outline-secondary:focus, .swal2-popup .swal2-actions button.swal2-cancel:focus, .btn-outline-secondary.focus, .swal2-popup .swal2-actions button.focus.swal2-cancel { - box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); } - -.btn-submit { - position: relative; } - .btn-submit .fa-spinner { - position: absolute; - display: none; - align-items: center; - justify-content: center; - bottom: 0; - top: 0; - left: 0; - right: 0; } - .btn-submit:disabled:not(.manual) .fa-spinner, .btn-submit.loading .fa-spinner { - display: flex; } - .btn-submit:disabled:not(.manual) span, .btn-submit.loading span { - visibility: hidden; } - -.list-group-item:focus, .list-group-item.focus { - z-index: 100; } - -.fa-icon-above-input { - height: 1.5em; } - -.table.table-list thead th { - border-top: none; } - -.table.table-list tr:first-child td { - border: none; } - -.table.table-list td { - vertical-align: middle; } - .table.table-list td.reduced-lh { - line-height: 1; } - .table.table-list td.reduced-lh small { - font-size: 80%; } - .table.table-list td small, .table.table-list td > .fa, .table.table-list td .icon { - color: #6c757d; } - -.table.table-list td.wrap { - word-break: break-all; } - -.table.table-list td.table-list-options { - width: 76px; - max-width: 76px; - text-align: right; - height: 50px; } - .table.table-list td.table-list-options.wider { - width: 100px; - max-width: 100px; } - .table.table-list td.table-list-options .btn, .table.table-list td.table-list-options .swal2-popup .swal2-actions button, .swal2-popup .swal2-actions .table.table-list td.table-list-options button { - line-height: 1; - transition: initial; } - .table.table-list td.table-list-options .dropdown-menu { - line-height: 1.5; } - -.table.table-list td.table-list-icon { - width: 45px; - max-width: 45px; - text-align: center; } - .table.table-list td.table-list-icon img { - max-height: 24px; } - -.table.table-list td.table-list-checkbox { - width: 35px; - max-width: 35px; } - -.table.table-list td.table-list-strike { - color: #6c757d; - text-decoration: line-through; } - -.text-lg { - font-size: 1.15rem; } - -.text-strike { - text-decoration: line-through; } - -.font-weight-semibold { - font-weight: 600; } - -.password-wrapper { - word-break: break-all; - white-space: pre-wrap; - min-width: 0; } - -.password-row { - min-width: 0; } - -.password-number { - color: #007fde; } - -.password-special { - color: #c40800; } - -app-vault-groupings .card #search, app-org-vault-groupings .card #search, .groupings .card #search { - margin-bottom: 1rem; } - -app-vault-groupings .card h3, app-org-vault-groupings .card h3, .groupings .card h3 { - font-weight: normal; - text-transform: uppercase; - color: #6c757d; } - -app-vault-groupings .card ul:last-child, app-org-vault-groupings .card ul:last-child, .groupings .card ul:last-child { - margin-bottom: 0; } - -app-vault-groupings .card .card-body a, app-org-vault-groupings .card .card-body a, .groupings .card .card-body a { - color: #333333; } - app-vault-groupings .card .card-body a:hover.text-muted, app-org-vault-groupings .card .card-body a:hover.text-muted, .groupings .card .card-body a:hover.text-muted { - color: #333333 !important; } - -app-vault-groupings .card .show-active, app-org-vault-groupings .card .show-active, .groupings .card .show-active { - display: none; } - -app-vault-groupings .card li > .fa, app-vault-groupings .card li > div > .fa, app-org-vault-groupings .card li > .fa, app-org-vault-groupings .card li > div > .fa, .groupings .card li > .fa, .groupings .card li > div > .fa { - cursor: pointer; } - -app-vault-groupings .card li.active > .show-active, app-vault-groupings .card li.active > div .show-active, app-org-vault-groupings .card li.active > .show-active, app-org-vault-groupings .card li.active > div .show-active, .groupings .card li.active > .show-active, .groupings .card li.active > div .show-active { - display: inline; } - -app-vault-groupings .card li.active > a:first-of-type, app-vault-groupings .card li.active > div a:first-of-type, app-org-vault-groupings .card li.active > a:first-of-type, app-org-vault-groupings .card li.active > div a:first-of-type, .groupings .card li.active > a:first-of-type, .groupings .card li.active > div a:first-of-type { - font-weight: bold; - color: #175DDC; } - -app-vault-groupings .card li.active > .fa, app-vault-groupings .card li.active > div > .fa, app-org-vault-groupings .card li.active > .fa, app-org-vault-groupings .card li.active > div > .fa, .groupings .card li.active > .fa, .groupings .card li.active > div > .fa { - color: #175DDC; } - -app-password-generator #lengthRange { - width: 100%; } - -app-password-generator .card-password .card-body { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: center; - text-align: center; - font-size: 1.15rem; - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } - -app-password-generator-history .list-group-item { - line-height: 1; } - app-password-generator-history .list-group-item .password { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } - -app-import textarea { - height: 150px; } - -app-user-billing .progress { - height: 20px; } - app-user-billing .progress .progress-bar { - min-width: 50px; } - -#duo-frame { - background: url(../images/loading.svg) 0 0 no-repeat; - height: 330px; } - #duo-frame iframe { - width: 100%; - height: 100%; - border: none; } - -#bt-dropin-container { - background: url(../images/loading.svg) 0 0 no-repeat; - min-height: 50px; } - -.braintree-placeholder, .braintree-sheet__header { - display: none; } - -.braintree-sheet__content--button { - text-align: left; - padding: 0; - min-height: 0; } - -.braintree-sheet__container { - margin-bottom: 0; } - -.braintree-sheet { - border: none; } - -.totp .totp-code { - font-size: 1.2rem; } - -.totp .totp-countdown { - margin: 3px 3px 0 0; - display: block; - user-select: none; } - .totp .totp-countdown .totp-sec { - font-size: 0.85em; - position: absolute; - line-height: 32px; - width: 32px; - text-align: center; } - .totp .totp-countdown svg { - width: 32px; - height: 32px; - transform: rotate(-90deg); } - .totp .totp-countdown .totp-circle { - fill: none; - stroke: #175DDC; } - .totp .totp-countdown .totp-circle.inner { - stroke-width: 3; - stroke-dasharray: 78.6; - stroke-dashoffset: 0; } - .totp .totp-countdown .totp-circle.outer { - stroke-width: 2; - stroke-dasharray: 88; - stroke-dashoffset: 0; } - -.totp > .align-items-center { - margin-bottom: -5px; } - -.totp.low .totp-sec, .totp.low .totp-code { - color: #dd4b39; } - -.totp.low .totp-circle { - stroke: #dd4b39; } - -.callout { - padding: 0.75rem 1.25rem; - margin-bottom: 1rem; - border: 1px solid rgba(0, 0, 0, 0.125); - border-left-width: 5px; - border-radius: calc(0.25rem - 1px); - background-color: #fafafa; } - .callout .callout-heading { - margin-top: 0; } - .callout h3.callout-heading { - font-weight: bold; - text-transform: uppercase; } - .callout.callout-primary { - border-left-color: #175DDC; } - .callout.callout-primary .callout-heading { - color: #175DDC; } - .callout.callout-info { - border-left-color: #343a40; } - .callout.callout-info .callout-heading { - color: #343a40; } - .callout.callout-danger { - border-left-color: #dd4b39; } - .callout.callout-danger .callout-heading { - color: #dd4b39; } - .callout.callout-success { - border-left-color: #00a65a; } - .callout.callout-success .callout-heading { - color: #00a65a; } - .callout.callout-warning { - border-left-color: #bf7e16; } - .callout.callout-warning .callout-heading { - color: #bf7e16; } - -.list-group-2fa .logo-2fa { - min-width: 100px; } - -.form-check-block .form-check-label { - font-weight: 600; } - .form-check-block .form-check-label > small { - display: block; - color: #6c757d; - font-weight: normal; } - .form-check-block .form-check-label > span { - display: block; - font-weight: normal; } - -.form-inline input[type='datetime-local'] { - width: 200px; } - -.form-control.stripe-form-control { - padding-top: 0.55rem; } - .form-control.stripe-form-control.is-focused { - color: #495057; - background-color: #ffffff; - border-color: #81a9f2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .form-control.stripe-form-control.is-focused.is-invalid { - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - .form-control.stripe-form-control.is-invalid { - border-color: #dd4b39; } - -.org-nav { - background-color: #fbfbfb; - border-bottom: 1px solid #dee2e6; - height: 100px; - min-height: 100px; } - .org-nav .container { - height: 100%; } - .org-nav .nav-tabs { - border-bottom: none; } - .org-nav .nav-tabs a { - color: #333333; } - .org-nav .nav-tabs a:not(.active) { - border-color: transparent; } - .org-nav .nav-tabs a.active { - border-top: 3px solid #175DDC; - font-weight: bold; - padding-top: calc(0.5rem - 2px); } - .org-nav .nav-tabs a.disabled { - color: #b4b4b4; } - .org-nav .org-name { - line-height: 1; } - .org-nav .org-name span { - font-size: 1.15rem; - display: block; } - -img.logo { - width: 284px; - height: 43px; - margin: 0 auto; - display: block; } - -.min-height-fix { - min-height: 1px; } - -.overflow-hidden { - overflow: hidden; } - -.cdk-drag-preview { - z-index: 1070 !important; - opacity: 0.8; - background-color: #fff; - border-radius: 0.25rem; } - -.cursor-move { - cursor: move !important; } - -.layout.enterprise2 header { - color: #ced4da; - background-color: #175DDC; } - .layout.enterprise2 header:before { - content: ""; - position: absolute; - z-index: -1; - width: 100%; - height: 340px; - left: 0; - transform: skewY(-3deg); - background: #175DDC; } - .layout.enterprise2 header img.logo { - margin: 12px 0 0; - width: 284px; - max-width: 284px; - height: auto; } - -.layout.enterprise2 h2 { - color: #ffffff; - font-size: 1.8rem; - margin: 100px 0 150px 0; } - -.layout.enterprise2 p { - margin: 20px 0 40px 0; - font-size: 1.4rem; } - .layout.enterprise2 p:before { - content: "/"; - padding-right: 12px; } - .layout.enterprise2 p:not(.highlight):before { - color: #1252A3; } - .layout.enterprise2 p b:after { - content: "\27F6"; - font-size: 2rem; - padding-left: 6px; } - -.layout.enterprise2 blockquote { - margin: 20px 0 0 0; - font-size: 1.4rem; - padding-right: 40px; } - - -/*# sourceMappingURL=main.d8139e017ad9a069b29d.css.map*/ \ No newline at end of file diff --git a/app/main.d8139e017ad9a069b29d.css.map b/app/main.d8139e017ad9a069b29d.css.map deleted file mode 100644 index ef861e59..00000000 --- a/app/main.d8139e017ad9a069b29d.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/css/webfonts.css","webpack:///./src/scss/styles.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH;;AAEhH;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA;AACA,sBAAsB;;AAEtB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA,iBAAiB;;AAEjB;AACA,aAAa;;AAEb;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,0BAA0B;AAC1B;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,yBAAyB;;AAEzB;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA,sBAAsB;;AAEtB;AACA;AACA,wBAAwB;;AAExB;AACA,mBAAmB;;AAEnB;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA,uBAAuB;;AAEvB;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,2BAA2B;;AAE3B;AACA;AACA,eAAe;;AAEf;AACA;AACA,2BAA2B;;AAE3B;AACA,2BAA2B;;AAE3B;AACA;AACA,6BAA6B;;AAE7B;AACA,wBAAwB;;AAExB;AACA;AACA,kBAAkB;;AAElB;AACA,gBAAgB;;AAEhB;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,oBAAoB;;AAEpB;AACA,oBAAoB;;AAEpB;AACA,kBAAkB;;AAElB;AACA,kBAAkB;;AAElB;AACA,kBAAkB;;AAElB;AACA,kBAAkB;;AAElB;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,wBAAwB;AACxB;AACA,yBAAyB;;AAEzB;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,wBAAwB;;AAExB;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA,wBAAwB;;AAExB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,wBAAwB,EAAE;;AAE1B;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,kBAAkB;;AAElB;AACA,YAAY;;AAEZ;AACA,YAAY;;AAEZ;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,YAAY;;AAEZ;AACA,YAAY;;AAEZ;AACA,YAAY;;AAEZ;AACA,wBAAwB;;AAExB;AACA,yBAAyB;;AAEzB;AACA,mBAAmB;;AAEnB;AACA,yBAAyB;;AAEzB;AACA,yBAAyB;;AAEzB;AACA,mBAAmB;;AAEnB;AACA,yBAAyB;;AAEzB;AACA,yBAAyB;;AAEzB;AACA,mBAAmB;;AAEnB;AACA,yBAAyB;;AAEzB;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,mBAAmB;AACnB;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,mBAAmB;AACnB;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,mBAAmB;AACnB;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,mBAAmB;AACnB;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,qCAAqC;AACrC;AACA,kCAAkC;;AAElC;AACA;AACA,kBAAkB;;AAElB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA,wCAAwC;;AAExC;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,wCAAwC;AACxC;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,cAAc;AACd;AACA,gDAAgD;AAChD;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;;AAEf;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA,sBAAsB;;AAEtB;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,qFAAqF;;AAErF;AACA;AACA;AACA,mhBAAmhB;AACnhB;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;AACjB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,4BAA4B;;AAE5B;AACA,kDAAkD;;AAElD;AACA,wBAAwB;;AAExB;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,qFAAqF;;AAErF;AACA;AACA;AACA,6jBAA6jB;AAC7jB;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;AACjB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,4BAA4B;;AAE5B;AACA,mDAAmD;;AAEnD;AACA,wBAAwB;;AAExB;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wIAAwI;AACxI;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;AACrD;AACA,kBAAkB;;AAElB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD;AACnD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,wDAAwD;;AAExD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD;AACnD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD;AACnD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD;AACnD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,cAAc;AACd;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,cAAc;;AAEd;AACA,mCAAmC;AACnC;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,eAAe;;AAEf;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA,UAAU;;AAEV;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA,iBAAiB;;AAEjB;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA,iBAAiB;;AAEjB;AACA,oBAAoB;;AAEpB;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,kCAAkC;;AAElC;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB;;AAEhB;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oBAAoB;;AAEpB;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,qBAAqB;;AAErB;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,qDAAqD;AACrD;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mBAAmB;AACnB;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,yBAAyB;;AAEzB;AACA,gNAAgN;;AAEhN;AACA;AACA,4BAA4B;;AAE5B;AACA,6JAA6J;;AAE7J;AACA,2CAA2C;;AAE3C;AACA,2CAA2C;;AAE3C;AACA,qBAAqB;;AAErB;AACA,0JAA0J;;AAE1J;AACA,2CAA2C;;AAE3C;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IAA8I;AAC9I;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA,mCAAmC;AACnC;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,8BAA8B;AAC9B;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,qDAAqD;AACrD;AACA,8BAA8B;AAC9B;AACA,sBAAsB;AACtB;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,kBAAkB;AAClB;AACA,0EAA0E;AAC1E;AACA,0EAA0E;AAC1E;AACA,0EAA0E;AAC1E;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA,oBAAoB;AACpB;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,+GAA+G;AAC/G;AACA;AACA;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,uBAAuB;AACvB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA,mCAAmC;AACnC;AACA,wBAAwB;AACxB;AACA;AACA;AACA,qCAAqC;AACrC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,gBAAgB;;AAEhB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,oBAAoB;AACpB;AACA,wBAAwB;AACxB;AACA,yBAAyB;AACzB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB;AACA,kBAAkB;;AAElB;AACA,4BAA4B;AAC5B;AACA,8BAA8B;;AAE9B;AACA,4BAA4B;AAC5B;AACA,8BAA8B;AAC9B;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,mCAAmC;;AAEnC;AACA,2PAA2P;;AAE3P;AACA,4BAA4B;AAC5B;AACA,8BAA8B;AAC9B;AACA,gCAAgC;;AAEhC;AACA,cAAc;AACd;AACA,gBAAgB;;AAEhB;AACA,kCAAkC;AAClC;AACA,oCAAoC;AACpC;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,yCAAyC;;AAEzC;AACA,iQAAiQ;;AAEjQ;AACA,kCAAkC;AAClC;AACA,gBAAgB;AAChB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,qCAAqC;AACrC;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,mBAAmB;;AAEnB;AACA,wBAAwB;;AAExB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,wBAAwB;;AAExB;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,+DAA+D;AAC/D;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,+DAA+D;;AAE/D;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA,yBAAyB;AACzB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,EAAE;;AAE5B;AACA;AACA,yBAAyB;AACzB;AACA,wBAAwB;AACxB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,uCAAuC;AACvC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,yCAAyC,EAAE;;AAE3C;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB,EAAE;;AAEpB;AACA,mBAAmB;AACnB;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,6BAA6B;;AAE7B;AACA,wBAAwB;;AAExB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wIAAwI;AACxI;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,0BAA0B;AAC1B;AACA,kBAAkB;;AAElB;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB,EAAE;;AAE3B;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA,gCAAgC;AAChC;AACA,6BAA6B,EAAE;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA,6BAA6B;;AAE7B;AACA,qDAAqD;AACrD;AACA;AACA,sBAAsB,EAAE;;AAExB;AACA;AACA,0BAA0B;;AAE1B;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC,EAAE;;AAEvC;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC,EAAE;;AAEvC;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC,EAAE;;AAEvC;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC,EAAE;;AAEvC;AACA;AACA;AACA,mBAAmB;AACnB;AACA,wBAAwB;;AAExB;AACA,gBAAgB;;AAEhB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,0BAA0B;AAC1B;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,uBAAuB;;AAEvB;AACA,mBAAmB;AACnB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,mCAAmC;AACnC;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,oBAAoB;;AAEpB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,mBAAmB;AACnB;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,uBAAuB;AACvB;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,eAAe;AACf;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,wBAAwB;AACxB;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,oCAAoC;AACpC;AACA,uCAAuC;AACvC;AACA,oCAAoC;AACpC;AACA,mCAAmC;AACnC;AACA,qBAAqB,EAAE;;AAEvB;AACA;AACA;AACA,qBAAqB,EAAE;;AAEvB;AACA;AACA,sBAAsB,EAAE;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA,oBAAoB;AACpB;AACA,WAAW;AACX;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA,wBAAwB;AACxB;AACA,sCAAsC;AACtC;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA,qBAAqB;AACrB;AACA,mCAAmC;AACnC;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,kBAAkB;;AAElB;AACA;AACA,iBAAiB;;AAEjB;AACA,qBAAqB;;AAErB;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,UAAU;;AAEV;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,sMAAsM;;AAEtM;AACA,sMAAsM;;AAEtM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,8BAA8B,EAAE;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA,wBAAwB;AACxB;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA,eAAe;;AAEf;AACA,sCAAsC;;AAEtC;AACA,iC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;AACA,kCAAkC;;AAElC;AACA;AACA,gCAAgC;;AAEhC;AACA,6BAA6B;;AAE7B;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,kCAAkC;;AAElC;AACA,2BAA2B;;AAE3B;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA,gCAAgC;;AAEhC;AACA,0BAA0B;;AAE1B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,EAAE;;AAEnC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,EAAE;;AAEnC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,EAAE;;AAEnC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,EAAE;;AAEnC;AACA,+GAA+G;;AAE/G;AACA,iCAAiC;;AAEjC;AACA,iCAAiC;;AAEjC;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,8BAA8B;;AAE9B;AACA,+BAA+B;;AAE/B;AACA,gCAAgC;;AAEhC;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC;AACjC;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC;AACjC;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC;AACjC;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC;AACjC;AACA,kCAAkC,EAAE;;AAEpC;AACA,uCAAuC;;AAEvC;AACA,uCAAuC;;AAEvC;AACA,wCAAwC;;AAExC;AACA,8BAA8B;;AAE9B;AACA,kCAAkC;;AAElC;AACA,8BAA8B;;AAE9B;AACA,8BAA8B;;AAE9B;AACA,iCAAiC;;AAEjC;AACA,gCAAgC;;AAEhC;AACA,yBAAyB;;AAEzB;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,uCAAuC;;AAEvC;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA,mCAAmC;;AAEnC;AACA;AACA,uCAAuC;;AAEvC;AACA,4BAA4B;;AAE5B;AACA,iCAAiC;;AAEjC;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,+BAA+B;AAC/B;AACA,kCAAkC;AAClC;AACA,qCAAqC;AACrC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA,kBAAkB;AAClB;AACA,2BAA2B;AAC3B;AACA,yCAAyC;AACzC;AACA;AACA,wCAAwC;AACxC;AACA;AACA,yCAAyC;AACzC;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,0BAA0B,EAAE;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,cAAc;;AAEd;AACA,eAAe;;AAEf;AACA,qBAAqB;;AAErB;AACA,oBAAoB;;AAEpB;AACA;AACA,eAAe;;AAEf;AACA,cAAc;;AAEd;AACA,qBAAqB;;AAErB;AACA,oBAAoB;;AAEpB;AACA;AACA,wCAAwC;;AAExC;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B,EAAE;;AAEhC;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B,EAAE;;AAEhC;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,uBAAuB;;AAEvB;AACA,iBAAiB;;AAEjB;AACA,cAAc;;AAEd;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,oBAAoB;;AAEpB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,aAAa;;AAEb;AACA,YAAY;;AAEZ;AACA;AACA,cAAc;;AAEd;AACA;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA;AACA,aAAa;;AAEb;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,ieAAie;;AAEzgB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6wBAA6wB;;AAErzB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,quBAAquB;;AAE7wB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qyHAAqyH;;AAE70H;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qsBAAqsB;;AAE7uB;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,qBAAqB;AACrB;AACA,sBAAsB;AACtB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,mBAAmB;AACnB;AACA,qEAAqE;AACrE;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,uBAAuB;AACvB;AACA,2DAA2D;AAC3D;AACA,4DAA4D;AAC5D;AACA,qCAAqC;AACrC;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,mCAAmC;AACnC;AACA,uCAAuC;AACvC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,wBAAwB;AACxB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,0BAA0B;AAC1B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,2BAA2B;AAC3B;AACA,0BAA0B;AAC1B;AACA,8BAA8B;AAC9B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gCAAgC;AAChC;AACA,iBAAiB;AACjB;AACA;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,gBAAgB;AAChB;AACA,8EAA8E;AAC9E;AACA,8EAA8E;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,mDAAmD;AACnD;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yDAAyD;AACzD;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;AACnB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;;AAEpB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,kCAAkC;AAClC;AACA,8CAA8C;AAC9C;AACA,kDAAkD;AAClD;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,qDAAqD;AACrD;AACA,sDAAsD;AACtD;AACA,kEAAkE;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,0BAA0B;AAC1B;AACA;AACA,oBAAoB;AACpB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,2CAA2C;;AAE3C;AACA,6BAA6B;;AAE7B;AACA,uCAAuC;;AAEvC;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,UAAU;;AAEV;AACA;AACA,aAAa;;AAEb;AACA;AACA,2BAA2B;AAC3B;AACA,kBAAkB,EAAE;;AAEpB;AACA;AACA,2BAA2B;AAC3B;AACA,kBAAkB,EAAE;;AAEpB;AACA;AACA,kDAAkD;AAClD;AACA,4CAA4C;AAC5C;AACA,kDAAkD;AAClD;AACA,2CAA2C,EAAE;;AAE7C;AACA;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,iBAAiB,EAAE;;AAEnB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB,EAAE;;AAErB;AACA;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,wBAAwB,EAAE;;AAE1B;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA,+BAA+B,EAAE;;AAEjC;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA,4BAA4B;AAC5B;AACA,8BAA8B,EAAE;;AAEhC;AACA,mBAAmB;;AAEnB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,YAAY;AACZ;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,YAAY;AACZ;AACA;AACA,cAAc;;AAEd;AACA;AACA,kCAAkC;AAClC;AACA,oBAAoB;AACpB;AACA,kCAAkC,EAAE;;AAEpC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,mBAAmB;AACnB;AACA,mBAAmB;;AAEnB;AACA,YAAY;;AAEZ;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,kBAAkB;AAClB;AACA,0BAA0B;AAC1B;AACA,uBAAuB;AACvB;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB;AACvB;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB;AACvB;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB;;AAEvB;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA,0BAA0B;AAC1B;AACA,kCAAkC;;AAElC;AACA,4BAA4B;;AAE5B;AACA,kBAAkB;;AAElB;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,wBAAwB;AACxB;AACA,cAAc;;AAEd;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,qBAAqB;AACrB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,qBAAqB;;AAErB;AACA;AACA,uBAAuB;;AAEvB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,yBAAyB;;AAEzB;AACA,qBAAqB;;AAErB;AACA,qBAAqB;AACrB;AACA,0BAA0B;AAC1B;AACA,aAAa;AACb;AACA,uBAAuB;AACvB;AACA;AACA,mBAAmB;AACnB;AACA,wBAAwB;;AAExB;AACA,qBAAqB;;AAErB;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,mBAAmB;;AAEnB;AACA,gDAAgD;;AAEhD;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,iBAAiB;AACjB;AACA,mBAAmB;AACnB;AACA,eAAe;AACf;AACA,qDAAqD;;AAErD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,kBAAkB;AAClB;AACA,uBAAuB;;AAEvB;AACA,eAAe;;AAEf;AACA,gBAAgB;;AAEhB;AACA,mBAAmB;;AAEnB;AACA,eAAe;;AAEf;AACA,yBAAyB;AACzB;AACA,mBAAmB;AACnB;AACA,qBAAqB;AACrB;AACA,mBAAmB;;AAEnB;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,qBAAqB;AACrB;AACA;AACA,wBAAwB;AACxB;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;;AAErB;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,gCAAgC;;AAEhC;AACA,qBAAqB;;AAErB;AACA,gCAAgC;;AAEhC;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA,iBAAiB;AACjB;AACA,8BAA8B;;AAE9B;AACA,gBAAgB;;AAEhB;AACA,kBAAkB;;AAElB;AACA,kBAAkB;;AAElB;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG;;AAEpG;AACA,iBAAiB;AACjB;AACA,sGAAsG;;AAEtG;AACA,gBAAgB;;AAEhB;AACA,eAAe;AACf;AACA,oBAAoB;;AAEpB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mBAAmB;;AAEnB;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,mBAAmB;;AAEnB;AACA,eAAe;;AAEf;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA,sBAAsB;;AAEtB;AACA,iBAAiB;;AAEjB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,kBAAkB;AAClB;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA,qBAAqB;;AAErB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;AACnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;;AAExB;AACA,eAAe;;AAEf;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,uDAAuD;AACvD;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,iBAAiB;AACjB;AACA,wBAAwB;AACxB;AACA,qBAAqB;AACrB;AACA,kCAAkC;AAClC;AACA;AACA;AACA,wCAAwC;AACxC;AACA,uBAAuB;AACvB;AACA,mBAAmB;AACnB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,kBAAkB;;AAElB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA,mBAAmB;AACnB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB","file":"app/main.d8139e017ad9a069b29d.css","sourcesContent":["@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 300;\n\tsrc: url(../fonts/Open_Sans-italic-300.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 400;\n\tsrc: url(../fonts/Open_Sans-italic-400.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 600;\n\tsrc: url(../fonts/Open_Sans-italic-600.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 700;\n\tsrc: url(../fonts/Open_Sans-italic-700.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 800;\n\tsrc: url(../fonts/Open_Sans-italic-800.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 300;\n\tsrc: url(../fonts/Open_Sans-normal-300.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 400;\n\tsrc: url(../fonts/Open_Sans-normal-400.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 600;\n\tsrc: url(../fonts/Open_Sans-normal-600.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 700;\n\tsrc: url(../fonts/Open_Sans-normal-700.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 800;\n\tsrc: url(../fonts/Open_Sans-normal-800.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n","@charset \"UTF-8\";\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #175DDC;\n --secondary: #ced4da;\n --success: #00a65a;\n --info: #555555;\n --warning: #bf7e16;\n --danger: #dd4b39;\n --light: #f8f9fa;\n --dark: #343a40;\n --primary-accent: #1252A3;\n --secondary-alt: #1A3B66;\n --breakpoint-xs: 0;\n --breakpoint-sm: 1px;\n --breakpoint-md: 2px;\n --breakpoint-lg: 3px;\n --breakpoint-xl: 4px;\n --font-family-sans-serif: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; }\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block; }\n\nbody {\n margin: 0;\n font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #333333;\n text-align: left;\n background-color: #ffffff; }\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important; }\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible; }\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem; }\n\np {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none; }\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit; }\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0; }\n\ndt {\n font-weight: 700; }\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; }\n\nblockquote {\n margin: 0 0 1rem; }\n\nb,\nstrong {\n font-weight: bolder; }\n\nsmall {\n font-size: 80%; }\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline; }\n\nsub {\n bottom: -.25em; }\n\nsup {\n top: -.5em; }\n\na {\n color: #175DDC;\n text-decoration: none;\n background-color: transparent; }\n a:hover {\n color: #104097;\n text-decoration: underline; }\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none; }\n a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none; }\n a:not([href]):not([tabindex]):focus {\n outline: 0; }\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em; }\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto; }\n\nfigure {\n margin: 0 0 1rem; }\n\nimg {\n vertical-align: middle;\n border-style: none; }\n\nsvg {\n overflow: hidden;\n vertical-align: middle; }\n\ntable {\n border-collapse: collapse; }\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom; }\n\nth {\n text-align: inherit; }\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem; }\n\nbutton {\n border-radius: 0; }\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color; }\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit; }\n\nbutton,\ninput {\n overflow: visible; }\n\nbutton,\nselect {\n text-transform: none; }\n\nselect {\n word-wrap: normal; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; }\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer; }\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none; }\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0; }\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox; }\n\ntextarea {\n overflow: auto;\n resize: vertical; }\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0; }\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal; }\n\nprogress {\n vertical-align: baseline; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none; }\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button; }\n\noutput {\n display: inline-block; }\n\nsummary {\n display: list-item;\n cursor: pointer; }\n\ntemplate {\n display: none; }\n\n[hidden] {\n display: none !important; }\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2; }\n\nh1, .h1 {\n font-size: 1.7rem; }\n\nh2, .h2 {\n font-size: 1.3rem; }\n\nh3, .h3 {\n font-size: 1rem; }\n\nh4, .h4 {\n font-size: 1rem; }\n\nh5, .h5 {\n font-size: 1rem; }\n\nh6, .h6 {\n font-size: 1rem; }\n\n.lead {\n font-size: 1.25rem;\n font-weight: normal; }\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\n\nsmall,\n.small {\n font-size: 90%;\n font-weight: 400; }\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3; }\n\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n\n.list-inline {\n padding-left: 0;\n list-style: none; }\n\n.list-inline-item {\n display: inline-block; }\n .list-inline-item:not(:last-child) {\n margin-right: 0.5rem; }\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase; }\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem; }\n\n.blockquote-footer {\n display: block;\n font-size: 90%;\n color: #6c757d; }\n .blockquote-footer::before {\n content: \"\\2014\\A0\"; }\n\n.img-fluid, .table.table-list td.table-list-icon img {\n max-width: 100%;\n height: auto; }\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #ffffff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto; }\n\n.figure {\n display: inline-block; }\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1; }\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d; }\n\ncode {\n font-size: 100%;\n color: #e83e8c;\n word-break: break-word; }\n a > code {\n color: inherit; }\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 100%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem; }\n kbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700; }\n\npre {\n display: block;\n font-size: 100%;\n color: #212529; }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal; }\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n\n.container {\n width: 100%;\n padding-right: 10px;\n padding-left: 10px;\n margin-right: auto;\n margin-left: auto; }\n @media (min-width: 1px) {\n .container {\n max-width: 540px; } }\n @media (min-width: 2px) {\n .container {\n max-width: 720px; } }\n @media (min-width: 3px) {\n .container {\n max-width: 960px; } }\n @media (min-width: 4px) {\n .container {\n max-width: 1140px; } }\n\n.container-fluid {\n width: 100%;\n padding-right: 10px;\n padding-left: 10px;\n margin-right: auto;\n margin-left: auto; }\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -10px;\n margin-left: -10px; }\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0; }\n .no-gutters > .col,\n .no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0; }\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 10px;\n padding-left: 10px; }\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n\n.col-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n\n.col-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.col-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.col-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.col-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n\n.col-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n\n.col-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n\n.col-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.order-first {\n order: -1; }\n\n.order-last {\n order: 13; }\n\n.order-0 {\n order: 0; }\n\n.order-1 {\n order: 1; }\n\n.order-2 {\n order: 2; }\n\n.order-3 {\n order: 3; }\n\n.order-4 {\n order: 4; }\n\n.order-5 {\n order: 5; }\n\n.order-6 {\n order: 6; }\n\n.order-7 {\n order: 7; }\n\n.order-8 {\n order: 8; }\n\n.order-9 {\n order: 9; }\n\n.order-10 {\n order: 10; }\n\n.order-11 {\n order: 11; }\n\n.order-12 {\n order: 12; }\n\n.offset-1 {\n margin-left: 8.33333%; }\n\n.offset-2 {\n margin-left: 16.66667%; }\n\n.offset-3 {\n margin-left: 25%; }\n\n.offset-4 {\n margin-left: 33.33333%; }\n\n.offset-5 {\n margin-left: 41.66667%; }\n\n.offset-6 {\n margin-left: 50%; }\n\n.offset-7 {\n margin-left: 58.33333%; }\n\n.offset-8 {\n margin-left: 66.66667%; }\n\n.offset-9 {\n margin-left: 75%; }\n\n.offset-10 {\n margin-left: 83.33333%; }\n\n.offset-11 {\n margin-left: 91.66667%; }\n\n@media (min-width: 1px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-sm-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-sm-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-sm-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-sm-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-sm-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-sm-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-sm-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-sm-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-sm-first {\n order: -1; }\n .order-sm-last {\n order: 13; }\n .order-sm-0 {\n order: 0; }\n .order-sm-1 {\n order: 1; }\n .order-sm-2 {\n order: 2; }\n .order-sm-3 {\n order: 3; }\n .order-sm-4 {\n order: 4; }\n .order-sm-5 {\n order: 5; }\n .order-sm-6 {\n order: 6; }\n .order-sm-7 {\n order: 7; }\n .order-sm-8 {\n order: 8; }\n .order-sm-9 {\n order: 9; }\n .order-sm-10 {\n order: 10; }\n .order-sm-11 {\n order: 11; }\n .order-sm-12 {\n order: 12; }\n .offset-sm-0 {\n margin-left: 0; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 2px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-md-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-md-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-md-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-md-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-md-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-md-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-md-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-md-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-md-first {\n order: -1; }\n .order-md-last {\n order: 13; }\n .order-md-0 {\n order: 0; }\n .order-md-1 {\n order: 1; }\n .order-md-2 {\n order: 2; }\n .order-md-3 {\n order: 3; }\n .order-md-4 {\n order: 4; }\n .order-md-5 {\n order: 5; }\n .order-md-6 {\n order: 6; }\n .order-md-7 {\n order: 7; }\n .order-md-8 {\n order: 8; }\n .order-md-9 {\n order: 9; }\n .order-md-10 {\n order: 10; }\n .order-md-11 {\n order: 11; }\n .order-md-12 {\n order: 12; }\n .offset-md-0 {\n margin-left: 0; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 3px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-lg-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-lg-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-lg-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-lg-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-lg-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-lg-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-lg-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-lg-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-lg-first {\n order: -1; }\n .order-lg-last {\n order: 13; }\n .order-lg-0 {\n order: 0; }\n .order-lg-1 {\n order: 1; }\n .order-lg-2 {\n order: 2; }\n .order-lg-3 {\n order: 3; }\n .order-lg-4 {\n order: 4; }\n .order-lg-5 {\n order: 5; }\n .order-lg-6 {\n order: 6; }\n .order-lg-7 {\n order: 7; }\n .order-lg-8 {\n order: 8; }\n .order-lg-9 {\n order: 9; }\n .order-lg-10 {\n order: 10; }\n .order-lg-11 {\n order: 11; }\n .order-lg-12 {\n order: 12; }\n .offset-lg-0 {\n margin-left: 0; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 4px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-xl-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-xl-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-xl-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-xl-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-xl-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-xl-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-xl-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-xl-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-xl-first {\n order: -1; }\n .order-xl-last {\n order: 13; }\n .order-xl-0 {\n order: 0; }\n .order-xl-1 {\n order: 1; }\n .order-xl-2 {\n order: 2; }\n .order-xl-3 {\n order: 3; }\n .order-xl-4 {\n order: 4; }\n .order-xl-5 {\n order: 5; }\n .order-xl-6 {\n order: 6; }\n .order-xl-7 {\n order: 7; }\n .order-xl-8 {\n order: 8; }\n .order-xl-9 {\n order: 9; }\n .order-xl-10 {\n order: 10; }\n .order-xl-11 {\n order: 11; }\n .order-xl-12 {\n order: 12; }\n .offset-xl-0 {\n margin-left: 0; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; } }\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #333333; }\n .table th,\n .table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6; }\n .table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6; }\n .table tbody + tbody {\n border-top: 2px solid #dee2e6; }\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem; }\n\n.table-bordered {\n border: 1px solid #dee2e6; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6; }\n .table-bordered thead th,\n .table-bordered thead td {\n border-bottom-width: 2px; }\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0; }\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.02); }\n\n.table-hover tbody tr:hover {\n color: #333333;\n background-color: rgba(0, 0, 0, 0.03); }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #bed2f5; }\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #86abed; }\n\n.table-hover .table-primary:hover {\n background-color: #a8c3f2; }\n .table-hover .table-primary:hover > td,\n .table-hover .table-primary:hover > th {\n background-color: #a8c3f2; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #f1f3f5; }\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #e6e9ec; }\n\n.table-hover .table-secondary:hover {\n background-color: #e2e6ea; }\n .table-hover .table-secondary:hover > td,\n .table-hover .table-secondary:hover > th {\n background-color: #e2e6ea; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #b8e6d1; }\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #7ad1a9; }\n\n.table-hover .table-success:hover {\n background-color: #a5dfc5; }\n .table-hover .table-success:hover > td,\n .table-hover .table-success:hover > th {\n background-color: #a5dfc5; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #cfcfcf; }\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #a7a7a7; }\n\n.table-hover .table-info:hover {\n background-color: #c2c2c2; }\n .table-hover .table-info:hover > td,\n .table-hover .table-info:hover > th {\n background-color: #c2c2c2; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #eddbbe; }\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #debc86; }\n\n.table-hover .table-warning:hover {\n background-color: #e7d0aa; }\n .table-hover .table-warning:hover > td,\n .table-hover .table-warning:hover > th {\n background-color: #e7d0aa; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5cdc8; }\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #eda198; }\n\n.table-hover .table-danger:hover {\n background-color: #f1b9b2; }\n .table-hover .table-danger:hover > td,\n .table-hover .table-danger:hover > th {\n background-color: #f1b9b2; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe; }\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc; }\n\n.table-hover .table-light:hover {\n background-color: #ececf6; }\n .table-hover .table-light:hover > td,\n .table-hover .table-light:hover > th {\n background-color: #ececf6; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca; }\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c; }\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe; }\n .table-hover .table-dark:hover > td,\n .table-hover .table-dark:hover > th {\n background-color: #b9bbbe; }\n\n.table-primary-accent,\n.table-primary-accent > th,\n.table-primary-accent > td {\n background-color: #bdcfe5; }\n\n.table-primary-accent th,\n.table-primary-accent td,\n.table-primary-accent thead th,\n.table-primary-accent tbody + tbody {\n border-color: #84a5cf; }\n\n.table-hover .table-primary-accent:hover {\n background-color: #abc2de; }\n .table-hover .table-primary-accent:hover > td,\n .table-hover .table-primary-accent:hover > th {\n background-color: #abc2de; }\n\n.table-secondary-alt,\n.table-secondary-alt > th,\n.table-secondary-alt > td {\n background-color: #bfc8d4; }\n\n.table-secondary-alt th,\n.table-secondary-alt td,\n.table-secondary-alt thead th,\n.table-secondary-alt tbody + tbody {\n border-color: #8899af; }\n\n.table-hover .table-secondary-alt:hover {\n background-color: #b0bbca; }\n .table-hover .table-secondary-alt:hover > td,\n .table-hover .table-secondary-alt:hover > th {\n background-color: #b0bbca; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.03); }\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.03); }\n .table-hover .table-active:hover > td,\n .table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.03); }\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55; }\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6; }\n\n.table-dark {\n color: #fff;\n background-color: #343a40; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th {\n border-color: #454d55; }\n .table-dark.table-bordered {\n border: 0; }\n .table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05); }\n .table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075); }\n\n@media (max-width: 0.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-sm > .table-bordered {\n border: 0; } }\n\n@media (max-width: 1.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-md > .table-bordered {\n border: 0; } }\n\n@media (max-width: 2.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-lg > .table-bordered {\n border: 0; } }\n\n@media (max-width: 3.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-xl > .table-bordered {\n border: 0; } }\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive > .table-bordered {\n border: 0; }\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fbfbfb;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none; } }\n .form-control::-ms-expand {\n background-color: transparent;\n border: 0; }\n .form-control:focus {\n color: #495057;\n background-color: #ffffff;\n border-color: #81a9f2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .form-control::placeholder {\n color: #b4b4b4;\n opacity: 1; }\n .form-control:disabled, .form-control[readonly] {\n background-color: #e0e0e0;\n opacity: 1; }\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fbfbfb; }\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%; }\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5; }\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.15rem;\n line-height: 1.5; }\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5; }\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #333333;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0; }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0; }\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.15rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto; }\n\ntextarea.form-control {\n height: auto; }\n\n.form-group {\n margin-bottom: 1rem; }\n\n.form-text {\n display: block;\n margin-top: 0.25rem; }\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px; }\n .form-row > .col,\n .form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px; }\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem; }\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem; }\n .form-check-input:disabled ~ .form-check-label {\n color: #6c757d; }\n\n.form-check-label {\n margin-bottom: 0; }\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem; }\n .form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0; }\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 90%;\n color: #00a65a; }\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(0, 166, 90, 0.9);\n border-radius: 0.25rem; }\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #00a65a;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #00a65a;\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); }\n .was-validated .form-control:valid ~ .valid-feedback,\n .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n .form-control.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #00a65a;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fbfbfb no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #00a65a;\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); }\n .was-validated .custom-select:valid ~ .valid-feedback,\n .was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n .custom-select.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #00a65a; }\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #00a65a; }\n .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #00a65a; }\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #00d976;\n background-color: #00d976; }\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); }\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #00a65a; }\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #00a65a; }\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #00a65a;\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); }\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 90%;\n color: #dd4b39; }\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(221, 75, 57, 0.9);\n border-radius: 0.25rem; }\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dd4b39;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dd4b39;\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n .was-validated .form-control:invalid ~ .invalid-feedback,\n .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n .form-control.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dd4b39;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fbfbfb no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dd4b39;\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n .was-validated .custom-select:invalid ~ .invalid-feedback,\n .was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n .custom-select.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dd4b39; }\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dd4b39; }\n .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dd4b39; }\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e47365;\n background-color: #e47365; }\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dd4b39; }\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dd4b39; }\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dd4b39;\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; }\n .form-inline .form-check {\n width: 100%; }\n @media (min-width: 1px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0; }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-plaintext {\n display: inline-block; }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto; }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0; }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0; }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center; }\n .form-inline .custom-control-label {\n margin-bottom: 0; } }\n\n.btn, .swal2-popup .swal2-actions button {\n display: inline-block;\n font-weight: 600;\n color: #333333;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .btn, .swal2-popup .swal2-actions button {\n transition: none; } }\n .btn:hover, .swal2-popup .swal2-actions button:hover {\n color: #333333;\n text-decoration: none; }\n .btn:focus, .swal2-popup .swal2-actions button:focus, .btn.focus, .swal2-popup .swal2-actions button.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .btn.disabled, .swal2-popup .swal2-actions button.disabled, .btn:disabled, .swal2-popup .swal2-actions button:disabled {\n opacity: 0.65; }\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none; }\n\n.btn-primary, .swal2-popup .swal2-actions button.swal2-confirm {\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n .btn-primary:hover, .swal2-popup .swal2-actions button.swal2-confirm:hover {\n color: #fff;\n background-color: #134eb9;\n border-color: #1249ae; }\n .btn-primary:focus, .swal2-popup .swal2-actions button.swal2-confirm:focus, .btn-primary.focus, .swal2-popup .swal2-actions button.focus.swal2-confirm {\n box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); }\n .btn-primary.disabled, .swal2-popup .swal2-actions button.disabled.swal2-confirm, .btn-primary:disabled, .swal2-popup .swal2-actions button.swal2-confirm:disabled {\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n .btn-primary:not(:disabled):not(.disabled):active, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active,\n .show > .btn-primary.dropdown-toggle,\n .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-confirm {\n color: #fff;\n background-color: #1249ae;\n border-color: #1145a2; }\n .btn-primary:not(:disabled):not(.disabled):active:focus, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active:focus,\n .show > .btn-primary.dropdown-toggle:focus,\n .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-confirm:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); }\n\n.btn-secondary {\n color: #212529;\n background-color: #ced4da;\n border-color: #ced4da; }\n .btn-secondary:hover {\n color: #212529;\n background-color: #b8c1ca;\n border-color: #b1bbc4; }\n .btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); }\n .btn-secondary.disabled, .btn-secondary:disabled {\n color: #212529;\n background-color: #ced4da;\n border-color: #ced4da; }\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-secondary.dropdown-toggle {\n color: #212529;\n background-color: #b1bbc4;\n border-color: #aab4bf; }\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); }\n\n.btn-success {\n color: #fff;\n background-color: #00a65a;\n border-color: #00a65a; }\n .btn-success:hover {\n color: #fff;\n background-color: #008045;\n border-color: #00733e; }\n .btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 179, 115, 0.5); }\n .btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #00a65a;\n border-color: #00a65a; }\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #00733e;\n border-color: #006637; }\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 179, 115, 0.5); }\n\n.btn-info {\n color: #fff;\n background-color: #555555;\n border-color: #555555; }\n .btn-info:hover {\n color: #fff;\n background-color: #424242;\n border-color: #3c3c3c; }\n .btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); }\n .btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #555555;\n border-color: #555555; }\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #3c3c3c;\n border-color: #353535; }\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); }\n\n.btn-warning {\n color: #fff;\n background-color: #bf7e16;\n border-color: #bf7e16; }\n .btn-warning:hover {\n color: #fff;\n background-color: #9d6712;\n border-color: #916011; }\n .btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(201, 145, 57, 0.5); }\n .btn-warning.disabled, .btn-warning:disabled {\n color: #fff;\n background-color: #bf7e16;\n border-color: #bf7e16; }\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n .show > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #916011;\n border-color: #86580f; }\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(201, 145, 57, 0.5); }\n\n.btn-danger {\n color: #fff;\n background-color: #dd4b39;\n border-color: #dd4b39; }\n .btn-danger:hover {\n color: #fff;\n background-color: #cd3623;\n border-color: #c23321; }\n .btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(226, 102, 87, 0.5); }\n .btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dd4b39;\n border-color: #dd4b39; }\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #c23321;\n border-color: #b7301f; }\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(226, 102, 87, 0.5); }\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5; }\n .btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }\n .btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n .show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df; }\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40; }\n .btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124; }\n .btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }\n .btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40; }\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d; }\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }\n\n.btn-primary-accent {\n color: #fff;\n background-color: #1252A3;\n border-color: #1252A3; }\n .btn-primary-accent:hover {\n color: #fff;\n background-color: #0e4181;\n border-color: #0d3b75; }\n .btn-primary-accent:focus, .btn-primary-accent.focus {\n box-shadow: 0 0 0 0.2rem rgba(54, 108, 177, 0.5); }\n .btn-primary-accent.disabled, .btn-primary-accent:disabled {\n color: #fff;\n background-color: #1252A3;\n border-color: #1252A3; }\n .btn-primary-accent:not(:disabled):not(.disabled):active, .btn-primary-accent:not(:disabled):not(.disabled).active,\n .show > .btn-primary-accent.dropdown-toggle {\n color: #fff;\n background-color: #0d3b75;\n border-color: #0c356a; }\n .btn-primary-accent:not(:disabled):not(.disabled):active:focus, .btn-primary-accent:not(:disabled):not(.disabled).active:focus,\n .show > .btn-primary-accent.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(54, 108, 177, 0.5); }\n\n.btn-secondary-alt {\n color: #fff;\n background-color: #1A3B66;\n border-color: #1A3B66; }\n .btn-secondary-alt:hover {\n color: #fff;\n background-color: #122948;\n border-color: #10233d; }\n .btn-secondary-alt:focus, .btn-secondary-alt.focus {\n box-shadow: 0 0 0 0.2rem rgba(60, 88, 125, 0.5); }\n .btn-secondary-alt.disabled, .btn-secondary-alt:disabled {\n color: #fff;\n background-color: #1A3B66;\n border-color: #1A3B66; }\n .btn-secondary-alt:not(:disabled):not(.disabled):active, .btn-secondary-alt:not(:disabled):not(.disabled).active,\n .show > .btn-secondary-alt.dropdown-toggle {\n color: #fff;\n background-color: #10233d;\n border-color: #0d1e33; }\n .btn-secondary-alt:not(:disabled):not(.disabled):active:focus, .btn-secondary-alt:not(:disabled):not(.disabled).active:focus,\n .show > .btn-secondary-alt.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(60, 88, 125, 0.5); }\n\n.btn-outline-primary {\n color: #175DDC;\n border-color: #175DDC; }\n .btn-outline-primary:hover {\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n .btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); }\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #175DDC;\n background-color: transparent; }\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); }\n\n.btn-outline-secondary, .swal2-popup .swal2-actions button.swal2-cancel {\n color: #ced4da;\n border-color: #ced4da; }\n .btn-outline-secondary:hover, .swal2-popup .swal2-actions button.swal2-cancel:hover {\n color: #212529;\n background-color: #ced4da;\n border-color: #ced4da; }\n .btn-outline-secondary:focus, .swal2-popup .swal2-actions button.swal2-cancel:focus, .btn-outline-secondary.focus, .swal2-popup .swal2-actions button.focus.swal2-cancel {\n box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); }\n .btn-outline-secondary.disabled, .swal2-popup .swal2-actions button.disabled.swal2-cancel, .btn-outline-secondary:disabled, .swal2-popup .swal2-actions button.swal2-cancel:disabled {\n color: #ced4da;\n background-color: transparent; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary.dropdown-toggle,\n .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-cancel {\n color: #212529;\n background-color: #ced4da;\n border-color: #ced4da; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary.dropdown-toggle:focus,\n .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-cancel:focus {\n box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); }\n\n.btn-outline-success {\n color: #00a65a;\n border-color: #00a65a; }\n .btn-outline-success:hover {\n color: #fff;\n background-color: #00a65a;\n border-color: #00a65a; }\n .btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); }\n .btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #00a65a;\n background-color: transparent; }\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #00a65a;\n border-color: #00a65a; }\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); }\n\n.btn-outline-info {\n color: #555555;\n border-color: #555555; }\n .btn-outline-info:hover {\n color: #fff;\n background-color: #555555;\n border-color: #555555; }\n .btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); }\n .btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #555555;\n background-color: transparent; }\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #555555;\n border-color: #555555; }\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); }\n\n.btn-outline-warning {\n color: #bf7e16;\n border-color: #bf7e16; }\n .btn-outline-warning:hover {\n color: #fff;\n background-color: #bf7e16;\n border-color: #bf7e16; }\n .btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); }\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #bf7e16;\n background-color: transparent; }\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n .show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #bf7e16;\n border-color: #bf7e16; }\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); }\n\n.btn-outline-danger {\n color: #dd4b39;\n border-color: #dd4b39; }\n .btn-outline-danger:hover {\n color: #fff;\n background-color: #dd4b39;\n border-color: #dd4b39; }\n .btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); }\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dd4b39;\n background-color: transparent; }\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dd4b39;\n border-color: #dd4b39; }\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); }\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\n .btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent; }\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n .show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40; }\n .btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40; }\n .btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent; }\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40; }\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\n\n.btn-outline-primary-accent {\n color: #1252A3;\n border-color: #1252A3; }\n .btn-outline-primary-accent:hover {\n color: #fff;\n background-color: #1252A3;\n border-color: #1252A3; }\n .btn-outline-primary-accent:focus, .btn-outline-primary-accent.focus {\n box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); }\n .btn-outline-primary-accent.disabled, .btn-outline-primary-accent:disabled {\n color: #1252A3;\n background-color: transparent; }\n .btn-outline-primary-accent:not(:disabled):not(.disabled):active, .btn-outline-primary-accent:not(:disabled):not(.disabled).active,\n .show > .btn-outline-primary-accent.dropdown-toggle {\n color: #fff;\n background-color: #1252A3;\n border-color: #1252A3; }\n .btn-outline-primary-accent:not(:disabled):not(.disabled):active:focus, .btn-outline-primary-accent:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-primary-accent.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); }\n\n.btn-outline-secondary-alt {\n color: #1A3B66;\n border-color: #1A3B66; }\n .btn-outline-secondary-alt:hover {\n color: #fff;\n background-color: #1A3B66;\n border-color: #1A3B66; }\n .btn-outline-secondary-alt:focus, .btn-outline-secondary-alt.focus {\n box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); }\n .btn-outline-secondary-alt.disabled, .btn-outline-secondary-alt:disabled {\n color: #1A3B66;\n background-color: transparent; }\n .btn-outline-secondary-alt:not(:disabled):not(.disabled):active, .btn-outline-secondary-alt:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary-alt.dropdown-toggle {\n color: #fff;\n background-color: #1A3B66;\n border-color: #1A3B66; }\n .btn-outline-secondary-alt:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary-alt:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary-alt.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); }\n\n.btn-link {\n font-weight: 400;\n color: #175DDC;\n text-decoration: none; }\n .btn-link:hover {\n color: #104097;\n text-decoration: underline; }\n .btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none; }\n .btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none; }\n\n.btn-lg, .btn-group-lg > .btn, .swal2-popup .swal2-actions .btn-group-lg > button {\n padding: 0.5rem 1rem;\n font-size: 1.15rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.btn-sm, .btn-group-sm > .btn, .swal2-popup .swal2-actions .btn-group-sm > button {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.btn-block {\n display: block;\n width: 100%; }\n .btn-block + .btn-block {\n margin-top: 0.5rem; }\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%; }\n\n.fade {\n transition: opacity 0.15s linear; }\n @media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none; } }\n .fade:not(.show) {\n opacity: 0; }\n\n.collapse:not(.show) {\n display: none; }\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease; }\n @media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none; } }\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative; }\n\n.dropdown-toggle {\n white-space: nowrap; }\n .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent; }\n .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #333333;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n\n.dropdown-menu-left {\n right: auto;\n left: 0; }\n\n.dropdown-menu-right {\n right: 0;\n left: auto; }\n\n@media (min-width: 1px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0; }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 2px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0; }\n .dropdown-menu-md-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 3px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0; }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 4px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0; }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto; } }\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem; }\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent; }\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem; }\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid; }\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0; }\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem; }\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\"; }\n\n.dropleft .dropdown-toggle::after {\n display: none; }\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent; }\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0; }\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto; }\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef; }\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1rem;\n clear: both;\n font-weight: 400;\n color: #333333;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0; }\n .dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: rgba(0, 0, 0, 0.06); }\n .dropdown-item.active, .dropdown-item:active {\n color: #333333;\n text-decoration: none;\n background-color: rgba(0, 0, 0, 0.1); }\n .dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent; }\n\n.dropdown-menu.show {\n display: block; }\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap; }\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1rem;\n color: #333333; }\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; }\n .btn-group > .btn, .swal2-popup .swal2-actions .btn-group > button,\n .btn-group-vertical > .btn,\n .swal2-popup .swal2-actions .btn-group-vertical > button {\n position: relative;\n flex: 1 1 auto; }\n .btn-group > .btn:hover, .swal2-popup .swal2-actions .btn-group > button:hover,\n .btn-group-vertical > .btn:hover,\n .swal2-popup .swal2-actions .btn-group-vertical > button:hover {\n z-index: 1; }\n .btn-group > .btn:focus, .swal2-popup .swal2-actions .btn-group > button:focus, .btn-group > .btn:active, .swal2-popup .swal2-actions .btn-group > button:active, .btn-group > .btn.active, .swal2-popup .swal2-actions .btn-group > button.active,\n .btn-group-vertical > .btn:focus,\n .swal2-popup .swal2-actions .btn-group-vertical > button:focus,\n .btn-group-vertical > .btn:active,\n .swal2-popup .swal2-actions .btn-group-vertical > button:active,\n .btn-group-vertical > .btn.active,\n .swal2-popup .swal2-actions .btn-group-vertical > button.active {\n z-index: 1; }\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start; }\n .btn-toolbar .input-group {\n width: auto; }\n\n.btn-group > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group > button:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px; }\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .swal2-popup .swal2-actions .btn-group > button:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn,\n.swal2-popup .swal2-actions .btn-group > .btn-group:not(:last-child) > button {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.btn-group > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group > button:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn,\n.swal2-popup .swal2-actions .btn-group > .btn-group:not(:first-child) > button {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem; }\n .dropdown-toggle-split::after,\n .dropup .dropdown-toggle-split::after,\n .dropright .dropdown-toggle-split::after {\n margin-left: 0; }\n .dropleft .dropdown-toggle-split::before {\n margin-right: 0; }\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split, .swal2-popup .swal2-actions .btn-group-sm > button + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split, .swal2-popup .swal2-actions .btn-group-lg > button + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center; }\n \n .btn-group-vertical > .btn,\n .swal2-popup .swal2-actions .btn-group-vertical > button,\n .btn-group-vertical > .btn-group {\n width: 100%; }\n .btn-group-vertical > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px; }\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:last-child):not(.dropdown-toggle),\n .btn-group-vertical > .btn-group:not(:last-child) > .btn,\n .swal2-popup .swal2-actions .btn-group-vertical > .btn-group:not(:last-child) > button {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .btn-group-vertical > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > .btn,\n .swal2-popup .swal2-actions .btn-group-vertical > .btn-group:not(:first-child) > button {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.btn-group-toggle > .btn, .swal2-popup .swal2-actions .btn-group-toggle > button,\n.btn-group-toggle > .btn-group > .btn,\n.swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button {\n margin-bottom: 0; }\n .btn-group-toggle > .btn input[type=\"radio\"], .swal2-popup .swal2-actions .btn-group-toggle > button input[type=\"radio\"],\n .btn-group-toggle > .btn input[type=\"checkbox\"],\n .swal2-popup .swal2-actions .btn-group-toggle > button input[type=\"checkbox\"],\n .btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n .swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button input[type=\"radio\"],\n .btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"],\n .swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%; }\n .input-group > .form-control,\n .input-group > .form-control-plaintext,\n .input-group > .custom-select,\n .input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0; }\n .input-group > .form-control + .form-control,\n .input-group > .form-control + .custom-select,\n .input-group > .form-control + .custom-file,\n .input-group > .form-control-plaintext + .form-control,\n .input-group > .form-control-plaintext + .custom-select,\n .input-group > .form-control-plaintext + .custom-file,\n .input-group > .custom-select + .form-control,\n .input-group > .custom-select + .custom-select,\n .input-group > .custom-select + .custom-file,\n .input-group > .custom-file + .form-control,\n .input-group > .custom-file + .custom-select,\n .input-group > .custom-file + .custom-file {\n margin-left: -1px; }\n .input-group > .form-control:focus,\n .input-group > .custom-select:focus,\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3; }\n .input-group > .custom-file .custom-file-input:focus {\n z-index: 4; }\n .input-group > .form-control:not(:last-child),\n .input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .input-group > .form-control:not(:first-child),\n .input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group > .custom-file {\n display: flex;\n align-items: center; }\n .input-group > .custom-file:not(:last-child) .custom-file-label,\n .input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.input-group-prepend,\n.input-group-append {\n display: flex; }\n .input-group-prepend .btn, .input-group-prepend .swal2-popup .swal2-actions button, .swal2-popup .swal2-actions .input-group-prepend button,\n .input-group-append .btn,\n .input-group-append .swal2-popup .swal2-actions button,\n .swal2-popup .swal2-actions .input-group-append button {\n position: relative;\n z-index: 2; }\n .input-group-prepend .btn:focus, .input-group-prepend .swal2-popup .swal2-actions button:focus, .swal2-popup .swal2-actions .input-group-prepend button:focus,\n .input-group-append .btn:focus,\n .input-group-append .swal2-popup .swal2-actions button:focus,\n .swal2-popup .swal2-actions .input-group-append button:focus {\n z-index: 3; }\n .input-group-prepend .btn + .btn, .input-group-prepend .swal2-popup .swal2-actions button + .btn, .swal2-popup .swal2-actions .input-group-prepend button + .btn, .input-group-prepend .swal2-popup .swal2-actions .btn + button, .swal2-popup .swal2-actions .input-group-prepend .btn + button, .input-group-prepend .swal2-popup .swal2-actions button + button, .swal2-popup .swal2-actions .input-group-prepend button + button,\n .input-group-prepend .btn + .input-group-text,\n .input-group-prepend .swal2-popup .swal2-actions button + .input-group-text,\n .swal2-popup .swal2-actions .input-group-prepend button + .input-group-text,\n .input-group-prepend .input-group-text + .input-group-text,\n .input-group-prepend .input-group-text + .btn,\n .input-group-prepend .swal2-popup .swal2-actions .input-group-text + button,\n .swal2-popup .swal2-actions .input-group-prepend .input-group-text + button,\n .input-group-append .btn + .btn,\n .input-group-append .swal2-popup .swal2-actions button + .btn,\n .swal2-popup .swal2-actions .input-group-append button + .btn,\n .input-group-append .swal2-popup .swal2-actions .btn + button,\n .swal2-popup .swal2-actions .input-group-append .btn + button,\n .input-group-append .swal2-popup .swal2-actions button + button,\n .swal2-popup .swal2-actions .input-group-append button + button,\n .input-group-append .btn + .input-group-text,\n .input-group-append .swal2-popup .swal2-actions button + .input-group-text,\n .swal2-popup .swal2-actions .input-group-append button + .input-group-text,\n .input-group-append .input-group-text + .input-group-text,\n .input-group-append .input-group-text + .btn,\n .input-group-append .swal2-popup .swal2-actions .input-group-text + button,\n .swal2-popup .swal2-actions .input-group-append .input-group-text + button {\n margin-left: -1px; }\n\n.input-group-prepend {\n margin-right: -1px; }\n\n.input-group-append {\n margin-left: -1px; }\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem; }\n .input-group-text input[type=\"radio\"],\n .input-group-text input[type=\"checkbox\"] {\n margin-top: 0; }\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px); }\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.swal2-popup .swal2-actions .input-group-lg > .input-group-prepend > button,\n.input-group-lg > .input-group-append > .btn,\n.swal2-popup .swal2-actions .input-group-lg > .input-group-append > button {\n padding: 0.5rem 1rem;\n font-size: 1.15rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px); }\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.swal2-popup .swal2-actions .input-group-sm > .input-group-prepend > button,\n.input-group-sm > .input-group-append > .btn,\n.swal2-popup .swal2-actions .input-group-sm > .input-group-append > button {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem; }\n\n.input-group > .input-group-prepend > .btn, .swal2-popup .swal2-actions .input-group > .input-group-prepend > button,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.swal2-popup .swal2-actions .input-group > .input-group-append:not(:last-child) > button,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.swal2-popup .swal2-actions .input-group > .input-group-append:last-child > button:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group > .input-group-append > .btn, .swal2-popup .swal2-actions .input-group > .input-group-append > button,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.swal2-popup .swal2-actions .input-group > .input-group-prepend:not(:first-child) > button,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.swal2-popup .swal2-actions .input-group > .input-group-prepend:first-child > button:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem; }\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem; }\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0; }\n .custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #175DDC;\n background-color: #175DDC; }\n .custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #81a9f2; }\n .custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #afc8f7;\n border-color: #afc8f7; }\n .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d; }\n .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e0e0e0; }\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top; }\n .custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fbfbfb;\n border: #adb5bd solid 1px; }\n .custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%; }\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem; }\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"); }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #175DDC;\n background-color: #175DDC; }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\"); }\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(23, 93, 220, 0.5); }\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(23, 93, 220, 0.5); }\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%; }\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\"); }\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(23, 93, 220, 0.5); }\n\n.custom-switch {\n padding-left: 2.25rem; }\n .custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem; }\n .custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none; } }\n .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fbfbfb;\n transform: translateX(0.75rem); }\n .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(23, 93, 220, 0.5); }\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fbfbfb;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none; }\n .custom-select:focus {\n border-color: #81a9f2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fbfbfb; }\n .custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none; }\n .custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef; }\n .custom-select::-ms-expand {\n display: none; }\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem; }\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.15rem; }\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0; }\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0; }\n .custom-file-input:focus ~ .custom-file-label {\n border-color: #81a9f2;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-file-input:disabled ~ .custom-file-label {\n background-color: #e0e0e0; }\n .custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\"; }\n .custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse); }\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fbfbfb;\n border: 1px solid #ced4da;\n border-radius: 0.25rem; }\n .custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0; }\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none; }\n .custom-range:focus {\n outline: none; }\n .custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-range::-moz-focus-outer {\n border: 0; }\n .custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #175DDC;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none; } }\n .custom-range::-webkit-slider-thumb:active {\n background-color: #afc8f7; }\n .custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #175DDC;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none; } }\n .custom-range::-moz-range-thumb:active {\n background-color: #afc8f7; }\n .custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #175DDC;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none; } }\n .custom-range::-ms-thumb:active {\n background-color: #afc8f7; }\n .custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem; }\n .custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default; }\n .custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-moz-range-track {\n cursor: default; }\n .custom-range:disabled::-ms-thumb {\n background-color: #adb5bd; }\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none; } }\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem; }\n .nav-link:hover, .nav-link:focus {\n text-decoration: none; }\n .nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default; }\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6; }\n .nav-tabs .nav-item {\n margin-bottom: -1px; }\n .nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6; }\n .nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent; }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #ffffff;\n border-color: #dee2e6 #dee2e6 #ffffff; }\n .nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.nav-pills .nav-link {\n border-radius: 0.25rem; }\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #175DDC; }\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center; }\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center; }\n\n.tab-content > .tab-pane {\n display: none; }\n\n.tab-content > .active {\n display: block; }\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem; }\n .navbar > .container,\n .navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between; }\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 1rem;\n font-size: 2.1875rem;\n line-height: inherit;\n white-space: nowrap; }\n .navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none; }\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n .navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem; }\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center; }\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.15rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n .navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none; }\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%; }\n\n@media (max-width: 0.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 1px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row; }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-sm .navbar-toggler {\n display: none; } }\n\n@media (max-width: 1.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 2px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-md .navbar-nav {\n flex-direction: row; }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-md .navbar-toggler {\n display: none; } }\n\n@media (max-width: 2.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 3px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row; }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-lg .navbar-toggler {\n display: none; } }\n\n@media (max-width: 3.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 4px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row; }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-xl .navbar-toggler {\n display: none; } }\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0; }\n .navbar-expand .navbar-nav {\n flex-direction: row; }\n .navbar-expand .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand .navbar-toggler {\n display: none; }\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9); }\n .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5); }\n .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7); }\n .navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1); }\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"); }\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5); }\n .navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9); }\n .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-dark .navbar-brand {\n color: #fff; }\n .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff; }\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.7); }\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.9); }\n .navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff; }\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.7);\n border-color: rgba(255, 255, 255, 0.1); }\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"); }\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.7); }\n .navbar-dark .navbar-text a {\n color: #fff; }\n .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff; }\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n .card > hr {\n margin-right: 0;\n margin-left: 0; }\n .card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem; }\n\n.card-title {\n margin-bottom: 0.6rem; }\n\n.card-subtitle {\n margin-top: -0.3rem;\n margin-bottom: 0; }\n\n.card-text:last-child {\n margin-bottom: 0; }\n\n.card-link:hover {\n text-decoration: none; }\n\n.card-link + .card-link {\n margin-left: 1.25rem; }\n\n.card-header {\n padding: 0.6rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n .card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n .card-header + .list-group .list-group-item:first-child {\n border-top: 0; }\n\n.card-footer {\n padding: 0.6rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n .card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.6rem;\n margin-left: -0.625rem;\n border-bottom: 0; }\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem; }\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem; }\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px); }\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n\n.card-deck {\n display: flex;\n flex-direction: column; }\n .card-deck .card {\n margin-bottom: 10px; }\n @media (min-width: 1px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -10px;\n margin-left: -10px; }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 10px;\n margin-bottom: 0;\n margin-left: 10px; } }\n\n.card-group {\n display: flex;\n flex-direction: column; }\n .card-group > .card {\n margin-bottom: 10px; }\n @media (min-width: 1px) {\n .card-group {\n flex-flow: row wrap; }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0; }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0; } }\n\n.card-columns .card {\n margin-bottom: 0.6rem; }\n\n@media (min-width: 1px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1; }\n .card-columns .card {\n display: inline-block;\n width: 100%; } }\n\n.accordion > .card {\n overflow: hidden; }\n .accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0; }\n .accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0; }\n .accordion > .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n .accordion > .card .card-header {\n margin-bottom: -1px; }\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem; }\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem; }\n .breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\"; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none; }\n\n.breadcrumb-item.active {\n color: #6c757d; }\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem; }\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #175DDC;\n background-color: #fff;\n border: 1px solid #dee2e6; }\n .page-link:hover {\n z-index: 2;\n color: #104097;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6; }\n .page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem; }\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6; }\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.15rem;\n line-height: 1.5; }\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem; }\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5; }\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem; }\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem; }\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none; } }\n a.badge:hover, a.badge:focus {\n text-decoration: none; }\n .badge:empty {\n display: none; }\n\n.btn .badge, .swal2-popup .swal2-actions button .badge {\n position: relative;\n top: -1px; }\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem; }\n\n.badge-primary {\n color: #fff;\n background-color: #175DDC; }\n a.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #1249ae; }\n a.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); }\n\n.badge-secondary {\n color: #212529;\n background-color: #ced4da; }\n a.badge-secondary:hover, a.badge-secondary:focus {\n color: #212529;\n background-color: #b1bbc4; }\n a.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); }\n\n.badge-success {\n color: #fff;\n background-color: #00a65a; }\n a.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #00733e; }\n a.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); }\n\n.badge-info {\n color: #fff;\n background-color: #555555; }\n a.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #3c3c3c; }\n a.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); }\n\n.badge-warning {\n color: #fff;\n background-color: #bf7e16; }\n a.badge-warning:hover, a.badge-warning:focus {\n color: #fff;\n background-color: #916011; }\n a.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); }\n\n.badge-danger {\n color: #fff;\n background-color: #dd4b39; }\n a.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #c23321; }\n a.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); }\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa; }\n a.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5; }\n a.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\n\n.badge-dark {\n color: #fff;\n background-color: #343a40; }\n a.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124; }\n a.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\n\n.badge-primary-accent {\n color: #fff;\n background-color: #1252A3; }\n a.badge-primary-accent:hover, a.badge-primary-accent:focus {\n color: #fff;\n background-color: #0d3b75; }\n a.badge-primary-accent:focus, a.badge-primary-accent.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); }\n\n.badge-secondary-alt {\n color: #fff;\n background-color: #1A3B66; }\n a.badge-secondary-alt:hover, a.badge-secondary-alt:focus {\n color: #fff;\n background-color: #10233d; }\n a.badge-secondary-alt:focus, a.badge-secondary-alt.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); }\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem; }\n @media (min-width: 1px) {\n .jumbotron {\n padding: 4rem 2rem; } }\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0; }\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n\n.alert-heading {\n color: inherit; }\n\n.alert-link {\n font-weight: 700; }\n\n.alert-dismissible {\n padding-right: 4rem; }\n .alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit; }\n\n.alert-primary {\n color: #0c3072;\n background-color: #d1dff8;\n border-color: #bed2f5; }\n .alert-primary hr {\n border-top-color: #a8c3f2; }\n .alert-primary .alert-link {\n color: #071d44; }\n\n.alert-secondary {\n color: #6b6e71;\n background-color: #f5f6f8;\n border-color: #f1f3f5; }\n .alert-secondary hr {\n border-top-color: #e2e6ea; }\n .alert-secondary .alert-link {\n color: #525557; }\n\n.alert-success {\n color: #00562f;\n background-color: #ccedde;\n border-color: #b8e6d1; }\n .alert-success hr {\n border-top-color: #a5dfc5; }\n .alert-success .alert-link {\n color: #002313; }\n\n.alert-info {\n color: #2c2c2c;\n background-color: #dddddd;\n border-color: #cfcfcf; }\n .alert-info hr {\n border-top-color: #c2c2c2; }\n .alert-info .alert-link {\n color: #131313; }\n\n.alert-warning {\n color: #63420b;\n background-color: #f2e5d0;\n border-color: #eddbbe; }\n .alert-warning hr {\n border-top-color: #e7d0aa; }\n .alert-warning .alert-link {\n color: #352306; }\n\n.alert-danger {\n color: #73271e;\n background-color: #f8dbd7;\n border-color: #f5cdc8; }\n .alert-danger hr {\n border-top-color: #f1b9b2; }\n .alert-danger .alert-link {\n color: #4b1913; }\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe; }\n .alert-light hr {\n border-top-color: #ececf6; }\n .alert-light .alert-link {\n color: #686868; }\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca; }\n .alert-dark hr {\n border-top-color: #b9bbbe; }\n .alert-dark .alert-link {\n color: #040505; }\n\n.alert-primary-accent {\n color: #092b55;\n background-color: #d0dced;\n border-color: #bdcfe5; }\n .alert-primary-accent hr {\n border-top-color: #abc2de; }\n .alert-primary-accent .alert-link {\n color: #041427; }\n\n.alert-secondary-alt {\n color: #0e1f35;\n background-color: #d1d8e0;\n border-color: #bfc8d4; }\n .alert-secondary-alt hr {\n border-top-color: #b0bbca; }\n .alert-secondary-alt .alert-link {\n color: #03070d; }\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem; }\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #175DDC;\n transition: width 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none; } }\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none; } }\n\n.media {\n display: flex;\n align-items: flex-start; }\n\n.media-body {\n flex: 1; }\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0; }\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa; }\n .list-group-item-action:active {\n color: #333333;\n background-color: #e9ecef; }\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.6rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125); }\n .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n .list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff; }\n .list-group-item.active {\n z-index: 2;\n color: #333333;\n background-color: #ffffff;\n border-color: rgba(0, 0, 0, 0.125); }\n\n.list-group-horizontal {\n flex-direction: row; }\n .list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n\n@media (min-width: 1px) {\n .list-group-horizontal-sm {\n flex-direction: row; }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; } }\n\n@media (min-width: 2px) {\n .list-group-horizontal-md {\n flex-direction: row; }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; } }\n\n@media (min-width: 3px) {\n .list-group-horizontal-lg {\n flex-direction: row; }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; } }\n\n@media (min-width: 4px) {\n .list-group-horizontal-xl {\n flex-direction: row; }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; } }\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0; }\n .list-group-flush .list-group-item:last-child {\n margin-bottom: -1px; }\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0; }\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0; }\n\n.list-group-item-primary {\n color: #0c3072;\n background-color: #bed2f5; }\n .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #0c3072;\n background-color: #a8c3f2; }\n .list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #0c3072;\n border-color: #0c3072; }\n\n.list-group-item-secondary {\n color: #6b6e71;\n background-color: #f1f3f5; }\n .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #6b6e71;\n background-color: #e2e6ea; }\n .list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #6b6e71;\n border-color: #6b6e71; }\n\n.list-group-item-success {\n color: #00562f;\n background-color: #b8e6d1; }\n .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #00562f;\n background-color: #a5dfc5; }\n .list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #00562f;\n border-color: #00562f; }\n\n.list-group-item-info {\n color: #2c2c2c;\n background-color: #cfcfcf; }\n .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #2c2c2c;\n background-color: #c2c2c2; }\n .list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #2c2c2c;\n border-color: #2c2c2c; }\n\n.list-group-item-warning {\n color: #63420b;\n background-color: #eddbbe; }\n .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #63420b;\n background-color: #e7d0aa; }\n .list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #63420b;\n border-color: #63420b; }\n\n.list-group-item-danger {\n color: #73271e;\n background-color: #f5cdc8; }\n .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #73271e;\n background-color: #f1b9b2; }\n .list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #73271e;\n border-color: #73271e; }\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe; }\n .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6; }\n .list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182; }\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca; }\n .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe; }\n .list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21; }\n\n.list-group-item-primary-accent {\n color: #092b55;\n background-color: #bdcfe5; }\n .list-group-item-primary-accent.list-group-item-action:hover, .list-group-item-primary-accent.list-group-item-action:focus {\n color: #092b55;\n background-color: #abc2de; }\n .list-group-item-primary-accent.list-group-item-action.active {\n color: #fff;\n background-color: #092b55;\n border-color: #092b55; }\n\n.list-group-item-secondary-alt {\n color: #0e1f35;\n background-color: #bfc8d4; }\n .list-group-item-secondary-alt.list-group-item-action:hover, .list-group-item-secondary-alt.list-group-item-action:focus {\n color: #0e1f35;\n background-color: #b0bbca; }\n .list-group-item-secondary-alt.list-group-item-action.active {\n color: #fff;\n background-color: #0e1f35;\n border-color: #0e1f35; }\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5; }\n .close:hover {\n color: #000;\n text-decoration: none; }\n .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75; }\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none; }\n\na.close.disabled {\n pointer-events: none; }\n\n.modal-open {\n overflow: hidden; }\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0; }\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none; }\n .modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px); }\n @media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none; } }\n .modal.show .modal-dialog {\n transform: none; }\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden; }\n .modal-dialog-scrollable .modal-header,\n .modal-dialog-scrollable .modal-footer {\n flex-shrink: 0; }\n .modal-dialog-scrollable .modal-body {\n overflow-y: auto; }\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem); }\n .modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\"; }\n .modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%; }\n .modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none; }\n .modal-dialog-centered.modal-dialog-scrollable::before {\n content: none; }\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0; }\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000; }\n .modal-backdrop.fade {\n opacity: 0; }\n .modal-backdrop.show {\n opacity: 0.3; }\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem; }\n .modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto; }\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem; }\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n .modal-footer > :not(:first-child) {\n margin-left: .25rem; }\n .modal-footer > :not(:last-child) {\n margin-right: .25rem; }\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n@media (min-width: 1px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto; }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem); }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem); }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem); }\n .modal-sm {\n max-width: 300px; } }\n\n@media (min-width: 3px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px; } }\n\n@media (min-width: 4px) {\n .modal-xl {\n max-width: 1140px; } }\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0; }\n .tooltip.show {\n opacity: 0.9; }\n .tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem; }\n .tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid; }\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0; }\n .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0; }\n .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000; }\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem; }\n .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000; }\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0; }\n .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0; }\n .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000; }\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem; }\n .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000; }\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n .popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem; }\n .popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid; }\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem; }\n .bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc((0.5rem + 1px) * -1); }\n .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff; }\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem; }\n .bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff; }\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem; }\n .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc((0.5rem + 1px) * -1); }\n .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff; }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7; }\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem; }\n .bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff; }\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .popover-header:empty {\n display: none; }\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #333333; }\n\n.carousel {\n position: relative; }\n\n.carousel.pointer-event {\n touch-action: pan-y; }\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n .carousel-inner::after {\n display: block;\n clear: both;\n content: \"\"; }\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none; } }\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block; }\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%); }\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%); }\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none; }\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1; }\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none; } }\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none; } }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9; }\n\n.carousel-control-prev {\n left: 0; }\n\n.carousel-control-next {\n right: 0; }\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%; }\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"); }\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"); }\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none; }\n .carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none; } }\n .carousel-indicators .active {\n opacity: 1; }\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center; }\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg); } }\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite; }\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em; }\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0); }\n 50% {\n opacity: 1; } }\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite; }\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem; }\n\n.align-baseline {\n vertical-align: baseline !important; }\n\n.align-top {\n vertical-align: top !important; }\n\n.align-middle {\n vertical-align: middle !important; }\n\n.align-bottom {\n vertical-align: bottom !important; }\n\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n\n.align-text-top {\n vertical-align: text-top !important; }\n\n.bg-primary {\n background-color: #175DDC !important; }\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #1249ae !important; }\n\n.bg-secondary {\n background-color: #ced4da !important; }\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #b1bbc4 !important; }\n\n.bg-success {\n background-color: #00a65a !important; }\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #00733e !important; }\n\n.bg-info {\n background-color: #555555 !important; }\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #3c3c3c !important; }\n\n.bg-warning {\n background-color: #bf7e16 !important; }\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #916011 !important; }\n\n.bg-danger {\n background-color: #dd4b39 !important; }\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #c23321 !important; }\n\n.bg-light {\n background-color: #f8f9fa !important; }\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important; }\n\n.bg-dark {\n background-color: #343a40 !important; }\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important; }\n\n.bg-primary-accent {\n background-color: #1252A3 !important; }\n\na.bg-primary-accent:hover, a.bg-primary-accent:focus,\nbutton.bg-primary-accent:hover,\nbutton.bg-primary-accent:focus {\n background-color: #0d3b75 !important; }\n\n.bg-secondary-alt {\n background-color: #1A3B66 !important; }\n\na.bg-secondary-alt:hover, a.bg-secondary-alt:focus,\nbutton.bg-secondary-alt:hover,\nbutton.bg-secondary-alt:focus {\n background-color: #10233d !important; }\n\n.bg-white {\n background-color: #fff !important; }\n\n.bg-transparent {\n background-color: transparent !important; }\n\n.border {\n border: 1px solid #dee2e6 !important; }\n\n.border-top {\n border-top: 1px solid #dee2e6 !important; }\n\n.border-right {\n border-right: 1px solid #dee2e6 !important; }\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important; }\n\n.border-left {\n border-left: 1px solid #dee2e6 !important; }\n\n.border-0 {\n border: 0 !important; }\n\n.border-top-0 {\n border-top: 0 !important; }\n\n.border-right-0 {\n border-right: 0 !important; }\n\n.border-bottom-0 {\n border-bottom: 0 !important; }\n\n.border-left-0 {\n border-left: 0 !important; }\n\n.border-primary {\n border-color: #175DDC !important; }\n\n.border-secondary {\n border-color: #ced4da !important; }\n\n.border-success {\n border-color: #00a65a !important; }\n\n.border-info {\n border-color: #555555 !important; }\n\n.border-warning {\n border-color: #bf7e16 !important; }\n\n.border-danger {\n border-color: #dd4b39 !important; }\n\n.border-light {\n border-color: #f8f9fa !important; }\n\n.border-dark {\n border-color: #343a40 !important; }\n\n.border-primary-accent {\n border-color: #1252A3 !important; }\n\n.border-secondary-alt {\n border-color: #1A3B66 !important; }\n\n.border-white {\n border-color: #fff !important; }\n\n.rounded-sm {\n border-radius: 0.2rem !important; }\n\n.rounded, .table.table-list td.table-list-icon img, app-avatar img {\n border-radius: 0.25rem !important; }\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important; }\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important; }\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-lg {\n border-radius: 0.3rem !important; }\n\n.rounded-circle {\n border-radius: 50% !important; }\n\n.rounded-pill {\n border-radius: 50rem !important; }\n\n.rounded-0 {\n border-radius: 0 !important; }\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\"; }\n\n.d-none {\n display: none !important; }\n\n.d-inline {\n display: inline !important; }\n\n.d-inline-block {\n display: inline-block !important; }\n\n.d-block {\n display: block !important; }\n\n.d-table {\n display: table !important; }\n\n.d-table-row {\n display: table-row !important; }\n\n.d-table-cell {\n display: table-cell !important; }\n\n.d-flex {\n display: flex !important; }\n\n.d-inline-flex {\n display: inline-flex !important; }\n\n@media (min-width: 1px) {\n .d-sm-none {\n display: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-row {\n display: table-row !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: flex !important; }\n .d-sm-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 2px) {\n .d-md-none {\n display: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-row {\n display: table-row !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: flex !important; }\n .d-md-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 3px) {\n .d-lg-none {\n display: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-row {\n display: table-row !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: flex !important; }\n .d-lg-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 4px) {\n .d-xl-none {\n display: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-row {\n display: table-row !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: flex !important; }\n .d-xl-inline-flex {\n display: inline-flex !important; } }\n\n@media print {\n .d-print-none {\n display: none !important; }\n .d-print-inline {\n display: inline !important; }\n .d-print-inline-block {\n display: inline-block !important; }\n .d-print-block {\n display: block !important; }\n .d-print-table {\n display: table !important; }\n .d-print-table-row {\n display: table-row !important; }\n .d-print-table-cell {\n display: table-cell !important; }\n .d-print-flex {\n display: flex !important; }\n .d-print-inline-flex {\n display: inline-flex !important; } }\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden; }\n .embed-responsive::before {\n display: block;\n content: \"\"; }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object,\n .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0; }\n\n.embed-responsive-21by9::before {\n padding-top: 42.85714%; }\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%; }\n\n.embed-responsive-4by3::before {\n padding-top: 75%; }\n\n.embed-responsive-1by1::before {\n padding-top: 100%; }\n\n.flex-row {\n flex-direction: row !important; }\n\n.flex-column {\n flex-direction: column !important; }\n\n.flex-row-reverse {\n flex-direction: row-reverse !important; }\n\n.flex-column-reverse {\n flex-direction: column-reverse !important; }\n\n.flex-wrap {\n flex-wrap: wrap !important; }\n\n.flex-nowrap {\n flex-wrap: nowrap !important; }\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n\n.flex-fill {\n flex: 1 1 auto !important; }\n\n.flex-grow-0 {\n flex-grow: 0 !important; }\n\n.flex-grow-1 {\n flex-grow: 1 !important; }\n\n.flex-shrink-0 {\n flex-shrink: 0 !important; }\n\n.flex-shrink-1 {\n flex-shrink: 1 !important; }\n\n.justify-content-start {\n justify-content: flex-start !important; }\n\n.justify-content-end {\n justify-content: flex-end !important; }\n\n.justify-content-center {\n justify-content: center !important; }\n\n.justify-content-between {\n justify-content: space-between !important; }\n\n.justify-content-around {\n justify-content: space-around !important; }\n\n.align-items-start {\n align-items: flex-start !important; }\n\n.align-items-end {\n align-items: flex-end !important; }\n\n.align-items-center {\n align-items: center !important; }\n\n.align-items-baseline {\n align-items: baseline !important; }\n\n.align-items-stretch {\n align-items: stretch !important; }\n\n.align-content-start {\n align-content: flex-start !important; }\n\n.align-content-end {\n align-content: flex-end !important; }\n\n.align-content-center {\n align-content: center !important; }\n\n.align-content-between {\n align-content: space-between !important; }\n\n.align-content-around {\n align-content: space-around !important; }\n\n.align-content-stretch {\n align-content: stretch !important; }\n\n.align-self-auto {\n align-self: auto !important; }\n\n.align-self-start {\n align-self: flex-start !important; }\n\n.align-self-end {\n align-self: flex-end !important; }\n\n.align-self-center {\n align-self: center !important; }\n\n.align-self-baseline {\n align-self: baseline !important; }\n\n.align-self-stretch {\n align-self: stretch !important; }\n\n@media (min-width: 1px) {\n .flex-sm-row {\n flex-direction: row !important; }\n .flex-sm-column {\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-sm-wrap {\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-sm-fill {\n flex: 1 1 auto !important; }\n .flex-sm-grow-0 {\n flex-grow: 0 !important; }\n .flex-sm-grow-1 {\n flex-grow: 1 !important; }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-sm-start {\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n justify-content: center !important; }\n .justify-content-sm-between {\n justify-content: space-between !important; }\n .justify-content-sm-around {\n justify-content: space-around !important; }\n .align-items-sm-start {\n align-items: flex-start !important; }\n .align-items-sm-end {\n align-items: flex-end !important; }\n .align-items-sm-center {\n align-items: center !important; }\n .align-items-sm-baseline {\n align-items: baseline !important; }\n .align-items-sm-stretch {\n align-items: stretch !important; }\n .align-content-sm-start {\n align-content: flex-start !important; }\n .align-content-sm-end {\n align-content: flex-end !important; }\n .align-content-sm-center {\n align-content: center !important; }\n .align-content-sm-between {\n align-content: space-between !important; }\n .align-content-sm-around {\n align-content: space-around !important; }\n .align-content-sm-stretch {\n align-content: stretch !important; }\n .align-self-sm-auto {\n align-self: auto !important; }\n .align-self-sm-start {\n align-self: flex-start !important; }\n .align-self-sm-end {\n align-self: flex-end !important; }\n .align-self-sm-center {\n align-self: center !important; }\n .align-self-sm-baseline {\n align-self: baseline !important; }\n .align-self-sm-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 2px) {\n .flex-md-row {\n flex-direction: row !important; }\n .flex-md-column {\n flex-direction: column !important; }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-md-wrap {\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-md-fill {\n flex: 1 1 auto !important; }\n .flex-md-grow-0 {\n flex-grow: 0 !important; }\n .flex-md-grow-1 {\n flex-grow: 1 !important; }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-md-start {\n justify-content: flex-start !important; }\n .justify-content-md-end {\n justify-content: flex-end !important; }\n .justify-content-md-center {\n justify-content: center !important; }\n .justify-content-md-between {\n justify-content: space-between !important; }\n .justify-content-md-around {\n justify-content: space-around !important; }\n .align-items-md-start {\n align-items: flex-start !important; }\n .align-items-md-end {\n align-items: flex-end !important; }\n .align-items-md-center {\n align-items: center !important; }\n .align-items-md-baseline {\n align-items: baseline !important; }\n .align-items-md-stretch {\n align-items: stretch !important; }\n .align-content-md-start {\n align-content: flex-start !important; }\n .align-content-md-end {\n align-content: flex-end !important; }\n .align-content-md-center {\n align-content: center !important; }\n .align-content-md-between {\n align-content: space-between !important; }\n .align-content-md-around {\n align-content: space-around !important; }\n .align-content-md-stretch {\n align-content: stretch !important; }\n .align-self-md-auto {\n align-self: auto !important; }\n .align-self-md-start {\n align-self: flex-start !important; }\n .align-self-md-end {\n align-self: flex-end !important; }\n .align-self-md-center {\n align-self: center !important; }\n .align-self-md-baseline {\n align-self: baseline !important; }\n .align-self-md-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 3px) {\n .flex-lg-row {\n flex-direction: row !important; }\n .flex-lg-column {\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-lg-wrap {\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-lg-fill {\n flex: 1 1 auto !important; }\n .flex-lg-grow-0 {\n flex-grow: 0 !important; }\n .flex-lg-grow-1 {\n flex-grow: 1 !important; }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-lg-start {\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n justify-content: center !important; }\n .justify-content-lg-between {\n justify-content: space-between !important; }\n .justify-content-lg-around {\n justify-content: space-around !important; }\n .align-items-lg-start {\n align-items: flex-start !important; }\n .align-items-lg-end {\n align-items: flex-end !important; }\n .align-items-lg-center {\n align-items: center !important; }\n .align-items-lg-baseline {\n align-items: baseline !important; }\n .align-items-lg-stretch {\n align-items: stretch !important; }\n .align-content-lg-start {\n align-content: flex-start !important; }\n .align-content-lg-end {\n align-content: flex-end !important; }\n .align-content-lg-center {\n align-content: center !important; }\n .align-content-lg-between {\n align-content: space-between !important; }\n .align-content-lg-around {\n align-content: space-around !important; }\n .align-content-lg-stretch {\n align-content: stretch !important; }\n .align-self-lg-auto {\n align-self: auto !important; }\n .align-self-lg-start {\n align-self: flex-start !important; }\n .align-self-lg-end {\n align-self: flex-end !important; }\n .align-self-lg-center {\n align-self: center !important; }\n .align-self-lg-baseline {\n align-self: baseline !important; }\n .align-self-lg-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 4px) {\n .flex-xl-row {\n flex-direction: row !important; }\n .flex-xl-column {\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-xl-wrap {\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-xl-fill {\n flex: 1 1 auto !important; }\n .flex-xl-grow-0 {\n flex-grow: 0 !important; }\n .flex-xl-grow-1 {\n flex-grow: 1 !important; }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-xl-start {\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n justify-content: center !important; }\n .justify-content-xl-between {\n justify-content: space-between !important; }\n .justify-content-xl-around {\n justify-content: space-around !important; }\n .align-items-xl-start {\n align-items: flex-start !important; }\n .align-items-xl-end {\n align-items: flex-end !important; }\n .align-items-xl-center {\n align-items: center !important; }\n .align-items-xl-baseline {\n align-items: baseline !important; }\n .align-items-xl-stretch {\n align-items: stretch !important; }\n .align-content-xl-start {\n align-content: flex-start !important; }\n .align-content-xl-end {\n align-content: flex-end !important; }\n .align-content-xl-center {\n align-content: center !important; }\n .align-content-xl-between {\n align-content: space-between !important; }\n .align-content-xl-around {\n align-content: space-around !important; }\n .align-content-xl-stretch {\n align-content: stretch !important; }\n .align-self-xl-auto {\n align-self: auto !important; }\n .align-self-xl-start {\n align-self: flex-start !important; }\n .align-self-xl-end {\n align-self: flex-end !important; }\n .align-self-xl-center {\n align-self: center !important; }\n .align-self-xl-baseline {\n align-self: baseline !important; }\n .align-self-xl-stretch {\n align-self: stretch !important; } }\n\n.float-left {\n float: left !important; }\n\n.float-right {\n float: right !important; }\n\n.float-none {\n float: none !important; }\n\n@media (min-width: 1px) {\n .float-sm-left {\n float: left !important; }\n .float-sm-right {\n float: right !important; }\n .float-sm-none {\n float: none !important; } }\n\n@media (min-width: 2px) {\n .float-md-left {\n float: left !important; }\n .float-md-right {\n float: right !important; }\n .float-md-none {\n float: none !important; } }\n\n@media (min-width: 3px) {\n .float-lg-left {\n float: left !important; }\n .float-lg-right {\n float: right !important; }\n .float-lg-none {\n float: none !important; } }\n\n@media (min-width: 4px) {\n .float-xl-left {\n float: left !important; }\n .float-xl-right {\n float: right !important; }\n .float-xl-none {\n float: none !important; } }\n\n.overflow-auto {\n overflow: auto !important; }\n\n.overflow-hidden {\n overflow: hidden !important; }\n\n.position-static {\n position: static !important; }\n\n.position-relative {\n position: relative !important; }\n\n.position-absolute {\n position: absolute !important; }\n\n.position-fixed {\n position: fixed !important; }\n\n.position-sticky {\n position: sticky !important; }\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n.sr-only, .table.table-list tr:not(:hover) td.table-list-options > .dropdown:not(.show) button:not(:focus):not(:active), .table.table-list tr:not(:hover) td.table-list-options > button:not(:focus):not(:active) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal; }\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\n\n.shadow-none {\n box-shadow: none !important; }\n\n.w-25 {\n width: 25% !important; }\n\n.w-50 {\n width: 50% !important; }\n\n.w-75 {\n width: 75% !important; }\n\n.w-100 {\n width: 100% !important; }\n\n.w-auto {\n width: auto !important; }\n\n.h-25 {\n height: 25% !important; }\n\n.h-50 {\n height: 50% !important; }\n\n.h-75 {\n height: 75% !important; }\n\n.h-100 {\n height: 100% !important; }\n\n.h-auto {\n height: auto !important; }\n\n.mw-100 {\n max-width: 100% !important; }\n\n.mh-100 {\n max-height: 100% !important; }\n\n.min-vw-100 {\n min-width: 100vw !important; }\n\n.min-vh-100 {\n min-height: 100vh !important; }\n\n.vw-100 {\n width: 100vw !important; }\n\n.vh-100 {\n height: 100vh !important; }\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0); }\n\n.m-0 {\n margin: 0 !important; }\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important; }\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important; }\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important; }\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important; }\n\n.m-1 {\n margin: 0.25rem !important; }\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important; }\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important; }\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important; }\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important; }\n\n.m-2 {\n margin: 0.5rem !important; }\n\n.mt-2, .form-check-block .form-check-label > span,\n.my-2 {\n margin-top: 0.5rem !important; }\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important; }\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important; }\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important; }\n\n.m-3 {\n margin: 1rem !important; }\n\n.mt-3, .form-check-block + .form-check-block:not(.mt-2),\n.my-3 {\n margin-top: 1rem !important; }\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important; }\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important; }\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important; }\n\n.m-4 {\n margin: 1.5rem !important; }\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important; }\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important; }\n\n.mb-4, .card-body-header,\n.my-4 {\n margin-bottom: 1.5rem !important; }\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important; }\n\n.m-5 {\n margin: 3rem !important; }\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important; }\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important; }\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important; }\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important; }\n\n.p-0 {\n padding: 0 !important; }\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important; }\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important; }\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important; }\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important; }\n\n.p-1 {\n padding: 0.25rem !important; }\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important; }\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important; }\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important; }\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important; }\n\n.p-2 {\n padding: 0.5rem !important; }\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important; }\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important; }\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important; }\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important; }\n\n.p-3 {\n padding: 1rem !important; }\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important; }\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important; }\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important; }\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important; }\n\n.p-4 {\n padding: 1.5rem !important; }\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important; }\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important; }\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important; }\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important; }\n\n.p-5 {\n padding: 3rem !important; }\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important; }\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important; }\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important; }\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important; }\n\n.m-n1 {\n margin: -0.25rem !important; }\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important; }\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important; }\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important; }\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important; }\n\n.m-n2 {\n margin: -0.5rem !important; }\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important; }\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important; }\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important; }\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important; }\n\n.m-n3 {\n margin: -1rem !important; }\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important; }\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important; }\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important; }\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important; }\n\n.m-n4 {\n margin: -1.5rem !important; }\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important; }\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important; }\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important; }\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important; }\n\n.m-n5 {\n margin: -3rem !important; }\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important; }\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important; }\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important; }\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important; }\n\n.m-auto {\n margin: auto !important; }\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important; }\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important; }\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important; }\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important; }\n\n@media (min-width: 1px) {\n .m-sm-0 {\n margin: 0 !important; }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important; }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important; }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important; }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem !important; }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important; }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important; }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important; }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem !important; }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important; }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important; }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important; }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem !important; }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important; }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important; }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important; }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem !important; }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important; }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important; }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important; }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem !important; }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important; }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important; }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important; }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important; }\n .p-sm-0 {\n padding: 0 !important; }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important; }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important; }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important; }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem !important; }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important; }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important; }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem !important; }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important; }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important; }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem !important; }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important; }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important; }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important; }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem !important; }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important; }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important; }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem !important; }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important; }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important; }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important; }\n .m-sm-n1 {\n margin: -0.25rem !important; }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important; }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important; }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important; }\n .m-sm-n2 {\n margin: -0.5rem !important; }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important; }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important; }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important; }\n .m-sm-n3 {\n margin: -1rem !important; }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important; }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important; }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important; }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important; }\n .m-sm-n4 {\n margin: -1.5rem !important; }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important; }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important; }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important; }\n .m-sm-n5 {\n margin: -3rem !important; }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important; }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important; }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important; }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important; }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important; }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important; }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 2px) {\n .m-md-0 {\n margin: 0 !important; }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important; }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important; }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important; }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important; }\n .m-md-1 {\n margin: 0.25rem !important; }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important; }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important; }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important; }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem !important; }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important; }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important; }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important; }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem !important; }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important; }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important; }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important; }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem !important; }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important; }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important; }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important; }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem !important; }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important; }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important; }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important; }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important; }\n .p-md-0 {\n padding: 0 !important; }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important; }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important; }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important; }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important; }\n .p-md-1 {\n padding: 0.25rem !important; }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important; }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important; }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important; }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem !important; }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important; }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important; }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important; }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem !important; }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important; }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important; }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important; }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem !important; }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important; }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important; }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important; }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem !important; }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important; }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important; }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important; }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important; }\n .m-md-n1 {\n margin: -0.25rem !important; }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important; }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important; }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important; }\n .m-md-n2 {\n margin: -0.5rem !important; }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important; }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important; }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important; }\n .m-md-n3 {\n margin: -1rem !important; }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important; }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important; }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important; }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important; }\n .m-md-n4 {\n margin: -1.5rem !important; }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important; }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important; }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important; }\n .m-md-n5 {\n margin: -3rem !important; }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important; }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important; }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important; }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important; }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important; }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important; }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 3px) {\n .m-lg-0 {\n margin: 0 !important; }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important; }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important; }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important; }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem !important; }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important; }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important; }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important; }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem !important; }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important; }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important; }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important; }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem !important; }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important; }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important; }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important; }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem !important; }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important; }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important; }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important; }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem !important; }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important; }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important; }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important; }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important; }\n .p-lg-0 {\n padding: 0 !important; }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important; }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important; }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important; }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem !important; }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important; }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important; }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem !important; }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important; }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important; }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem !important; }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important; }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important; }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important; }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem !important; }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important; }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important; }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem !important; }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important; }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important; }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important; }\n .m-lg-n1 {\n margin: -0.25rem !important; }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important; }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important; }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important; }\n .m-lg-n2 {\n margin: -0.5rem !important; }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important; }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important; }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important; }\n .m-lg-n3 {\n margin: -1rem !important; }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important; }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important; }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important; }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important; }\n .m-lg-n4 {\n margin: -1.5rem !important; }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important; }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important; }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important; }\n .m-lg-n5 {\n margin: -3rem !important; }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important; }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important; }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important; }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important; }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important; }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important; }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 4px) {\n .m-xl-0 {\n margin: 0 !important; }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important; }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important; }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important; }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem !important; }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important; }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important; }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important; }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem !important; }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important; }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important; }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important; }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem !important; }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important; }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important; }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important; }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem !important; }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important; }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important; }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important; }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem !important; }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important; }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important; }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important; }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important; }\n .p-xl-0 {\n padding: 0 !important; }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important; }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important; }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important; }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem !important; }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important; }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important; }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem !important; }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important; }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important; }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem !important; }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important; }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important; }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important; }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem !important; }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important; }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important; }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem !important; }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important; }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important; }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important; }\n .m-xl-n1 {\n margin: -0.25rem !important; }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important; }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important; }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important; }\n .m-xl-n2 {\n margin: -0.5rem !important; }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important; }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important; }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important; }\n .m-xl-n3 {\n margin: -1rem !important; }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important; }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important; }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important; }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important; }\n .m-xl-n4 {\n margin: -1.5rem !important; }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important; }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important; }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important; }\n .m-xl-n5 {\n margin: -3rem !important; }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important; }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important; }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important; }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important; }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important; }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important; }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important; } }\n\n.text-monospace, .totp .totp-code {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important; }\n\n.text-justify {\n text-align: justify !important; }\n\n.text-wrap {\n white-space: normal !important; }\n\n.text-nowrap {\n white-space: nowrap !important; }\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.text-left {\n text-align: left !important; }\n\n.text-right {\n text-align: right !important; }\n\n.text-center {\n text-align: center !important; }\n\n@media (min-width: 1px) {\n .text-sm-left {\n text-align: left !important; }\n .text-sm-right {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n\n@media (min-width: 2px) {\n .text-md-left {\n text-align: left !important; }\n .text-md-right {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n\n@media (min-width: 3px) {\n .text-lg-left {\n text-align: left !important; }\n .text-lg-right {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n\n@media (min-width: 4px) {\n .text-xl-left {\n text-align: left !important; }\n .text-xl-right {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n\n.text-lowercase {\n text-transform: lowercase !important; }\n\n.text-uppercase {\n text-transform: uppercase !important; }\n\n.text-capitalize {\n text-transform: capitalize !important; }\n\n.font-weight-light {\n font-weight: 300 !important; }\n\n.font-weight-lighter {\n font-weight: lighter !important; }\n\n.font-weight-normal {\n font-weight: 400 !important; }\n\n.font-weight-bold {\n font-weight: 700 !important; }\n\n.font-weight-bolder {\n font-weight: bolder !important; }\n\n.font-italic {\n font-style: italic !important; }\n\n.text-white {\n color: #fff !important; }\n\n.text-primary {\n color: #175DDC !important; }\n\na.text-primary:hover, a.text-primary:focus {\n color: #104097 !important; }\n\n.text-secondary {\n color: #ced4da !important; }\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #a2aeb9 !important; }\n\n.text-success {\n color: #00a65a !important; }\n\na.text-success:hover, a.text-success:focus {\n color: #005a31 !important; }\n\n.text-info {\n color: #555555 !important; }\n\na.text-info:hover, a.text-info:focus {\n color: #2f2f2f !important; }\n\n.text-warning {\n color: #bf7e16 !important; }\n\na.text-warning:hover, a.text-warning:focus {\n color: #7a510e !important; }\n\n.text-danger {\n color: #dd4b39 !important; }\n\na.text-danger:hover, a.text-danger:focus {\n color: #ac2d1e !important; }\n\n.text-light {\n color: #f8f9fa !important; }\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important; }\n\n.text-dark {\n color: #343a40 !important; }\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important; }\n\n.text-primary-accent {\n color: #1252A3 !important; }\n\na.text-primary-accent:hover, a.text-primary-accent:focus {\n color: #0a2f5e !important; }\n\n.text-secondary-alt {\n color: #1A3B66 !important; }\n\na.text-secondary-alt:hover, a.text-secondary-alt:focus {\n color: #0a1829 !important; }\n\n.text-body {\n color: #333333 !important; }\n\n.text-muted, .card-header small, .modal-header small {\n color: #6c757d !important; }\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important; }\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important; }\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n\n.text-decoration-none {\n text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important; }\n\n.text-reset {\n color: inherit !important; }\n\n.visible {\n visibility: visible !important; }\n\n.invisible {\n visibility: hidden !important; }\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important; }\n a:not(.btn) {\n text-decoration: underline; }\n abbr[title]::after {\n content: \" (\" attr(title) \")\"; }\n pre {\n white-space: pre-wrap !important; }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr,\n img {\n page-break-inside: avoid; }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3; }\n h2,\n h3 {\n page-break-after: avoid; }\n @page {\n size: a3; }\n body {\n min-width: 3px !important; }\n .container {\n min-width: 3px !important; }\n .navbar {\n display: none; }\n .badge {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td,\n .table th {\n background-color: #fff !important; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important; }\n .table-dark {\n color: inherit; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6; }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6; } }\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url(../fonts/fontawesome-webfont.eot);\n src: url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format(\"embedded-opentype\"), url(../fonts/fontawesome-webfont.woff2) format(\"woff2\"), url(../fonts/fontawesome-webfont.woff) format(\"woff\"), url(../fonts/fontawesome-webfont.ttf) format(\"truetype\"), url(../fonts/fontawesome-webfont.svg#fontawesomeregular) format(\"svg\");\n font-weight: normal;\n font-style: normal; }\n\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -15%; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-fw {\n width: 1.28571em;\n text-align: center; }\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14286em;\n list-style-type: none; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n position: absolute;\n left: -2.14286em;\n width: 2.14286em;\n top: 0.14286em;\n text-align: center; }\n .fa-li.fa-lg {\n left: -1.85714em; }\n\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eee;\n border-radius: .1em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right {\n margin-left: .3em; }\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right; }\n\n.pull-left {\n float: left; }\n\n.fa.pull-left {\n margin-right: .3em; }\n\n.fa.pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg); } }\n\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none; }\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle; }\n\n.fa-stack-1x, .fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center; }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\F000\"; }\n\n.fa-music:before {\n content: \"\\F001\"; }\n\n.fa-search:before {\n content: \"\\F002\"; }\n\n.fa-envelope-o:before {\n content: \"\\F003\"; }\n\n.fa-heart:before {\n content: \"\\F004\"; }\n\n.fa-star:before {\n content: \"\\F005\"; }\n\n.fa-star-o:before {\n content: \"\\F006\"; }\n\n.fa-user:before {\n content: \"\\F007\"; }\n\n.fa-film:before {\n content: \"\\F008\"; }\n\n.fa-th-large:before {\n content: \"\\F009\"; }\n\n.fa-th:before {\n content: \"\\F00A\"; }\n\n.fa-th-list:before {\n content: \"\\F00B\"; }\n\n.fa-check:before {\n content: \"\\F00C\"; }\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\F00D\"; }\n\n.fa-search-plus:before {\n content: \"\\F00E\"; }\n\n.fa-search-minus:before {\n content: \"\\F010\"; }\n\n.fa-power-off:before {\n content: \"\\F011\"; }\n\n.fa-signal:before {\n content: \"\\F012\"; }\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\F013\"; }\n\n.fa-trash-o:before {\n content: \"\\F014\"; }\n\n.fa-home:before {\n content: \"\\F015\"; }\n\n.fa-file-o:before {\n content: \"\\F016\"; }\n\n.fa-clock-o:before {\n content: \"\\F017\"; }\n\n.fa-road:before {\n content: \"\\F018\"; }\n\n.fa-download:before {\n content: \"\\F019\"; }\n\n.fa-arrow-circle-o-down:before {\n content: \"\\F01A\"; }\n\n.fa-arrow-circle-o-up:before {\n content: \"\\F01B\"; }\n\n.fa-inbox:before {\n content: \"\\F01C\"; }\n\n.fa-play-circle-o:before {\n content: \"\\F01D\"; }\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\F01E\"; }\n\n.fa-refresh:before {\n content: \"\\F021\"; }\n\n.fa-list-alt:before {\n content: \"\\F022\"; }\n\n.fa-lock:before {\n content: \"\\F023\"; }\n\n.fa-flag:before {\n content: \"\\F024\"; }\n\n.fa-headphones:before {\n content: \"\\F025\"; }\n\n.fa-volume-off:before {\n content: \"\\F026\"; }\n\n.fa-volume-down:before {\n content: \"\\F027\"; }\n\n.fa-volume-up:before {\n content: \"\\F028\"; }\n\n.fa-qrcode:before {\n content: \"\\F029\"; }\n\n.fa-barcode:before {\n content: \"\\F02A\"; }\n\n.fa-tag:before {\n content: \"\\F02B\"; }\n\n.fa-tags:before {\n content: \"\\F02C\"; }\n\n.fa-book:before {\n content: \"\\F02D\"; }\n\n.fa-bookmark:before {\n content: \"\\F02E\"; }\n\n.fa-print:before {\n content: \"\\F02F\"; }\n\n.fa-camera:before {\n content: \"\\F030\"; }\n\n.fa-font:before {\n content: \"\\F031\"; }\n\n.fa-bold:before {\n content: \"\\F032\"; }\n\n.fa-italic:before {\n content: \"\\F033\"; }\n\n.fa-text-height:before {\n content: \"\\F034\"; }\n\n.fa-text-width:before {\n content: \"\\F035\"; }\n\n.fa-align-left:before {\n content: \"\\F036\"; }\n\n.fa-align-center:before {\n content: \"\\F037\"; }\n\n.fa-align-right:before {\n content: \"\\F038\"; }\n\n.fa-align-justify:before {\n content: \"\\F039\"; }\n\n.fa-list:before {\n content: \"\\F03A\"; }\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\F03B\"; }\n\n.fa-indent:before {\n content: \"\\F03C\"; }\n\n.fa-video-camera:before {\n content: \"\\F03D\"; }\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\F03E\"; }\n\n.fa-pencil:before {\n content: \"\\F040\"; }\n\n.fa-map-marker:before {\n content: \"\\F041\"; }\n\n.fa-adjust:before {\n content: \"\\F042\"; }\n\n.fa-tint:before {\n content: \"\\F043\"; }\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\F044\"; }\n\n.fa-share-square-o:before {\n content: \"\\F045\"; }\n\n.fa-check-square-o:before {\n content: \"\\F046\"; }\n\n.fa-arrows:before {\n content: \"\\F047\"; }\n\n.fa-step-backward:before {\n content: \"\\F048\"; }\n\n.fa-fast-backward:before {\n content: \"\\F049\"; }\n\n.fa-backward:before {\n content: \"\\F04A\"; }\n\n.fa-play:before {\n content: \"\\F04B\"; }\n\n.fa-pause:before {\n content: \"\\F04C\"; }\n\n.fa-stop:before {\n content: \"\\F04D\"; }\n\n.fa-forward:before {\n content: \"\\F04E\"; }\n\n.fa-fast-forward:before {\n content: \"\\F050\"; }\n\n.fa-step-forward:before {\n content: \"\\F051\"; }\n\n.fa-eject:before {\n content: \"\\F052\"; }\n\n.fa-chevron-left:before {\n content: \"\\F053\"; }\n\n.fa-chevron-right:before {\n content: \"\\F054\"; }\n\n.fa-plus-circle:before {\n content: \"\\F055\"; }\n\n.fa-minus-circle:before {\n content: \"\\F056\"; }\n\n.fa-times-circle:before {\n content: \"\\F057\"; }\n\n.fa-check-circle:before {\n content: \"\\F058\"; }\n\n.fa-question-circle:before {\n content: \"\\F059\"; }\n\n.fa-info-circle:before {\n content: \"\\F05A\"; }\n\n.fa-crosshairs:before {\n content: \"\\F05B\"; }\n\n.fa-times-circle-o:before {\n content: \"\\F05C\"; }\n\n.fa-check-circle-o:before {\n content: \"\\F05D\"; }\n\n.fa-ban:before {\n content: \"\\F05E\"; }\n\n.fa-arrow-left:before {\n content: \"\\F060\"; }\n\n.fa-arrow-right:before {\n content: \"\\F061\"; }\n\n.fa-arrow-up:before {\n content: \"\\F062\"; }\n\n.fa-arrow-down:before {\n content: \"\\F063\"; }\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\F064\"; }\n\n.fa-expand:before {\n content: \"\\F065\"; }\n\n.fa-compress:before {\n content: \"\\F066\"; }\n\n.fa-plus:before {\n content: \"\\F067\"; }\n\n.fa-minus:before {\n content: \"\\F068\"; }\n\n.fa-asterisk:before {\n content: \"\\F069\"; }\n\n.fa-exclamation-circle:before {\n content: \"\\F06A\"; }\n\n.fa-gift:before {\n content: \"\\F06B\"; }\n\n.fa-leaf:before {\n content: \"\\F06C\"; }\n\n.fa-fire:before {\n content: \"\\F06D\"; }\n\n.fa-eye:before {\n content: \"\\F06E\"; }\n\n.fa-eye-slash:before {\n content: \"\\F070\"; }\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\F071\"; }\n\n.fa-plane:before {\n content: \"\\F072\"; }\n\n.fa-calendar:before {\n content: \"\\F073\"; }\n\n.fa-random:before {\n content: \"\\F074\"; }\n\n.fa-comment:before {\n content: \"\\F075\"; }\n\n.fa-magnet:before {\n content: \"\\F076\"; }\n\n.fa-chevron-up:before {\n content: \"\\F077\"; }\n\n.fa-chevron-down:before {\n content: \"\\F078\"; }\n\n.fa-retweet:before {\n content: \"\\F079\"; }\n\n.fa-shopping-cart:before {\n content: \"\\F07A\"; }\n\n.fa-folder:before {\n content: \"\\F07B\"; }\n\n.fa-folder-open:before {\n content: \"\\F07C\"; }\n\n.fa-arrows-v:before {\n content: \"\\F07D\"; }\n\n.fa-arrows-h:before {\n content: \"\\F07E\"; }\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\F080\"; }\n\n.fa-twitter-square:before {\n content: \"\\F081\"; }\n\n.fa-facebook-square:before {\n content: \"\\F082\"; }\n\n.fa-camera-retro:before {\n content: \"\\F083\"; }\n\n.fa-key:before {\n content: \"\\F084\"; }\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\F085\"; }\n\n.fa-comments:before {\n content: \"\\F086\"; }\n\n.fa-thumbs-o-up:before {\n content: \"\\F087\"; }\n\n.fa-thumbs-o-down:before {\n content: \"\\F088\"; }\n\n.fa-star-half:before {\n content: \"\\F089\"; }\n\n.fa-heart-o:before {\n content: \"\\F08A\"; }\n\n.fa-sign-out:before {\n content: \"\\F08B\"; }\n\n.fa-linkedin-square:before {\n content: \"\\F08C\"; }\n\n.fa-thumb-tack:before {\n content: \"\\F08D\"; }\n\n.fa-external-link:before {\n content: \"\\F08E\"; }\n\n.fa-sign-in:before {\n content: \"\\F090\"; }\n\n.fa-trophy:before {\n content: \"\\F091\"; }\n\n.fa-github-square:before {\n content: \"\\F092\"; }\n\n.fa-upload:before {\n content: \"\\F093\"; }\n\n.fa-lemon-o:before {\n content: \"\\F094\"; }\n\n.fa-phone:before {\n content: \"\\F095\"; }\n\n.fa-square-o:before {\n content: \"\\F096\"; }\n\n.fa-bookmark-o:before {\n content: \"\\F097\"; }\n\n.fa-phone-square:before {\n content: \"\\F098\"; }\n\n.fa-twitter:before {\n content: \"\\F099\"; }\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\F09A\"; }\n\n.fa-github:before {\n content: \"\\F09B\"; }\n\n.fa-unlock:before {\n content: \"\\F09C\"; }\n\n.fa-credit-card:before {\n content: \"\\F09D\"; }\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\F09E\"; }\n\n.fa-hdd-o:before {\n content: \"\\F0A0\"; }\n\n.fa-bullhorn:before {\n content: \"\\F0A1\"; }\n\n.fa-bell:before {\n content: \"\\F0F3\"; }\n\n.fa-certificate:before {\n content: \"\\F0A3\"; }\n\n.fa-hand-o-right:before {\n content: \"\\F0A4\"; }\n\n.fa-hand-o-left:before {\n content: \"\\F0A5\"; }\n\n.fa-hand-o-up:before {\n content: \"\\F0A6\"; }\n\n.fa-hand-o-down:before {\n content: \"\\F0A7\"; }\n\n.fa-arrow-circle-left:before {\n content: \"\\F0A8\"; }\n\n.fa-arrow-circle-right:before {\n content: \"\\F0A9\"; }\n\n.fa-arrow-circle-up:before {\n content: \"\\F0AA\"; }\n\n.fa-arrow-circle-down:before {\n content: \"\\F0AB\"; }\n\n.fa-globe:before {\n content: \"\\F0AC\"; }\n\n.fa-wrench:before {\n content: \"\\F0AD\"; }\n\n.fa-tasks:before {\n content: \"\\F0AE\"; }\n\n.fa-filter:before {\n content: \"\\F0B0\"; }\n\n.fa-briefcase:before {\n content: \"\\F0B1\"; }\n\n.fa-arrows-alt:before {\n content: \"\\F0B2\"; }\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\F0C0\"; }\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\F0C1\"; }\n\n.fa-cloud:before {\n content: \"\\F0C2\"; }\n\n.fa-flask:before {\n content: \"\\F0C3\"; }\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\F0C4\"; }\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\F0C5\"; }\n\n.fa-paperclip:before {\n content: \"\\F0C6\"; }\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\F0C7\"; }\n\n.fa-square:before {\n content: \"\\F0C8\"; }\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\F0C9\"; }\n\n.fa-list-ul:before {\n content: \"\\F0CA\"; }\n\n.fa-list-ol:before {\n content: \"\\F0CB\"; }\n\n.fa-strikethrough:before {\n content: \"\\F0CC\"; }\n\n.fa-underline:before {\n content: \"\\F0CD\"; }\n\n.fa-table:before {\n content: \"\\F0CE\"; }\n\n.fa-magic:before {\n content: \"\\F0D0\"; }\n\n.fa-truck:before {\n content: \"\\F0D1\"; }\n\n.fa-pinterest:before {\n content: \"\\F0D2\"; }\n\n.fa-pinterest-square:before {\n content: \"\\F0D3\"; }\n\n.fa-google-plus-square:before {\n content: \"\\F0D4\"; }\n\n.fa-google-plus:before {\n content: \"\\F0D5\"; }\n\n.fa-money:before {\n content: \"\\F0D6\"; }\n\n.fa-caret-down:before {\n content: \"\\F0D7\"; }\n\n.fa-caret-up:before {\n content: \"\\F0D8\"; }\n\n.fa-caret-left:before {\n content: \"\\F0D9\"; }\n\n.fa-caret-right:before {\n content: \"\\F0DA\"; }\n\n.fa-columns:before {\n content: \"\\F0DB\"; }\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\F0DC\"; }\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\F0DD\"; }\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\F0DE\"; }\n\n.fa-envelope:before {\n content: \"\\F0E0\"; }\n\n.fa-linkedin:before {\n content: \"\\F0E1\"; }\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\F0E2\"; }\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\F0E3\"; }\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\F0E4\"; }\n\n.fa-comment-o:before {\n content: \"\\F0E5\"; }\n\n.fa-comments-o:before {\n content: \"\\F0E6\"; }\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\F0E7\"; }\n\n.fa-sitemap:before {\n content: \"\\F0E8\"; }\n\n.fa-umbrella:before {\n content: \"\\F0E9\"; }\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\F0EA\"; }\n\n.fa-lightbulb-o:before {\n content: \"\\F0EB\"; }\n\n.fa-exchange:before {\n content: \"\\F0EC\"; }\n\n.fa-cloud-download:before {\n content: \"\\F0ED\"; }\n\n.fa-cloud-upload:before {\n content: \"\\F0EE\"; }\n\n.fa-user-md:before {\n content: \"\\F0F0\"; }\n\n.fa-stethoscope:before {\n content: \"\\F0F1\"; }\n\n.fa-suitcase:before {\n content: \"\\F0F2\"; }\n\n.fa-bell-o:before {\n content: \"\\F0A2\"; }\n\n.fa-coffee:before {\n content: \"\\F0F4\"; }\n\n.fa-cutlery:before {\n content: \"\\F0F5\"; }\n\n.fa-file-text-o:before {\n content: \"\\F0F6\"; }\n\n.fa-building-o:before {\n content: \"\\F0F7\"; }\n\n.fa-hospital-o:before {\n content: \"\\F0F8\"; }\n\n.fa-ambulance:before {\n content: \"\\F0F9\"; }\n\n.fa-medkit:before {\n content: \"\\F0FA\"; }\n\n.fa-fighter-jet:before {\n content: \"\\F0FB\"; }\n\n.fa-beer:before {\n content: \"\\F0FC\"; }\n\n.fa-h-square:before {\n content: \"\\F0FD\"; }\n\n.fa-plus-square:before {\n content: \"\\F0FE\"; }\n\n.fa-angle-double-left:before {\n content: \"\\F100\"; }\n\n.fa-angle-double-right:before {\n content: \"\\F101\"; }\n\n.fa-angle-double-up:before {\n content: \"\\F102\"; }\n\n.fa-angle-double-down:before {\n content: \"\\F103\"; }\n\n.fa-angle-left:before {\n content: \"\\F104\"; }\n\n.fa-angle-right:before {\n content: \"\\F105\"; }\n\n.fa-angle-up:before {\n content: \"\\F106\"; }\n\n.fa-angle-down:before {\n content: \"\\F107\"; }\n\n.fa-desktop:before {\n content: \"\\F108\"; }\n\n.fa-laptop:before {\n content: \"\\F109\"; }\n\n.fa-tablet:before {\n content: \"\\F10A\"; }\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\F10B\"; }\n\n.fa-circle-o:before {\n content: \"\\F10C\"; }\n\n.fa-quote-left:before {\n content: \"\\F10D\"; }\n\n.fa-quote-right:before {\n content: \"\\F10E\"; }\n\n.fa-spinner:before {\n content: \"\\F110\"; }\n\n.fa-circle:before {\n content: \"\\F111\"; }\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\F112\"; }\n\n.fa-github-alt:before {\n content: \"\\F113\"; }\n\n.fa-folder-o:before {\n content: \"\\F114\"; }\n\n.fa-folder-open-o:before {\n content: \"\\F115\"; }\n\n.fa-smile-o:before {\n content: \"\\F118\"; }\n\n.fa-frown-o:before {\n content: \"\\F119\"; }\n\n.fa-meh-o:before {\n content: \"\\F11A\"; }\n\n.fa-gamepad:before {\n content: \"\\F11B\"; }\n\n.fa-keyboard-o:before {\n content: \"\\F11C\"; }\n\n.fa-flag-o:before {\n content: \"\\F11D\"; }\n\n.fa-flag-checkered:before {\n content: \"\\F11E\"; }\n\n.fa-terminal:before {\n content: \"\\F120\"; }\n\n.fa-code:before {\n content: \"\\F121\"; }\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\F122\"; }\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\F123\"; }\n\n.fa-location-arrow:before {\n content: \"\\F124\"; }\n\n.fa-crop:before {\n content: \"\\F125\"; }\n\n.fa-code-fork:before {\n content: \"\\F126\"; }\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\F127\"; }\n\n.fa-question:before {\n content: \"\\F128\"; }\n\n.fa-info:before {\n content: \"\\F129\"; }\n\n.fa-exclamation:before {\n content: \"\\F12A\"; }\n\n.fa-superscript:before {\n content: \"\\F12B\"; }\n\n.fa-subscript:before {\n content: \"\\F12C\"; }\n\n.fa-eraser:before {\n content: \"\\F12D\"; }\n\n.fa-puzzle-piece:before {\n content: \"\\F12E\"; }\n\n.fa-microphone:before {\n content: \"\\F130\"; }\n\n.fa-microphone-slash:before {\n content: \"\\F131\"; }\n\n.fa-shield:before {\n content: \"\\F132\"; }\n\n.fa-calendar-o:before {\n content: \"\\F133\"; }\n\n.fa-fire-extinguisher:before {\n content: \"\\F134\"; }\n\n.fa-rocket:before {\n content: \"\\F135\"; }\n\n.fa-maxcdn:before {\n content: \"\\F136\"; }\n\n.fa-chevron-circle-left:before {\n content: \"\\F137\"; }\n\n.fa-chevron-circle-right:before {\n content: \"\\F138\"; }\n\n.fa-chevron-circle-up:before {\n content: \"\\F139\"; }\n\n.fa-chevron-circle-down:before {\n content: \"\\F13A\"; }\n\n.fa-html5:before {\n content: \"\\F13B\"; }\n\n.fa-css3:before {\n content: \"\\F13C\"; }\n\n.fa-anchor:before {\n content: \"\\F13D\"; }\n\n.fa-unlock-alt:before {\n content: \"\\F13E\"; }\n\n.fa-bullseye:before {\n content: \"\\F140\"; }\n\n.fa-ellipsis-h:before {\n content: \"\\F141\"; }\n\n.fa-ellipsis-v:before {\n content: \"\\F142\"; }\n\n.fa-rss-square:before {\n content: \"\\F143\"; }\n\n.fa-play-circle:before {\n content: \"\\F144\"; }\n\n.fa-ticket:before {\n content: \"\\F145\"; }\n\n.fa-minus-square:before {\n content: \"\\F146\"; }\n\n.fa-minus-square-o:before {\n content: \"\\F147\"; }\n\n.fa-level-up:before {\n content: \"\\F148\"; }\n\n.fa-level-down:before {\n content: \"\\F149\"; }\n\n.fa-check-square:before {\n content: \"\\F14A\"; }\n\n.fa-pencil-square:before {\n content: \"\\F14B\"; }\n\n.fa-external-link-square:before {\n content: \"\\F14C\"; }\n\n.fa-share-square:before {\n content: \"\\F14D\"; }\n\n.fa-compass:before {\n content: \"\\F14E\"; }\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\F150\"; }\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\F151\"; }\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\F152\"; }\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\F153\"; }\n\n.fa-gbp:before {\n content: \"\\F154\"; }\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\F155\"; }\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\F156\"; }\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\F157\"; }\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\F158\"; }\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\F159\"; }\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\F15A\"; }\n\n.fa-file:before {\n content: \"\\F15B\"; }\n\n.fa-file-text:before {\n content: \"\\F15C\"; }\n\n.fa-sort-alpha-asc:before {\n content: \"\\F15D\"; }\n\n.fa-sort-alpha-desc:before {\n content: \"\\F15E\"; }\n\n.fa-sort-amount-asc:before {\n content: \"\\F160\"; }\n\n.fa-sort-amount-desc:before {\n content: \"\\F161\"; }\n\n.fa-sort-numeric-asc:before {\n content: \"\\F162\"; }\n\n.fa-sort-numeric-desc:before {\n content: \"\\F163\"; }\n\n.fa-thumbs-up:before {\n content: \"\\F164\"; }\n\n.fa-thumbs-down:before {\n content: \"\\F165\"; }\n\n.fa-youtube-square:before {\n content: \"\\F166\"; }\n\n.fa-youtube:before {\n content: \"\\F167\"; }\n\n.fa-xing:before {\n content: \"\\F168\"; }\n\n.fa-xing-square:before {\n content: \"\\F169\"; }\n\n.fa-youtube-play:before {\n content: \"\\F16A\"; }\n\n.fa-dropbox:before {\n content: \"\\F16B\"; }\n\n.fa-stack-overflow:before {\n content: \"\\F16C\"; }\n\n.fa-instagram:before {\n content: \"\\F16D\"; }\n\n.fa-flickr:before {\n content: \"\\F16E\"; }\n\n.fa-adn:before {\n content: \"\\F170\"; }\n\n.fa-bitbucket:before {\n content: \"\\F171\"; }\n\n.fa-bitbucket-square:before {\n content: \"\\F172\"; }\n\n.fa-tumblr:before {\n content: \"\\F173\"; }\n\n.fa-tumblr-square:before {\n content: \"\\F174\"; }\n\n.fa-long-arrow-down:before {\n content: \"\\F175\"; }\n\n.fa-long-arrow-up:before {\n content: \"\\F176\"; }\n\n.fa-long-arrow-left:before {\n content: \"\\F177\"; }\n\n.fa-long-arrow-right:before {\n content: \"\\F178\"; }\n\n.fa-apple:before {\n content: \"\\F179\"; }\n\n.fa-windows:before {\n content: \"\\F17A\"; }\n\n.fa-android:before {\n content: \"\\F17B\"; }\n\n.fa-linux:before {\n content: \"\\F17C\"; }\n\n.fa-dribbble:before {\n content: \"\\F17D\"; }\n\n.fa-skype:before {\n content: \"\\F17E\"; }\n\n.fa-foursquare:before {\n content: \"\\F180\"; }\n\n.fa-trello:before {\n content: \"\\F181\"; }\n\n.fa-female:before {\n content: \"\\F182\"; }\n\n.fa-male:before {\n content: \"\\F183\"; }\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\F184\"; }\n\n.fa-sun-o:before {\n content: \"\\F185\"; }\n\n.fa-moon-o:before {\n content: \"\\F186\"; }\n\n.fa-archive:before {\n content: \"\\F187\"; }\n\n.fa-bug:before {\n content: \"\\F188\"; }\n\n.fa-vk:before {\n content: \"\\F189\"; }\n\n.fa-weibo:before {\n content: \"\\F18A\"; }\n\n.fa-renren:before {\n content: \"\\F18B\"; }\n\n.fa-pagelines:before {\n content: \"\\F18C\"; }\n\n.fa-stack-exchange:before {\n content: \"\\F18D\"; }\n\n.fa-arrow-circle-o-right:before {\n content: \"\\F18E\"; }\n\n.fa-arrow-circle-o-left:before {\n content: \"\\F190\"; }\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\F191\"; }\n\n.fa-dot-circle-o:before {\n content: \"\\F192\"; }\n\n.fa-wheelchair:before {\n content: \"\\F193\"; }\n\n.fa-vimeo-square:before {\n content: \"\\F194\"; }\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\F195\"; }\n\n.fa-plus-square-o:before {\n content: \"\\F196\"; }\n\n.fa-space-shuttle:before {\n content: \"\\F197\"; }\n\n.fa-slack:before {\n content: \"\\F198\"; }\n\n.fa-envelope-square:before {\n content: \"\\F199\"; }\n\n.fa-wordpress:before {\n content: \"\\F19A\"; }\n\n.fa-openid:before {\n content: \"\\F19B\"; }\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\F19C\"; }\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\F19D\"; }\n\n.fa-yahoo:before {\n content: \"\\F19E\"; }\n\n.fa-google:before {\n content: \"\\F1A0\"; }\n\n.fa-reddit:before {\n content: \"\\F1A1\"; }\n\n.fa-reddit-square:before {\n content: \"\\F1A2\"; }\n\n.fa-stumbleupon-circle:before {\n content: \"\\F1A3\"; }\n\n.fa-stumbleupon:before {\n content: \"\\F1A4\"; }\n\n.fa-delicious:before {\n content: \"\\F1A5\"; }\n\n.fa-digg:before {\n content: \"\\F1A6\"; }\n\n.fa-pied-piper-pp:before {\n content: \"\\F1A7\"; }\n\n.fa-pied-piper-alt:before {\n content: \"\\F1A8\"; }\n\n.fa-drupal:before {\n content: \"\\F1A9\"; }\n\n.fa-joomla:before {\n content: \"\\F1AA\"; }\n\n.fa-language:before {\n content: \"\\F1AB\"; }\n\n.fa-fax:before {\n content: \"\\F1AC\"; }\n\n.fa-building:before {\n content: \"\\F1AD\"; }\n\n.fa-child:before {\n content: \"\\F1AE\"; }\n\n.fa-paw:before {\n content: \"\\F1B0\"; }\n\n.fa-spoon:before {\n content: \"\\F1B1\"; }\n\n.fa-cube:before {\n content: \"\\F1B2\"; }\n\n.fa-cubes:before {\n content: \"\\F1B3\"; }\n\n.fa-behance:before {\n content: \"\\F1B4\"; }\n\n.fa-behance-square:before {\n content: \"\\F1B5\"; }\n\n.fa-steam:before {\n content: \"\\F1B6\"; }\n\n.fa-steam-square:before {\n content: \"\\F1B7\"; }\n\n.fa-recycle:before {\n content: \"\\F1B8\"; }\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\F1B9\"; }\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\F1BA\"; }\n\n.fa-tree:before {\n content: \"\\F1BB\"; }\n\n.fa-spotify:before {\n content: \"\\F1BC\"; }\n\n.fa-deviantart:before {\n content: \"\\F1BD\"; }\n\n.fa-soundcloud:before {\n content: \"\\F1BE\"; }\n\n.fa-database:before {\n content: \"\\F1C0\"; }\n\n.fa-file-pdf-o:before {\n content: \"\\F1C1\"; }\n\n.fa-file-word-o:before {\n content: \"\\F1C2\"; }\n\n.fa-file-excel-o:before {\n content: \"\\F1C3\"; }\n\n.fa-file-powerpoint-o:before {\n content: \"\\F1C4\"; }\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\F1C5\"; }\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\F1C6\"; }\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\F1C7\"; }\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\F1C8\"; }\n\n.fa-file-code-o:before {\n content: \"\\F1C9\"; }\n\n.fa-vine:before {\n content: \"\\F1CA\"; }\n\n.fa-codepen:before {\n content: \"\\F1CB\"; }\n\n.fa-jsfiddle:before {\n content: \"\\F1CC\"; }\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\F1CD\"; }\n\n.fa-circle-o-notch:before {\n content: \"\\F1CE\"; }\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\F1D0\"; }\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\F1D1\"; }\n\n.fa-git-square:before {\n content: \"\\F1D2\"; }\n\n.fa-git:before {\n content: \"\\F1D3\"; }\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\F1D4\"; }\n\n.fa-tencent-weibo:before {\n content: \"\\F1D5\"; }\n\n.fa-qq:before {\n content: \"\\F1D6\"; }\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\F1D7\"; }\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\F1D8\"; }\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\F1D9\"; }\n\n.fa-history:before {\n content: \"\\F1DA\"; }\n\n.fa-circle-thin:before {\n content: \"\\F1DB\"; }\n\n.fa-header:before {\n content: \"\\F1DC\"; }\n\n.fa-paragraph:before {\n content: \"\\F1DD\"; }\n\n.fa-sliders:before {\n content: \"\\F1DE\"; }\n\n.fa-share-alt:before {\n content: \"\\F1E0\"; }\n\n.fa-share-alt-square:before {\n content: \"\\F1E1\"; }\n\n.fa-bomb:before {\n content: \"\\F1E2\"; }\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\F1E3\"; }\n\n.fa-tty:before {\n content: \"\\F1E4\"; }\n\n.fa-binoculars:before {\n content: \"\\F1E5\"; }\n\n.fa-plug:before {\n content: \"\\F1E6\"; }\n\n.fa-slideshare:before {\n content: \"\\F1E7\"; }\n\n.fa-twitch:before {\n content: \"\\F1E8\"; }\n\n.fa-yelp:before {\n content: \"\\F1E9\"; }\n\n.fa-newspaper-o:before {\n content: \"\\F1EA\"; }\n\n.fa-wifi:before {\n content: \"\\F1EB\"; }\n\n.fa-calculator:before {\n content: \"\\F1EC\"; }\n\n.fa-paypal:before {\n content: \"\\F1ED\"; }\n\n.fa-google-wallet:before {\n content: \"\\F1EE\"; }\n\n.fa-cc-visa:before {\n content: \"\\F1F0\"; }\n\n.fa-cc-mastercard:before {\n content: \"\\F1F1\"; }\n\n.fa-cc-discover:before {\n content: \"\\F1F2\"; }\n\n.fa-cc-amex:before {\n content: \"\\F1F3\"; }\n\n.fa-cc-paypal:before {\n content: \"\\F1F4\"; }\n\n.fa-cc-stripe:before {\n content: \"\\F1F5\"; }\n\n.fa-bell-slash:before {\n content: \"\\F1F6\"; }\n\n.fa-bell-slash-o:before {\n content: \"\\F1F7\"; }\n\n.fa-trash:before {\n content: \"\\F1F8\"; }\n\n.fa-copyright:before {\n content: \"\\F1F9\"; }\n\n.fa-at:before {\n content: \"\\F1FA\"; }\n\n.fa-eyedropper:before {\n content: \"\\F1FB\"; }\n\n.fa-paint-brush:before {\n content: \"\\F1FC\"; }\n\n.fa-birthday-cake:before {\n content: \"\\F1FD\"; }\n\n.fa-area-chart:before {\n content: \"\\F1FE\"; }\n\n.fa-pie-chart:before {\n content: \"\\F200\"; }\n\n.fa-line-chart:before {\n content: \"\\F201\"; }\n\n.fa-lastfm:before {\n content: \"\\F202\"; }\n\n.fa-lastfm-square:before {\n content: \"\\F203\"; }\n\n.fa-toggle-off:before {\n content: \"\\F204\"; }\n\n.fa-toggle-on:before {\n content: \"\\F205\"; }\n\n.fa-bicycle:before {\n content: \"\\F206\"; }\n\n.fa-bus:before {\n content: \"\\F207\"; }\n\n.fa-ioxhost:before {\n content: \"\\F208\"; }\n\n.fa-angellist:before {\n content: \"\\F209\"; }\n\n.fa-cc:before {\n content: \"\\F20A\"; }\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\F20B\"; }\n\n.fa-meanpath:before {\n content: \"\\F20C\"; }\n\n.fa-buysellads:before {\n content: \"\\F20D\"; }\n\n.fa-connectdevelop:before {\n content: \"\\F20E\"; }\n\n.fa-dashcube:before {\n content: \"\\F210\"; }\n\n.fa-forumbee:before {\n content: \"\\F211\"; }\n\n.fa-leanpub:before {\n content: \"\\F212\"; }\n\n.fa-sellsy:before {\n content: \"\\F213\"; }\n\n.fa-shirtsinbulk:before {\n content: \"\\F214\"; }\n\n.fa-simplybuilt:before {\n content: \"\\F215\"; }\n\n.fa-skyatlas:before {\n content: \"\\F216\"; }\n\n.fa-cart-plus:before {\n content: \"\\F217\"; }\n\n.fa-cart-arrow-down:before {\n content: \"\\F218\"; }\n\n.fa-diamond:before {\n content: \"\\F219\"; }\n\n.fa-ship:before {\n content: \"\\F21A\"; }\n\n.fa-user-secret:before {\n content: \"\\F21B\"; }\n\n.fa-motorcycle:before {\n content: \"\\F21C\"; }\n\n.fa-street-view:before {\n content: \"\\F21D\"; }\n\n.fa-heartbeat:before {\n content: \"\\F21E\"; }\n\n.fa-venus:before {\n content: \"\\F221\"; }\n\n.fa-mars:before {\n content: \"\\F222\"; }\n\n.fa-mercury:before {\n content: \"\\F223\"; }\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\F224\"; }\n\n.fa-transgender-alt:before {\n content: \"\\F225\"; }\n\n.fa-venus-double:before {\n content: \"\\F226\"; }\n\n.fa-mars-double:before {\n content: \"\\F227\"; }\n\n.fa-venus-mars:before {\n content: \"\\F228\"; }\n\n.fa-mars-stroke:before {\n content: \"\\F229\"; }\n\n.fa-mars-stroke-v:before {\n content: \"\\F22A\"; }\n\n.fa-mars-stroke-h:before {\n content: \"\\F22B\"; }\n\n.fa-neuter:before {\n content: \"\\F22C\"; }\n\n.fa-genderless:before {\n content: \"\\F22D\"; }\n\n.fa-facebook-official:before {\n content: \"\\F230\"; }\n\n.fa-pinterest-p:before {\n content: \"\\F231\"; }\n\n.fa-whatsapp:before {\n content: \"\\F232\"; }\n\n.fa-server:before {\n content: \"\\F233\"; }\n\n.fa-user-plus:before {\n content: \"\\F234\"; }\n\n.fa-user-times:before {\n content: \"\\F235\"; }\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\F236\"; }\n\n.fa-viacoin:before {\n content: \"\\F237\"; }\n\n.fa-train:before {\n content: \"\\F238\"; }\n\n.fa-subway:before {\n content: \"\\F239\"; }\n\n.fa-medium:before {\n content: \"\\F23A\"; }\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\F23B\"; }\n\n.fa-optin-monster:before {\n content: \"\\F23C\"; }\n\n.fa-opencart:before {\n content: \"\\F23D\"; }\n\n.fa-expeditedssl:before {\n content: \"\\F23E\"; }\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\F240\"; }\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\F241\"; }\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\F242\"; }\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\F243\"; }\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\F244\"; }\n\n.fa-mouse-pointer:before {\n content: \"\\F245\"; }\n\n.fa-i-cursor:before {\n content: \"\\F246\"; }\n\n.fa-object-group:before {\n content: \"\\F247\"; }\n\n.fa-object-ungroup:before {\n content: \"\\F248\"; }\n\n.fa-sticky-note:before {\n content: \"\\F249\"; }\n\n.fa-sticky-note-o:before {\n content: \"\\F24A\"; }\n\n.fa-cc-jcb:before {\n content: \"\\F24B\"; }\n\n.fa-cc-diners-club:before {\n content: \"\\F24C\"; }\n\n.fa-clone:before {\n content: \"\\F24D\"; }\n\n.fa-balance-scale:before {\n content: \"\\F24E\"; }\n\n.fa-hourglass-o:before {\n content: \"\\F250\"; }\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\F251\"; }\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\F252\"; }\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\F253\"; }\n\n.fa-hourglass:before {\n content: \"\\F254\"; }\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\F255\"; }\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\F256\"; }\n\n.fa-hand-scissors-o:before {\n content: \"\\F257\"; }\n\n.fa-hand-lizard-o:before {\n content: \"\\F258\"; }\n\n.fa-hand-spock-o:before {\n content: \"\\F259\"; }\n\n.fa-hand-pointer-o:before {\n content: \"\\F25A\"; }\n\n.fa-hand-peace-o:before {\n content: \"\\F25B\"; }\n\n.fa-trademark:before {\n content: \"\\F25C\"; }\n\n.fa-registered:before {\n content: \"\\F25D\"; }\n\n.fa-creative-commons:before {\n content: \"\\F25E\"; }\n\n.fa-gg:before {\n content: \"\\F260\"; }\n\n.fa-gg-circle:before {\n content: \"\\F261\"; }\n\n.fa-tripadvisor:before {\n content: \"\\F262\"; }\n\n.fa-odnoklassniki:before {\n content: \"\\F263\"; }\n\n.fa-odnoklassniki-square:before {\n content: \"\\F264\"; }\n\n.fa-get-pocket:before {\n content: \"\\F265\"; }\n\n.fa-wikipedia-w:before {\n content: \"\\F266\"; }\n\n.fa-safari:before {\n content: \"\\F267\"; }\n\n.fa-chrome:before {\n content: \"\\F268\"; }\n\n.fa-firefox:before {\n content: \"\\F269\"; }\n\n.fa-opera:before {\n content: \"\\F26A\"; }\n\n.fa-internet-explorer:before {\n content: \"\\F26B\"; }\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\F26C\"; }\n\n.fa-contao:before {\n content: \"\\F26D\"; }\n\n.fa-500px:before {\n content: \"\\F26E\"; }\n\n.fa-amazon:before {\n content: \"\\F270\"; }\n\n.fa-calendar-plus-o:before {\n content: \"\\F271\"; }\n\n.fa-calendar-minus-o:before {\n content: \"\\F272\"; }\n\n.fa-calendar-times-o:before {\n content: \"\\F273\"; }\n\n.fa-calendar-check-o:before {\n content: \"\\F274\"; }\n\n.fa-industry:before {\n content: \"\\F275\"; }\n\n.fa-map-pin:before {\n content: \"\\F276\"; }\n\n.fa-map-signs:before {\n content: \"\\F277\"; }\n\n.fa-map-o:before {\n content: \"\\F278\"; }\n\n.fa-map:before {\n content: \"\\F279\"; }\n\n.fa-commenting:before {\n content: \"\\F27A\"; }\n\n.fa-commenting-o:before {\n content: \"\\F27B\"; }\n\n.fa-houzz:before {\n content: \"\\F27C\"; }\n\n.fa-vimeo:before {\n content: \"\\F27D\"; }\n\n.fa-black-tie:before {\n content: \"\\F27E\"; }\n\n.fa-fonticons:before {\n content: \"\\F280\"; }\n\n.fa-reddit-alien:before {\n content: \"\\F281\"; }\n\n.fa-edge:before {\n content: \"\\F282\"; }\n\n.fa-credit-card-alt:before {\n content: \"\\F283\"; }\n\n.fa-codiepie:before {\n content: \"\\F284\"; }\n\n.fa-modx:before {\n content: \"\\F285\"; }\n\n.fa-fort-awesome:before {\n content: \"\\F286\"; }\n\n.fa-usb:before {\n content: \"\\F287\"; }\n\n.fa-product-hunt:before {\n content: \"\\F288\"; }\n\n.fa-mixcloud:before {\n content: \"\\F289\"; }\n\n.fa-scribd:before {\n content: \"\\F28A\"; }\n\n.fa-pause-circle:before {\n content: \"\\F28B\"; }\n\n.fa-pause-circle-o:before {\n content: \"\\F28C\"; }\n\n.fa-stop-circle:before {\n content: \"\\F28D\"; }\n\n.fa-stop-circle-o:before {\n content: \"\\F28E\"; }\n\n.fa-shopping-bag:before {\n content: \"\\F290\"; }\n\n.fa-shopping-basket:before {\n content: \"\\F291\"; }\n\n.fa-hashtag:before {\n content: \"\\F292\"; }\n\n.fa-bluetooth:before {\n content: \"\\F293\"; }\n\n.fa-bluetooth-b:before {\n content: \"\\F294\"; }\n\n.fa-percent:before {\n content: \"\\F295\"; }\n\n.fa-gitlab:before {\n content: \"\\F296\"; }\n\n.fa-wpbeginner:before {\n content: \"\\F297\"; }\n\n.fa-wpforms:before {\n content: \"\\F298\"; }\n\n.fa-envira:before {\n content: \"\\F299\"; }\n\n.fa-universal-access:before {\n content: \"\\F29A\"; }\n\n.fa-wheelchair-alt:before {\n content: \"\\F29B\"; }\n\n.fa-question-circle-o:before {\n content: \"\\F29C\"; }\n\n.fa-blind:before {\n content: \"\\F29D\"; }\n\n.fa-audio-description:before {\n content: \"\\F29E\"; }\n\n.fa-volume-control-phone:before {\n content: \"\\F2A0\"; }\n\n.fa-braille:before {\n content: \"\\F2A1\"; }\n\n.fa-assistive-listening-systems:before {\n content: \"\\F2A2\"; }\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\F2A3\"; }\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\F2A4\"; }\n\n.fa-glide:before {\n content: \"\\F2A5\"; }\n\n.fa-glide-g:before {\n content: \"\\F2A6\"; }\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\F2A7\"; }\n\n.fa-low-vision:before {\n content: \"\\F2A8\"; }\n\n.fa-viadeo:before {\n content: \"\\F2A9\"; }\n\n.fa-viadeo-square:before {\n content: \"\\F2AA\"; }\n\n.fa-snapchat:before {\n content: \"\\F2AB\"; }\n\n.fa-snapchat-ghost:before {\n content: \"\\F2AC\"; }\n\n.fa-snapchat-square:before {\n content: \"\\F2AD\"; }\n\n.fa-pied-piper:before {\n content: \"\\F2AE\"; }\n\n.fa-first-order:before {\n content: \"\\F2B0\"; }\n\n.fa-yoast:before {\n content: \"\\F2B1\"; }\n\n.fa-themeisle:before {\n content: \"\\F2B2\"; }\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\F2B3\"; }\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\F2B4\"; }\n\n.fa-handshake-o:before {\n content: \"\\F2B5\"; }\n\n.fa-envelope-open:before {\n content: \"\\F2B6\"; }\n\n.fa-envelope-open-o:before {\n content: \"\\F2B7\"; }\n\n.fa-linode:before {\n content: \"\\F2B8\"; }\n\n.fa-address-book:before {\n content: \"\\F2B9\"; }\n\n.fa-address-book-o:before {\n content: \"\\F2BA\"; }\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\F2BB\"; }\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\F2BC\"; }\n\n.fa-user-circle:before {\n content: \"\\F2BD\"; }\n\n.fa-user-circle-o:before {\n content: \"\\F2BE\"; }\n\n.fa-user-o:before {\n content: \"\\F2C0\"; }\n\n.fa-id-badge:before {\n content: \"\\F2C1\"; }\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\F2C2\"; }\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\F2C3\"; }\n\n.fa-quora:before {\n content: \"\\F2C4\"; }\n\n.fa-free-code-camp:before {\n content: \"\\F2C5\"; }\n\n.fa-telegram:before {\n content: \"\\F2C6\"; }\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\F2C7\"; }\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\F2C8\"; }\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\F2C9\"; }\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\F2CA\"; }\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\F2CB\"; }\n\n.fa-shower:before {\n content: \"\\F2CC\"; }\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\F2CD\"; }\n\n.fa-podcast:before {\n content: \"\\F2CE\"; }\n\n.fa-window-maximize:before {\n content: \"\\F2D0\"; }\n\n.fa-window-minimize:before {\n content: \"\\F2D1\"; }\n\n.fa-window-restore:before {\n content: \"\\F2D2\"; }\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\F2D3\"; }\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\F2D4\"; }\n\n.fa-bandcamp:before {\n content: \"\\F2D5\"; }\n\n.fa-grav:before {\n content: \"\\F2D6\"; }\n\n.fa-etsy:before {\n content: \"\\F2D7\"; }\n\n.fa-imdb:before {\n content: \"\\F2D8\"; }\n\n.fa-ravelry:before {\n content: \"\\F2D9\"; }\n\n.fa-eercast:before {\n content: \"\\F2DA\"; }\n\n.fa-microchip:before {\n content: \"\\F2DB\"; }\n\n.fa-snowflake-o:before {\n content: \"\\F2DC\"; }\n\n.fa-superpowers:before {\n content: \"\\F2DD\"; }\n\n.fa-wpexplorer:before {\n content: \"\\F2DE\"; }\n\n.fa-meetup:before {\n content: \"\\F2E0\"; }\n\n.sr-only, .table.table-list tr:not(:hover) td.table-list-options > .dropdown:not(.show) button:not(:focus):not(:active), .table.table-list tr:not(:hover) td.table-list-options > button:not(:focus):not(:active) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto; }\n\n.toaster-icon {\n position: absolute;\n left: 0.0em;\n top: 0.0em;\n font-weight: normal;\n color: #ffffff; }\n\n.toast-title {\n font-weight: bold; }\n\n.toast-message {\n -ms-word-wrap: break-word;\n word-wrap: break-word; }\n\n.toast-message a,\n.toast-message label {\n color: #ffffff; }\n\n.toast-message a:hover {\n color: #cccccc;\n text-decoration: none; }\n\n.toast-close-button {\n position: relative;\n right: -0.3em;\n top: -0.3em;\n float: right;\n font-size: 20px;\n font-weight: bold;\n color: #ffffff;\n -webkit-text-shadow: 0 1px 0 #ffffff;\n text-shadow: 0 1px 0 #ffffff;\n opacity: 0.8;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n filter: alpha(opacity=80);\n z-index: 999; }\n\n.toast-close-button:hover, .toast-close-button:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.4;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);\n filter: alpha(opacity=40); }\n\n/*Additional properties for button version\n iOS requires the button element instead of an anchor tag.\n If you want the anchor version, it requires `href=\"#\"`.*/\nbutton.toast-close-button {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none; }\n\n.toast-content {\n display: inline-block;\n width: 95%; }\n\n.toast-top-full-width {\n top: 0;\n right: 0;\n width: 100%; }\n\n.toast-bottom-full-width {\n bottom: 0;\n right: 0;\n width: 100%; }\n\n.toast-top-left {\n top: 12px;\n left: 12px; }\n\n.toast-top-center {\n top: 12px; }\n\n.toast-top-right {\n top: 12px;\n right: 12px; }\n\n.toast-bottom-right {\n right: 12px;\n bottom: 12px; }\n\n.toast-bottom-center {\n bottom: 12px; }\n\n.toast-bottom-left {\n bottom: 12px;\n left: 12px; }\n\n.toast-center {\n top: 45%; }\n\n#toast-container {\n position: fixed;\n z-index: 999999;\n /*overrides*/\n pointer-events: auto; }\n\n#toast-container.toast-center,\n#toast-container.toast-top-center,\n#toast-container.toast-bottom-center {\n width: 100%;\n pointer-events: none;\n left: 0;\n right: 0; }\n\n#toast-container.toast-center > div,\n#toast-container.toast-top-center > div,\n#toast-container.toast-bottom-center > div {\n margin: 6px auto;\n pointer-events: auto; }\n\n#toast-container.toast-center > button,\n#toast-container.toast-top-center > button,\n#toast-container.toast-bottom-center > button {\n pointer-events: auto; }\n\n#toast-container * {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n\n#toast-container > div {\n margin: 0 0 6px;\n padding: 15px 15px 15px 50px;\n width: 300px;\n -moz-border-radius: 3px 3px 3px 3px;\n -webkit-border-radius: 3px 3px 3px 3px;\n border-radius: 3px 3px 3px 3px;\n background-position: 15px center;\n background-repeat: no-repeat;\n -moz-box-shadow: 0 0 12px #999999;\n -webkit-box-shadow: 0 0 12px #999999;\n box-shadow: 0 0 12px #999999;\n color: #ffffff;\n opacity: 0.8;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n filter: alpha(opacity=80); }\n\n#toast-container > :hover {\n -moz-box-shadow: 0 0 12px #000000;\n -webkit-box-shadow: 0 0 12px #000000;\n box-shadow: 0 0 12px #000000;\n opacity: 1;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);\n filter: alpha(opacity=100);\n cursor: pointer; }\n\n.icon-success {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==\") !important; }\n\n.icon-error {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=\") !important; }\n\n.icon-info {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=\") !important; }\n\n.icon-wait {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/gif;base64,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\") !important; }\n\n.icon-warning {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=\") !important; }\n\n#toast-container.toast-top-full-width > div,\n#toast-container.toast-bottom-full-width > div {\n width: 96%;\n margin: auto; }\n\n.toast {\n position: relative;\n background-color: #030303; }\n\n.toast-success {\n background-color: #51a351; }\n\n.toast-error {\n background-color: #bd362f; }\n\n.toast-info {\n background-color: #2f96b4; }\n\n.toast-wait {\n background-color: #2f96b4; }\n\n.toast-warning {\n background-color: #f89406; }\n\n/*Responsive Design*/\n@media all and (max-width: 240px) {\n #toast-container > div {\n padding: 8px 8px 8px 50px;\n width: 11em; }\n #toast-container .toast-close-button {\n right: -0.1em;\n top: -0.2em; }\n .toast-content {\n width: 94%; } }\n\n@media all and (min-width: 241px) and (max-width: 480px) {\n #toast-container > div {\n padding: 8px 8px 8px 50px;\n width: 18em; }\n #toast-container .toast-close-button {\n right: -0.1em;\n top: -0.2em; }\n .toast-content {\n width: 94%; } }\n\n@media all and (min-width: 481px) and (max-width: 768px) {\n #toast-container > div {\n padding: 15px 15px 15px 50px;\n width: 25em; } }\n\n.swal2-popup.swal2-toast {\n flex-direction: row;\n align-items: center;\n width: auto;\n padding: 0.625em;\n overflow-y: hidden;\n background: #fff;\n box-shadow: 0 0 0.625em #d9d9d9; }\n .swal2-popup.swal2-toast .swal2-header {\n flex-direction: row;\n padding: 0; }\n .swal2-popup.swal2-toast .swal2-title {\n flex-grow: 1;\n justify-content: flex-start;\n margin: 0 0.6em;\n font-size: 1em; }\n .swal2-popup.swal2-toast .swal2-footer {\n margin: 0.5em 0 0;\n padding: 0.5em 0 0;\n font-size: 0.8em; }\n .swal2-popup.swal2-toast .swal2-close {\n position: static;\n width: 0.8em;\n height: 0.8em;\n line-height: 0.8; }\n .swal2-popup.swal2-toast .swal2-content {\n justify-content: flex-start;\n padding: 0;\n font-size: 1em; }\n .swal2-popup.swal2-toast .swal2-icon {\n width: 2em;\n min-width: 2em;\n height: 2em;\n margin: 0; }\n .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {\n display: flex;\n align-items: center;\n font-size: 1.8em;\n font-weight: bold; }\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {\n font-size: .25em; } }\n .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {\n width: 2em;\n height: 2em; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n top: .875em;\n width: 1.375em; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n left: .3125em; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n right: .3125em; }\n .swal2-popup.swal2-toast .swal2-actions {\n flex-basis: auto !important;\n width: auto;\n height: auto;\n margin: 0 .3125em;\n padding: 0; }\n .swal2-popup.swal2-toast .swal2-styled {\n margin: .125em .3125em;\n padding: .3125em .625em;\n font-size: 1em; }\n .swal2-popup.swal2-toast .swal2-styled:focus {\n box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(100, 150, 200, 0.5); }\n .swal2-popup.swal2-toast .swal2-success {\n border-color: #a5dc86; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] {\n position: absolute;\n width: 1.6em;\n height: 3em;\n transform: rotate(45deg);\n border-radius: 50%; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n top: -.8em;\n left: -.5em;\n transform: rotate(-45deg);\n transform-origin: 2em 2em;\n border-radius: 4em 0 0 4em; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n top: -.25em;\n left: .9375em;\n transform-origin: 0 1.5em;\n border-radius: 0 4em 4em 0; }\n .swal2-popup.swal2-toast .swal2-success .swal2-success-ring {\n width: 2em;\n height: 2em; }\n .swal2-popup.swal2-toast .swal2-success .swal2-success-fix {\n top: 0;\n left: .4375em;\n width: .4375em;\n height: 2.6875em; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] {\n height: .3125em; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] {\n top: 1.125em;\n left: .1875em;\n width: .75em; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] {\n top: .9375em;\n right: .1875em;\n width: 1.375em; }\n .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip {\n animation: swal2-toast-animate-success-line-tip .75s; }\n .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long {\n animation: swal2-toast-animate-success-line-long .75s; }\n .swal2-popup.swal2-toast.swal2-show {\n animation: swal2-toast-show 0.5s; }\n .swal2-popup.swal2-toast.swal2-hide {\n animation: swal2-toast-hide 0.1s forwards; }\n\n.swal2-container {\n display: flex;\n position: fixed;\n z-index: 1060;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n padding: 0.625em;\n overflow-x: hidden;\n transition: background-color 0.1s;\n -webkit-overflow-scrolling: touch; }\n .swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation {\n background: rgba(0, 0, 0, 0.4); }\n .swal2-container.swal2-backdrop-hide {\n background: transparent !important; }\n .swal2-container.swal2-top {\n align-items: flex-start; }\n .swal2-container.swal2-top-start, .swal2-container.swal2-top-left {\n align-items: flex-start;\n justify-content: flex-start; }\n .swal2-container.swal2-top-end, .swal2-container.swal2-top-right {\n align-items: flex-start;\n justify-content: flex-end; }\n .swal2-container.swal2-center {\n align-items: center; }\n .swal2-container.swal2-center-start, .swal2-container.swal2-center-left {\n align-items: center;\n justify-content: flex-start; }\n .swal2-container.swal2-center-end, .swal2-container.swal2-center-right {\n align-items: center;\n justify-content: flex-end; }\n .swal2-container.swal2-bottom {\n align-items: flex-end; }\n .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {\n align-items: flex-end;\n justify-content: flex-start; }\n .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {\n align-items: flex-end;\n justify-content: flex-end; }\n .swal2-container.swal2-bottom > :first-child,\n .swal2-container.swal2-bottom-start > :first-child,\n .swal2-container.swal2-bottom-left > :first-child,\n .swal2-container.swal2-bottom-end > :first-child,\n .swal2-container.swal2-bottom-right > :first-child {\n margin-top: auto; }\n .swal2-container.swal2-grow-fullscreen > .swal2-modal {\n display: flex !important;\n flex: 1;\n align-self: stretch;\n justify-content: center; }\n .swal2-container.swal2-grow-row > .swal2-modal {\n display: flex !important;\n flex: 1;\n align-content: center;\n justify-content: center; }\n .swal2-container.swal2-grow-column {\n flex: 1;\n flex-direction: column; }\n .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n align-items: center; }\n .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {\n align-items: flex-start; }\n .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {\n align-items: flex-end; }\n .swal2-container.swal2-grow-column > .swal2-modal {\n display: flex !important;\n flex: 1;\n align-content: center;\n justify-content: center; }\n .swal2-container.swal2-no-transition {\n transition: none !important; }\n .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal {\n margin: auto; }\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-container .swal2-modal {\n margin: 0 !important; } }\n\n.swal2-popup {\n display: none;\n position: relative;\n box-sizing: border-box;\n flex-direction: column;\n justify-content: center;\n width: 32em;\n max-width: 100%;\n padding: 1.25em;\n border: none;\n border-radius: 5px;\n background: #fff;\n font-family: inherit;\n font-size: 1rem; }\n .swal2-popup:focus {\n outline: none; }\n .swal2-popup.swal2-loading {\n overflow-y: hidden; }\n\n.swal2-header {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 0 1.8em; }\n\n.swal2-title {\n position: relative;\n max-width: 100%;\n margin: 0 0 0.4em;\n padding: 0;\n color: #595959;\n font-size: 1.875em;\n font-weight: 600;\n text-align: center;\n text-transform: none;\n word-wrap: break-word; }\n\n.swal2-actions {\n display: flex;\n z-index: 1;\n box-sizing: border-box;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n width: 100%;\n margin: 1.25em auto 0;\n padding: 0 1.6em; }\n .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {\n opacity: .4; }\n .swal2-actions:not(.swal2-loading) .swal2-styled:hover {\n background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); }\n .swal2-actions:not(.swal2-loading) .swal2-styled:active {\n background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); }\n\n.swal2-loader {\n display: none;\n align-items: center;\n justify-content: center;\n width: 2.2em;\n height: 2.2em;\n margin: 0 1.875em;\n animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n border-width: 0.25em;\n border-style: solid;\n border-radius: 100%;\n border-color: #2778c4 transparent #2778c4 transparent; }\n\n.swal2-styled {\n margin: 0.3125em;\n padding: 0.625em 1.1em;\n box-shadow: none;\n font-weight: 500; }\n .swal2-styled:not([disabled]) {\n cursor: pointer; }\n .swal2-styled.swal2-confirm {\n border: 0;\n border-radius: 0.25em;\n background: initial;\n background-color: #2778c4;\n color: #fff;\n font-size: 1.0625em; }\n .swal2-styled.swal2-deny {\n border: 0;\n border-radius: 0.25em;\n background: initial;\n background-color: #d14529;\n color: #fff;\n font-size: 1.0625em; }\n .swal2-styled.swal2-cancel {\n border: 0;\n border-radius: 0.25em;\n background: initial;\n background-color: #757575;\n color: #fff;\n font-size: 1.0625em; }\n .swal2-styled:focus {\n outline: none;\n box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); }\n .swal2-styled::-moz-focus-inner {\n border: 0; }\n\n.swal2-footer {\n justify-content: center;\n margin: 1.25em 0 0;\n padding: 1em 0 0;\n border-top: 1px solid #eee;\n color: #545454;\n font-size: 1em; }\n\n.swal2-timer-progress-bar-container {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 0.25em;\n overflow: hidden;\n border-bottom-right-radius: 5px;\n border-bottom-left-radius: 5px; }\n\n.swal2-timer-progress-bar {\n width: 100%;\n height: 0.25em;\n background: rgba(0, 0, 0, 0.2); }\n\n.swal2-image {\n max-width: 100%;\n margin: 1.25em auto; }\n\n.swal2-close {\n position: absolute;\n z-index: 2;\n top: 0;\n right: 0;\n align-items: center;\n justify-content: center;\n width: 1.2em;\n height: 1.2em;\n padding: 0;\n overflow: hidden;\n transition: color 0.1s ease-out;\n border: none;\n border-radius: 5px;\n background: transparent;\n color: #cccccc;\n font-family: serif;\n font-size: 2.5em;\n line-height: 1.2;\n cursor: pointer; }\n .swal2-close:hover {\n transform: none;\n background: transparent;\n color: #f27474; }\n .swal2-close:focus {\n outline: none;\n box-shadow: inset 0 0 0 3px rgba(100, 150, 200, 0.5); }\n .swal2-close::-moz-focus-inner {\n border: 0; }\n\n.swal2-content {\n z-index: 1;\n justify-content: center;\n margin: 0;\n padding: 0 1.6em;\n color: #545454;\n font-size: 1.125em;\n font-weight: normal;\n line-height: normal;\n text-align: center;\n word-wrap: break-word; }\n\n.swal2-input,\n.swal2-file,\n.swal2-textarea,\n.swal2-select,\n.swal2-radio,\n.swal2-checkbox {\n margin: 1em auto; }\n\n.swal2-input,\n.swal2-file,\n.swal2-textarea {\n box-sizing: border-box;\n width: 100%;\n transition: border-color 0.3s, box-shadow 0.3s;\n border: 1px solid #d9d9d9;\n border-radius: 0.1875em;\n background: inherit;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n color: inherit;\n font-size: 1.125em; }\n .swal2-input.swal2-inputerror,\n .swal2-file.swal2-inputerror,\n .swal2-textarea.swal2-inputerror {\n border-color: #f27474 !important;\n box-shadow: 0 0 2px #f27474 !important; }\n .swal2-input:focus,\n .swal2-file:focus,\n .swal2-textarea:focus {\n border: 1px solid #b4dbed;\n outline: none;\n box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); }\n .swal2-input::placeholder,\n .swal2-file::placeholder,\n .swal2-textarea::placeholder {\n color: #cccccc; }\n\n.swal2-range {\n margin: 1em auto;\n background: #fff; }\n .swal2-range input {\n width: 80%; }\n .swal2-range output {\n width: 20%;\n color: inherit;\n font-weight: 600;\n text-align: center; }\n .swal2-range input,\n .swal2-range output {\n height: 2.625em;\n padding: 0;\n font-size: 1.125em;\n line-height: 2.625em; }\n\n.swal2-input {\n height: 2.625em;\n padding: 0 0.75em; }\n .swal2-input[type='number'] {\n max-width: 10em; }\n\n.swal2-file {\n background: inherit;\n font-size: 1.125em; }\n\n.swal2-textarea {\n height: 6.75em;\n padding: 0.75em; }\n\n.swal2-select {\n min-width: 50%;\n max-width: 100%;\n padding: .375em .625em;\n background: inherit;\n color: inherit;\n font-size: 1.125em; }\n\n.swal2-radio,\n.swal2-checkbox {\n align-items: center;\n justify-content: center;\n background: #fff;\n color: inherit; }\n .swal2-radio label,\n .swal2-checkbox label {\n margin: 0 .6em;\n font-size: 1.125em; }\n .swal2-radio input,\n .swal2-checkbox input {\n margin: 0 .4em; }\n\n.swal2-input-label {\n display: flex;\n justify-content: center;\n margin: 1em auto; }\n\n.swal2-validation-message {\n display: none;\n align-items: center;\n justify-content: center;\n margin: 0 -2.7em;\n padding: 0.625em;\n overflow: hidden;\n background: #f0f0f0;\n color: #666666;\n font-size: 1em;\n font-weight: 300; }\n .swal2-validation-message::before {\n content: '!';\n display: inline-block;\n width: 1.5em;\n min-width: 1.5em;\n height: 1.5em;\n margin: 0 .625em;\n border-radius: 50%;\n background-color: #f27474;\n color: #fff;\n font-weight: 600;\n line-height: 1.5em;\n text-align: center; }\n\n.swal2-icon {\n position: relative;\n box-sizing: content-box;\n justify-content: center;\n width: 5em;\n height: 5em;\n margin: 1.25em auto 1.875em;\n border: 0.25em solid transparent;\n border-radius: 50%;\n border-color: #000;\n font-family: inherit;\n line-height: 5em;\n cursor: default;\n user-select: none; }\n .swal2-icon .swal2-icon-content {\n display: flex;\n align-items: center;\n font-size: 3.75em; }\n .swal2-icon.swal2-error {\n border-color: #f27474;\n color: #f27474; }\n .swal2-icon.swal2-error .swal2-x-mark {\n position: relative;\n flex-grow: 1; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n display: block;\n position: absolute;\n top: 2.3125em;\n width: 2.9375em;\n height: .3125em;\n border-radius: .125em;\n background-color: #f27474; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n left: 1.0625em;\n transform: rotate(45deg); }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n right: 1em;\n transform: rotate(-45deg); }\n .swal2-icon.swal2-error.swal2-icon-show {\n animation: swal2-animate-error-icon .5s; }\n .swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark {\n animation: swal2-animate-error-x-mark .5s; }\n .swal2-icon.swal2-warning {\n border-color: #facea8;\n color: #f8bb86; }\n .swal2-icon.swal2-info {\n border-color: #9de0f6;\n color: #3fc3ee; }\n .swal2-icon.swal2-question {\n border-color: #c9dae1;\n color: #87adbd; }\n .swal2-icon.swal2-success {\n border-color: #a5dc86;\n color: #a5dc86; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {\n position: absolute;\n width: 3.75em;\n height: 7.5em;\n transform: rotate(45deg);\n border-radius: 50%; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n top: -.4375em;\n left: -2.0635em;\n transform: rotate(-45deg);\n transform-origin: 3.75em 3.75em;\n border-radius: 7.5em 0 0 7.5em; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n top: -.6875em;\n left: 1.875em;\n transform: rotate(-45deg);\n transform-origin: 0 3.75em;\n border-radius: 0 7.5em 7.5em 0; }\n .swal2-icon.swal2-success .swal2-success-ring {\n position: absolute;\n z-index: 2;\n top: -.25em;\n left: -.25em;\n box-sizing: content-box;\n width: 100%;\n height: 100%;\n border: 0.25em solid rgba(165, 220, 134, 0.3);\n border-radius: 50%; }\n .swal2-icon.swal2-success .swal2-success-fix {\n position: absolute;\n z-index: 1;\n top: .5em;\n left: 1.625em;\n width: .4375em;\n height: 5.625em;\n transform: rotate(-45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-line'] {\n display: block;\n position: absolute;\n z-index: 2;\n height: .3125em;\n border-radius: .125em;\n background-color: #a5dc86; }\n .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {\n top: 2.875em;\n left: .8125em;\n width: 1.5625em;\n transform: rotate(45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {\n top: 2.375em;\n right: .5em;\n width: 2.9375em;\n transform: rotate(-45deg); }\n .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip {\n animation: swal2-animate-success-line-tip .75s; }\n .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long {\n animation: swal2-animate-success-line-long .75s; }\n .swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right {\n animation: swal2-rotate-success-circular-line 4.25s ease-in; }\n\n.swal2-progress-steps {\n flex-wrap: wrap;\n align-items: center;\n max-width: 100%;\n margin: 0 0 1.25em;\n padding: 0;\n background: inherit;\n font-weight: 600; }\n .swal2-progress-steps li {\n display: inline-block;\n position: relative; }\n .swal2-progress-steps .swal2-progress-step {\n z-index: 20;\n flex-shrink: 0;\n width: 2em;\n height: 2em;\n border-radius: 2em;\n background: #2778c4;\n color: #fff;\n line-height: 2em;\n text-align: center; }\n .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step {\n background: #2778c4; }\n .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step {\n background: #add8e6;\n color: #fff; }\n .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line {\n background: #add8e6; }\n .swal2-progress-steps .swal2-progress-step-line {\n z-index: 10;\n flex-shrink: 0;\n width: 2.5em;\n height: .4em;\n margin: 0 -1px;\n background: #2778c4; }\n\n[class^='swal2'] {\n -webkit-tap-highlight-color: transparent; }\n\n.swal2-show {\n animation: swal2-show 0.3s; }\n\n.swal2-hide {\n animation: swal2-hide 0.15s forwards; }\n\n.swal2-noanimation {\n transition: none; }\n\n.swal2-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n.swal2-rtl .swal2-close {\n right: auto;\n left: 0; }\n\n.swal2-rtl .swal2-timer-progress-bar {\n right: 0;\n left: auto; }\n\n@supports (-ms-accelerator: true) {\n .swal2-range input {\n width: 100% !important; }\n .swal2-range output {\n display: none; } }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-range input {\n width: 100% !important; }\n .swal2-range output {\n display: none; } }\n\n@keyframes swal2-toast-show {\n 0% {\n transform: translateY(-0.625em) rotateZ(2deg); }\n 33% {\n transform: translateY(0) rotateZ(-2deg); }\n 66% {\n transform: translateY(0.3125em) rotateZ(2deg); }\n 100% {\n transform: translateY(0) rotateZ(0deg); } }\n\n@keyframes swal2-toast-hide {\n 100% {\n transform: rotateZ(1deg);\n opacity: 0; } }\n\n@keyframes swal2-toast-animate-success-line-tip {\n 0% {\n top: .5625em;\n left: .0625em;\n width: 0; }\n 54% {\n top: .125em;\n left: .125em;\n width: 0; }\n 70% {\n top: .625em;\n left: -.25em;\n width: 1.625em; }\n 84% {\n top: 1.0625em;\n left: .75em;\n width: .5em; }\n 100% {\n top: 1.125em;\n left: .1875em;\n width: .75em; } }\n\n@keyframes swal2-toast-animate-success-line-long {\n 0% {\n top: 1.625em;\n right: 1.375em;\n width: 0; }\n 65% {\n top: 1.25em;\n right: .9375em;\n width: 0; }\n 84% {\n top: .9375em;\n right: 0;\n width: 1.125em; }\n 100% {\n top: .9375em;\n right: .1875em;\n width: 1.375em; } }\n\n@keyframes swal2-show {\n 0% {\n transform: scale(0.7); }\n 45% {\n transform: scale(1.05); }\n 80% {\n transform: scale(0.95); }\n 100% {\n transform: scale(1); } }\n\n@keyframes swal2-hide {\n 0% {\n transform: scale(1);\n opacity: 1; }\n 100% {\n transform: scale(0.5);\n opacity: 0; } }\n\n@keyframes swal2-animate-success-line-tip {\n 0% {\n top: 1.1875em;\n left: .0625em;\n width: 0; }\n 54% {\n top: 1.0625em;\n left: .125em;\n width: 0; }\n 70% {\n top: 2.1875em;\n left: -.375em;\n width: 3.125em; }\n 84% {\n top: 3em;\n left: 1.3125em;\n width: 1.0625em; }\n 100% {\n top: 2.8125em;\n left: .8125em;\n width: 1.5625em; } }\n\n@keyframes swal2-animate-success-line-long {\n 0% {\n top: 3.375em;\n right: 2.875em;\n width: 0; }\n 65% {\n top: 3.375em;\n right: 2.875em;\n width: 0; }\n 84% {\n top: 2.1875em;\n right: 0;\n width: 3.4375em; }\n 100% {\n top: 2.375em;\n right: .5em;\n width: 2.9375em; } }\n\n@keyframes swal2-rotate-success-circular-line {\n 0% {\n transform: rotate(-45deg); }\n 5% {\n transform: rotate(-45deg); }\n 12% {\n transform: rotate(-405deg); }\n 100% {\n transform: rotate(-405deg); } }\n\n@keyframes swal2-animate-error-x-mark {\n 0% {\n margin-top: 1.625em;\n transform: scale(0.4);\n opacity: 0; }\n 50% {\n margin-top: 1.625em;\n transform: scale(0.4);\n opacity: 0; }\n 80% {\n margin-top: -.375em;\n transform: scale(1.15); }\n 100% {\n margin-top: 0;\n transform: scale(1);\n opacity: 1; } }\n\n@keyframes swal2-animate-error-icon {\n 0% {\n transform: rotateX(100deg);\n opacity: 0; }\n 100% {\n transform: rotateX(0deg);\n opacity: 1; } }\n\n@keyframes swal2-rotate-loading {\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg); } }\n\nbody.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n overflow: hidden; }\n\nbody.swal2-height-auto {\n height: auto !important; }\n\nbody.swal2-no-backdrop .swal2-container {\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n max-width: calc(100% - 0.625em * 2);\n background-color: transparent !important; }\n body.swal2-no-backdrop .swal2-container > .swal2-modal {\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }\n body.swal2-no-backdrop .swal2-container.swal2-top {\n top: 0;\n left: 50%;\n transform: translateX(-50%); }\n body.swal2-no-backdrop .swal2-container.swal2-top-start, body.swal2-no-backdrop .swal2-container.swal2-top-left {\n top: 0;\n left: 0; }\n body.swal2-no-backdrop .swal2-container.swal2-top-end, body.swal2-no-backdrop .swal2-container.swal2-top-right {\n top: 0;\n right: 0; }\n body.swal2-no-backdrop .swal2-container.swal2-center {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%); }\n body.swal2-no-backdrop .swal2-container.swal2-center-start, body.swal2-no-backdrop .swal2-container.swal2-center-left {\n top: 50%;\n left: 0;\n transform: translateY(-50%); }\n body.swal2-no-backdrop .swal2-container.swal2-center-end, body.swal2-no-backdrop .swal2-container.swal2-center-right {\n top: 50%;\n right: 0;\n transform: translateY(-50%); }\n body.swal2-no-backdrop .swal2-container.swal2-bottom {\n bottom: 0;\n left: 50%;\n transform: translateX(-50%); }\n body.swal2-no-backdrop .swal2-container.swal2-bottom-start, body.swal2-no-backdrop .swal2-container.swal2-bottom-left {\n bottom: 0;\n left: 0; }\n body.swal2-no-backdrop .swal2-container.swal2-bottom-end, body.swal2-no-backdrop .swal2-container.swal2-bottom-right {\n right: 0;\n bottom: 0; }\n\n@media print {\n body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n overflow-y: scroll !important; }\n body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden='true'] {\n display: none; }\n body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container {\n position: static !important; } }\n\nbody.swal2-toast-shown .swal2-container {\n background-color: transparent; }\n body.swal2-toast-shown .swal2-container.swal2-top {\n top: 0;\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translateX(-50%); }\n body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right {\n top: 0;\n right: 0;\n bottom: auto;\n left: auto; }\n body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left {\n top: 0;\n right: auto;\n bottom: auto;\n left: 0; }\n body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left {\n top: 50%;\n right: auto;\n bottom: auto;\n left: 0;\n transform: translateY(-50%); }\n body.swal2-toast-shown .swal2-container.swal2-center {\n top: 50%;\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%); }\n body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right {\n top: 50%;\n right: 0;\n bottom: auto;\n left: auto;\n transform: translateY(-50%); }\n body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left {\n top: auto;\n right: auto;\n bottom: 0;\n left: 0; }\n body.swal2-toast-shown .swal2-container.swal2-bottom {\n top: auto;\n right: auto;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%); }\n body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right {\n top: auto;\n right: 0;\n bottom: 0;\n left: auto; }\n\nbody.swal2-toast-column .swal2-toast {\n flex-direction: column;\n align-items: stretch; }\n body.swal2-toast-column .swal2-toast .swal2-actions {\n flex: 1;\n align-self: stretch;\n height: 2.2em;\n margin-top: .3125em; }\n body.swal2-toast-column .swal2-toast .swal2-loading {\n justify-content: center; }\n body.swal2-toast-column .swal2-toast .swal2-input {\n height: 2em;\n margin: .3125em auto;\n font-size: 1em; }\n body.swal2-toast-column .swal2-toast .swal2-validation-message {\n font-size: 1em; }\n\n#toast-container.toast-top-right {\n top: 76px; }\n\n#toast-container .toast-close-button {\n right: -0.15em; }\n\n#toast-container .toast {\n opacity: 1 !important;\n background-image: none !important;\n border-radius: 0.25rem;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.35);\n display: flex;\n align-items: center; }\n #toast-container .toast:hover {\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.6); }\n #toast-container .toast:before {\n font-family: FontAwesome;\n font-size: 25px;\n line-height: 20px;\n float: left;\n color: #ffffff;\n padding-right: 10px;\n margin: auto 0 auto -36px; }\n #toast-container .toast .toaster-icon {\n display: none; }\n #toast-container .toast .toast-message p {\n margin-bottom: 0.5rem; }\n #toast-container .toast .toast-message p:last-child {\n margin-bottom: 0; }\n #toast-container .toast.toast-danger, #toast-container .toast.toast-error {\n background-image: none !important;\n background-color: #dd4b39; }\n #toast-container .toast.toast-danger:before, #toast-container .toast.toast-error:before {\n content: \"\\F0E7\";\n margin-left: -30px; }\n #toast-container .toast.toast-warning {\n background-image: none !important;\n background-color: #bf7e16; }\n #toast-container .toast.toast-warning:before {\n content: \"\\F071\"; }\n #toast-container .toast.toast-info {\n background-image: none !important;\n background-color: #555555; }\n #toast-container .toast.toast-info:before {\n content: \"\\F05A\"; }\n #toast-container .toast.toast-success {\n background-image: none !important;\n background-color: #00a65a; }\n #toast-container .toast.toast-success:before {\n content: \"\\F00C\"; }\n\n.swal2-container {\n background-color: rgba(0, 0, 0, 0.3); }\n\n.swal2-popup {\n padding: 15px 0 0;\n background-color: #fff;\n color: #333333;\n border: 1px solid #9a9a9a;\n border-radius: 0.3rem;\n width: 34em; }\n .swal2-popup .swal2-header {\n padding: 0 15px; }\n .swal2-popup .swal2-icon {\n margin: 0 auto;\n width: auto;\n height: auto;\n border: none; }\n .swal2-popup .swal2-content {\n padding-bottom: 15px;\n font-size: 1rem;\n border-bottom: 1px solid #dee2e6; }\n .swal2-popup i.swal-custom-icon {\n display: block;\n margin: 0 auto;\n font-size: 35px; }\n .swal2-popup .swal2-title {\n padding: 10px 0 15px;\n margin: 0;\n font-size: 1.15rem;\n color: #333333; }\n .swal2-popup .swal2-content {\n font-size: 1rem;\n color: #333333;\n padding: 0 15px 15px; }\n .swal2-popup .swal2-actions {\n padding: 15px;\n margin: 0;\n background-color: #fbfbfb;\n border-radius: 0.3rem;\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n font-size: 1rem; }\n .swal2-popup .swal2-actions button {\n margin-right: 10px; }\n .swal2-popup .swal2-actions button.swal2-confirm {\n font-weight: bold; }\n .swal2-popup .swal2-actions button.swal2-cancel {\n background-color: #ffffff; }\n\ndate-input-polyfill[data-open=\"true\"] {\n z-index: 10000 !important; }\n\nhtml {\n font-size: 14px; }\n\nbody {\n min-width: 1010px; }\n body.layout_frontend {\n background-color: #ecf0f5; }\n body.full-width:not(.layout_frontend) .container {\n min-width: 980px;\n width: 90%; }\n\n.page-header, .secondary-header {\n border-bottom: 1px solid #dee2e6;\n padding-bottom: 0.6rem;\n margin-bottom: 0.5rem; }\n .page-header h1, .page-header h2, .page-header h3, .page-header h4, .secondary-header h1, .secondary-header h2, .secondary-header h3, .secondary-header h4 {\n margin: 0; }\n\nh1 small, h2 small, h3 small, h4 small, h5 small {\n font-size: 80%; }\n\ninput:required, select:required, textarea:required {\n box-shadow: none; }\n\n.secondary-header, .spaced-header {\n margin-top: 4rem; }\n\n.navbar {\n padding-left: 0;\n padding-right: 0; }\n .navbar .dropdown-menu {\n min-width: 200px;\n max-width: 300px; }\n .navbar .dropdown-menu .dropdown-item-text {\n line-height: 1.3; }\n .navbar .dropdown-menu .dropdown-item-text span, .navbar .dropdown-menu .dropdown-item-text small {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .navbar .nav-link {\n font-weight: 600; }\n\n.navbar-brand {\n margin-top: -20px;\n margin-bottom: -20px; }\n\n.dropdown-menu button {\n cursor: pointer; }\n\n.container {\n width: 980px;\n max-width: none !important;\n margin: 0 auto;\n padding: 0; }\n\n.page-content {\n margin-top: 20px; }\n\n.footer {\n margin-top: 40px;\n padding: 40px 0 40px 0;\n border-top: 1px solid #dee2e6; }\n\n.list-group-item.active {\n border-left: 3px solid #175DDC;\n font-weight: bold;\n padding-left: calc(1.25rem - 3px); }\n\n.card-header, .modal-header {\n font-weight: bold;\n text-transform: uppercase; }\n .card-header small, .modal-header small {\n font-weight: normal;\n text-transform: none; }\n\n.card-body-header {\n font-size: 1.15rem; }\n\n.card ul.fa-ul.card-ul {\n margin-left: 1.9em; }\n .card ul.fa-ul.card-ul li {\n word-break: break-all; }\n .card ul.fa-ul.card-ul .fa-li {\n top: 4px; }\n .card ul.fa-ul.card-ul.carets {\n margin-left: 1.1em; }\n .card ul.fa-ul.card-ul.carets .fa-li {\n left: -17px;\n width: 1.1em; }\n .card ul.fa-ul.card-ul ul.carets {\n margin-left: 0.85em; }\n\n.card-org-plans h2 {\n font-size: 1.15rem; }\n\n.modal-dialog {\n width: 500px; }\n\n.modal-sm {\n width: 300px; }\n\n.modal-lg {\n width: 800px; }\n\n.modal-body h3, .modal-body .section-header > * {\n font-weight: normal;\n text-transform: uppercase;\n color: #6c757d; }\n\n.modal .list-group-flush :first-child {\n border-top: none; }\n\n.modal .list-group-flush :last-child {\n border-bottom: none; }\n\n.modal-footer {\n justify-content: flex-start;\n background-color: #fbfbfb;\n border-radius: 0.3rem; }\n\nlabel:not(.form-check-label):not(.btn), label.bold {\n font-weight: 600; }\n\ninput[type=\"search\"]::-webkit-search-cancel-button {\n -webkit-appearance: searchfield-cancel-button; }\n\n.btn[class*=\"btn-outline-\"]:not(:hover), .swal2-popup .swal2-actions button[class*=\"btn-outline-\"]:not(:hover) {\n border-color: #ced4da;\n background-color: #fbfbfb; }\n\n.btn-link:focus, .btn-link.focus {\n outline-color: -webkit-focus-ring-color;\n outline-offset: 1px;\n outline-style: auto;\n outline-width: 1px; }\n\n.btn-outline-secondary, .swal2-popup .swal2-actions button.swal2-cancel {\n color: #6c757d; }\n .btn-outline-secondary:hover:not(:disabled), .swal2-popup .swal2-actions button.swal2-cancel:hover:not(:disabled) {\n color: #333333; }\n .btn-outline-secondary:disabled, .swal2-popup .swal2-actions button.swal2-cancel:disabled {\n opacity: 1; }\n .btn-outline-secondary:focus, .swal2-popup .swal2-actions button.swal2-cancel:focus, .btn-outline-secondary.focus, .swal2-popup .swal2-actions button.focus.swal2-cancel {\n box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); }\n\n.btn-submit {\n position: relative; }\n .btn-submit .fa-spinner {\n position: absolute;\n display: none;\n align-items: center;\n justify-content: center;\n bottom: 0;\n top: 0;\n left: 0;\n right: 0; }\n .btn-submit:disabled:not(.manual) .fa-spinner, .btn-submit.loading .fa-spinner {\n display: flex; }\n .btn-submit:disabled:not(.manual) span, .btn-submit.loading span {\n visibility: hidden; }\n\n.list-group-item:focus, .list-group-item.focus {\n z-index: 100; }\n\n.fa-icon-above-input {\n height: 1.5em; }\n\n.table.table-list thead th {\n border-top: none; }\n\n.table.table-list tr:first-child td {\n border: none; }\n\n.table.table-list td {\n vertical-align: middle; }\n .table.table-list td.reduced-lh {\n line-height: 1; }\n .table.table-list td.reduced-lh small {\n font-size: 80%; }\n .table.table-list td small, .table.table-list td > .fa, .table.table-list td .icon {\n color: #6c757d; }\n\n.table.table-list td.wrap {\n word-break: break-all; }\n\n.table.table-list td.table-list-options {\n width: 76px;\n max-width: 76px;\n text-align: right;\n height: 50px; }\n .table.table-list td.table-list-options.wider {\n width: 100px;\n max-width: 100px; }\n .table.table-list td.table-list-options .btn, .table.table-list td.table-list-options .swal2-popup .swal2-actions button, .swal2-popup .swal2-actions .table.table-list td.table-list-options button {\n line-height: 1;\n transition: initial; }\n .table.table-list td.table-list-options .dropdown-menu {\n line-height: 1.5; }\n\n.table.table-list td.table-list-icon {\n width: 45px;\n max-width: 45px;\n text-align: center; }\n .table.table-list td.table-list-icon img {\n max-height: 24px; }\n\n.table.table-list td.table-list-checkbox {\n width: 35px;\n max-width: 35px; }\n\n.table.table-list td.table-list-strike {\n color: #6c757d;\n text-decoration: line-through; }\n\n.text-lg {\n font-size: 1.15rem; }\n\n.text-strike {\n text-decoration: line-through; }\n\n.font-weight-semibold {\n font-weight: 600; }\n\n.password-wrapper {\n word-break: break-all;\n white-space: pre-wrap;\n min-width: 0; }\n\n.password-row {\n min-width: 0; }\n\n.password-number {\n color: #007fde; }\n\n.password-special {\n color: #c40800; }\n\napp-vault-groupings .card #search, app-org-vault-groupings .card #search, .groupings .card #search {\n margin-bottom: 1rem; }\n\napp-vault-groupings .card h3, app-org-vault-groupings .card h3, .groupings .card h3 {\n font-weight: normal;\n text-transform: uppercase;\n color: #6c757d; }\n\napp-vault-groupings .card ul:last-child, app-org-vault-groupings .card ul:last-child, .groupings .card ul:last-child {\n margin-bottom: 0; }\n\napp-vault-groupings .card .card-body a, app-org-vault-groupings .card .card-body a, .groupings .card .card-body a {\n color: #333333; }\n app-vault-groupings .card .card-body a:hover.text-muted, app-org-vault-groupings .card .card-body a:hover.text-muted, .groupings .card .card-body a:hover.text-muted {\n color: #333333 !important; }\n\napp-vault-groupings .card .show-active, app-org-vault-groupings .card .show-active, .groupings .card .show-active {\n display: none; }\n\napp-vault-groupings .card li > .fa, app-vault-groupings .card li > div > .fa, app-org-vault-groupings .card li > .fa, app-org-vault-groupings .card li > div > .fa, .groupings .card li > .fa, .groupings .card li > div > .fa {\n cursor: pointer; }\n\napp-vault-groupings .card li.active > .show-active, app-vault-groupings .card li.active > div .show-active, app-org-vault-groupings .card li.active > .show-active, app-org-vault-groupings .card li.active > div .show-active, .groupings .card li.active > .show-active, .groupings .card li.active > div .show-active {\n display: inline; }\n\napp-vault-groupings .card li.active > a:first-of-type, app-vault-groupings .card li.active > div a:first-of-type, app-org-vault-groupings .card li.active > a:first-of-type, app-org-vault-groupings .card li.active > div a:first-of-type, .groupings .card li.active > a:first-of-type, .groupings .card li.active > div a:first-of-type {\n font-weight: bold;\n color: #175DDC; }\n\napp-vault-groupings .card li.active > .fa, app-vault-groupings .card li.active > div > .fa, app-org-vault-groupings .card li.active > .fa, app-org-vault-groupings .card li.active > div > .fa, .groupings .card li.active > .fa, .groupings .card li.active > div > .fa {\n color: #175DDC; }\n\napp-password-generator #lengthRange {\n width: 100%; }\n\napp-password-generator .card-password .card-body {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 1.15rem;\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\n\napp-password-generator-history .list-group-item {\n line-height: 1; }\n app-password-generator-history .list-group-item .password {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\n\napp-import textarea {\n height: 150px; }\n\napp-user-billing .progress {\n height: 20px; }\n app-user-billing .progress .progress-bar {\n min-width: 50px; }\n\n#duo-frame {\n background: url(../images/loading.svg) 0 0 no-repeat;\n height: 330px; }\n #duo-frame iframe {\n width: 100%;\n height: 100%;\n border: none; }\n\n#bt-dropin-container {\n background: url(../images/loading.svg) 0 0 no-repeat;\n min-height: 50px; }\n\n.braintree-placeholder, .braintree-sheet__header {\n display: none; }\n\n.braintree-sheet__content--button {\n text-align: left;\n padding: 0;\n min-height: 0; }\n\n.braintree-sheet__container {\n margin-bottom: 0; }\n\n.braintree-sheet {\n border: none; }\n\n.totp .totp-code {\n font-size: 1.2rem; }\n\n.totp .totp-countdown {\n margin: 3px 3px 0 0;\n display: block;\n user-select: none; }\n .totp .totp-countdown .totp-sec {\n font-size: 0.85em;\n position: absolute;\n line-height: 32px;\n width: 32px;\n text-align: center; }\n .totp .totp-countdown svg {\n width: 32px;\n height: 32px;\n transform: rotate(-90deg); }\n .totp .totp-countdown .totp-circle {\n fill: none;\n stroke: #175DDC; }\n .totp .totp-countdown .totp-circle.inner {\n stroke-width: 3;\n stroke-dasharray: 78.6;\n stroke-dashoffset: 0; }\n .totp .totp-countdown .totp-circle.outer {\n stroke-width: 2;\n stroke-dasharray: 88;\n stroke-dashoffset: 0; }\n\n.totp > .align-items-center {\n margin-bottom: -5px; }\n\n.totp.low .totp-sec, .totp.low .totp-code {\n color: #dd4b39; }\n\n.totp.low .totp-circle {\n stroke: #dd4b39; }\n\n.callout {\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-left-width: 5px;\n border-radius: calc(0.25rem - 1px);\n background-color: #fafafa; }\n .callout .callout-heading {\n margin-top: 0; }\n .callout h3.callout-heading {\n font-weight: bold;\n text-transform: uppercase; }\n .callout.callout-primary {\n border-left-color: #175DDC; }\n .callout.callout-primary .callout-heading {\n color: #175DDC; }\n .callout.callout-info {\n border-left-color: #343a40; }\n .callout.callout-info .callout-heading {\n color: #343a40; }\n .callout.callout-danger {\n border-left-color: #dd4b39; }\n .callout.callout-danger .callout-heading {\n color: #dd4b39; }\n .callout.callout-success {\n border-left-color: #00a65a; }\n .callout.callout-success .callout-heading {\n color: #00a65a; }\n .callout.callout-warning {\n border-left-color: #bf7e16; }\n .callout.callout-warning .callout-heading {\n color: #bf7e16; }\n\n.list-group-2fa .logo-2fa {\n min-width: 100px; }\n\n.form-check-block .form-check-label {\n font-weight: 600; }\n .form-check-block .form-check-label > small {\n display: block;\n color: #6c757d;\n font-weight: normal; }\n .form-check-block .form-check-label > span {\n display: block;\n font-weight: normal; }\n\n.form-inline input[type='datetime-local'] {\n width: 200px; }\n\n.form-control.stripe-form-control {\n padding-top: 0.55rem; }\n .form-control.stripe-form-control.is-focused {\n color: #495057;\n background-color: #ffffff;\n border-color: #81a9f2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .form-control.stripe-form-control.is-focused.is-invalid {\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n .form-control.stripe-form-control.is-invalid {\n border-color: #dd4b39; }\n\n.org-nav {\n background-color: #fbfbfb;\n border-bottom: 1px solid #dee2e6;\n height: 100px;\n min-height: 100px; }\n .org-nav .container {\n height: 100%; }\n .org-nav .nav-tabs {\n border-bottom: none; }\n .org-nav .nav-tabs a {\n color: #333333; }\n .org-nav .nav-tabs a:not(.active) {\n border-color: transparent; }\n .org-nav .nav-tabs a.active {\n border-top: 3px solid #175DDC;\n font-weight: bold;\n padding-top: calc(0.5rem - 2px); }\n .org-nav .nav-tabs a.disabled {\n color: #b4b4b4; }\n .org-nav .org-name {\n line-height: 1; }\n .org-nav .org-name span {\n font-size: 1.15rem;\n display: block; }\n\nimg.logo {\n width: 284px;\n height: 43px;\n margin: 0 auto;\n display: block; }\n\n.min-height-fix {\n min-height: 1px; }\n\n.overflow-hidden {\n overflow: hidden; }\n\n.cdk-drag-preview {\n z-index: 1070 !important;\n opacity: 0.8;\n background-color: #fff;\n border-radius: 0.25rem; }\n\n.cursor-move {\n cursor: move !important; }\n\n.layout.enterprise2 header {\n color: #ced4da;\n background-color: #175DDC; }\n .layout.enterprise2 header:before {\n content: \"\";\n position: absolute;\n z-index: -1;\n width: 100%;\n height: 340px;\n left: 0;\n transform: skewY(-3deg);\n background: #175DDC; }\n .layout.enterprise2 header img.logo {\n margin: 12px 0 0;\n width: 284px;\n max-width: 284px;\n height: auto; }\n\n.layout.enterprise2 h2 {\n color: #ffffff;\n font-size: 1.8rem;\n margin: 100px 0 150px 0; }\n\n.layout.enterprise2 p {\n margin: 20px 0 40px 0;\n font-size: 1.4rem; }\n .layout.enterprise2 p:before {\n content: \"/\";\n padding-right: 12px; }\n .layout.enterprise2 p:not(.highlight):before {\n color: #1252A3; }\n .layout.enterprise2 p b:after {\n content: \"\\27F6\";\n font-size: 2rem;\n padding-left: 6px; }\n\n.layout.enterprise2 blockquote {\n margin: 20px 0 0 0;\n font-size: 1.4rem;\n padding-right: 40px; }\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/main.d8139e017ad9a069b29d.js b/app/main.d8139e017ad9a069b29d.js deleted file mode 100644 index 666fedfb..00000000 --- a/app/main.d8139e017ad9a069b29d.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){function t(t){for(var r,o,s=t[0],l=t[1],c=t[2],u=0,d=[];u1&&(r+=e.slice(1)),void 0===t[e=r]&&(e=e.toLowerCase()),void 0===t[e]&&(e=e.toUpperCase())}return t[e]},e}();t.BaseResponse=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(0),i=n(3),a=n(4);function o(e,t){if(1&e&&r.ɵɵelement(0,"i",4),2&e){var n=r.ɵɵnextContext(2);r.ɵɵclassMapInterpolate1("fa ",n.icon,"")}}function s(e,t){if(1&e&&(r.ɵɵelementStart(0,"h3",2),r.ɵɵtext(1,"\n "),r.ɵɵtemplate(2,o,1,3,"i",3),r.ɵɵtext(3),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(2),r.ɵɵproperty("ngIf",n.icon),r.ɵɵadvance(1),r.ɵɵtextInterpolate1("\n ",n.title,"\n ")}}var l=function(e){return{clickable:e}},c=["*"],p=function(){function e(e){this.i18nService=e,this.type="info"}return e.prototype.ngOnInit=function(){this.calloutStyle=this.type,"warning"===this.type||"danger"===this.type?("danger"===this.type&&(this.calloutStyle="danger"),void 0===this.title&&(this.title=this.i18nService.t("warning")),void 0===this.icon&&(this.icon="fa-warning")):"error"===this.type?(this.calloutStyle="danger",void 0===this.title&&(this.title=this.i18nService.t("error")),void 0===this.icon&&(this.icon="fa-bolt")):"tip"===this.type&&(this.calloutStyle="success",void 0===this.title&&(this.title=this.i18nService.t("tip")),void 0===this.icon&&(this.icon="fa-lightbulb-o"))},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.I18nService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-callout"]],inputs:{type:"type",icon:"icon",title:"title",clickable:"clickable"},ngContentSelectors:c,decls:7,vars:7,consts:[["role","alert",3,"ngClass"],["class","callout-heading",4,"ngIf"],[1,"callout-heading"],["aria-hidden","true",3,"class",4,"ngIf"],["aria-hidden","true"]],template:function(e,t){1&e&&(r.ɵɵprojectionDef(),r.ɵɵelementStart(0,"div",0),r.ɵɵtext(1,"\n "),r.ɵɵtemplate(2,s,4,2,"h3",1),r.ɵɵtext(3,"\n "),r.ɵɵprojection(4),r.ɵɵtext(5,"\n"),r.ɵɵelementEnd(),r.ɵɵtext(6,"\n")),2&e&&(r.ɵɵclassMapInterpolate1("callout callout-",t.calloutStyle,""),r.ɵɵproperty("ngClass",r.ɵɵpureFunction1(5,l,t.clickable)),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.title))},directives:[a.NgClass,a.NgIf],encapsulation:2}),e}();t.CalloutComponent=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(702),i=n(144),a=n(158),o=n(257),s=n(32),l=n(211),c=n(129),p=n(161),u=n(94),d=n(40),m=n(128),h=n(113),f=n(701),v=function(){function e(){this.organizationId=null,this.logService=new f.ConsoleLogService(!1),this.newLineRegex=/(?:\r\n|\r|\n)/,this.passwordFieldNames=["password","pass word","passphrase","pass phrase","pass","code","code word","codeword","secret","secret word","personpwd","key","keyword","key word","keyphrase","key phrase","form_pw","wppassword","pin","pwd","pw","pword","passwd","p","serial","serial#","license key","reg #","passwort"],this.usernameFieldNames=["user","name","user name","username","login name","email","e-mail","id","userid","user id","login","form_loginname","wpname","mail","loginid","login id","log","personlogin","first name","last name","card#","account #","member","member #","nom","benutzername"],this.notesFieldNames=["note","notes","comment","comments","memo","description","free form","freeform","free text","freetext","free","kommentar"],this.uriFieldNames=["url","hyper link","hyperlink","link","host","hostname","host name","server","address","hyper ref","href","web","website","web site","site","web-site","uri","ort","adresse"],this.parseCsvOptions={encoding:"UTF-8",skipEmptyLines:!1}}return Object.defineProperty(e.prototype,"organization",{get:function(){return null!=this.organizationId},enumerable:!0,configurable:!0}),e.prototype.parseXml=function(e){var t=(new DOMParser).parseFromString(e,"application/xml");return null!=t&&null==t.querySelector("parsererror")?t:null},e.prototype.parseCsv=function(e,t,n){var i=this;void 0===n&&(n={});var a=Object.assign({header:t},this.parseCsvOptions,n);e=this.splitNewLine(e).join("\n").trim();var o=r.parse(e,a);return null!=o.errors&&o.errors.length>0&&o.errors.forEach(function(e){null!=e.row&&i.logService.warning("Error parsing row "+e.row+": "+e.message)}),o.data&&o.data.length>0?o.data:null},e.prototype.parseSingleRowCsv=function(e){if(this.isNullOrWhitespace(e))return null;var t=this.parseCsv(e,!1);return null!=t&&t.length>0&&t[0].length>0?t[0]:null},e.prototype.makeUriArray=function(e){var t=this;if(null==e)return null;if("string"==typeof e){var n=new o.LoginUriView;return n.uri=this.fixUri(e),this.isNullOrWhitespace(n.uri)?null:(n.match=null,[n])}if(e.length>0){var r=[];return e.forEach(function(e){var n=new o.LoginUriView;n.uri=t.fixUri(e),t.isNullOrWhitespace(n.uri)||(n.match=null,r.push(n))}),0===r.length?null:r}return null},e.prototype.fixUri=function(e){return null==e?null:(-1===(e=e.trim()).indexOf("://")&&e.indexOf(".")>=0&&(e="http://"+e),e.length>1e3?e.substring(0,1e3):e)},e.prototype.nameFromUrl=function(e){var t=s.Utils.getHostname(e);return this.isNullOrWhitespace(t)?null:t.startsWith("www.")?t.replace("www.",""):t},e.prototype.isNullOrWhitespace=function(e){return s.Utils.isNullOrWhitespace(e)},e.prototype.getValueOrDefault=function(e,t){return void 0===t&&(t=null),this.isNullOrWhitespace(e)?t:e},e.prototype.splitNewLine=function(e){return e.split(this.newLineRegex)},e.prototype.getCardBrand=function(e){if(this.isNullOrWhitespace(e))return null;var t=new RegExp("^4");return null!=e.match(t)?"Visa":/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/.test(e)?"Mastercard":(t=new RegExp("^3[47]"),null!=e.match(t)?"Amex":(t=new RegExp("^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)"),null!=e.match(t)?"Discover":(t=new RegExp("^36"),null!=e.match(t)?"Diners Club":(t=new RegExp("^30[0-5]"),null!=e.match(t)?"Diners Club":(t=new RegExp("^35(2[89]|[3-8][0-9])"),null!=e.match(t)?"JCB":(t=new RegExp("^(4026|417500|4508|4844|491(3|7))"),null!=e.match(t)?"Visa":null))))))},e.prototype.setCardExpiration=function(e,t){if(!this.isNullOrWhitespace(t)){var n=t.split("/");if(2===n.length){var r=null,i=null;if(1!==n[0].length&&2!==n[0].length||2===(r=n[0]).length&&"0"===r[0]&&(r=r.substr(1,1)),2!==n[1].length&&4!==n[1].length||(i=2===r.length?"20"+n[1]:n[1]),null!=r&&null!=i)return e.card.expMonth=r,e.card.expYear=i,!0}}return!1},e.prototype.moveFoldersToCollections=function(e){e.folderRelationships.forEach(function(t){return e.collectionRelationships.push(t)}),e.collections=e.folders.map(function(e){var t=new a.CollectionView;return t.name=e.name,t}),e.folderRelationships=[],e.folders=[]},e.prototype.querySelectorDirectChild=function(e,t){var n=this.querySelectorAllDirectChild(e,t);return 0===n.length?null:n[0]},e.prototype.querySelectorAllDirectChild=function(e,t){return Array.from(e.querySelectorAll(t)).filter(function(t){return t.parentNode===e})},e.prototype.initLoginCipher=function(){var e=new i.CipherView;return e.favorite=!1,e.notes="",e.fields=[],e.login=new p.LoginView,e.type=d.CipherType.Login,e},e.prototype.cleanupCipher=function(e){null!=e&&(e.type!==d.CipherType.Login&&(e.login=null),this.isNullOrWhitespace(e.name)&&(e.name="--"),this.isNullOrWhitespace(e.notes)?e.notes=null:e.notes=e.notes.trim(),null!=e.fields&&0===e.fields.length&&(e.fields=null))},e.prototype.processKvp=function(e,t,n,r){if(void 0===r&&(r=m.FieldType.Text),!this.isNullOrWhitespace(n))if(this.isNullOrWhitespace(t)&&(t=""),n.length>200||n.trim().search(this.newLineRegex)>-1)null==e.notes&&(e.notes=""),e.notes+=t+": "+this.splitNewLine(n).join("\n")+"\n";else{null==e.fields&&(e.fields=[]);var i=new l.FieldView;i.type=r,i.name=t,i.value=n,e.fields.push(i)}},e.prototype.processFolder=function(e,t){var n=e.folders.length,r=!this.isNullOrWhitespace(t),i=r;if(r)for(var a=0;a-1&&(n=t.getUrlObject("http://"+e)));return n},t.getUrlObject=function(e){try{if(null!=o)return o.URL?new o.URL(e):o.parse(e);if("function"==typeof URL)return new URL(e);if(null!=window){var t=e.indexOf("://")>-1;if(!t&&e.indexOf(".")>-1)e="http://"+e;else if(!t)return null;var n=window.document.createElement("a");return n.href=e,n}}catch(r){}return null},t.inited=!1,t.isNativeScript=!1,t.isNode=!1,t.isBrowser=!0,t.isMobileBrowser=!1,t.isAppleMobileBrowser=!1,t.global=null,t.tldEndingRegex=/.*\.(com|net|org|edu|uk|gov|ca|de|jp|fr|au|ru|ch|io|es|us|co|xyz|info|ly|mil)$/,t}();t.Utils=s,s.init()}).call(this,n(127),n(110),n(105).Buffer)},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.PasswordGenerationService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.onClick=function(e){e.preventDefault()},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appStopClick",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",function(e){return t.onClick(e)})}}),e}();t.StopClickDirective=i},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.StateService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Login=1]="Login",e[e.SecureNote=2]="SecureNote",e[e.Card=3]="Card",e[e.Identity=4]="Identity"}(t.CipherType||(t.CipherType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.CollectionService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.StorageService=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.PolicyService=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e,t){this.el=e,this.renderer=t}return Object.defineProperty(e.prototype,"appInputVerbatim",{set:function(e){this.disableComplete=""===e||!0===e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.disableComplete&&!this.el.nativeElement.hasAttribute("autocomplete")&&this.renderer.setAttribute(this.el.nativeElement,"autocomplete","off"),this.el.nativeElement.hasAttribute("autocapitalize")||this.renderer.setAttribute(this.el.nativeElement,"autocapitalize","none"),this.el.nativeElement.hasAttribute("autocorrect")||this.renderer.setAttribute(this.el.nativeElement,"autocorrect","none"),this.el.nativeElement.hasAttribute("spellcheck")||this.renderer.setAttribute(this.el.nativeElement,"spellcheck","false"),this.el.nativeElement.hasAttribute("inputmode")||this.renderer.setAttribute(this.el.nativeElement,"inputmode","verbatim")},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef),r.ɵɵdirectiveInject(r.Renderer2))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appInputVerbatim",""]],inputs:{appInputVerbatim:"appInputVerbatim"}}),e}();t.InputVerbatimDirective=i},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.FolderService=r},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.onClick=function(e){e.stopPropagation()},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appStopProp",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",function(e){return t.onClick(e)})}}),e}();t.StopPropDirective=i},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.AuthService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SyncService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.EnvironmentService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(32),i=n(0),a=function(){function e(e){this.el=e}return Object.defineProperty(e.prototype,"appAutofocus",{set:function(e){this.autofocus=""===e||!0===e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){!r.Utils.isMobileBrowser&&this.autofocus&&this.el.nativeElement.focus()},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(i.ElementRef))},e.ɵdir=i.ɵɵdefineDirective({type:e,selectors:[["","appAutofocus",""]],inputs:{appAutofocus:"appAutofocus"}}),e}();t.AutofocusDirective=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.environmentUrlsKey=e.environmentUrlsKey,this.disableGaKey=e.disableGaKey,this.disableAddLoginNotificationKey=e.disableAddLoginNotificationKey,this.disableContextMenuItemKey=e.disableContextMenuItemKey,this.disableFaviconKey=e.disableFaviconKey,this.disableBadgeCounterKey=e.disableBadgeCounterKey,this.disableAutoTotpCopyKey=e.disableAutoTotpCopyKey,this.enableAutoFillOnPageLoadKey=e.enableAutoFillOnPageLoadKey,this.vaultTimeoutKey=e.vaultTimeoutKey,this.vaultTimeoutActionKey=e.vaultTimeoutActionKey,this.lastActiveKey=e.lastActiveKey,this.neverDomainsKey=e.neverDomainsKey,this.installedVersionKey=e.installedVersionKey,this.localeKey=e.localeKey,this.themeKey=e.themeKey,this.collapsedGroupingsKey=e.collapsedGroupingsKey,this.autoConfirmFingerprints=e.autoConfirmFingerprints,this.dontShowCardsCurrentTab=e.dontShowCardsCurrentTab,this.dontShowIdentitiesCurrentTab=e.dontShowIdentitiesCurrentTab,this.defaultUriMatch=e.defaultUriMatch,this.pinProtectedKey=e.pinProtectedKey,this.protectedPin=e.protectedPin,this.clearClipboardKey=e.clearClipboardKey,this.eventCollectionKey=e.eventCollectionKey,this.ssoCodeVerifierKey=e.ssoCodeVerifierKey,this.ssoStateKey=e.ssoStateKey,this.biometricUnlockKey=e.biometricUnlockKey,this.biometricText=e.biometricText,this.biometricAwaitingAcceptance=e.biometricAwaitingAcceptance,this.biometricFingerprintValidated=e.biometricFingerprintValidated}return e.environmentUrlsKey="environmentUrls",e.disableGaKey="disableGa",e.disableAddLoginNotificationKey="disableAddLoginNotification",e.disableChangedPasswordNotificationKey="disableChangedPasswordNotification",e.disableContextMenuItemKey="disableContextMenuItem",e.disableFaviconKey="disableFavicon",e.disableBadgeCounterKey="disableBadgeCounter",e.disableAutoTotpCopyKey="disableAutoTotpCopy",e.enableAutoFillOnPageLoadKey="enableAutoFillOnPageLoad",e.vaultTimeoutKey="lockOption",e.vaultTimeoutActionKey="vaultTimeoutAction",e.lastActiveKey="lastActive",e.neverDomainsKey="neverDomains",e.installedVersionKey="installedVersion",e.localeKey="locale",e.themeKey="theme",e.collapsedGroupingsKey="collapsedGroupings",e.autoConfirmFingerprints="autoConfirmFingerprints",e.dontShowCardsCurrentTab="dontShowCardsCurrentTab",e.dontShowIdentitiesCurrentTab="dontShowIdentitiesCurrentTab",e.defaultUriMatch="defaultUriMatch",e.pinProtectedKey="pinProtectedKey",e.protectedPin="protectedPin",e.clearClipboardKey="clearClipboardKey",e.eventCollectionKey="eventCollection",e.ssoCodeVerifierKey="ssoCodeVerifier",e.ssoStateKey="ssoState",e.biometricUnlockKey="biometric",e.biometricText="biometricText",e.biometricAwaitingAcceptance="biometricAwaitingAcceptance",e.biometricFingerprintValidated="biometricFingerprintValidated",e}();t.ConstantsService=r},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.EventService=r},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.PasswordVerificationRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SearchService=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1?e[o]=s||null:e[o]=s?new a.CipherString(s):null}},e.prototype.buildDataModel=function(e,t,n,r){for(var i in void 0===r&&(r=[]),n)if(n.hasOwnProperty(i)){var a=e[n[i]||i];r.indexOf(i)>-1?t[i]=null!=a?a:null:t[i]=null!=a?a.encryptedString:null}},e.prototype.decryptObj=function(e,t,n,a){return void 0===a&&(a=null),r(this,void 0,void 0,function(){var r,o,s;return i(this,function(i){switch(i.label){case 0:for(s in r=[],o=this,t)t.hasOwnProperty(s)&&function(i){var s=Promise.resolve().then(function(){var e=t[i]||i;return o[e]?o[e].decrypt(n,a):null}).then(function(t){e[i]=t});r.push(s)}(s);return[4,Promise.all(r)];case 1:return i.sent(),[2,e]}})})},e}();t.default=o},,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(271),o=(n(0),n(838)),s=n(32),l=(n(15),n(0)),c=n(15);function p(e,t){}var u=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.el=null,r}return i(t,e),t.prototype.ngOnDestroy=function(){},t.prototype.show=function(e,t,n,r){var i=this;void 0===n&&(n=!0),void 0===r&&(r=null),this.parentContainer=t,this.fade=n;var o=this.componentFactoryResolver.resolveComponentFactory(e),l=this.container.createComponent(o);null!=r&&r(l.instance);var c=Array.from(document.querySelectorAll(".modal"));return c.length>0&&(this.el=a(c[0]),this.el.modal("show"),this.el.on("show.bs.modal",function(){i.onShow.emit(),i.messagingService.send("modalShow")}),this.el.on("shown.bs.modal",function(){i.onShown.emit(),i.messagingService.send("modalShown"),s.Utils.isMobileBrowser||i.el.find("*[appAutoFocus]").focus()}),this.el.on("hide.bs.modal",function(){i.onClose.emit(),i.messagingService.send("modalClose")}),this.el.on("hidden.bs.modal",function(){i.onClosed.emit(),i.messagingService.send("modalClosed"),null!=i.parentContainer&&i.parentContainer.clear()})),l.instance},t.prototype.close=function(){null!=this.el&&this.el.modal("hide")},t.ɵfac=function(e){return new(e||t)(l.ɵɵdirectiveInject(l.ComponentFactoryResolver),l.ɵɵdirectiveInject(c.MessagingService))},t.ɵcmp=l.ɵɵdefineComponent({type:t,selectors:[["app-modal"]],features:[l.ɵɵInheritDefinitionFeature],decls:2,vars:0,consts:[["container",""]],template:function(e,t){1&e&&l.ɵɵtemplate(0,p,0,0,"ng-template",null,0,l.ɵɵtemplateRefExtractor)},encapsulation:2}),t}(o.ModalComponent);t.ModalComponent=u},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.AuditService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.cardholderName=null,this.expMonth=null,this.expYear=null,this.code=null,this._brand=null,this._number=null,this._subTitle=null}return Object.defineProperty(e.prototype,"maskedCode",{get:function(){return null!=this.code?"•".repeat(this.code.length):null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"brand",{get:function(){return this._brand},set:function(e){this._brand=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"number",{get:function(){return this._number},set:function(e){this._number=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){if(null==this._subTitle&&(this._subTitle=this.brand,null!=this.number&&this.number.length>=4)){null!=this._subTitle&&""!==this._subTitle?this._subTitle+=", ":this._subTitle="";var e=this.number.length>=5&&null!=this.number.match(new RegExp("^3[47]"))?5:4;this._subTitle+="*"+this.number.substr(this.number.length-e)}return this._subTitle},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expiration",{get:function(){if(!this.expMonth&&!this.expYear)return null;var e=null!=this.expMonth?("0"+this.expMonth).slice(-2):"__";return e+=" / "+(null!=this.expYear?this.formatYear(this.expYear):"____")},enumerable:!0,configurable:!0}),e.prototype.formatYear=function(e){return 2===e.length?"20"+e:e},e}();t.CardView=r},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.type=null,e&&(this.type=e.type)}return Object.defineProperty(e.prototype,"subTitle",{get:function(){return null},enumerable:!0,configurable:!0}),e}();t.SecureNoteView=r},,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.TokenService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.CryptoFunctionService=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1?(e="http://"+e,t=!0):this.imageEnabled&&(t=0===e.indexOf("http")&&e.indexOf(".")>-1),this.imageEnabled&&t)try{this.image=this.iconsUrl+"/"+s.Utils.getHostname(e)+"/icon.png",this.fallbackImage="images/fa-globe.png"}catch(n){}}else this.image=null},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(c.EnvironmentService),l.ɵɵdirectiveInject(p.StateService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["app-vault-icon"]],inputs:{cipher:"cipher"},features:[l.ɵɵNgOnChangesFeature],decls:7,vars:2,consts:[["aria-hidden","true",1,"icon"],["alt","",3,"src","appFallbackSrc",4,"ngIf"],[3,"class",4,"ngIf"],["alt","",3,"src","appFallbackSrc"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtext(1,"\n "),l.ɵɵtemplate(2,m,1,2,"img",1),l.ɵɵtext(3,"\n "),l.ɵɵtemplate(4,h,1,3,"i",2),l.ɵɵtext(5,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(6,"\n")),2&e&&(l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.imageEnabled&&t.image),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",!t.imageEnabled||!t.image))},directives:[u.NgIf,d.FallbackSrcDirective],encapsulation:2}),e}();t.IconComponent=v},,,,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});n(0);var a=n(814),o=n(0),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.ɵfac=function(e){return l(e||t)},t.ɵprov=o.ɵɵdefineInjectable({token:t,factory:t.ɵfac}),t}(a.BroadcasterService);t.BroadcasterService=s;var l=o.ɵɵgetInheritedFactory(s)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.VaultTimeoutService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Generic=0]="Generic"}(t.SecureNoteType||(t.SecureNoteType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Authenticator=0]="Authenticator",e[e.Email=1]="Email",e[e.Duo=2]="Duo",e[e.Yubikey=3]="Yubikey",e[e.U2f=4]="U2f",e[e.Remember=5]="Remember",e[e.OrganizationDuo=6]="OrganizationDuo"}(t.TwoFactorProviderType||(t.TwoFactorProviderType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.TotpService=r},,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1)try{window.document.body.removeChild(e)}catch(t){}})},500),this.hidePaypal||(window.document.head.removeChild(this.btScript),window.setTimeout(function(){Array.from(window.document.head.querySelectorAll("script")).forEach(function(e){if(null!=e.src&&e.src.indexOf("paypal")>-1)try{window.document.head.removeChild(e)}catch(t){}});var e=window.document.head.querySelector("#braintree-dropin-stylesheet");if(null!=e)try{window.document.head.removeChild(e)}catch(t){}},500))},e.prototype.changeMethod=function(){var e=this;this.btInstance=null,this.method===a.PaymentMethodType.PayPal?window.setTimeout(function(){window.braintree.dropin.create({authorization:e.platformUtilsService.isDev()?o.WebConstants.btSandboxKey:o.WebConstants.btProductionKey,container:"#bt-dropin-container",paymentOptionPriority:["paypal"],paypal:{flow:"vault",buttonStyle:{label:"pay",size:"medium",shape:"pill",color:"blue"}}},function(t,n){null==t?e.btInstance=n:console.error(t)})},250):this.setStripeElement()},e.prototype.createPaymentToken=function(){var e=this;return new Promise(function(t,n){e.method===a.PaymentMethodType.Credit?t([null,e.method]):e.method===a.PaymentMethodType.PayPal?e.btInstance.requestPaymentMethod().then(function(n){t([n.nonce,e.method])}).catch(function(e){n(e.message)}):e.method!==a.PaymentMethodType.Card&&e.method!==a.PaymentMethodType.BankAccount||(e.method===a.PaymentMethodType.Card?e.apiService.postSetupPayment().then(function(t){return e.stripe.handleCardSetup(t,e.stripeCardNumberElement)}).then(function(r){r.error?n(r.error.message):r.setupIntent&&"succeeded"===r.setupIntent.status?t([r.setupIntent.payment_method,e.method]):n()}):e.stripe.createToken("bank_account",e.bank).then(function(r){r.error?n(r.error.message):r.token&&null!=r.token.id?t([r.token.id,e.method]):n()}))})},e.prototype.handleStripeCardPayment=function(e,t){var n=this;return new Promise(function(a,o){if(!n.showMethods||null!=n.stripeCardNumberElement){return(n.showMethods?n.stripe.handleCardSetup(e,n.stripeCardNumberElement):n.stripe.handleCardSetup(e)).then(function(e){return r(n,void 0,void 0,function(){return i(this,function(n){switch(n.label){case 0:return e.error?(o(e.error.message),[3,5]):[3,1];case 1:return e.paymentIntent&&"succeeded"===e.paymentIntent.status?null==t?[3,3]:[4,t()]:[3,4];case 2:n.sent(),n.label=3;case 3:return a(),[3,5];case 4:o(),n.label=5;case 5:return[2]}})})})}o()})},e.prototype.setStripeElement=function(){var e=this;window.setTimeout(function(){e.showMethods&&e.method===a.PaymentMethodType.Card&&(null==e.stripeCardNumberElement&&(e.stripeCardNumberElement=e.stripeElements.create("cardNumber",{style:I,classes:E,placeholder:""})),null==e.stripeCardExpiryElement&&(e.stripeCardExpiryElement=e.stripeElements.create("cardExpiry",{style:I,classes:E})),null==e.stripeCardCvcElement&&(e.stripeCardCvcElement=e.stripeElements.create("cardCvc",{style:I,classes:E,placeholder:""})),e.stripeCardNumberElement.mount("#stripe-card-number-element"),e.stripeCardExpiryElement.mount("#stripe-card-expiry-element"),e.stripeCardCvcElement.mount("#stripe-card-cvc-element"))},50)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.PlatformUtilsService),s.ɵɵdirectiveInject(c.ApiService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["app-payment"]],inputs:{showMethods:"showMethods",showOptions:"showOptions",method:"method",hideBank:"hideBank",hidePaypal:"hidePaypal",hideCredit:"hideCredit"},decls:10,vars:5,consts:[["class","mb-4 text-lg",4,"ngIf"],[4,"ngIf"],[1,"mb-4","text-lg"],[1,"form-check","form-check-inline","mr-4"],["type","radio","name","Method","id","method-card",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-card",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-credit-card"],["class","form-check form-check-inline mr-4",4,"ngIf"],["class","form-check form-check-inline",4,"ngIf"],["type","radio","name","Method","id","method-bank",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-bank",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-university"],[1,"form-check","form-check-inline"],["type","radio","name","Method","id","method-paypal",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-paypal",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-paypal"],["type","radio","name","Method","id","method-credit",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-credit",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-dollar"],[1,"row"],[1,"form-group","col-4"],["for","stripe-card-number-element"],["id","stripe-card-number-element",1,"form-control","stripe-form-control"],[1,"form-group","col-8","d-flex","align-items-end"],["src","images/cards.png","alt","Visa, MasterCard, Discover, AmEx, JCB, Diners Club, UnionPay","width","323","height","32"],["for","stripe-card-expiry-element"],["id","stripe-card-expiry-element",1,"form-control","stripe-form-control"],[1,"d-flex"],["for","stripe-card-cvc-element"],["href","https://www.cvvnumber.com/cvv.html","tabindex","-1","target","_blank","rel","noopener noreferrer",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],["id","stripe-card-cvc-element",1,"form-control","stripe-form-control"],["type","warning",3,"title"],[1,"form-group","col-6"],["for","routing_number"],["id","routing_number","type","text","name","routing_number","required","","appInputVerbatim","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_number"],["id","account_number","type","text","name","account_number","required","","appInputVerbatim","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_holder_name"],["id","account_holder_name","type","text","name","account_holder_name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_holder_type"],["id","account_holder_type","name","account_holder_type","required","",1,"form-control",3,"ngModel","ngModelChange"],["value",""],["value","company"],["value","individual"],[1,"mb-3"],["id","bt-dropin-container",1,"mb-1"],[1,"text-muted"],["type","note"]],template:function(e,t){1&e&&(s.ɵɵtemplate(0,x,19,8,"div",0),s.ɵɵtext(1,"\n"),s.ɵɵtemplate(2,b,46,12,"ng-container",1),s.ɵɵtext(3,"\n"),s.ɵɵtemplate(4,S,60,34,"ng-container",1),s.ɵɵtext(5,"\n"),s.ɵɵtemplate(6,w,11,3,"ng-container",1),s.ɵɵtext(7,"\n"),s.ɵɵtemplate(8,C,6,3,"ng-container",1),s.ɵɵtext(9,"\n")),2&e&&(s.ɵɵproperty("ngIf",t.showOptions&&t.showMethods),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.Card),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.BankAccount),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.PayPal),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.Credit))},directives:[p.NgIf,u.RadioControlValueAccessor,u.DefaultValueAccessor,u.NgControlStatus,u.NgModel,d.A11yTitleDirective,m.CalloutComponent,u.RequiredValidator,h.InputVerbatimDirective,u.SelectControlValueAccessor,u.NgSelectOption,u.ɵangular_packages_forms_forms_x],pipes:[f.I18nPipe],encapsulation:2}),e}();t.PaymentComponent=P},,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Text=0]="Text",e[e.Hidden=1]="Hidden",e[e.Boolean=2]="Boolean"}(t.FieldType||(t.FieldType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.id=null,this.name=null,this.revisionDate=null,e&&(this.id=e.id,this.revisionDate=e.revisionDate)}}();t.FolderView=r},,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1&&(n=this.getFirstLetters(r,this.charCount)),null==n&&(n=r.substr(0,this.charCount)),o=this.getCharText(n),s=this.stringToColor(r),(l=this.getSvg(this.size,s)).appendChild(o),c=window.document.createElement("div").appendChild(l).outerHTML,p=window.btoa(unescape(encodeURIComponent(c))),this.src="data:image/svg+xml;base64,"+p,i.label=4;case 4:return[2]}})})},e.prototype.stringToColor=function(e){for(var t=0,n=0;n>8*n&255).toString(16)).substr(-2)}return r},e.prototype.getFirstLetters=function(e,t){var n=e.split(" ");if(n.length>1){for(var r="",i=0;i0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasAttachments",{get:function(){return this.attachments&&this.attachments.length>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasOldAttachments",{get:function(){if(this.hasAttachments)for(var e=0;e0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"passwordRevisionDisplayDate",{get:function(){return this.type!==r.CipherType.Login||null==this.login?null:null==this.login.password||""===this.login.password?null:this.login.passwordRevisionDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDeleted",{get:function(){return null!=this.deletedDate},enumerable:!0,configurable:!0}),e}();t.CipherView=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(32),i=function(){function e(e){this.title=null,this.middleName=null,this.address1=null,this.address2=null,this.address3=null,this.city=null,this.state=null,this.postalCode=null,this.country=null,this.company=null,this.email=null,this.phone=null,this.ssn=null,this.username=null,this.passportNumber=null,this.licenseNumber=null,this._firstName=null,this._lastName=null,this._subTitle=null}return Object.defineProperty(e.prototype,"firstName",{get:function(){return this._firstName},set:function(e){this._firstName=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastName",{get:function(){return this._lastName},set:function(e){this._lastName=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){return null!=this._subTitle||null==this.firstName&&null==this.lastName||(this._subTitle="",null!=this.firstName&&(this._subTitle=this.firstName),null!=this.lastName&&(""!==this._subTitle&&(this._subTitle+=" "),this._subTitle+=this.lastName)),this._subTitle},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullName",{get:function(){if(null!=this.title||null!=this.firstName||null!=this.middleName||null!=this.lastName){var e="";return null!=this.title&&(e+=this.title+" "),null!=this.firstName&&(e+=this.firstName+" "),null!=this.middleName&&(e+=this.middleName+" "),null!=this.lastName&&(e+=this.lastName),e.trim()}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullAddress",{get:function(){var e=this.address1;return r.Utils.isNullOrWhitespace(this.address2)||(r.Utils.isNullOrWhitespace(e)||(e+=", "),e+=this.address2),r.Utils.isNullOrWhitespace(this.address3)||(r.Utils.isNullOrWhitespace(e)||(e+=", "),e+=this.address3),e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullAddressPart2",{get:function(){if(null==this.city&&null==this.state&&null==this.postalCode)return null;var e=this.city||"-",t=this.state,n=this.postalCode||"-",i=e;return r.Utils.isNullOrWhitespace(t)||(i+=", "+t),i+=", "+n},enumerable:!0,configurable:!0}),e}();t.IdentityView=i},,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.id=e.id,this.organizationId=e.organizationId,this.name=e.name,this.externalId=e.externalId,this.readOnly=e.readOnly}}();t.CollectionData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(141),i=function(){return function(e){this.id=null,this.organizationId=null,this.name=null,this.externalId=null,this.readOnly=null,this.hidePasswords=null,e&&(this.id=e.id,this.organizationId=e.organizationId,this.externalId=e.externalId,e instanceof r.Collection&&(this.readOnly=e.readOnly,this.hidePasswords=e.hidePasswords))}}();t.CollectionView=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Invited=0]="Invited",e[e.Accepted=1]="Accepted",e[e.Confirmed=2]="Confirmed"}(t.OrganizationUserStatusType||(t.OrganizationUserStatusType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(40),i=n(481),a=n(482),o=n(483),s=n(484),l=n(485),c=n(592),p=n(487),u=function(){return function(e,t,n){if(null!=e){switch(this.id=e.id,this.organizationId=e.organizationId,this.folderId=e.folderId,this.userId=t,this.edit=e.edit,this.viewPassword=e.viewPassword,this.organizationUseTotp=e.organizationUseTotp,this.favorite=e.favorite,this.revisionDate=e.revisionDate,this.type=e.type,this.name=e.name,this.notes=e.notes,this.collectionIds=null!=n?n:e.collectionIds,this.deletedDate=e.deletedDate,this.type){case r.CipherType.Login:this.login=new l.LoginData(e.login);break;case r.CipherType.SecureNote:this.secureNote=new p.SecureNoteData(e.secureNote);break;case r.CipherType.Card:this.card=new a.CardData(e.card);break;case r.CipherType.Identity:this.identity=new s.IdentityData(e.identity)}null!=e.fields&&(this.fields=e.fields.map(function(e){return new o.FieldData(e)})),null!=e.attachments&&(this.attachments=e.attachments.map(function(e){return new i.AttachmentData(e)})),null!=e.passwordHistory&&(this.passwordHistory=e.passwordHistory.map(function(e){return new c.PasswordHistoryData(e)}))}}}();t.CipherData=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(32),i=function(){function e(e){this.username=null,this.password=null,this.passwordRevisionDate=null,this.totp=null,this.uris=null,e&&(this.passwordRevisionDate=e.passwordRevisionDate)}return Object.defineProperty(e.prototype,"uri",{get:function(){return this.hasUris?this.uris[0].uri:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maskedPassword",{get:function(){return null!=this.password?"••••••••":null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){return this.username},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canLaunch",{get:function(){return this.hasUris&&this.uris.some(function(e){return e.canLaunch})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTotp",{get:function(){return!r.Utils.isNullOrWhitespace(this.totp)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"launchUri",{get:function(){if(this.hasUris){var e=this.uris.find(function(e){return e.canLaunch});if(null!=e)return e.launchUri}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasUris",{get:function(){return null!=this.uris&&this.uris.length>0},enumerable:!0,configurable:!0}),e}();t.LoginView=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Text=0]="Text",e[e.File=1]="File"}(t.SendType||(t.SendType={}))},,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?(p=[],[4,this.attachments.reduce(function(t,n){return t.then(function(){return n.decrypt(l,e)}).then(function(e){p.push(e)})},Promise.resolve())]):[3,13];case 12:o.sent(),t.attachments=p,o.label=13;case 13:return null!=this.fields&&this.fields.length>0?(u=[],[4,this.fields.reduce(function(t,n){return t.then(function(){return n.decrypt(l,e)}).then(function(e){u.push(e)})},Promise.resolve())]):[3,15];case 14:o.sent(),t.fields=u,o.label=15;case 15:return null!=this.passwordHistory&&this.passwordHistory.length>0?(d=[],[4,this.passwordHistory.reduce(function(t,n){return t.then(function(){return n.decrypt(l,e)}).then(function(e){d.push(e)})},Promise.resolve())]):[3,17];case 16:o.sent(),t.passwordHistory=d,o.label=17;case 17:return[2,t]}})})},t.prototype.toCipherData=function(e){var t=new l.CipherData;switch(t.id=this.id,t.organizationId=this.organizationId,t.folderId=this.folderId,t.userId=null!=this.organizationId?e:null,t.edit=this.edit,t.viewPassword=this.viewPassword,t.organizationUseTotp=this.organizationUseTotp,t.favorite=this.favorite,t.revisionDate=null!=this.revisionDate?this.revisionDate.toISOString():null,t.type=this.type,t.collectionIds=this.collectionIds,t.deletedDate=null!=this.deletedDate?this.deletedDate.toISOString():null,this.buildDataModel(this,t,{name:null,notes:null}),t.type){case s.CipherType.Login:t.login=this.login.toLoginData();break;case s.CipherType.SecureNote:t.secureNote=this.secureNote.toSecureNoteData();break;case s.CipherType.Card:t.card=this.card.toCardData();break;case s.CipherType.Identity:t.identity=this.identity.toIdentityData()}return null!=this.fields&&(t.fields=this.fields.map(function(e){return e.toFieldData()})),null!=this.attachments&&(t.attachments=this.attachments.map(function(e){return e.toAttachmentData()})),null!=this.passwordHistory&&(t.passwordHistory=this.passwordHistory.map(function(e){return e.toPasswordHistoryData()})),t},t}(d.default);t.Cipher=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SendService=r},,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.name=null,this.value=null,this.type=null,this.newField=!1,this.showValue=!1,e&&(this.type=e.type)}return Object.defineProperty(e.prototype,"maskedValue",{get:function(){return null!=this.value?"••••••••":null},enumerable:!0,configurable:!0}),e}();t.FieldView=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(40),i=n(596),a=n(597),o=n(598),s=n(599),l=n(600),c=n(601),p=n(870),u=function(){return function(e){var t=this;switch(this.type=e.type,this.folderId=e.folderId,this.organizationId=e.organizationId,this.name=e.name?e.name.encryptedString:null,this.notes=e.notes?e.notes.encryptedString:null,this.favorite=e.favorite,this.lastKnownRevisionDate=e.revisionDate,this.type){case r.CipherType.Login:this.login=new s.LoginApi,this.login.uris=null,this.login.username=e.login.username?e.login.username.encryptedString:null,this.login.password=e.login.password?e.login.password.encryptedString:null,this.login.passwordRevisionDate=null!=e.login.passwordRevisionDate?e.login.passwordRevisionDate.toISOString():null,this.login.totp=e.login.totp?e.login.totp.encryptedString:null,null!=e.login.uris&&(this.login.uris=e.login.uris.map(function(e){var t=new l.LoginUriApi;return t.uri=null!=e.uri?e.uri.encryptedString:null,t.match=null!=e.match?e.match:null,t}));break;case r.CipherType.SecureNote:this.secureNote=new c.SecureNoteApi,this.secureNote.type=e.secureNote.type;break;case r.CipherType.Card:this.card=new i.CardApi,this.card.cardholderName=null!=e.card.cardholderName?e.card.cardholderName.encryptedString:null,this.card.brand=null!=e.card.brand?e.card.brand.encryptedString:null,this.card.number=null!=e.card.number?e.card.number.encryptedString:null,this.card.expMonth=null!=e.card.expMonth?e.card.expMonth.encryptedString:null,this.card.expYear=null!=e.card.expYear?e.card.expYear.encryptedString:null,this.card.code=null!=e.card.code?e.card.code.encryptedString:null;break;case r.CipherType.Identity:this.identity=new o.IdentityApi,this.identity.title=null!=e.identity.title?e.identity.title.encryptedString:null,this.identity.firstName=null!=e.identity.firstName?e.identity.firstName.encryptedString:null,this.identity.middleName=null!=e.identity.middleName?e.identity.middleName.encryptedString:null,this.identity.lastName=null!=e.identity.lastName?e.identity.lastName.encryptedString:null,this.identity.address1=null!=e.identity.address1?e.identity.address1.encryptedString:null,this.identity.address2=null!=e.identity.address2?e.identity.address2.encryptedString:null,this.identity.address3=null!=e.identity.address3?e.identity.address3.encryptedString:null,this.identity.city=null!=e.identity.city?e.identity.city.encryptedString:null,this.identity.state=null!=e.identity.state?e.identity.state.encryptedString:null,this.identity.postalCode=null!=e.identity.postalCode?e.identity.postalCode.encryptedString:null,this.identity.country=null!=e.identity.country?e.identity.country.encryptedString:null,this.identity.company=null!=e.identity.company?e.identity.company.encryptedString:null,this.identity.email=null!=e.identity.email?e.identity.email.encryptedString:null,this.identity.phone=null!=e.identity.phone?e.identity.phone.encryptedString:null,this.identity.ssn=null!=e.identity.ssn?e.identity.ssn.encryptedString:null,this.identity.username=null!=e.identity.username?e.identity.username.encryptedString:null,this.identity.passportNumber=null!=e.identity.passportNumber?e.identity.passportNumber.encryptedString:null,this.identity.licenseNumber=null!=e.identity.licenseNumber?e.identity.licenseNumber.encryptedString:null}null!=e.fields&&(this.fields=e.fields.map(function(e){var t=new a.FieldApi;return t.type=e.type,t.name=e.name?e.name.encryptedString:null,t.value=e.value?e.value.encryptedString:null,t})),null!=e.passwordHistory&&(this.passwordHistory=[],e.passwordHistory.forEach(function(e){t.passwordHistory.push({lastUsedDate:e.lastUsedDate,password:e.password?e.password.encryptedString:null})})),null!=e.attachments&&(this.attachments={},this.attachments2={},e.attachments.forEach(function(e){var n=e.fileName?e.fileName.encryptedString:null;t.attachments[e.id]=n;var r=new p.AttachmentRequest;r.fileName=n,null!=e.key&&(r.key=e.key.encryptedString),t.attachments2[e.id]=r}))}}();t.CipherRequest=u},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(73);var r=n(8),i=(n(3),n(0)),a=n(8),o=n(73),s=n(3),l=function(){function e(e,t,n,i){var a=this;this.router=e,this.activatedRoute=t,this.titleService=n,this.previousUrl=void 0,this.currentUrl=void 0,this.currentUrl=this.router.url,e.events.subscribe(function(e){if(e instanceof r.NavigationEnd){a.previousUrl=a.currentUrl,a.currentUrl=e.url;for(var t=i.t("pageTitle","Bitwarden"),n=null,o=null,s=a.activatedRoute.firstChild;null!=s;){if(null==s.firstChild){if(null!=s.snapshot.data&&null!=s.snapshot.data.title){o=s.snapshot.data.title;break}if(null!=s.snapshot.data&&null!=s.snapshot.data.titleId){n=s.snapshot.data.titleId;break}n=null,o=null;break}s=s.firstChild}if(null!=n||null!=o){var l=null!=o?o:i.t(n);null!=l&&""!==l&&(t=l+" | "+t)}a.titleService.setTitle(t)}})}return e.prototype.getPreviousUrl=function(){return this.previousUrl},e.prototype.setPreviousUrl=function(e){this.previousUrl=e},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(a.Router),i.ɵɵinject(a.ActivatedRoute),i.ɵɵinject(o.Title),i.ɵɵinject(s.I18nService))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.RouterService=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.PBKDF2_SHA256=0]="PBKDF2_SHA256"}(t.KdfType||(t.KdfType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(0),i=n(3),a=n(4);function o(e,t){if(1&e&&(r.ɵɵelementContainerStart(0),r.ɵɵtext(1),r.ɵɵelementContainerEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵtextInterpolate1("\n ",n.text,"\n ")}}var s=function(e){return{width:e}},l=function(){function e(e){this.i18nService=e,this.showText=!1,this.scoreWidth=0,this.color="bg-danger"}return e.prototype.ngOnChanges=function(){switch(this.scoreWidth=null==this.score?0:20*(this.score+1),this.score){case 4:this.color="bg-success",this.text=this.i18nService.t("strong");break;case 3:this.color="bg-primary",this.text=this.i18nService.t("good");break;case 2:this.color="bg-warning",this.text=this.i18nService.t("weak");break;default:this.color="bg-danger",this.text=null!=this.score?this.i18nService.t("weak"):null}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.I18nService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-password-strength"]],inputs:{score:"score",showText:"showText"},features:[r.ɵɵNgOnChangesFeature],decls:8,vars:8,consts:[[1,"progress"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",3,"ngStyle"],[4,"ngIf"]],template:function(e,t){1&e&&(r.ɵɵelementStart(0,"div",0),r.ɵɵtext(1,"\n "),r.ɵɵelementStart(2,"div",1),r.ɵɵtext(3,"\n "),r.ɵɵtemplate(4,o,2,1,"ng-container",2),r.ɵɵtext(5,"\n "),r.ɵɵelementEnd(),r.ɵɵtext(6,"\n"),r.ɵɵelementEnd(),r.ɵɵtext(7,"\n")),2&e&&(r.ɵɵadvance(2),r.ɵɵclassMapInterpolate1("progress-bar ",t.color,""),r.ɵɵproperty("ngStyle",r.ɵɵpureFunction1(6,s,t.scoreWidth+"%")),r.ɵɵattribute("aria-valuenow",t.scoreWidth),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.showText&&t.text))},directives:[a.NgStyle,a.NgIf],encapsulation:2}),e}();t.PasswordStrengthComponent=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Owner=0]="Owner",e[e.Admin=1]="Admin",e[e.User=2]="User",e[e.Manager=3]="Manager",e[e.Custom=4]="Custom"}(t.OrganizationUserType||(t.OrganizationUserType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t,n,r,i){return null==e||0===e.length?[]:null==t||t.length<2?e:(t=t.trim().toLowerCase(),e.filter(function(e){return null!=n&&null!=e[n]&&e[n].toString().toLowerCase().indexOf(t)>-1||(null!=r&&null!=e[r]&&e[r].toString().toLowerCase().indexOf(t)>-1||null!=i&&null!=e[i]&&e[i].toString().toLowerCase().indexOf(t)>-1)}))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"search",type:e,pure:!0}),e}();t.SearchPipe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(277),i=n(253),a=n(0),o=n(3),s=function(){function e(e){this.i18nService=e}return e.prototype.getDefaultDateFilters=function(){var e=new Date,t=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59);e.setDate(e.getDate()-30);var n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0);return[this.toDateTimeLocalString(n),this.toDateTimeLocalString(t)]},e.prototype.formatDateFilters=function(e,t){var n=new Date(e),r=new Date(t+":59.999");if(isNaN(n.getTime())||isNaN(r.getTime())||r"+n+"";var r=this.makeAnchor(n);return r.setAttribute("href","#/organizations/"+e.organizationId+"/vault?search="+n+"&viewEvents="+e.cipherId),r.outerHTML},e.prototype.formatGroupId=function(e){var t=this.getShortId(e.groupId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/groups?search="+t),n.outerHTML},e.prototype.formatCollectionId=function(e){var t=this.getShortId(e.collectionId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/collections?search="+t),n.outerHTML},e.prototype.formatOrgUserId=function(e){var t=this.getShortId(e.organizationUserId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/people?search="+t+"&viewEvents="+e.organizationUserId),n.outerHTML},e.prototype.formatPolicyId=function(e){var t=this.getShortId(e.policyId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/policies?policyId="+e.policyId),n.outerHTML},e.prototype.makeAnchor=function(e){var t=document.createElement("a");return t.title=this.i18nService.t("view"),t.innerHTML=""+e+"",t},e.prototype.getShortId=function(e){return e.substring(0,8)},e.prototype.toDateTimeLocalString=function(e){return e.getFullYear()+"-"+this.pad(e.getMonth()+1)+"-"+this.pad(e.getDate())+"T"+this.pad(e.getHours())+":"+this.pad(e.getMinutes())},e.prototype.pad=function(e){var t=Math.floor(Math.abs(e));return(t<10?"0":"")+t},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(o.I18nService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.EventService=s;var l=function(){return function(){}}();t.EventInfo=l;var c=function(){return function(){this.cipherInfo=!0}}();t.EventOptions=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.User_LoggedIn=1e3]="User_LoggedIn",e[e.User_ChangedPassword=1001]="User_ChangedPassword",e[e.User_Updated2fa=1002]="User_Updated2fa",e[e.User_Disabled2fa=1003]="User_Disabled2fa",e[e.User_Recovered2fa=1004]="User_Recovered2fa",e[e.User_FailedLogIn=1005]="User_FailedLogIn",e[e.User_FailedLogIn2fa=1006]="User_FailedLogIn2fa",e[e.User_ClientExportedVault=1007]="User_ClientExportedVault",e[e.Cipher_Created=1100]="Cipher_Created",e[e.Cipher_Updated=1101]="Cipher_Updated",e[e.Cipher_Deleted=1102]="Cipher_Deleted",e[e.Cipher_AttachmentCreated=1103]="Cipher_AttachmentCreated",e[e.Cipher_AttachmentDeleted=1104]="Cipher_AttachmentDeleted",e[e.Cipher_Shared=1105]="Cipher_Shared",e[e.Cipher_UpdatedCollections=1106]="Cipher_UpdatedCollections",e[e.Cipher_ClientViewed=1107]="Cipher_ClientViewed",e[e.Cipher_ClientToggledPasswordVisible=1108]="Cipher_ClientToggledPasswordVisible",e[e.Cipher_ClientToggledHiddenFieldVisible=1109]="Cipher_ClientToggledHiddenFieldVisible",e[e.Cipher_ClientToggledCardCodeVisible=1110]="Cipher_ClientToggledCardCodeVisible",e[e.Cipher_ClientCopiedPassword=1111]="Cipher_ClientCopiedPassword",e[e.Cipher_ClientCopiedHiddenField=1112]="Cipher_ClientCopiedHiddenField",e[e.Cipher_ClientCopiedCardCode=1113]="Cipher_ClientCopiedCardCode",e[e.Cipher_ClientAutofilled=1114]="Cipher_ClientAutofilled",e[e.Cipher_SoftDeleted=1115]="Cipher_SoftDeleted",e[e.Cipher_Restored=1116]="Cipher_Restored",e[e.Collection_Created=1300]="Collection_Created",e[e.Collection_Updated=1301]="Collection_Updated",e[e.Collection_Deleted=1302]="Collection_Deleted",e[e.Group_Created=1400]="Group_Created",e[e.Group_Updated=1401]="Group_Updated",e[e.Group_Deleted=1402]="Group_Deleted",e[e.OrganizationUser_Invited=1500]="OrganizationUser_Invited",e[e.OrganizationUser_Confirmed=1501]="OrganizationUser_Confirmed",e[e.OrganizationUser_Updated=1502]="OrganizationUser_Updated",e[e.OrganizationUser_Removed=1503]="OrganizationUser_Removed",e[e.OrganizationUser_UpdatedGroups=1504]="OrganizationUser_UpdatedGroups",e[e.OrganizationUser_UnlinkedSso=1505]="OrganizationUser_UnlinkedSso",e[e.Organization_Updated=1600]="Organization_Updated",e[e.Organization_PurgedVault=1601]="Organization_PurgedVault",e[e.Policy_Updated=1700]="Policy_Updated"}(t.EventType||(t.EventType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Card=0]="Card",e[e.BankAccount=1]="BankAccount",e[e.PayPal=2]="PayPal",e[e.BitPay=3]="BitPay",e[e.Credit=4]="Credit",e[e.WireTransfer=5]="WireTransfer",e[e.AppleInApp=6]="AppleInApp",e[e.GoogleInApp=7]="GoogleInApp",e[e.Check=8]="Check"}(t.PaymentMethodType||(t.PaymentMethodType={}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]4?(t=Math.floor(this.totpCode.length/2),this.totpCodeFormatted=this.totpCode.substring(0,t)+" "+this.totpCode.substring(t)):this.totpCodeFormatted=this.totpCode:(this.totpCodeFormatted=null,this.totpInterval&&window.clearInterval(this.totpInterval)),[2]}})})},t.prototype.allowOwnershipAssignment=function(){return(!this.editMode||this.cloneMode)&&null!=this.ownershipOptions&&(this.ownershipOptions.length>1||!this.allowPersonal)},t.prototype.totpTick=function(e){return a(this,void 0,void 0,function(){var t,n;return o(this,function(r){switch(r.label){case 0:return t=Math.round((new Date).getTime()/1e3),n=t%e,this.totpSec=e-n,this.totpDash=+(Math.round(78.6/e*n+"e+2")+"e-2"),this.totpLow=this.totpSec<=7,0!==n?[3,2]:[4,this.totpUpdateCode()];case 1:r.sent(),r.label=2;case 2:return[2]}})})},t.ɵfac=function(e){return new(e||t)(p.ɵɵdirectiveInject(u.CipherService),p.ɵɵdirectiveInject(d.FolderService),p.ɵɵdirectiveInject(m.I18nService),p.ɵɵdirectiveInject(h.PlatformUtilsService),p.ɵɵdirectiveInject(f.AuditService),p.ɵɵdirectiveInject(v.StateService),p.ɵɵdirectiveInject(y.UserService),p.ɵɵdirectiveInject(g.CollectionService),p.ɵɵdirectiveInject(x.TotpService),p.ɵɵdirectiveInject(b.PasswordGenerationService),p.ɵɵdirectiveInject(S.MessagingService),p.ɵɵdirectiveInject(w.EventService),p.ɵɵdirectiveInject(C.PolicyService))},t.ɵcmp=p.ɵɵdefineComponent({type:t,selectors:[["app-vault-add-edit"]],features:[p.ɵɵInheritDefinitionFeature],decls:36,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","cipherAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","","autocomplete","off",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","cipherAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit","class","btn btn-primary btn-submit",3,"disabled",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["class","ml-auto",4,"ngIf"],[1,"modal-body"],["type","info",4,"ngIf"],["class","row",4,"ngIf"],[1,"row"],[1,"col-6","form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","col-6 form-group",4,"ngIf"],[4,"ngIf"],[1,"form-group"],["for","notes"],["id","notes","name","Notes","rows","6",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"mt-4"],["cdkDropList","",3,"cdkDropListDropped",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-2",3,"click",4,"ngIf"],["type","info"],["for","type"],["id","type","name","Type","appAutofocus","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["for","folder"],["id","folder","name","FolderId",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","loginUsername"],[1,"input-group"],["id","loginUsername","type","text","name","Login.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","input-group-append",4,"ngIf"],[1,"d-flex"],["for","loginPassword"],["class","ml-auto d-flex",4,"ngIf"],["id","loginPassword","name","Login.Password","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"input-group-append"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","disabled","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],["aria-hidden","true",1,"fa","fa-lg","fa-clone"],["for","loginTotp"],["id","loginTotp","name","Login.Totp","appInputVerbatim","",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-6","form-group","totp","d-flex","align-items-end",3,"ngClass"],["class","d-flex align-items-center",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-3",3,"click",4,"ngIf"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","click"],[1,"ml-auto","d-flex"],["href","#","class","d-block mr-2 fa-icon-above-input","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["href","#","appStopClick","",1,"d-block","fa-icon-above-input",3,"appA11yTitle","appApiAction","click"],["checkPasswordBtn",""],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-check-circle",3,"hidden"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-spinner","fa-spin",3,"hidden","title"],["href","#","appStopClick","",1,"d-block","mr-2","fa-icon-above-input",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-refresh"],["src","images/totp-countdown.png",1,"ml-2",3,"title"],["href","#","appStopClick","","class","badge badge-primary ml-3",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"badge","badge-primary","ml-3",3,"click"],[1,"d-flex","align-items-center"],[1,"totp-countdown","mr-3","ml-2"],[1,"totp-sec"],["r","12.6","cy","16","cx","16",1,"totp-circle","inner",3,"ngStyle"],["r","14","cy","16","cx","16",1,"totp-circle","outer"],[1,"totp-code","mr-2",3,"title"],["type","button",1,"btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-clone"],["class","row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"col-7","form-group"],[3,"for"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","placeholder","ngModelChange"],["aria-hidden","true",1,"fa","fa-lg","fa-share"],[1,"col-5","form-group"],["href","https://help.bitwarden.com/article/uri-match-detection/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-control","overflow-hidden",3,"id","name","ngModel","disabled","ngModelChange","change"],["type","button","class","btn btn-link text-danger ml-2",3,"appA11yTitle","click",4,"ngIf"],["type","button",1,"btn","btn-link","text-danger","ml-2",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-minus-circle","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus-circle","fa-fw"],["for","cardCardholderName"],["id","cardCardholderName","type","text","name","Card.CardCardholderName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardBrand"],["id","cardBrand","name","Card.Brand",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardNumber"],["id","cardNumber","type","text","name","Card.Number","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"col","form-group"],["for","cardExpMonth"],["id","cardExpMonth","name","Card.ExpMonth",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardExpYear"],["id","cardExpYear","type","text","name","Card.ExpYear",1,"form-control",3,"ngModel","placeholder","disabled","ngModelChange"],["for","cardCode"],["id","cardCode","name","Card.Code","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-4","form-group"],["for","idTitle"],["id","idTitle","name","Identity.Title",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idFirstName"],["id","idFirstName","type","text","name","Identity.FirstName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idMiddleName"],["id","idMiddleName","type","text","name","Identity.MiddleName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLastName"],["id","idLastName","type","text","name","Identity.LastName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idUsername"],["id","idUsername","type","text","name","Identity.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCompany"],["id","idCompany","type","text","name","Identity.Company",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idSsn"],["id","idSsn","type","text","name","Identity.SSN","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPassportNumber"],["id","idPassportNumber","type","text","name","Identity.PassportNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLicenseNumber"],["id","idLicenseNumber","type","text","name","Identity.LicenseNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idEmail"],["id","idEmail","type","text","name","Identity.Email","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPhone"],["id","idPhone","type","text","name","Identity.Phone",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress1"],["id","idAddress1","type","text","name","Identity.Address1",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress2"],["id","idAddress2","type","text","name","Identity.Address2",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress3"],["id","idAddress3","type","text","name","Identity.Address3",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCity"],["id","idCity","type","text","name","Identity.City",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idState"],["id","idState","type","text","name","Identity.State",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPostalCode"],["id","idPostalCode","type","text","name","Identity.PostalCode",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCountry"],["id","idCountry","type","text","name","Identity.Country",1,"form-control",3,"ngModel","disabled","ngModelChange"],["cdkDropList","",3,"cdkDropListDropped"],["class","row","cdkDrag","",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"row"],["href","https://help.bitwarden.com/article/custom-fields/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","ngModelChange"],["class","input-group",4,"ngIf"],[1,"flex-fill"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange",4,"ngIf"],["type","button","class","btn btn-link text-muted cursor-move",3,"appA11yTitle",4,"ngIf"],["appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"id","type","name","ngModel","disabled","ngModelChange"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-link","text-muted","cursor-move",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-bars","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-2",3,"click"],[1,"col-5"],["for","addFieldType",1,"sr-only"],["id","addFieldType","name","AddFieldType",1,"form-control",3,"ngModel","ngModelChange"],["for","organizationId"],["id","organizationId","name","OrganizationId",1,"form-control",3,"ngModel","disabled","ngModelChange","change"],["class","form-check",4,"ngFor","ngForOf"],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"ngModel","id","name","disabled","ngModelChange"],[1,"form-check-label",3,"for"],[1,"small","text-muted","mt-4"],[1,"font-weight-semibold"],["class","ml-3",4,"ngIf"],["href","#","appStopClick","",3,"title","click"],[1,"ml-3"],[4,"ngFor","ngForOf"],[1,"password-wrapper","text-monospace","ml-2"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"ml-auto"],["type","button","class","btn btn-link",3,"appA11yTitle","click",4,"ngIf"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",function(){return t.submit()}),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,_e,54,25,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵelementStart(22,"div",9),p.ɵɵtext(23,"\n "),p.ɵɵtemplate(24,Ae,9,7,"button",10),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",11),p.ɵɵtext(27),p.ɵɵpipe(28,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(29,"\n "),p.ɵɵtemplate(30,Be,6,2,"div",12),p.ɵɵtext(31,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(32,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(33,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n")),2&e&&(p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,7,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.cipher),p.ɵɵadvance(4),p.ɵɵproperty("ngIf",!t.viewOnly),p.ɵɵadvance(3),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(28,9,t.viewOnly?"close":"cancel"),"\n "),p.ɵɵadvance(3),p.ɵɵproperty("ngIf",t.cipher&&!t.viewOnly))},directives:[I.NgControlStatusGroup,I.NgForm,E.ApiActionDirective,P.A11yTitleDirective,k.NgIf,I.DefaultValueAccessor,I.RequiredValidator,I.NgControlStatus,I.NgModel,_.CalloutComponent,I.SelectControlValueAccessor,A.AutofocusDirective,k.NgForOf,I.NgSelectOption,I.ɵangular_packages_forms_forms_x,O.InputVerbatimDirective,k.NgClass,T.StopClickDirective,k.NgStyle,M.CdkDropList,M.CdkDrag,B.TrueFalseValueDirective,I.CheckboxControlValueAccessor],pipes:[D.I18nPipe,k.DatePipe],encapsulation:2}),t}(c.AddEditComponent);t.AddEditComponent=De},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.ImportService=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]500?500:this.ciphers.length,n=0;n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]r){if(a===o.TwoFactorProviderType.U2f&&!e)return;n=a,r=s.priority}}),n},e.prototype.makePreloginKey=function(e,t){return i(this,void 0,void 0,function(){var n,r,i,o;return a(this,function(a){switch(a.label){case 0:t=t.trim().toLowerCase(),n=null,r=null,a.label=1;case 1:return a.trys.push([1,3,,4]),[4,this.apiService.postPrelogin(new p.PreloginRequest(t))];case 2:return null!=(i=a.sent())&&(n=i.kdf,r=i.kdfIterations),[3,4];case 3:if(null==(o=a.sent())||404!==o.statusCode)throw o;return[3,4];case 4:return[2,this.cryptoService.makeKey(e,t,n,r)]}})})},e.prototype.authingWithApiKey=function(){return null!=this.clientId&&null!=this.clientSecret},e.prototype.authingWithSso=function(){return null!=this.code&&null!=this.codeVerifier&&null!=this.ssoRedirectUrl},e.prototype.authingWithPassword=function(){return null!=this.email&&null!=this.masterPasswordHash},e.prototype.logInHelper=function(e,t,n,r,p,d,m,h,f,v,y){return i(this,void 0,void 0,function(){var i,g,x,b,S,w,C,I,E,P,k,_,A;return a(this,function(a){switch(a.label){case 0:return[4,this.tokenService.getTwoFactorToken(e)];case 1:return i=a.sent(),[4,this.appIdService.getAppId()];case 2:return g=a.sent(),x=new l.DeviceRequest(g,this.platformUtilsService),b=[],S=[],w=[],b=null!=e&&null!=t?[e,t]:null,S=null!=n&&null!=r&&null!=p?[n,r,p]:null,w=null!=d&&null!=m?[d,m]:null,C=null!=v&&null!=f?new u.TokenRequest(b,S,w,f,v,y,x):null!=i?new u.TokenRequest(b,S,w,o.TwoFactorProviderType.Remember,i,!1,x):new u.TokenRequest(b,S,w,null,null,!1,x),[4,this.apiService.postIdentityToken(C)];case 3:return I=a.sent(),this.clearState(),(E=new s.AuthResult).twoFactor=!I.accessToken,E.twoFactor?(P=I,this.email=e,this.masterPasswordHash=t,this.code=n,this.codeVerifier=r,this.ssoRedirectUrl=p,this.clientId=d,this.clientSecret=m,this.key=this.setCryptoKeys?h:null,this.twoFactorProvidersData=P.twoFactorProviders2,E.twoFactorProviders=P.twoFactorProviders2,[2,E]):(k=I,E.resetMasterPassword=k.resetMasterPassword,null==k.twoFactorToken?[3,5]:[4,this.tokenService.setTwoFactorToken(k.twoFactorToken,e)]);case 4:a.sent(),a.label=5;case 5:return[4,this.tokenService.setTokens(k.accessToken,k.refreshToken)];case 6:return a.sent(),[4,this.userService.setInformation(this.tokenService.getUserId(),this.tokenService.getEmail(),k.kdf,k.kdfIterations)];case 7:return a.sent(),this.setCryptoKeys?null==h?[3,9]:[4,this.cryptoService.setKey(h)]:[3,19];case 8:a.sent(),a.label=9;case 9:return null==t?[3,11]:[4,this.cryptoService.setKeyHash(t)];case 10:a.sent(),a.label=11;case 11:return null!=n&&null==k.key?[3,19]:[4,this.cryptoService.setEncKey(k.key)];case 12:if(a.sent(),null!=k.privateKey)return[3,17];a.label=13;case 13:return a.trys.push([13,16,,17]),[4,this.cryptoService.makeKeyPair()];case 14:return _=a.sent(),[4,this.apiService.postAccountKeys(new c.KeysRequest(_[0],_[1].encryptedString))];case 15:return a.sent(),k.privateKey=_[1].encryptedString,[3,17];case 16:return A=a.sent(),this.logService.error(A),[3,17];case 17:return[4,this.cryptoService.setEncPrivateKey(k.privateKey)];case 18:a.sent(),a.label=19;case 19:return null!=this.vaultTimeoutService&&(this.vaultTimeoutService.biometricLocked=!1),this.messagingService.send("loggedIn"),[2,E]}})})},e.prototype.clearState=function(){this.key=null,this.email=null,this.masterPasswordHash=null,this.code=null,this.codeVerifier=null,this.ssoRedirectUrl=null,this.clientId=null,this.clientSecret=null,this.twoFactorProvidersData=null,this.selectedTwoFactorProviderType=null},e}();t.AuthService=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n){this.id=e,this.readOnly=t,this.hidePasswords=n}}();t.SelectionReadOnlyRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Android=0]="Android",e[e.iOS=1]="iOS",e[e.ChromeExtension=2]="ChromeExtension",e[e.FirefoxExtension=3]="FirefoxExtension",e[e.OperaExtension=4]="OperaExtension",e[e.EdgeExtension=5]="EdgeExtension",e[e.WindowsDesktop=6]="WindowsDesktop",e[e.MacOsDesktop=7]="MacOsDesktop",e[e.LinuxDesktop=8]="LinuxDesktop",e[e.ChromeBrowser=9]="ChromeBrowser",e[e.FirefoxBrowser=10]="FirefoxBrowser",e[e.OperaBrowser=11]="OperaBrowser",e[e.EdgeBrowser=12]="EdgeBrowser",e[e.IEBrowser=13]="IEBrowser",e[e.UnknownBrowser=14]="UnknownBrowser",e[e.AndroidAmazon=15]="AndroidAmazon",e[e.UWP=16]="UWP",e[e.SafariBrowser=17]="SafariBrowser",e[e.VivaldiBrowser=18]="VivaldiBrowser",e[e.VivaldiExtension=19]="VivaldiExtension",e[e.SafariExtension=20]="SafariExtension"}(t.DeviceType||(t.DeviceType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SettingsService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Free=0]="Free",e[e.FamiliesAnnually2019=1]="FamiliesAnnually2019",e[e.TeamsMonthly2019=2]="TeamsMonthly2019",e[e.TeamsAnnually2019=3]="TeamsAnnually2019",e[e.EnterpriseMonthly2019=4]="EnterpriseMonthly2019",e[e.EnterpriseAnnually2019=5]="EnterpriseAnnually2019",e[e.Custom=6]="Custom",e[e.FamiliesAnnually=7]="FamiliesAnnually",e[e.TeamsMonthly=8]="TeamsMonthly",e[e.TeamsAnnually=9]="TeamsAnnually",e[e.EnterpriseMonthly=10]="EnterpriseMonthly",e[e.EnterpriseAnnually=11]="EnterpriseAnnually"}(t.PlanType||(t.PlanType={}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(e.uris=[],this.uris.forEach(function(t){e.uris.push(t.toLoginUriData())})),e},t}(n(82).default);t.Login=p},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(486),o=n(257),s=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t?r:(r.match=t.match,r.buildDomainModel(r,t,{uri:null},n,[]),r)}return i(t,e),t.prototype.decrypt=function(e,t){return this.decryptObj(new o.LoginUriView(this),{uri:null},e,t)},t.prototype.toLoginUriData=function(){var e=new a.LoginUriData;return this.buildDataModel(this,e,{uri:null},["match"]),e},t}(n(82).default);t.LoginUri=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Domain=0]="Domain",e[e.Host=1]="Host",e[e.StartsWith=2]="StartsWith",e[e.Exact=3]="Exact",e[e.RegularExpression=4]="RegularExpression",e[e.Never=5]="Never"}(t.UriMatchType||(t.UriMatchType={}))},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(487),o=n(82),s=n(94),l=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t?r:(r.type=t.type,r)}return i(t,e),t.prototype.decrypt=function(e,t){return Promise.resolve(new s.SecureNoteView(this))},t.prototype.toSecureNoteData=function(){var e=new a.SecureNoteData;return e.type=this.type,e},t}(o.default);t.SecureNote=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=n(14),a=n(0),o=function(){function e(e,t){this.elementRef=e,this.renderer=t,this.trueValue=!0,this.falseValue=!1,this.propagateChange=function(e){}}return e.prototype.onHostChange=function(e){this.propagateChange(e.target.checked?this.trueValue:this.falseValue)},e.prototype.writeValue=function(e){e===this.trueValue?this.renderer.setProperty(this.elementRef.nativeElement,"checked",!0):this.renderer.setProperty(this.elementRef.nativeElement,"checked",!1)},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(e){},e.prototype.setDisabledState=function(e){},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(a.ElementRef),a.ɵɵdirectiveInject(a.Renderer2))},e.ɵdir=a.ɵɵdefineDirective({type:e,selectors:[["input","type","checkbox","appTrueFalseValue",""]],hostBindings:function(e,t){1&e&&a.ɵɵlistener("change",function(e){return t.onHostChange(e)})},inputs:{trueValue:"trueValue",falseValue:"falseValue"},features:[a.ɵɵProvidersFeature([{provide:i.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return e}),multi:!0}])]}),e}();t.TrueFalseValueDirective=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(0),o=(n(41),n(49),n(42),n(7),n(874)),s=n(0),l=n(41),c=n(49),p=n(42),u=n(7),d=n(18),m=n(14),h=n(66),f=n(4),v=n(37),y=n(10),g=function(e){return{active:e}};function x(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"a",8),s.ɵɵlistener("click",function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().selectFavorites()}),s.ɵɵtext(3,"\n "),s.ɵɵelement(4,"i",17),s.ɵɵtext(5),s.ɵɵpipe(6,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(7,"\n "),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(4,g,r.selectedFavorites)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(6,2,"favorites"),"\n ")}}function b(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"a",8),s.ɵɵlistener("click",function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().selectTrash()}),s.ɵɵtext(3,"\n "),s.ɵɵelement(4,"i",18),s.ɵɵtext(5),s.ɵɵpipe(6,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(7,"\n "),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(4,g,r.selectedTrash)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(6,2,"trash"),"\n ")}}function S(e,t){1&e&&(s.ɵɵelementStart(0,"p",19),s.ɵɵtext(1,"\n "),s.ɵɵelement(2,"i",20),s.ɵɵpipe(3,"i18n"),s.ɵɵtext(4,"\n "),s.ɵɵelementStart(5,"span",21),s.ɵɵtext(6),s.ɵɵpipe(7,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(8,"\n "),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(3,2,"loading")),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(7,4,"loading")))}var w=function(e,t){return{"fa-caret-right":e,"fa-caret-down":t}};function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",32),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).collapse(e.node)}),s.ɵɵpipe(1,"i18n"),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext().$implicit,i=s.ɵɵnextContext(4);s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(1,2,"toggleCollapse")),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(4,w,i.isCollapsed(r.node),!i.isCollapsed(r.node)))}}function I(e,t){1&e&&s.ɵɵelement(0,"i",33)}function E(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"a",34),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).editFolder(e.node)}),s.ɵɵpipe(1,"i18n"),s.ɵɵtext(2,"\n "),s.ɵɵelement(3,"i",35),s.ɵɵtext(4,"\n "),s.ɵɵelementEnd()}2&e&&s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(1,1,"editFolder"))}function P(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}var k=function(e){return{$implicit:e}};function _(e,t){if(1&e&&(s.ɵɵelementStart(0,"ul",36),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,P,2,0,"ng-container",26),s.ɵɵtext(3,"\n "),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵnextContext(2);var r=s.ɵɵreference(15);s.ɵɵadvance(2),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(2,k,n.children))}}function A(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"div",22),s.ɵɵtext(3,"\n "),s.ɵɵtemplate(4,C,2,7,"i",28),s.ɵɵtext(5,"\n "),s.ɵɵelementStart(6,"a",8),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(4).selectFolder(e.node)}),s.ɵɵtext(7,"\n "),s.ɵɵtemplate(8,I,1,0,"i",29),s.ɵɵtext(9),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵtemplate(11,E,5,3,"a",30),s.ɵɵtext(12,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(13,"\n "),s.ɵɵtemplate(14,_,4,4,"ul",31),s.ɵɵtext(15,"\n "),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(4);s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(6,g,i.selectedFolder&&r.node.id===i.selectedFolderId)),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",r.children.length),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",0===r.children.length),s.ɵɵadvance(1),s.ɵɵtextInterpolate1("",r.node.name,"\n "),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.node.id),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",r.children.length&&!i.isCollapsed(r.node))}}function O(e,t){if(1&e&&(s.ɵɵtext(0,"\n "),s.ɵɵtemplate(1,A,16,8,"li",27),s.ɵɵtext(2,"\n ")),2&e){var n=t.$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",n)}}function T(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function M(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h3",22),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementStart(5,"a",23),s.ɵɵlistener("click",function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).addFolder()}),s.ɵɵpipe(6,"i18n"),s.ɵɵtext(7,"\n "),s.ɵɵelement(8,"i",24),s.ɵɵtext(9,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"ul",6),s.ɵɵtext(13,"\n "),s.ɵɵtemplate(14,O,3,1,"ng-template",null,25,s.ɵɵtemplateRefExtractor),s.ɵɵtext(16,"\n "),s.ɵɵtemplate(17,T,2,0,"ng-container",26),s.ɵɵtext(18,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(19,"\n "),s.ɵɵelementContainerEnd()}if(2&e){var r=s.ɵɵreference(15),i=s.ɵɵnextContext(2);s.ɵɵadvance(3),s.ɵɵtextInterpolate1("\n ",s.ɵɵpipeBind1(4,4,"folders"),"\n "),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(6,6,"addFolder")),s.ɵɵadvance(12),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(8,k,i.nestedFolders))}}function B(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",32),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).collapse(e.node)}),s.ɵɵpipe(1,"i18n"),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext().$implicit,i=s.ɵɵnextContext(4);s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(1,2,"toggleCollapse")),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(4,w,i.isCollapsed(r.node),!i.isCollapsed(r.node)))}}function D(e,t){1&e&&s.ɵɵelement(0,"i",39)}function V(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function j(e,t){if(1&e&&(s.ɵɵelementStart(0,"ul",36),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,V,2,0,"ng-container",26),s.ɵɵtext(3,"\n "),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵnextContext(2);var r=s.ɵɵreference(9);s.ɵɵadvance(2),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(2,k,n.children))}}function R(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,B,2,7,"i",28),s.ɵɵtext(3,"\n "),s.ɵɵelementStart(4,"a",8),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(4).selectCollection(e.node)}),s.ɵɵtext(5,"\n "),s.ɵɵtemplate(6,D,1,0,"i",38),s.ɵɵtext(7),s.ɵɵelementEnd(),s.ɵɵtext(8,"\n "),s.ɵɵtemplate(9,j,4,4,"ul",31),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(4);s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(5,g,r.node.id===i.selectedCollectionId)),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.children.length),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",0===r.children.length),s.ɵɵadvance(1),s.ɵɵtextInterpolate1("",r.node.name,"\n "),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.children.length&&!i.isCollapsed(r.node))}}function F(e,t){if(1&e&&(s.ɵɵtext(0,"\n "),s.ɵɵtemplate(1,R,11,7,"li",27),s.ɵɵtext(2,"\n ")),2&e){var n=t.$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",n)}}function U(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function N(e,t){if(1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h3"),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(5,"\n "),s.ɵɵelementStart(6,"ul",6),s.ɵɵtext(7,"\n "),s.ɵɵtemplate(8,F,3,1,"ng-template",null,37,s.ɵɵtemplateRefExtractor),s.ɵɵtext(10,"\n "),s.ɵɵtemplate(11,U,2,0,"ng-container",26),s.ɵɵtext(12,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(13,"\n "),s.ɵɵelementContainerEnd()),2&e){var n=s.ɵɵreference(9),r=s.ɵɵnextContext(2);s.ɵɵadvance(3),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(4,3,"collections")),s.ɵɵadvance(8),s.ɵɵproperty("ngTemplateOutlet",n)("ngTemplateOutletContext",s.ɵɵpureFunction1(5,k,r.nestedCollections))}}function z(e,t){if(1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,M,20,10,"ng-container",16),s.ɵɵtext(3,"\n "),s.ɵɵtemplate(4,N,14,7,"ng-container",16),s.ɵɵtext(5,"\n "),s.ɵɵelementContainerEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(2),s.ɵɵproperty("ngIf",n.showFolders),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",n.showCollections&&n.collections&&n.collections.length)}}var L=function(e){function t(t,n,r,i){var o=e.call(this,t,n,r,i)||this;return o.onSearchTextChanged=new a.EventEmitter,o.searchText="",o.searchPlaceholder=null,o}return i(t,e),t.prototype.searchTextChanged=function(){this.onSearchTextChanged.emit(this.searchText)},t.ɵfac=function(e){return new(e||t)(s.ɵɵdirectiveInject(l.CollectionService),s.ɵɵdirectiveInject(c.FolderService),s.ɵɵdirectiveInject(p.StorageService),s.ɵɵdirectiveInject(u.UserService))},t.ɵcmp=s.ɵɵdefineComponent({type:t,selectors:[["app-vault-groupings"]],outputs:{onSearchTextChanged:"onSearchTextChanged"},features:[s.ɵɵInheritDefinitionFeature],decls:82,vars:47,consts:[[1,"card","vault-filters"],[1,"card-header","d-flex"],["href","https://help.bitwarden.com/article/searching-vault/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"card-body"],["type","search","id","search","autocomplete","off","appAutofocus","",1,"form-control",3,"placeholder","ngModel","ngModelChange","input"],[1,"fa-ul","card-ul"],[3,"ngClass"],["href","#","appStopClick","",3,"click"],[1,"fa-li","fa","fa-fw","fa-th"],[3,"ngClass",4,"ngIf"],[1,"fa-li","fa","fa-fw","fa-globe"],[1,"fa-li","fa","fa-fw","fa-credit-card"],[1,"fa-li","fa","fa-fw","fa-id-card-o"],[1,"fa-li","fa","fa-fw","fa-sticky-note-o"],["class","text-muted",4,"ngIf"],[4,"ngIf"],[1,"fa-li","fa","fa-fw","fa-star"],[1,"fa-li","fa","fa-fw","fa-trash-o"],[1,"text-muted"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"sr-only"],[1,"d-flex"],["href","#","appStopClick","",1,"text-muted","ml-auto",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["recursiveFolders",""],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngClass",4,"ngFor","ngForOf"],["class","fa-li fa",3,"title","ngClass","click",4,"ngIf"],["class","fa-li fa fa-folder-o","aria-hidden","true",4,"ngIf"],["href","#","class","text-muted ml-auto show-active","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["class","fa-ul card-ul carets",4,"ngIf"],[1,"fa-li","fa",3,"title","ngClass","click"],["aria-hidden","true",1,"fa-li","fa","fa-folder-o"],["href","#","appStopClick","",1,"text-muted","ml-auto","show-active",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-pencil","fa-fw"],[1,"fa-ul","card-ul","carets"],["recursiveCollections",""],["class","fa-li fa fa-cube","aria-hidden","true",4,"ngIf"],["aria-hidden","true",1,"fa-li","fa","fa-cube"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"div",1),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementStart(5,"a",2),s.ɵɵpipe(6,"i18n"),s.ɵɵtext(7,"\n "),s.ɵɵelement(8,"i",3),s.ɵɵtext(9,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"div",4),s.ɵɵtext(13,"\n "),s.ɵɵelementStart(14,"input",5),s.ɵɵlistener("ngModelChange",function(e){return t.searchText=e})("input",function(){return t.searchTextChanged()}),s.ɵɵpipe(15,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(16,"\n "),s.ɵɵelementStart(17,"ul",6),s.ɵɵtext(18,"\n "),s.ɵɵelementStart(19,"li",7),s.ɵɵtext(20,"\n "),s.ɵɵelementStart(21,"a",8),s.ɵɵlistener("click",function(){return t.selectAll()}),s.ɵɵtext(22,"\n "),s.ɵɵelement(23,"i",9),s.ɵɵtext(24),s.ɵɵpipe(25,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(26,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(27,"\n "),s.ɵɵtemplate(28,x,8,6,"li",10),s.ɵɵtext(29,"\n "),s.ɵɵtemplate(30,b,8,6,"li",10),s.ɵɵtext(31,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(32,"\n "),s.ɵɵelementStart(33,"h3"),s.ɵɵtext(34),s.ɵɵpipe(35,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(36,"\n "),s.ɵɵelementStart(37,"ul",6),s.ɵɵtext(38,"\n "),s.ɵɵelementStart(39,"li",7),s.ɵɵtext(40,"\n "),s.ɵɵelementStart(41,"a",8),s.ɵɵlistener("click",function(){return t.selectType(t.cipherType.Login)}),s.ɵɵtext(42,"\n "),s.ɵɵelement(43,"i",11),s.ɵɵtext(44),s.ɵɵpipe(45,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(46,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(47,"\n "),s.ɵɵelementStart(48,"li",7),s.ɵɵtext(49,"\n "),s.ɵɵelementStart(50,"a",8),s.ɵɵlistener("click",function(){return t.selectType(t.cipherType.Card)}),s.ɵɵtext(51,"\n "),s.ɵɵelement(52,"i",12),s.ɵɵtext(53),s.ɵɵpipe(54,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(55,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(56,"\n "),s.ɵɵelementStart(57,"li",7),s.ɵɵtext(58,"\n "),s.ɵɵelementStart(59,"a",8),s.ɵɵlistener("click",function(){return t.selectType(t.cipherType.Identity)}),s.ɵɵtext(60,"\n "),s.ɵɵelement(61,"i",13),s.ɵɵtext(62),s.ɵɵpipe(63,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(64,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(65,"\n "),s.ɵɵelementStart(66,"li",7),s.ɵɵtext(67,"\n "),s.ɵɵelementStart(68,"a",8),s.ɵɵlistener("click",function(){return t.selectType(t.cipherType.SecureNote)}),s.ɵɵtext(69,"\n "),s.ɵɵelement(70,"i",14),s.ɵɵtext(71),s.ɵɵpipe(72,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(73,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(74,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(75,"\n "),s.ɵɵtemplate(76,S,9,6,"p",15),s.ɵɵtext(77,"\n "),s.ɵɵtemplate(78,z,6,2,"ng-container",16),s.ɵɵtext(79,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(80,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(81,"\n")),2&e&&(s.ɵɵadvance(3),s.ɵɵtextInterpolate1("\n ",s.ɵɵpipeBind1(4,19,"filters"),"\n "),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(6,21,"learnMore")),s.ɵɵadvance(9),s.ɵɵpropertyInterpolate("placeholder",t.searchPlaceholder||s.ɵɵpipeBind1(15,23,"searchVault")),s.ɵɵproperty("ngModel",t.searchText),s.ɵɵadvance(5),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(37,g,t.selectedAll)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(25,25,"allItems"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.showFavorites),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showTrash),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(35,27,"types")),s.ɵɵadvance(5),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(39,g,t.selectedType===t.cipherType.Login)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(45,29,"typeLogin"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(41,g,t.selectedType===t.cipherType.Card)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(54,31,"typeCard"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(43,g,t.selectedType===t.cipherType.Identity)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(63,33,"typeIdentity"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(45,g,t.selectedType===t.cipherType.SecureNote)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(72,35,"typeSecureNote"),"\n "),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!t.loaded),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.loaded))},directives:[d.A11yTitleDirective,m.DefaultValueAccessor,h.AutofocusDirective,m.NgControlStatus,m.NgModel,f.NgClass,v.StopClickDirective,f.NgIf,f.NgTemplateOutlet,f.NgForOf],pipes:[y.I18nPipe],encapsulation:2}),t}(o.GroupingsComponent);t.GroupingsComponent=L},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(159),i=n(250),a=function(){function e(e){null!=e&&(this.id=e.id,this.name=e.name,this.status=e.status,this.type=e.type,this.enabled=e.enabled,this.usePolicies=e.usePolicies,this.useGroups=e.useGroups,this.useDirectory=e.useDirectory,this.useEvents=e.useEvents,this.useTotp=e.useTotp,this.use2fa=e.use2fa,this.useApi=e.useApi,this.useBusinessPortal=e.useBusinessPortal,this.useSso=e.useSso,this.selfHost=e.selfHost,this.usersGetPremium=e.usersGetPremium,this.seats=e.seats,this.maxCollections=e.maxCollections,this.maxStorageGb=e.maxStorageGb,this.ssoBound=e.ssoBound,this.identifier=e.identifier,this.permissions=e.permissions)}return Object.defineProperty(e.prototype,"canAccess",{get:function(){return this.type===i.OrganizationUserType.Owner||this.enabled&&this.status===r.OrganizationUserStatusType.Confirmed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isManager",{get:function(){return this.type===i.OrganizationUserType.Manager||this.type===i.OrganizationUserType.Owner||this.type===i.OrganizationUserType.Admin},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAdmin",{get:function(){return this.type===i.OrganizationUserType.Owner||this.type===i.OrganizationUserType.Admin},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isOwner",{get:function(){return this.type===i.OrganizationUserType.Owner},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessBusinessPortal",{get:function(){return this.isAdmin||this.permissions.accessBusinessPortal},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessEventLogs",{get:function(){return this.isAdmin||this.permissions.accessEventLogs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessImportExport",{get:function(){return this.isAdmin||this.permissions.accessImportExport},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessReports",{get:function(){return this.isAdmin||this.permissions.accessReports},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageAllCollections",{get:function(){return this.isAdmin||this.permissions.manageAllCollections},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageAssignedCollections",{get:function(){return this.isManager||this.permissions.manageAssignedCollections},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageGroups",{get:function(){return this.isAdmin||this.permissions.manageGroups},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageSso",{get:function(){return this.isAdmin||this.permissions.manageSso},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManagePolicies",{get:function(){return this.isAdmin||this.permissions.managePolicies},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageUsers",{get:function(){return this.isAdmin||this.permissions.manageUsers},enumerable:!0,configurable:!0}),e}();t.Organization=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.id=null,this.size=null,this.sizeName=null,this.fileName=null,e&&(this.id=e.id,this.size=e.size,this.sizeName=e.sizeName)}return Object.defineProperty(e.prototype,"fileSize",{get:function(){try{if(null!=this.size)return parseInt(this.size,null)}catch(e){}return 0},enumerable:!0,configurable:!0}),e}();t.SendFileView=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.text=null,e&&(this.hidden=e.hidden)}return Object.defineProperty(e.prototype,"maskedText",{get:function(){return null!=this.text?"••••••••":null},enumerable:!0,configurable:!0}),e}();t.SendTextView=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1&&this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),n,{timeout:5e3*n.length}),n},e.ɵfac=function(t){return new(t||e)(r.ɵɵinject(i.I18nService),r.ɵɵinject(a.PlatformUtilsService))},e.ɵprov=r.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ValidationService=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.AesCbc256_B64=0]="AesCbc256_B64",e[e.AesCbc128_HmacSha256_B64=1]="AesCbc128_HmacSha256_B64",e[e.AesCbc256_HmacSha256_B64=2]="AesCbc256_HmacSha256_B64",e[e.Rsa2048_OaepSha256_B64=3]="Rsa2048_OaepSha256_B64",e[e.Rsa2048_OaepSha1_B64=4]="Rsa2048_OaepSha1_B64",e[e.Rsa2048_OaepSha256_HmacSha256_B64=5]="Rsa2048_OaepSha256_HmacSha256_B64",e[e.Rsa2048_OaepSha1_HmacSha256_B64=6]="Rsa2048_OaepSha1_HmacSha256_B64"}(t.EncryptionType||(t.EncryptionType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.publicKey=e,this.encryptedPrivateKey=t}}();t.KeysRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this)||this;return null==t?n:(n.id=t.id,n.organizationId=t.organizationId,n.type=t.type,n.data=t.data,n.enabled=t.enabled,n)}return i(t,e),t}(n(82).default);t.Policy=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.id=e.id,this.organizationId=e.organizationId,this.type=e.type,this.data=e.data,this.enabled=e.enabled}}();t.PolicyData=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&(e=e.concat(this.email.substr(0,t).trim().toLowerCase().split(/[^A-Za-z0-9]/))),e},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(o.I18nService),a.ɵɵdirectiveInject(s.CryptoService),a.ɵɵdirectiveInject(l.MessagingService),a.ɵɵdirectiveInject(c.UserService),a.ɵɵdirectiveInject(p.PasswordGenerationService),a.ɵɵdirectiveInject(u.PlatformUtilsService),a.ɵɵdirectiveInject(d.PolicyService))},e.ɵdir=a.ɵɵdefineDirective({type:e}),e}();t.ChangePasswordComponent=m},,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&t.forEach(function(t){var n=e.data.filter(function(e){return e.id===t});null!=n&&n.length>0&&(n[0].checked=!0)}),[3,5];case 3:return"collection"!==this.entity?[3,5]:[4,this.apiService.getCollectionUsers(this.organizationId,this.entityId)];case 4:null!=(t=r.sent())&&e.data.length>0&&t.forEach(function(t){var n=e.data.filter(function(e){return!e.accessAll&&e.id===t.id});null!=n&&n.length>0&&(n[0].checked=!0,n[0].readOnly=t.readOnly,n[0].hidePasswords=t.hidePasswords)}),r.label=5;case 5:return this.allUsers.forEach(function(e){"collection"===n.entity&&e.accessAll&&(e.checked=!0),e.checked&&n.selectedCount++}),[2]}})})},e.prototype.check=function(e){"collection"===this.entity&&e.accessAll||(e.checked=!e.checked,this.selectedChanged(e))},e.prototype.selectedChanged=function(e){e.checked?this.selectedCount++:("collection"===this.entity&&(e.readOnly=!1,e.hidePasswords=!1),this.selectedCount--)},e.prototype.filterSelected=function(e){this.showSelected=e},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),"group"===this.entity?(e=this.users.filter(function(e){return e.checked}).map(function(e){return e.id}),this.formPromise=this.apiService.putGroupUsers(this.organizationId,this.entityId,e)):(e=this.users.filter(function(e){return e.checked&&!e.accessAll}).map(function(e){return new l.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)}),this.formPromise=this.apiService.putCollectionUsers(this.organizationId,this.entityId,e)),[4,this.formPromise];case 1:return t.sent(),this.analytics.eventTrack.next({action:"group"===this.entity?"Edited Group Users":"Edited Collection Users"}),this.toasterService.popAsync("success",null,this.i18nService.t("updatedUsers")),this.onEditedUsers.emit(),[3,3];case 2:return t.sent(),[3,3];case 3:return[2]}})})},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.Angulartics2),p.ɵɵdirectiveInject(h.ToasterService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-entity-users"]],inputs:{entity:"entity",entityId:"entityId",entityName:"entityName",organizationId:"organizationId"},outputs:{onEditedUsers:"onEditedUsers"},decls:49,vars:29,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAccessTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAccessTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"d-flex"],[1,"mr-3"],["for","search",1,"sr-only"],["type","search","id","search","name","SearchText",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["role","group",1,"btn-group","btn-group-sm"],["type","button",1,"btn","btn-outline-secondary",3,"ngClass","click"],["class","badge badge-pill badge-info",4,"ngIf"],[4,"ngIf"],[1,"badge","badge-pill","badge-info"],[1,"table","table-hover","table-list","mb-0"],["width","100","class","text-center",4,"ngIf"],[4,"ngFor","ngForOf"],["width","100",1,"text-center"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","disabled","ngModelChange","change"],["width","30",3,"click"],["size","25",3,"data","email","circle","fontSize"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],["class","text-center",4,"ngIf"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-th",3,"title"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",function(){return t.submit()}),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵpipe(11,"i18n"),p.ɵɵelementStart(12,"small"),p.ɵɵtext(13),p.ɵɵelementEnd(),p.ɵɵtext(14,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(15,"\n "),p.ɵɵelementStart(16,"button",6),p.ɵɵpipe(17,"i18n"),p.ɵɵtext(18,"\n "),p.ɵɵelementStart(19,"span",7),p.ɵɵtext(20,"×"),p.ɵɵelementEnd(),p.ɵɵtext(21,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(22,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(23,"\n "),p.ɵɵtemplate(24,C,9,6,"div",8),p.ɵɵtext(25,"\n "),p.ɵɵtemplate(26,K,32,22,"div",8),p.ɵɵpipe(27,"search"),p.ɵɵtext(28,"\n "),p.ɵɵelementStart(29,"div",9),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"button",10),p.ɵɵtext(32,"\n "),p.ɵɵelement(33,"i",11),p.ɵɵpipe(34,"i18n"),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"span"),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(40,"\n "),p.ɵɵelementStart(41,"button",12),p.ɵɵtext(42),p.ɵɵpipe(43,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(11,10,"userAccess"),"\n "),p.ɵɵadvance(3),p.ɵɵtextInterpolate(t.entityName),p.ɵɵadvance(3),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(17,12,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading||!t.users),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading&&t.users&&p.ɵɵpipeBindV(27,14,p.ɵɵpureFunction2(26,q,t.users,t.searchText))),p.ɵɵadvance(5),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(34,20,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,22,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(43,24,"close"))}},directives:[f.NgControlStatusGroup,f.NgForm,v.ApiActionDirective,y.A11yTitleDirective,g.NgIf,f.DefaultValueAccessor,f.NgControlStatus,f.NgModel,g.NgClass,g.NgForOf,f.CheckboxControlValueAccessor,x.StopPropDirective,b.AvatarComponent],pipes:[S.I18nPipe,w.SearchPipe],encapsulation:2}),e}();t.EntityUsersComponent=W},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?this.events=this.events.concat(a):this.events=a,this.loading=!1,this.morePromise=null,this.refreshPromise=null,[2]}})})},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(o.ApiService),a.ɵɵdirectiveInject(s.I18nService),a.ɵɵdirectiveInject(l.EventService),a.ɵɵdirectiveInject(c.ToasterService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["app-entity-events"]],inputs:{name:"name",entity:"entity",entityId:"entityId",organizationId:"organizationId",showUser:"showUser"},decls:36,vars:12,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","eventLogsTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],[1,"modal-content"],[1,"modal-header"],["id","eventLogsTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"d-flex"],[1,"form-inline"],["for","start",1,"sr-only"],["type","datetime-local","id","start","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],[1,"mx-2"],["for","end",1,"sr-only"],["type","datetime-local","id","end","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"appApiAction","disabled","click"],["refreshBtn",""],["aria-hidden","true",1,"fa","fa-refresh","fa-fw",3,"ngClass"],[4,"ngIf"],["class","table table-hover mb-0",4,"ngIf"],["type","button","class","btn btn-block btn-link btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],[1,"table","table-hover","mb-0"],["width","210",1,"border-top-0"],["width","40",1,"border-top-0"],["class","border-top-0","width","150",4,"ngIf"],[1,"border-top-0"],[4,"ngFor","ngForOf"],["width","150",1,"border-top-0"],["aria-hidden","true",3,"title"],[3,"innerHTML"],[3,"appA11yTitle"],["type","button",1,"btn","btn-block","btn-link","btn-submit",3,"appApiAction","disabled","click"],["moreBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",1),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"div",2),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"div",3),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"h2",4),a.ɵɵtext(9),a.ɵɵpipe(10,"i18n"),a.ɵɵtemplate(11,f,2,1,"small",5),a.ɵɵtext(12,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementStart(14,"button",6),a.ɵɵpipe(15,"i18n"),a.ɵɵtext(16,"\n "),a.ɵɵelementStart(17,"span",7),a.ɵɵtext(18,"×"),a.ɵɵelementEnd(),a.ɵɵtext(19,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(20,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(21,"\n "),a.ɵɵtemplate(22,v,9,6,"div",8),a.ɵɵtext(23,"\n "),a.ɵɵtemplate(24,I,40,25,"div",8),a.ɵɵtext(25,"\n "),a.ɵɵelementStart(26,"div",9),a.ɵɵtext(27,"\n "),a.ɵɵelementStart(28,"button",10),a.ɵɵtext(29),a.ɵɵpipe(30,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(31,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(32,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(33,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(34,"\n"),a.ɵɵelementEnd(),a.ɵɵtext(35,"\n")),2&e&&(a.ɵɵadvance(9),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(10,6,"eventLogs"),"\n "),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.name),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(15,8,"close")),a.ɵɵadvance(8),a.ɵɵproperty("ngIf",!t.loaded),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.loaded),a.ɵɵadvance(5),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(30,10,"close")))},directives:[p.NgIf,u.A11yTitleDirective,d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,m.ApiActionDirective,p.NgClass,p.NgForOf],pipes:[h.I18nPipe,p.DatePipe],encapsulation:2}),e}();t.EntityEventsComponent=E},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){void 0===t&&(t=null);var n=e.call(this,t)||this;return null==t?n:(n.accessBusinessPortal=n.getResponseProperty("AccessBusinessPortal"),n.accessEventLogs=n.getResponseProperty("AccessEventLogs"),n.accessImportExport=n.getResponseProperty("AccessImportExport"),n.accessReports=n.getResponseProperty("AccessReports"),n.manageAllCollections=n.getResponseProperty("ManageAllCollections"),n.manageAssignedCollections=n.getResponseProperty("ManageAssignedCollections"),n.manageCiphers=n.getResponseProperty("ManageCiphers"),n.manageGroups=n.getResponseProperty("ManageGroups"),n.manageSso=n.getResponseProperty("ManageSso"),n.managePolicies=n.getResponseProperty("ManagePolicies"),n.manageUsers=n.getResponseProperty("ManageUsers"),n)}return i(t,e),t}(n(24).BaseResponse);t.PermissionsApi=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0)return void(this.creditAmount=parseFloat((Math.round(100*e)/100).toString()).toFixed(2).toString())}}catch(t){}this.creditAmount=""},Object.defineProperty(e.prototype,"creditAmountNumber",{get:function(){if(null!=this.creditAmount&&""!==this.creditAmount)try{return parseFloat(this.creditAmount)}catch(e){}return null},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.UserService),c.ɵɵdirectiveInject(u.ApiService),c.ɵɵdirectiveInject(d.Angulartics2),c.ɵɵdirectiveInject(m.ToasterService),c.ɵɵdirectiveInject(h.PlatformUtilsService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["app-add-credit"]],viewQuery:function(e,t){var n;(1&e&&c.ɵɵstaticViewQuery(b,!0,a.ElementRef),2&e)&&(c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.ppButtonFormRef=n.first))},inputs:{creditAmount:"creditAmount",showOptions:"showOptions",method:"method",organizationId:"organizationId"},outputs:{onAdded:"onAdded",onCanceled:"onCanceled"},decls:92,vars:32,consts:[["ngNativeValidate","",1,"card",3,"appApiAction","ngSubmit"],["form",""],[1,"card-body"],["type","button",1,"close",3,"appA11yTitle","click"],["aria-hidden","true"],[1,"card-body-header"],["class","mb-4 text-lg",4,"ngIf"],[1,"form-group"],[1,"row"],[1,"col-4"],["for","creditAmount"],[1,"input-group"],[1,"input-group-prepend"],[1,"input-group-text"],["id","creditAmount","type","text","name","CreditAmount","required","",1,"form-control",3,"ngModel","ngModelChange","blur"],[1,"form-text","text-muted"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["method","post","target","_top",3,"action"],["ppButtonForm",""],["type","hidden","name","cmd","value","_xclick"],["type","hidden","name","business",3,"value"],["type","hidden","name","button_subtype","value","services"],["type","hidden","name","no_note","value","1"],["type","hidden","name","no_shipping","value","1"],["type","hidden","name","rm","value","1"],["type","hidden","name","return",3,"value"],["type","hidden","name","cancel_return",3,"value"],["type","hidden","name","currency_code","value","USD"],["type","hidden","name","image_url","value","https://bitwarden.com/images/paypal-banner.png"],["type","hidden","name","bn","value","PP-BuyNowBF:btn_buynow_LG.gif:NonHosted"],["type","hidden","name","amount",3,"value"],["type","hidden","name","custom",3,"value"],["type","hidden","name","item_name","value","Bitwarden Account Credit"],["type","hidden","name","item_number",3,"value"],[1,"mb-4","text-lg"],[1,"form-check","form-check-inline"],["type","radio","name","Method","id","credit-method-paypal",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","credit-method-paypal",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-paypal"],["type","radio","name","Method","id","credit-method-bitcoin",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","credit-method-bitcoin",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-bitcoin"]],template:function(e,t){if(1&e&&(c.ɵɵelementStart(0,"form",0,1),c.ɵɵlistener("ngSubmit",function(){return t.submit()}),c.ɵɵtext(2,"\n "),c.ɵɵelementStart(3,"div",2),c.ɵɵtext(4,"\n "),c.ɵɵelementStart(5,"button",3),c.ɵɵlistener("click",function(){return t.cancel()}),c.ɵɵpipe(6,"i18n"),c.ɵɵelementStart(7,"span",4),c.ɵɵtext(8,"×"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtext(9,"\n "),c.ɵɵelementStart(10,"h3",5),c.ɵɵtext(11),c.ɵɵpipe(12,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(13,"\n "),c.ɵɵtemplate(14,S,22,4,"div",6),c.ɵɵtext(15,"\n "),c.ɵɵelementStart(16,"div",7),c.ɵɵtext(17,"\n "),c.ɵɵelementStart(18,"div",8),c.ɵɵtext(19,"\n "),c.ɵɵelementStart(20,"div",9),c.ɵɵtext(21,"\n "),c.ɵɵelementStart(22,"label",10),c.ɵɵtext(23),c.ɵɵpipe(24,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(25,"\n "),c.ɵɵelementStart(26,"div",11),c.ɵɵtext(27,"\n "),c.ɵɵelementStart(28,"div",12),c.ɵɵelementStart(29,"span",13),c.ɵɵtext(30,"$USD"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtext(31,"\n "),c.ɵɵelementStart(32,"input",14),c.ɵɵlistener("ngModelChange",function(e){return t.creditAmount=e})("blur",function(){return t.formatAmount()}),c.ɵɵelementEnd(),c.ɵɵtext(33,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(34,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(35,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(36,"\n "),c.ɵɵelementStart(37,"small",15),c.ɵɵtext(38),c.ɵɵpipe(39,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(40,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(41,"\n "),c.ɵɵelementStart(42,"button",16),c.ɵɵtext(43,"\n "),c.ɵɵelement(44,"i",17),c.ɵɵpipe(45,"i18n"),c.ɵɵtext(46,"\n "),c.ɵɵelementStart(47,"span"),c.ɵɵtext(48),c.ɵɵpipe(49,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(50,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(51,"\n "),c.ɵɵelementStart(52,"button",18),c.ɵɵlistener("click",function(){return t.cancel()}),c.ɵɵtext(53),c.ɵɵpipe(54,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(55,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(56,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(57,"\n"),c.ɵɵelementStart(58,"form",19,20),c.ɵɵtext(60,"\n "),c.ɵɵelement(61,"input",21),c.ɵɵtext(62,"\n "),c.ɵɵelement(63,"input",22),c.ɵɵtext(64,"\n "),c.ɵɵelement(65,"input",23),c.ɵɵtext(66,"\n "),c.ɵɵelement(67,"input",24),c.ɵɵtext(68,"\n "),c.ɵɵelement(69,"input",25),c.ɵɵtext(70,"\n "),c.ɵɵelement(71,"input",26),c.ɵɵtext(72,"\n "),c.ɵɵelement(73,"input",27),c.ɵɵtext(74,"\n "),c.ɵɵelement(75,"input",28),c.ɵɵtext(76,"\n "),c.ɵɵelement(77,"input",29),c.ɵɵtext(78,"\n "),c.ɵɵelement(79,"input",30),c.ɵɵtext(80,"\n "),c.ɵɵelement(81,"input",31),c.ɵɵtext(82,"\n "),c.ɵɵelement(83,"input",32),c.ɵɵtext(84,"\n "),c.ɵɵelement(85,"input",33),c.ɵɵtext(86,"\n "),c.ɵɵelement(87,"input",34),c.ɵɵtext(88,"\n "),c.ɵɵelement(89,"input",35),c.ɵɵtext(90,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(91,"\n")),2&e){var n=c.ɵɵreference(1);c.ɵɵproperty("appApiAction",t.formPromise),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("appA11yTitle",c.ɵɵpipeBind1(6,18,"cancel")),c.ɵɵadvance(6),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(12,20,"addCredit")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",t.showOptions),c.ɵɵadvance(9),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(24,22,"amount")),c.ɵɵadvance(9),c.ɵɵproperty("ngModel",t.creditAmount),c.ɵɵadvance(6),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(39,24,"creditDelayed")),c.ɵɵadvance(4),c.ɵɵproperty("disabled",n.loading||t.ppLoading),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("title",c.ɵɵpipeBind1(45,26,"loading")),c.ɵɵadvance(4),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(49,28,"submit")),c.ɵɵadvance(5),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(54,30,"cancel"),"\n "),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("action",t.ppButtonFormAction,c.ɵɵsanitizeUrl),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("value",t.ppButtonBusinessId),c.ɵɵadvance(10),c.ɵɵpropertyInterpolate("value",t.returnUrl),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("value",t.returnUrl),c.ɵɵadvance(8),c.ɵɵpropertyInterpolate("value",t.creditAmount),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("value",t.ppButtonCustomField),c.ɵɵadvance(4),c.ɵɵpropertyInterpolate("value",t.subject)}},directives:[f.NgControlStatusGroup,f.NgForm,v.ApiActionDirective,y.A11yTitleDirective,g.NgIf,f.DefaultValueAccessor,f.RequiredValidator,f.NgControlStatus,f.NgModel,f.ɵangular_packages_forms_forms_y,f.RadioControlValueAccessor],pipes:[x.I18nPipe],encapsulation:2}),e}();t.AddCreditComponent=w},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(t.push(e),r.exposedPasswordMap.set(e.id,n))});n.push(i)}}),[4,Promise.all(n)];case 2:return i.sent(),this.ciphers=t,[2]}})})},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(u.AuditService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(d.MessagingService),c.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-exposed-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:26,vars:14,consts:[[1,"page-header"],["type","button",1,"btn","btn-primary","btn-submit",3,"disabled","click"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],[4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],[1,"badge","badge-warning"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],[1,"sr-only"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(5,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(6,"\n"),c.ɵɵelementStart(7,"p"),c.ɵɵtext(8),c.ɵɵpipe(9,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(10,"\n"),c.ɵɵelementStart(11,"button",1),c.ɵɵlistener("click",function(){return t.load()}),c.ɵɵtext(12,"\n "),c.ɵɵelement(13,"i",2),c.ɵɵpipe(14,"i18n"),c.ɵɵtext(15,"\n "),c.ɵɵelementStart(16,"span"),c.ɵɵtext(17),c.ɵɵpipe(18,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(19,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(20,"\n"),c.ɵɵtemplate(21,k,6,2,"div",3),c.ɵɵtext(22,"\n"),c.ɵɵtemplate(23,_,0,0,"ng-template",null,4,c.ɵɵtemplateRefExtractor),c.ɵɵtext(25,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(4,6,"exposedPasswordsReport")),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(9,8,"exposedPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("disabled",t.loading),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("title",c.ɵɵpipeBind1(14,10,"loading")),c.ɵɵadvance(4),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(18,12,"checkExposedPasswords")),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.ExposedPasswordsReportComponent=A},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1||!this.allowPersonal)&&(null!=this.organization?this.cloneMode&&this.organization.canManageAllCollections:!this.editMode||this.cloneMode)},t.prototype.loadCollections=function(){return this.organization.canManageAllCollections?Promise.resolve(this.collections):e.prototype.loadCollections.call(this)},t.prototype.loadCipher=function(){return a(this,void 0,void 0,function(){var t,n;return o(this,function(r){switch(r.label){case 0:return this.organization.canManageAllCollections?[3,2]:[4,e.prototype.loadCipher.call(this)];case 1:return[2,r.sent()];case 2:return[4,this.apiService.getCipherAdmin(this.cipherId)];case 3:return t=r.sent(),n=new s.CipherData(t),this.originalCipher=new l.Cipher(n),[2,new l.Cipher(n)]}})})},t.prototype.encryptCipher=function(){return this.organization.canManageAllCollections?this.cipherService.encrypt(this.cipher,null,this.originalCipher):e.prototype.encryptCipher.call(this)},t.prototype.saveCipher=function(t){return a(this,void 0,void 0,function(){var n;return o(this,function(r){return this.organization.canManageAllCollections&&null!=t.organizationId?this.editMode&&!this.cloneMode?(n=new p.CipherRequest(t),[2,this.apiService.putCipherAdmin(this.cipherId,n)]):(n=new c.CipherCreateRequest(t),[2,this.apiService.postCipherAdmin(n)]):[2,e.prototype.saveCipher.call(this,t)]})})},t.prototype.deleteCipher=function(){return a(this,void 0,void 0,function(){return o(this,function(t){return this.organization.canManageAllCollections?[2,this.cipher.isDeleted?this.apiService.deleteCipherAdmin(this.cipherId):this.apiService.putDeleteCipherAdmin(this.cipherId)]:[2,e.prototype.deleteCipher.call(this)]})})},t.ɵfac=function(e){return new(e||t)(d.ɵɵdirectiveInject(m.CipherService),d.ɵɵdirectiveInject(h.FolderService),d.ɵɵdirectiveInject(f.I18nService),d.ɵɵdirectiveInject(v.PlatformUtilsService),d.ɵɵdirectiveInject(y.AuditService),d.ɵɵdirectiveInject(g.StateService),d.ɵɵdirectiveInject(x.UserService),d.ɵɵdirectiveInject(b.CollectionService),d.ɵɵdirectiveInject(S.TotpService),d.ɵɵdirectiveInject(w.PasswordGenerationService),d.ɵɵdirectiveInject(C.ApiService),d.ɵɵdirectiveInject(I.MessagingService),d.ɵɵdirectiveInject(E.EventService),d.ɵɵdirectiveInject(P.PolicyService))},t.ɵcmp=d.ɵɵdefineComponent({type:t,selectors:[["app-org-vault-add-edit"]],features:[d.ɵɵInheritDefinitionFeature],decls:36,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","cipherAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","","autocomplete","off",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","cipherAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit","class","btn btn-primary btn-submit",3,"disabled",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["class","ml-auto",4,"ngIf"],[1,"modal-body"],["type","info",4,"ngIf"],["class","row",4,"ngIf"],[1,"row"],[1,"col-6","form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","col-6 form-group",4,"ngIf"],[4,"ngIf"],[1,"form-group"],["for","notes"],["id","notes","name","Notes","rows","6",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"mt-4"],["cdkDropList","",3,"cdkDropListDropped",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-2",3,"click",4,"ngIf"],["type","info"],["for","type"],["id","type","name","Type","appAutofocus","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["for","folder"],["id","folder","name","FolderId",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","loginUsername"],[1,"input-group"],["id","loginUsername","type","text","name","Login.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","input-group-append",4,"ngIf"],[1,"d-flex"],["for","loginPassword"],["class","ml-auto d-flex",4,"ngIf"],["id","loginPassword","name","Login.Password","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"input-group-append"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","disabled","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],["aria-hidden","true",1,"fa","fa-lg","fa-clone"],["for","loginTotp"],["id","loginTotp","name","Login.Totp","appInputVerbatim","",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-6","form-group","totp","d-flex","align-items-end",3,"ngClass"],["class","d-flex align-items-center",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-3",3,"click",4,"ngIf"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","click"],[1,"ml-auto","d-flex"],["href","#","class","d-block mr-2 fa-icon-above-input","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["href","#","appStopClick","",1,"d-block","fa-icon-above-input",3,"appA11yTitle","appApiAction","click"],["checkPasswordBtn",""],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-check-circle",3,"hidden"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-spinner","fa-spin",3,"hidden","title"],["href","#","appStopClick","",1,"d-block","mr-2","fa-icon-above-input",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-refresh"],["src","images/totp-countdown.png",1,"ml-2",3,"title"],["href","#","appStopClick","","class","badge badge-primary ml-3",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"badge","badge-primary","ml-3",3,"click"],[1,"d-flex","align-items-center"],[1,"totp-countdown","mr-3","ml-2"],[1,"totp-sec"],["r","12.6","cy","16","cx","16",1,"totp-circle","inner",3,"ngStyle"],["r","14","cy","16","cx","16",1,"totp-circle","outer"],[1,"totp-code","mr-2",3,"title"],["type","button",1,"btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-clone"],["class","row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"col-7","form-group"],[3,"for"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","placeholder","ngModelChange"],["aria-hidden","true",1,"fa","fa-lg","fa-share"],[1,"col-5","form-group"],["href","https://help.bitwarden.com/article/uri-match-detection/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-control","overflow-hidden",3,"id","name","ngModel","disabled","ngModelChange","change"],["type","button","class","btn btn-link text-danger ml-2",3,"appA11yTitle","click",4,"ngIf"],["type","button",1,"btn","btn-link","text-danger","ml-2",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-minus-circle","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus-circle","fa-fw"],["for","cardCardholderName"],["id","cardCardholderName","type","text","name","Card.CardCardholderName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardBrand"],["id","cardBrand","name","Card.Brand",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardNumber"],["id","cardNumber","type","text","name","Card.Number","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"col","form-group"],["for","cardExpMonth"],["id","cardExpMonth","name","Card.ExpMonth",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardExpYear"],["id","cardExpYear","type","text","name","Card.ExpYear",1,"form-control",3,"ngModel","placeholder","disabled","ngModelChange"],["for","cardCode"],["id","cardCode","name","Card.Code","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-4","form-group"],["for","idTitle"],["id","idTitle","name","Identity.Title",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idFirstName"],["id","idFirstName","type","text","name","Identity.FirstName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idMiddleName"],["id","idMiddleName","type","text","name","Identity.MiddleName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLastName"],["id","idLastName","type","text","name","Identity.LastName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idUsername"],["id","idUsername","type","text","name","Identity.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCompany"],["id","idCompany","type","text","name","Identity.Company",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idSsn"],["id","idSsn","type","text","name","Identity.SSN","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPassportNumber"],["id","idPassportNumber","type","text","name","Identity.PassportNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLicenseNumber"],["id","idLicenseNumber","type","text","name","Identity.LicenseNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idEmail"],["id","idEmail","type","text","name","Identity.Email","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPhone"],["id","idPhone","type","text","name","Identity.Phone",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress1"],["id","idAddress1","type","text","name","Identity.Address1",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress2"],["id","idAddress2","type","text","name","Identity.Address2",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress3"],["id","idAddress3","type","text","name","Identity.Address3",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCity"],["id","idCity","type","text","name","Identity.City",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idState"],["id","idState","type","text","name","Identity.State",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPostalCode"],["id","idPostalCode","type","text","name","Identity.PostalCode",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCountry"],["id","idCountry","type","text","name","Identity.Country",1,"form-control",3,"ngModel","disabled","ngModelChange"],["cdkDropList","",3,"cdkDropListDropped"],["class","row","cdkDrag","",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"row"],["href","https://help.bitwarden.com/article/custom-fields/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","ngModelChange"],["class","input-group",4,"ngIf"],[1,"flex-fill"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange",4,"ngIf"],["type","button","class","btn btn-link text-muted cursor-move",3,"appA11yTitle",4,"ngIf"],["appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"id","type","name","ngModel","disabled","ngModelChange"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-link","text-muted","cursor-move",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-bars","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-2",3,"click"],[1,"col-5"],["for","addFieldType",1,"sr-only"],["id","addFieldType","name","AddFieldType",1,"form-control",3,"ngModel","ngModelChange"],["for","organizationId"],["id","organizationId","name","OrganizationId",1,"form-control",3,"ngModel","disabled","ngModelChange","change"],["class","form-check",4,"ngFor","ngForOf"],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"ngModel","id","name","disabled","ngModelChange"],[1,"form-check-label",3,"for"],[1,"small","text-muted","mt-4"],[1,"font-weight-semibold"],["class","ml-3",4,"ngIf"],["href","#","appStopClick","",3,"title","click"],[1,"ml-3"],[4,"ngFor","ngForOf"],[1,"password-wrapper","text-monospace","ml-2"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"ml-auto"],["type","button","class","btn btn-link",3,"appA11yTitle","click",4,"ngIf"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){1&e&&(d.ɵɵelementStart(0,"div",0),d.ɵɵtext(1,"\n "),d.ɵɵelementStart(2,"div",1),d.ɵɵtext(3,"\n "),d.ɵɵelementStart(4,"form",2,3),d.ɵɵlistener("ngSubmit",function(){return t.submit()}),d.ɵɵtext(6,"\n "),d.ɵɵelementStart(7,"div",4),d.ɵɵtext(8,"\n "),d.ɵɵelementStart(9,"h2",5),d.ɵɵtext(10),d.ɵɵelementEnd(),d.ɵɵtext(11,"\n "),d.ɵɵelementStart(12,"button",6),d.ɵɵpipe(13,"i18n"),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"span",7),d.ɵɵtext(16,"×"),d.ɵɵelementEnd(),d.ɵɵtext(17,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(18,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(19,"\n "),d.ɵɵtemplate(20,Te,54,25,"div",8),d.ɵɵtext(21,"\n "),d.ɵɵelementStart(22,"div",9),d.ɵɵtext(23,"\n "),d.ɵɵtemplate(24,Me,9,7,"button",10),d.ɵɵtext(25,"\n "),d.ɵɵelementStart(26,"button",11),d.ɵɵtext(27),d.ɵɵpipe(28,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(29,"\n "),d.ɵɵtemplate(30,je,6,2,"div",12),d.ɵɵtext(31,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(32,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(33,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(34,"\n"),d.ɵɵelementEnd(),d.ɵɵtext(35,"\n")),2&e&&(d.ɵɵadvance(4),d.ɵɵproperty("appApiAction",t.formPromise),d.ɵɵadvance(6),d.ɵɵtextInterpolate(t.title),d.ɵɵadvance(2),d.ɵɵpropertyInterpolate("appA11yTitle",d.ɵɵpipeBind1(13,7,"close")),d.ɵɵadvance(8),d.ɵɵproperty("ngIf",t.cipher),d.ɵɵadvance(4),d.ɵɵproperty("ngIf",!t.viewOnly),d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(28,9,t.viewOnly?"close":"cancel"),"\n "),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",t.cipher&&!t.viewOnly))},directives:[k.NgControlStatusGroup,k.NgForm,_.ApiActionDirective,A.A11yTitleDirective,O.NgIf,k.DefaultValueAccessor,k.RequiredValidator,k.NgControlStatus,k.NgModel,T.CalloutComponent,k.SelectControlValueAccessor,M.AutofocusDirective,O.NgForOf,k.NgSelectOption,k.ɵangular_packages_forms_forms_x,B.InputVerbatimDirective,O.NgClass,D.StopClickDirective,O.NgStyle,V.CdkDropList,V.CdkDrag,j.TrueFalseValueDirective,k.CheckboxControlValueAccessor],pipes:[R.I18nPipe,O.DatePipe],encapsulation:2}),t}(u.AddEditComponent);t.AddEditComponent=Re},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.id=e.id,this.url=e.url,this.fileName=e.fileName,this.key=e.key,this.size=e.size,this.sizeName=e.sizeName)}}();t.AttachmentData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.cardholderName=e.cardholderName,this.brand=e.brand,this.number=e.number,this.expMonth=e.expMonth,this.expYear=e.expYear,this.code=e.code)}}();t.CardData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.type=e.type,this.name=e.name,this.value=e.value)}}();t.FieldData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.title=e.title,this.firstName=e.firstName,this.middleName=e.middleName,this.lastName=e.lastName,this.address1=e.address1,this.address2=e.address2,this.address3=e.address3,this.city=e.city,this.state=e.state,this.postalCode=e.postalCode,this.country=e.country,this.company=e.company,this.email=e.email,this.phone=e.phone,this.ssn=e.ssn,this.username=e.username,this.passportNumber=e.passportNumber,this.licenseNumber=e.licenseNumber)}}();t.IdentityData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(486),i=function(){return function(e){null!=e&&(this.username=e.username,this.password=e.password,this.passwordRevisionDate=e.passwordRevisionDate,this.totp=e.totp,e.uris&&(this.uris=e.uris.map(function(e){return new r.LoginUriData(e)})))}}();t.LoginData=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.match=null,null!=e&&(this.uri=e.uri,this.match=e.match)}}();t.LoginUriData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.type=e.type)}}();t.SecureNoteData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0))return[3,4];i.label=1;case 1:return i.trys.push([1,3,,4]),[4,this.getFileContents(n[0])];case 2:return null!=(a=i.sent())&&(r=a),[3,4];case 3:return i.sent(),[3,4];case 4:if(null==r||""===r)return this.toasterService.popAsync("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectFile")),this.loading=!1,[2];i.label=5;case 5:return i.trys.push([5,7,,8]),this.formPromise=this.importService.import(e,r,this.organizationId),[4,this.formPromise];case 6:return null!=(o=i.sent())?(this.error(o),this.loading=!1,[2]):(this.analytics.eventTrack.next({action:"Imported Data",properties:{label:this.format}}),this.toasterService.popAsync("success",null,this.i18nService.t("importSuccess")),this.router.navigate(this.successNavigate),[3,8]);case 7:return i.sent(),[3,8];case 8:return this.loading=!1,[2]}})})},e.prototype.getFormatInstructionTitle=function(){var e=this;if(null==this.format)return null;var t=this.featuredImportOptions.concat(this.importOptions).filter(function(t){return t.id===e.format});return t.length>0?this.i18nService.t("instructionsFor",t[0].name):null},e.prototype.setImportOptions=function(){this.featuredImportOptions=a([{id:null,name:"-- "+this.i18nService.t("select")+" --"}],this.importService.featuredImportOptions),this.importOptions=this.importService.regularImportOptions},e.prototype.error=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return this.analytics.eventTrack.next({action:"Import Data Failed",properties:{label:this.format}}),[4,o.default.fire({heightAuto:!1,buttonsStyling:!1,icon:"error",iconHtml:'',input:"textarea",inputValue:e.message,inputAttributes:{readonly:"true"},title:this.i18nService.t("importError"),text:this.i18nService.t("importErrorDesc"),showConfirmButton:!0,confirmButtonText:this.i18nService.t("ok"),onOpen:function(e){e.querySelector(".swal2-textarea").scrollTo(0,0)}})];case 1:return t.sent(),[2]}})})},e.prototype.getFileContents=function(e){var t=this;return new Promise(function(n,r){var i=new FileReader;i.readAsText(e,"utf-8"),i.onload=function(i){if("lastpasscsv"===t.format&&"text/html"===e.type){var a=(new DOMParser).parseFromString(i.target.result,"text/html").querySelector("pre");return null!=a?void n(a.textContent):void r()}n(i.target.result)},i.onerror=function(){r()}})},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.I18nService),s.ɵɵdirectiveInject(c.Angulartics2),s.ɵɵdirectiveInject(p.ToasterService),s.ɵɵdirectiveInject(u.ImportService),s.ɵɵdirectiveInject(d.Router),s.ɵɵdirectiveInject(m.PlatformUtilsService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["app-import"]],decls:67,vars:24,consts:[[1,"page-header"],["ngNativeValidate","",3,"ngSubmit"],["form",""],[1,"row"],[1,"col-6"],[1,"form-group"],["for","type"],["id","type","name","Format","required","",1,"form-control",3,"ngModel","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[4,"ngIf"],["type","info",3,"title",4,"ngIf"],["for","file"],["type","file","id","file","name","file",1,"form-control-file"],["for","fileContents"],["id","fileContents","name","FileContents",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[3,"ngValue"],["value","-","disabled",""],["type","info",3,"title"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/export-your-data/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-lastpass/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-chrome/"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/import-from-firefox/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-1password/"],["target","_blank","rel","noopener","href","https://bit.ly/2GpOMTg"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h1"),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(5,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(6,"\n"),s.ɵɵelementStart(7,"form",1,2),s.ɵɵlistener("ngSubmit",function(){return t.submit()}),s.ɵɵtext(9,"\n "),s.ɵɵelementStart(10,"div",3),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"div",4),s.ɵɵtext(13,"\n "),s.ɵɵelementStart(14,"div",5),s.ɵɵtext(15,"\n "),s.ɵɵelementStart(16,"label",6),s.ɵɵtext(17),s.ɵɵpipe(18,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(19,"\n "),s.ɵɵelementStart(20,"select",7),s.ɵɵlistener("ngModelChange",function(e){return t.format=e}),s.ɵɵtext(21,"\n "),s.ɵɵtemplate(22,g,2,2,"option",8),s.ɵɵtext(23,"\n "),s.ɵɵtemplate(24,b,6,1,"ng-container",9),s.ɵɵtext(25,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(26,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(27,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(28,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(29,"\n "),s.ɵɵtemplate(30,ye,100,50,"app-callout",10),s.ɵɵtext(31,"\n "),s.ɵɵelementStart(32,"div",3),s.ɵɵtext(33,"\n "),s.ɵɵelementStart(34,"div",4),s.ɵɵtext(35,"\n "),s.ɵɵelementStart(36,"div",5),s.ɵɵtext(37,"\n "),s.ɵɵelementStart(38,"label",11),s.ɵɵtext(39),s.ɵɵpipe(40,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(41,"\n "),s.ɵɵelement(42,"input",12),s.ɵɵtext(43,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(44,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(45,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(46,"\n "),s.ɵɵelementStart(47,"div",5),s.ɵɵtext(48,"\n "),s.ɵɵelementStart(49,"label",13),s.ɵɵtext(50),s.ɵɵpipe(51,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(52,"\n "),s.ɵɵelementStart(53,"textarea",14),s.ɵɵlistener("ngModelChange",function(e){return t.fileContents=e}),s.ɵɵelementEnd(),s.ɵɵtext(54,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(55,"\n "),s.ɵɵelementStart(56,"button",15),s.ɵɵtext(57,"\n "),s.ɵɵelement(58,"i",16),s.ɵɵpipe(59,"i18n"),s.ɵɵtext(60,"\n "),s.ɵɵelementStart(61,"span"),s.ɵɵtext(62),s.ɵɵpipe(63,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(64,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(65,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(66,"\n")),2&e&&(s.ɵɵadvance(3),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(4,12,"importData")),s.ɵɵadvance(14),s.ɵɵtextInterpolate1("1. ",s.ɵɵpipeBind1(18,14,"selectFormat"),""),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",t.format),s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",t.featuredImportOptions),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.importOptions&&t.importOptions.length),s.ɵɵadvance(6),s.ɵɵproperty("ngIf",t.format),s.ɵɵadvance(9),s.ɵɵtextInterpolate1("2. ",s.ɵɵpipeBind1(40,16,"selectImportFile"),""),s.ɵɵadvance(11),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(51,18,"orCopyPasteFileContents")),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",t.fileContents),s.ɵɵadvance(3),s.ɵɵproperty("disabled",t.loading),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(59,20,"loading")),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(63,22,"importData")))},directives:[h.NgControlStatusGroup,h.NgForm,h.SelectControlValueAccessor,h.RequiredValidator,h.NgControlStatus,h.NgModel,f.NgForOf,f.NgIf,h.DefaultValueAccessor,h.NgSelectOption,h.ɵangular_packages_forms_forms_x,v.CalloutComponent],pipes:[y.I18nPipe],encapsulation:2}),e}();t.ImportComponent=ge},,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?[4,this.getAllCiphers()]:[3,6];case 4:return e=a.sent(),t=[],n=[],r=new Map,e.forEach(function(e){if(e.type===s.CipherType.Login&&(null==e.login.totp||""===e.login.totp)&&e.login.hasUris&&!e.isDeleted)for(var n=0;n0?[2]:[4,fetch(new Request("https://2fa.directory/api/v2/totp.json"))];case 1:if(200!==(e=o.sent()).status)throw new Error;return[4,e.json()];case 2:for(n in t=o.sent())if(t.hasOwnProperty(n))for(i in r=t[n])r.hasOwnProperty(i)&&null!=(a=r[i]).url&&null!=(s=l.Utils.getHostname(a.url))&&this.services.set(s,a.doc);return[2]}})})},t.ɵfac=function(e){return new(e||t)(p.ɵɵdirectiveInject(u.CipherService),p.ɵɵdirectiveInject(p.ComponentFactoryResolver),p.ɵɵdirectiveInject(d.MessagingService),p.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=p.ɵɵdefineComponent({type:t,selectors:[["app-inactive-two-factor-report"]],features:[p.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],["href","#","appStopClick","",3,"title","click"],[1,"text-right"],["class","badge badge-primary","target","_blank","rel","noopener",3,"href",4,"ngIf"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"],["target","_blank","rel","noopener",1,"badge","badge-primary",3,"href"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"h1"),p.ɵɵtext(3),p.ɵɵpipe(4,"i18n"),p.ɵɵtemplate(5,b,9,6,"small",1),p.ɵɵtext(6,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(7,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(8,"\n"),p.ɵɵelementStart(9,"p"),p.ɵɵtext(10),p.ɵɵpipe(11,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(12,"\n"),p.ɵɵtemplate(13,S,9,6,"div",1),p.ɵɵtext(14,"\n"),p.ɵɵtemplate(15,_,6,2,"div",2),p.ɵɵtext(16,"\n"),p.ɵɵtemplate(17,A,0,0,"ng-template",null,3,p.ɵɵtemplateRefExtractor),p.ɵɵtext(19,"\n")),2&e&&(p.ɵɵadvance(3),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(4,5,"inactive2faReport"),"\n "),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(11,7,"inactive2faReportDesc")),p.ɵɵadvance(3),p.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(c.CipherReportComponent);t.InactiveTwoFactorReportComponent=O},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1}),this.ciphers=n,[2]}})})},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(u.MessagingService),c.ɵɵdirectiveInject(d.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-reused-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],[1,"badge","badge-warning"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵtemplate(5,x,9,6,"small",1),c.ɵɵtext(6,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵelementStart(9,"p"),c.ɵɵtext(10),c.ɵɵpipe(11,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,b,9,6,"div",1),c.ɵɵtext(14,"\n"),c.ɵɵtemplate(15,_,6,2,"div",2),c.ɵɵtext(16,"\n"),c.ɵɵtemplate(17,A,0,0,"ng-template",null,3,c.ɵɵtemplateRefExtractor),c.ɵɵtext(19,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(4,5,"reusedPasswordsReport"),"\n "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(11,7,"reusedPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[m.NgIf,h.CalloutComponent,m.NgForOf,f.IconComponent,v.StopClickDirective,y.StopPropDirective],pipes:[g.I18nPipe,m.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.ReusedPasswordsReportComponent=O},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1?a.concat(e.login.username.substr(0,o).trim().toLowerCase().split(/[^A-Za-z0-9]/)).filter(function(e){return e.length>=3}):e.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/).filter(function(e){return e.length>=3})}var l=n.passwordGenerationService.passwordStrength(e.login.password,a.length>0?a:null);n.passwordStrengthCache.set(i,l.score)}var c=n.passwordStrengthCache.get(i);null!=c&&c<=2&&(n.passwordStrengthMap.set(e.id,n.scoreKey(c)),t.push(e))}}),this.ciphers=t,[2]}})})},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.prototype.scoreKey=function(e){switch(e){case 4:return["strong","success"];case 3:return["good","primary"];case 2:return["weak","warning"];default:return["veryWeak","danger"]}},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(u.PasswordGenerationService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(d.MessagingService),c.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-weak-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵtemplate(5,b,9,6,"small",1),c.ɵɵtext(6,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵelementStart(9,"p"),c.ɵɵtext(10),c.ɵɵpipe(11,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,S,9,6,"div",1),c.ɵɵtext(14,"\n"),c.ɵɵtemplate(15,A,6,2,"div",2),c.ɵɵtext(16,"\n"),c.ɵɵtemplate(17,O,0,0,"ng-template",null,3,c.ɵɵtemplateRefExtractor),c.ɵɵtext(19,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(4,5,"weakPasswordsReport"),"\n "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(11,7,"weakPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.WeakPasswordsReportComponent=T},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&t.indexOf("]")>-1){var i=t.lastIndexOf(".");r=t.substr(0,i>-1?i:t.length)+": "}e.push(r+n)})},n=this;for(var r in this.validationErrors)t(r);return e},t}(n(24).BaseResponse);t.ErrorResponse=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n.id=t.id,n}return i(t,e),t}(n(212).CipherRequest);t.CipherWithIdRequest=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.name=e.name?e.name.encryptedString:null}}();t.FolderRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(5);var r=n(0),i=n(5),a=function(){function e(e,t){this.el=e,this.platformUtilsService=t}return e.prototype.onCopy=function(){if(null!=window){for(var e="",t=window.getSelection(),n=0;n-1)""===r.substr(a).trim()&&(i=a);e+=r.substring(0,i)}this.platformUtilsService.copyToClipboard(e,{window:window})}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef),r.ɵɵdirectiveInject(i.PlatformUtilsService))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appSelectCopy",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("copy",function(){return t.onCopy()})}}),e}();t.SelectCopyDirective=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e){for(var t="",n=0;n":r=">",i=!0;break;case" ":r=" ",i=!0}var a="letter";i||r.match(/[^\w ]/)?a="special":r.match(/\d/)&&(a="number"),t+=''+r+""}return t},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"colorPassword",type:e,pure:!0}),e}();t.ColorPasswordPipe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.userId=t,this.name=e.name,this.id=e.id,this.revisionDate=e.revisionDate}}();t.FolderData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(129),o=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t?r:(r.buildDomainModel(r,t,{id:null,name:null},n,["id"]),r.revisionDate=null!=t.revisionDate?new Date(t.revisionDate):null,r)}return i(t,e),t.prototype.decrypt=function(){return this.decryptObj(new a.FolderView(this),{name:null},null)},t}(n(82).default);t.Folder=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(891),o=n(24),s=n(892),l=n(596),c=n(597),p=n(598),u=n(599),d=n(601),m=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.folderId=n.getResponseProperty("FolderId")||null,n.type=n.getResponseProperty("Type"),n.name=n.getResponseProperty("Name"),n.notes=n.getResponseProperty("Notes"),n.favorite=n.getResponseProperty("Favorite")||!1,n.edit=!!n.getResponseProperty("Edit"),null==n.getResponseProperty("ViewPassword")?n.viewPassword=!0:n.viewPassword=n.getResponseProperty("ViewPassword"),n.organizationUseTotp=n.getResponseProperty("OrganizationUseTotp"),n.revisionDate=n.getResponseProperty("RevisionDate"),n.collectionIds=n.getResponseProperty("CollectionIds"),n.deletedDate=n.getResponseProperty("DeletedDate");var r=n.getResponseProperty("Login");null!=r&&(n.login=new u.LoginApi(r));var i=n.getResponseProperty("Card");null!=i&&(n.card=new l.CardApi(i));var o=n.getResponseProperty("Identity");null!=o&&(n.identity=new p.IdentityApi(o));var m=n.getResponseProperty("SecureNote");null!=m&&(n.secureNote=new d.SecureNoteApi(m));var h=n.getResponseProperty("Fields");null!=h&&(n.fields=h.map(function(e){return new c.FieldApi(e)}));var f=n.getResponseProperty("Attachments");null!=f&&(n.attachments=f.map(function(e){return new a.AttachmentResponse(e)}));var v=n.getResponseProperty("PasswordHistory");return null!=v&&(n.passwordHistory=v.map(function(e){return new s.PasswordHistoryResponse(e)})),n}return i(t,e),t}(o.BaseResponse);t.CipherResponse=m},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(912),s=function(e){function t(t){var n=e.call(this,t)||this;n.organizations=[],n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.emailVerified=n.getResponseProperty("EmailVerified"),n.masterPasswordHint=n.getResponseProperty("MasterPasswordHint"),n.premium=n.getResponseProperty("Premium"),n.culture=n.getResponseProperty("Culture"),n.twoFactorEnabled=n.getResponseProperty("TwoFactorEnabled"),n.key=n.getResponseProperty("Key"),n.privateKey=n.getResponseProperty("PrivateKey"),n.securityStamp=n.getResponseProperty("SecurityStamp");var r=n.getResponseProperty("Organizations");return null!=r&&(n.organizations=r.map(function(e){return new o.ProfileOrganizationResponse(e)})),n}return i(t,e),t}(a.BaseResponse);t.ProfileResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){void 0===t&&(t=null);var n=e.call(this,t)||this;return null==t?n:(n.id=n.getResponseProperty("Id"),n.fileName=n.getResponseProperty("FileName"),n.key=n.getResponseProperty("Key"),n.size=n.getResponseProperty("Size"),n.sizeName=n.getResponseProperty("SizeName"),n)}return i(t,e),t}(n(24).BaseResponse);t.SendFileApi=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){void 0===t&&(t=null);var n=e.call(this,t)||this;return null==t?n:(n.text=n.getResponseProperty("Text"),n.hidden=n.getResponseProperty("Hidden")||!1,n)}return i(t,e),t}(n(24).BaseResponse);t.SendTextApi=a},,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.NotificationsService=r},,function(e,t){function n(e){return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=525},,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(5);var r=n(0),i=n(5),a=n(8),o=n(10),s=function(){function e(e){this.platformUtilsService=e,this.year="2015"}return e.prototype.ngOnInit=function(){this.year=(new Date).getFullYear().toString(),this.version=this.platformUtilsService.getApplicationVersion(),document.body.classList.add("layout_frontend")},e.prototype.ngOnDestroy=function(){document.body.classList.remove("layout_frontend")},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.PlatformUtilsService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-frontend-layout"]],decls:8,vars:5,consts:[[1,"container","my-5","text-muted","text-center"]],template:function(e,t){1&e&&(r.ɵɵelement(0,"router-outlet"),r.ɵɵtext(1,"\n"),r.ɵɵelementStart(2,"div",0),r.ɵɵtext(3),r.ɵɵelement(4,"br"),r.ɵɵtext(5),r.ɵɵpipe(6,"i18n"),r.ɵɵelementEnd(),r.ɵɵtext(7,"\n")),2&e&&(r.ɵɵadvance(3),r.ɵɵtextInterpolate1("\n © ",t.year,", Bitwarden Inc.\n "),r.ɵɵadvance(2),r.ɵɵtextInterpolate1(" ",r.ɵɵpipeBind2(6,2,"versionNumber",t.version),"\n"))},directives:[a.RouterOutlet],pipes:[o.I18nPipe],encapsulation:2}),e}();t.FrontendLayoutComponent=s},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&(this.email=r.email),null!=r.premium?this.stateService.save("loginRedirect",{route:"/settings/premium"}):null!=r.org&&this.stateService.save("loginRedirect",{route:"/settings/create-organization",qParams:{plan:r.org}}),[4,e.prototype.ngOnInit.call(this)];case 1:return n.sent(),null!=t&&t.unsubscribe(),[2]}})})}),[2]})})},t.prototype.goAfterLogIn=function(){return a(this,void 0,void 0,function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:return[4,this.stateService.get("orgInvitation")];case 1:return e=r.sent(),[4,this.stateService.get("emergencyInvitation")];case 2:return t=r.sent(),null==e?[3,3]:(this.router.navigate(["accept-organization"],{queryParams:e}),[3,8]);case 3:return null==t?[3,4]:(this.router.navigate(["accept-emergency"],{queryParams:t}),[3,8]);case 4:return[4,this.stateService.get("loginRedirect")];case 5:return null==(n=r.sent())?[3,7]:(this.router.navigate([n.route],{queryParams:n.qParams}),[4,this.stateService.remove("loginRedirect")]);case 6:return r.sent(),[3,8];case 7:this.router.navigate([this.successRoute]),r.label=8;case 8:return[2]}})})},t.ɵfac=function(e){return new(e||t)(l.ɵɵdirectiveInject(c.AuthService),l.ɵɵdirectiveInject(p.Router),l.ɵɵdirectiveInject(u.I18nService),l.ɵɵdirectiveInject(p.ActivatedRoute),l.ɵɵdirectiveInject(d.StorageService),l.ɵɵdirectiveInject(m.StateService),l.ɵɵdirectiveInject(h.PlatformUtilsService),l.ɵɵdirectiveInject(f.EnvironmentService),l.ɵɵdirectiveInject(v.PasswordGenerationService),l.ɵɵdirectiveInject(y.CryptoFunctionService))},t.ɵcmp=l.ɵɵdefineComponent({type:t,selectors:[["app-login"]],features:[l.ɵɵInheritDefinitionFeature],decls:97,vars:43,consts:[["ngNativeValidate","",1,"container",3,"appApiAction","ngSubmit"],["form",""],[1,"row","justify-content-md-center","mt-5"],[1,"col-5"],["src","images/logo-dark@2x.png","alt","Bitwarden",1,"logo","mb-2"],[1,"lead","text-center","mx-4","mb-4"],[1,"card","d-block"],[1,"card-body"],[1,"form-group"],["for","email"],["id","email","type","text","name","Email","required","","inputmode","email","appInputVerbatim","false",1,"form-control",3,"ngModel","ngModelChange"],["for","masterPassword"],[1,"d-flex"],["id","masterPassword","name","MasterPassword","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"form-text"],["routerLink","/hint"],[1,"form-check"],["type","checkbox","id","rememberEmail","name","RememberEmail",1,"form-check-input",3,"ngModel","ngModelChange"],["for","rememberEmail",1,"form-check-label"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-sign-in"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["routerLink","/register",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0",3,"queryParams"],["aria-hidden","true",1,"fa","fa-pencil-square-o"],["routerLink","/sso",1,"btn","btn-outline-secondary","btn-block","mt-2"],["aria-hidden","true",1,"fa","fa-bank"]],template:function(e,t){if(1&e&&(l.ɵɵelementStart(0,"form",0,1),l.ɵɵlistener("ngSubmit",function(){return t.submit()}),l.ɵɵtext(2,"\n "),l.ɵɵelementStart(3,"div",2),l.ɵɵtext(4,"\n "),l.ɵɵelementStart(5,"div",3),l.ɵɵtext(6,"\n "),l.ɵɵelement(7,"img",4),l.ɵɵtext(8,"\n "),l.ɵɵelementStart(9,"p",5),l.ɵɵtext(10),l.ɵɵpipe(11,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(12,"\n "),l.ɵɵelementStart(13,"div",6),l.ɵɵtext(14,"\n "),l.ɵɵelementStart(15,"div",7),l.ɵɵtext(16,"\n "),l.ɵɵelementStart(17,"div",8),l.ɵɵtext(18,"\n "),l.ɵɵelementStart(19,"label",9),l.ɵɵtext(20),l.ɵɵpipe(21,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(22,"\n "),l.ɵɵelementStart(23,"input",10),l.ɵɵlistener("ngModelChange",function(e){return t.email=e}),l.ɵɵelementEnd(),l.ɵɵtext(24,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(25,"\n "),l.ɵɵelementStart(26,"div",8),l.ɵɵtext(27,"\n "),l.ɵɵelementStart(28,"label",11),l.ɵɵtext(29),l.ɵɵpipe(30,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(31,"\n "),l.ɵɵelementStart(32,"div",12),l.ɵɵtext(33,"\n "),l.ɵɵelementStart(34,"input",13),l.ɵɵlistener("ngModelChange",function(e){return t.masterPassword=e}),l.ɵɵelementEnd(),l.ɵɵtext(35,"\n "),l.ɵɵelementStart(36,"button",14),l.ɵɵlistener("click",function(){return t.togglePassword()}),l.ɵɵpipe(37,"i18n"),l.ɵɵtext(38,"\n "),l.ɵɵelement(39,"i",15),l.ɵɵtext(40,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(41,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(42,"\n "),l.ɵɵelementStart(43,"small",16),l.ɵɵtext(44,"\n "),l.ɵɵelementStart(45,"a",17),l.ɵɵtext(46),l.ɵɵpipe(47,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(48,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(49,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(50,"\n "),l.ɵɵelementStart(51,"div",18),l.ɵɵtext(52,"\n "),l.ɵɵelementStart(53,"input",19),l.ɵɵlistener("ngModelChange",function(e){return t.rememberEmail=e}),l.ɵɵelementEnd(),l.ɵɵtext(54,"\n "),l.ɵɵelementStart(55,"label",20),l.ɵɵtext(56),l.ɵɵpipe(57,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(58,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(59,"\n "),l.ɵɵelement(60,"hr"),l.ɵɵtext(61,"\n "),l.ɵɵelementStart(62,"div",12),l.ɵɵtext(63,"\n "),l.ɵɵelementStart(64,"button",21),l.ɵɵtext(65,"\n "),l.ɵɵelementStart(66,"span"),l.ɵɵtext(67,"\n "),l.ɵɵelement(68,"i",22),l.ɵɵtext(69),l.ɵɵpipe(70,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(71,"\n "),l.ɵɵelement(72,"i",23),l.ɵɵpipe(73,"i18n"),l.ɵɵtext(74,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(75,"\n "),l.ɵɵelementStart(76,"a",24),l.ɵɵtext(77,"\n "),l.ɵɵelement(78,"i",25),l.ɵɵtext(79),l.ɵɵpipe(80,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(81,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(82,"\n "),l.ɵɵelementStart(83,"div",12),l.ɵɵtext(84,"\n "),l.ɵɵelementStart(85,"a",26),l.ɵɵtext(86,"\n "),l.ɵɵelement(87,"i",27),l.ɵɵtext(88),l.ɵɵpipe(89,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(90,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(91,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(92,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(93,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(94,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(95,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(96,"\n")),2&e){var n=l.ɵɵreference(1);l.ɵɵproperty("appApiAction",t.formPromise),l.ɵɵadvance(10),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(11,18,"loginOrCreateNewAccount")),l.ɵɵadvance(10),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(21,20,"emailAddress")),l.ɵɵadvance(3),l.ɵɵproperty("ngModel",t.email),l.ɵɵadvance(6),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(30,22,"masterPass")),l.ɵɵadvance(5),l.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),l.ɵɵproperty("ngModel",t.masterPassword),l.ɵɵadvance(2),l.ɵɵpropertyInterpolate("appA11yTitle",l.ɵɵpipeBind1(37,24,"toggleVisibility")),l.ɵɵadvance(3),l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(38,I,!t.showPassword,t.showPassword)),l.ɵɵadvance(7),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(47,26,"getMasterPasswordHint")),l.ɵɵadvance(7),l.ɵɵproperty("ngModel",t.rememberEmail),l.ɵɵadvance(3),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(57,28,"rememberEmail")),l.ɵɵadvance(8),l.ɵɵproperty("disabled",n.loading),l.ɵɵadvance(5),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(70,30,"logIn"),"\n "),l.ɵɵadvance(3),l.ɵɵpropertyInterpolate("title",l.ɵɵpipeBind1(73,32,"loading")),l.ɵɵadvance(4),l.ɵɵproperty("queryParams",l.ɵɵpureFunction1(41,E,t.email)),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(80,34,"createAccount"),"\n "),l.ɵɵadvance(9),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(89,36,"enterpriseSingleSignOn"),"\n ")}},directives:[g.NgControlStatusGroup,g.NgForm,x.ApiActionDirective,g.DefaultValueAccessor,g.RequiredValidator,b.InputVerbatimDirective,g.NgControlStatus,g.NgModel,S.A11yTitleDirective,w.NgClass,p.RouterLinkWithHref,g.CheckboxControlValueAccessor],pipes:[C.I18nPipe],encapsulation:2}),t}(s.LoginComponent);t.LoginComponent=P},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}function K(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div",12),u.ɵɵtext(1,"\n "),u.ɵɵelementStart(2,"div",48),u.ɵɵtext(3,"\n "),u.ɵɵelementStart(4,"input",49),u.ɵɵlistener("ngModelChange",function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext().acceptPolicies=e}),u.ɵɵelementEnd(),u.ɵɵtext(5,"\n "),u.ɵɵelementStart(6,"label",50),u.ɵɵtext(7),u.ɵɵpipe(8,"i18n"),u.ɵɵelement(9,"br"),u.ɵɵtext(10,"\n "),u.ɵɵelementStart(11,"a",51),u.ɵɵtext(12),u.ɵɵpipe(13,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(14,",\n "),u.ɵɵelementStart(15,"a",52),u.ɵɵtext(16),u.ɵɵpipe(17,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(18,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(19,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(20,"\n "),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext();u.ɵɵadvance(4),u.ɵɵproperty("ngModel",r.acceptPolicies),u.ɵɵadvance(3),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(8,4,"acceptPolicies"),""),u.ɵɵadvance(5),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(13,6,"termsOfService")),u.ɵɵadvance(4),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(17,8,"privacyPolicy"))}}var q=function(e){return["layout",e]},W=function(e,t){return{"col-5":e,"col-12":t}},H=function(e,t){return{"fa-eye":e,"fa-eye-slash":t}},$=function(e){function t(t,n,r,i,a,o,s,l,c,p){var u=e.call(this,t,n,r,i,a,s,l,c)||this;return u.route=o,u.policyService=p,u.showCreateOrgMessage=!1,u.layout="",u}return i(t,e),t.prototype.getPasswordScoreAlertDisplay=function(){if(null==this.enforcedPolicyOptions)return"";var e;switch(this.enforcedPolicyOptions.minComplexity){case 4:e=this.i18nService.t("strong");break;case 3:e=this.i18nService.t("good");break;default:e=this.i18nService.t("weak")}return e+" ("+this.enforcedPolicyOptions.minComplexity+")"},t.prototype.ngOnInit=function(){return a(this,void 0,void 0,function(){var e,t,n,r,i,a=this;return o(this,function(o){switch(o.label){case 0:return e=this.route.queryParams.subscribe(function(t){a.referenceData=new p.ReferenceEventRequest,null!=t.email&&t.email.indexOf("@")>-1&&(a.email=t.email),null!=t.premium?a.stateService.save("loginRedirect",{route:"/settings/premium"}):null!=t.org&&(a.showCreateOrgMessage=!0,a.referenceData.flow=t.org,a.stateService.save("loginRedirect",{route:"/settings/create-organization",qParams:{plan:t.org}})),null!=t.layout&&(a.layout=a.referenceData.layout=t.layout),null!=t.reference?a.referenceData.id=t.reference:a.referenceData.id=("; "+document.cookie).split("; reference=").pop().split(";").shift(),""===a.referenceData.id&&(a.referenceData.id=null),null!=e&&e.unsubscribe()}),[4,this.stateService.get("orgInvitation")];case 1:if(null==(t=o.sent()))return[3,5];o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.apiService.getPoliciesByToken(t.organizationId,t.token,t.email,t.organizationUserId)];case 3:return null!=(n=o.sent()).data&&(r=n.data.map(function(e){return new c.PolicyData(e)}),this.policies=r.map(function(e){return new l.Policy(e)})),[3,5];case 4:return o.sent(),[3,5];case 5:return null==this.policies?[3,7]:(i=this,[4,this.policyService.getMasterPasswordPolicyOptions(this.policies)]);case 6:i.enforcedPolicyOptions=o.sent(),o.label=7;case 7:return[2]}})})},t.prototype.submit=function(){return a(this,void 0,void 0,function(){return o(this,function(t){switch(t.label){case 0:return null==this.enforcedPolicyOptions||this.policyService.evaluateMasterPassword(this.masterPasswordScore,this.masterPassword,this.enforcedPolicyOptions)?[4,e.prototype.submit.call(this)]:(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("masterPasswordPolicyRequirementsNotMet")),[2]);case 1:return t.sent(),[2]}})})},t.ɵfac=function(e){return new(e||t)(u.ɵɵdirectiveInject(d.AuthService),u.ɵɵdirectiveInject(m.Router),u.ɵɵdirectiveInject(h.I18nService),u.ɵɵdirectiveInject(f.CryptoService),u.ɵɵdirectiveInject(v.ApiService),u.ɵɵdirectiveInject(m.ActivatedRoute),u.ɵɵdirectiveInject(y.StateService),u.ɵɵdirectiveInject(g.PlatformUtilsService),u.ɵɵdirectiveInject(x.PasswordGenerationService),u.ɵɵdirectiveInject(b.PolicyService))},t.ɵcmp=u.ɵɵdefineComponent({type:t,selectors:[["app-register"]],features:[u.ɵɵInheritDefinitionFeature],decls:146,vars:80,consts:[[1,"layout",3,"ngClass"],["class","header",4,"ngIf"],["ngNativeValidate","",1,"container",3,"appApiAction","ngSubmit"],["form",""],[1,"row"],["class","col-7",4,"ngIf"],[3,"ngClass"],[1,"row","justify-content-md-center","mt-5"],["class","lead text-center mb-4",4,"ngIf"],[1,"card","d-block"],[1,"card-body"],["type","info","icon","fa-thumb-tack",3,"title",4,"ngIf"],[1,"form-group"],["for","email"],["id","email","type","text","name","Email","required","","inputmode","email","appInputVerbatim","false",1,"form-control",3,"ngModel","appAutofocus","ngModelChange"],[1,"form-text","text-muted"],["for","name"],["id","name","type","text","name","Name",1,"form-control",3,"ngModel","appAutofocus","ngModelChange"],["type","info",4,"ngIf"],["for","masterPassword"],[1,"d-flex"],[1,"w-100"],["id","masterPassword","name","MasterPassword","required","","appInputVerbatim","",1,"text-monospace","form-control","mb-1",3,"type","ngModel","ngModelChange","input"],[3,"score","showText"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"progress-bar","invisible"],["for","masterPasswordRetype"],["id","masterPasswordRetype","name","MasterPasswordRetype","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["for","hint"],["id","hint","type","text","name","Hint",1,"form-control",3,"ngModel","ngModelChange"],["class","form-group",4,"ngIf"],[1,"d-flex","mb-2"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["routerLink","/",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0"],[1,"header"],[1,"container"],[1,"col-7"],["alt","Bitwarden","src","images/logo-horizontal-white.png",1,"logo","mb-2"],[1,"mt-5"],[4,"ngIf"],[1,"highlight"],["src","images/wired-logo.png","alt","Wired"],[1,"lead","text-center","mb-4"],["type","info","icon","fa-thumb-tack",3,"title"],["type","info"],[1,"mb-0"],[1,"form-check"],["type","checkbox","id","acceptPolicies","name","AcceptPolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","acceptPolicies",1,"form-check-label","small","text-muted"],["href","https://bitwarden.com/terms/","target","_blank","rel","noopener"],["href","https://bitwarden.com/privacy/","target","_blank","rel","noopener"]],template:function(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",0),u.ɵɵtext(1,"\n "),u.ɵɵtemplate(2,O,13,0,"header",1),u.ɵɵtext(3,"\n "),u.ɵɵelementStart(4,"form",2,3),u.ɵɵlistener("ngSubmit",function(){return t.submit()}),u.ɵɵtext(6,"\n "),u.ɵɵelementStart(7,"div",4),u.ɵɵtext(8,"\n "),u.ɵɵtemplate(9,D,11,3,"div",5),u.ɵɵtext(10,"\n "),u.ɵɵelementStart(11,"div",6),u.ɵɵtext(12,"\n "),u.ɵɵelementStart(13,"div",7),u.ɵɵtext(14,"\n "),u.ɵɵelementStart(15,"div",6),u.ɵɵtext(16,"\n "),u.ɵɵtemplate(17,V,3,3,"p",8),u.ɵɵtext(18,"\n "),u.ɵɵelementStart(19,"div",9),u.ɵɵtext(20,"\n "),u.ɵɵelementStart(21,"div",10),u.ɵɵtext(22,"\n "),u.ɵɵtemplate(23,j,4,6,"app-callout",11),u.ɵɵtext(24,"\n "),u.ɵɵelementStart(25,"div",12),u.ɵɵtext(26,"\n "),u.ɵɵelementStart(27,"label",13),u.ɵɵtext(28),u.ɵɵpipe(29,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(30,"\n "),u.ɵɵelementStart(31,"input",14),u.ɵɵlistener("ngModelChange",function(e){return t.email=e}),u.ɵɵelementEnd(),u.ɵɵtext(32,"\n "),u.ɵɵelementStart(33,"small",15),u.ɵɵtext(34),u.ɵɵpipe(35,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(36,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(37,"\n "),u.ɵɵelementStart(38,"div",12),u.ɵɵtext(39,"\n "),u.ɵɵelementStart(40,"label",16),u.ɵɵtext(41),u.ɵɵpipe(42,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(43,"\n "),u.ɵɵelementStart(44,"input",17),u.ɵɵlistener("ngModelChange",function(e){return t.name=e}),u.ɵɵelementEnd(),u.ɵɵtext(45,"\n "),u.ɵɵelementStart(46,"small",15),u.ɵɵtext(47),u.ɵɵpipe(48,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(49,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(50,"\n "),u.ɵɵelementStart(51,"div",12),u.ɵɵtext(52,"\n "),u.ɵɵtemplate(53,G,18,9,"app-callout",18),u.ɵɵtext(54,"\n "),u.ɵɵelementStart(55,"label",19),u.ɵɵtext(56),u.ɵɵpipe(57,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(58,"\n "),u.ɵɵelementStart(59,"div",20),u.ɵɵtext(60,"\n "),u.ɵɵelementStart(61,"div",21),u.ɵɵtext(62,"\n "),u.ɵɵelementStart(63,"input",22),u.ɵɵlistener("ngModelChange",function(e){return t.masterPassword=e})("input",function(){return t.updatePasswordStrength()}),u.ɵɵelementEnd(),u.ɵɵtext(64,"\n "),u.ɵɵelementStart(65,"app-password-strength",23),u.ɵɵtext(66,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(67,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(68,"\n "),u.ɵɵelementStart(69,"div"),u.ɵɵtext(70,"\n "),u.ɵɵelementStart(71,"button",24),u.ɵɵlistener("click",function(){return t.togglePassword(!1)}),u.ɵɵpipe(72,"i18n"),u.ɵɵtext(73,"\n "),u.ɵɵelement(74,"i",25),u.ɵɵtext(75,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(76,"\n "),u.ɵɵelement(77,"div",26),u.ɵɵtext(78,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(79,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(80,"\n "),u.ɵɵelementStart(81,"small",15),u.ɵɵtext(82),u.ɵɵpipe(83,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(84,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(85,"\n "),u.ɵɵelementStart(86,"div",12),u.ɵɵtext(87,"\n "),u.ɵɵelementStart(88,"label",27),u.ɵɵtext(89),u.ɵɵpipe(90,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(91,"\n "),u.ɵɵelementStart(92,"div",20),u.ɵɵtext(93,"\n "),u.ɵɵelementStart(94,"input",28),u.ɵɵlistener("ngModelChange",function(e){return t.confirmMasterPassword=e}),u.ɵɵelementEnd(),u.ɵɵtext(95,"\n "),u.ɵɵelementStart(96,"button",24),u.ɵɵlistener("click",function(){return t.togglePassword(!0)}),u.ɵɵpipe(97,"i18n"),u.ɵɵtext(98,"\n "),u.ɵɵelement(99,"i",25),u.ɵɵtext(100,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(101,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(102,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(103,"\n "),u.ɵɵelementStart(104,"div",12),u.ɵɵtext(105,"\n "),u.ɵɵelementStart(106,"label",29),u.ɵɵtext(107),u.ɵɵpipe(108,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(109,"\n "),u.ɵɵelementStart(110,"input",30),u.ɵɵlistener("ngModelChange",function(e){return t.hint=e}),u.ɵɵelementEnd(),u.ɵɵtext(111,"\n "),u.ɵɵelementStart(112,"small",15),u.ɵɵtext(113),u.ɵɵpipe(114,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(115,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(116,"\n "),u.ɵɵtemplate(117,K,21,10,"div",31),u.ɵɵtext(118,"\n "),u.ɵɵelement(119,"hr"),u.ɵɵtext(120,"\n "),u.ɵɵelementStart(121,"div",32),u.ɵɵtext(122,"\n "),u.ɵɵelementStart(123,"button",33),u.ɵɵtext(124,"\n "),u.ɵɵelementStart(125,"span"),u.ɵɵtext(126),u.ɵɵpipe(127,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(128,"\n "),u.ɵɵelement(129,"i",34),u.ɵɵpipe(130,"i18n"),u.ɵɵtext(131,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(132,"\n "),u.ɵɵelementStart(133,"a",35),u.ɵɵtext(134),u.ɵɵpipe(135,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(136,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(137,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(138,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(139,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(140,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(141,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(142,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(143,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(144,"\n"),u.ɵɵelementEnd(),u.ɵɵtext(145,"\n")),2&e){var n=u.ɵɵreference(5);u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(66,q,t.layout)),u.ɵɵadvance(2),u.ɵɵproperty("ngIf","enterprise2"===t.layout),u.ɵɵadvance(2),u.ɵɵproperty("appApiAction",t.formPromise),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",t.layout),u.ɵɵadvance(2),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(68,W,t.layout,!t.layout)),u.ɵɵadvance(4),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(71,W,!t.layout,t.layout)),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",!t.layout),u.ɵɵadvance(6),u.ɵɵproperty("ngIf",t.showCreateOrgMessage),u.ɵɵadvance(5),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(29,38,"emailAddress")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.email)("appAutofocus",""===t.email),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(35,40,"emailAddressDesc")),u.ɵɵadvance(7),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(42,42,"yourName")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.name)("appAutofocus",""!==t.email),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(48,44,"yourNameDesc")),u.ɵɵadvance(6),u.ɵɵproperty("ngIf",t.enforcedPolicyOptions),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(57,46,"masterPass")),u.ɵɵadvance(7),u.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),u.ɵɵproperty("ngModel",t.masterPassword),u.ɵɵadvance(2),u.ɵɵproperty("score",t.masterPasswordScore)("showText",!0),u.ɵɵadvance(6),u.ɵɵpropertyInterpolate("appA11yTitle",u.ɵɵpipeBind1(72,48,"toggleVisibility")),u.ɵɵadvance(3),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(74,H,!t.showPassword,t.showPassword)),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(83,50,"masterPassDesc")),u.ɵɵadvance(7),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(90,52,"reTypeMasterPass")),u.ɵɵadvance(5),u.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),u.ɵɵproperty("ngModel",t.confirmMasterPassword),u.ɵɵadvance(2),u.ɵɵpropertyInterpolate("appA11yTitle",u.ɵɵpipeBind1(97,54,"toggleVisibility")),u.ɵɵadvance(3),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(77,H,!t.showPassword,t.showPassword)),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(108,56,"masterPassHint")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.hint),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(114,58,"masterPassHintDesc")),u.ɵɵadvance(4),u.ɵɵproperty("ngIf",t.showTerms),u.ɵɵadvance(6),u.ɵɵproperty("disabled",n.loading),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(127,60,"submit")),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate("title",u.ɵɵpipeBind1(130,62,"loading")),u.ɵɵadvance(5),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(135,64,"cancel"),"\n ")}},directives:[S.NgClass,S.NgIf,w.NgControlStatusGroup,w.NgForm,C.ApiActionDirective,w.DefaultValueAccessor,w.RequiredValidator,I.InputVerbatimDirective,w.NgControlStatus,w.NgModel,E.AutofocusDirective,P.PasswordStrengthComponent,k.A11yTitleDirective,m.RouterLinkWithHref,_.CalloutComponent,w.CheckboxControlValueAccessor],pipes:[A.I18nPipe],encapsulation:2}),t}(s.RegisterComponent);t.RegisterComponent=$},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});n(0),n(8),n(6),n(19),n(3),n(15),n(36),n(5),n(44),n(62),n(7);var a=n(835),o=n(0),s=n(6),l=n(3),c=n(19),p=n(15),u=n(7),d=n(36),m=n(5),h=n(44),f=n(8),v=n(62),y=n(14),g=n(17),x=n(4),b=n(26),S=n(46),w=n(249),C=n(18),I=n(10);function E(e,t){1&e&&(o.ɵɵelementStart(0,"div",8),o.ɵɵtext(1,"\n "),o.ɵɵelement(2,"i",9),o.ɵɵpipe(3,"i18n"),o.ɵɵtext(4),o.ɵɵpipe(5,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(2),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(3,2,"loading")),o.ɵɵadvance(2),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(5,4,"loading"),"\n "))}function P(e,t){if(1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind2(2,1,"policyInEffectMinComplexity",n.getPasswordScoreAlertDisplay()),"\n ")}}function k(e,t){if(1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind2(2,1,"policyInEffectMinLength",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength.toString()),"\n ")}}function _(e,t){1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"policyInEffectUppercase"),""))}function A(e,t){1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"policyInEffectLowercase"),""))}function O(e,t){1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"policyInEffectNumbers"),""))}function T(e,t){1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind2(2,1,"policyInEffectSpecial","!@#$%^&*"),""))}function M(e,t){if(1&e&&(o.ɵɵelementStart(0,"app-callout",11),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementStart(3,"ul",29),o.ɵɵtext(4,"\n "),o.ɵɵtemplate(5,P,3,4,"li",30),o.ɵɵtext(6,"\n "),o.ɵɵtemplate(7,k,3,4,"li",30),o.ɵɵtext(8,"\n "),o.ɵɵtemplate(9,_,3,3,"li",30),o.ɵɵtext(10,"\n "),o.ɵɵtemplate(11,A,3,3,"li",30),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,O,3,3,"li",30),o.ɵɵtext(14,"\n "),o.ɵɵtemplate(15,T,3,4,"li",30),o.ɵɵtext(16,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(17,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,7,"masterPasswordPolicyInEffect"),"\n "),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minComplexity)>0),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var B=function(e,t){return{"fa-eye":e,"fa-eye-slash":t}};function D(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",10),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"app-callout",11),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"div",12),o.ɵɵtext(7,"\n "),o.ɵɵtemplate(8,M,18,9,"app-callout",13),o.ɵɵtext(9,"\n "),o.ɵɵelementStart(10,"label",14),o.ɵɵtext(11),o.ɵɵpipe(12,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementStart(14,"div",15),o.ɵɵtext(15,"\n "),o.ɵɵelementStart(16,"div",16),o.ɵɵtext(17,"\n "),o.ɵɵelementStart(18,"input",17),o.ɵɵlistener("ngModelChange",function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().masterPassword=e})("input",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().updatePasswordStrength()}),o.ɵɵelementEnd(),o.ɵɵtext(19,"\n "),o.ɵɵelementStart(20,"app-password-strength",18),o.ɵɵtext(21,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(22,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(23,"\n "),o.ɵɵelementStart(24,"div"),o.ɵɵtext(25,"\n "),o.ɵɵelementStart(26,"button",19),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().togglePassword(!1)}),o.ɵɵpipe(27,"i18n"),o.ɵɵtext(28,"\n "),o.ɵɵelement(29,"i",20),o.ɵɵtext(30,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(31,"\n "),o.ɵɵelement(32,"div",21),o.ɵɵtext(33,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(34,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(35,"\n "),o.ɵɵelementStart(36,"small",22),o.ɵɵtext(37),o.ɵɵpipe(38,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(39,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(40,"\n "),o.ɵɵelementStart(41,"div",12),o.ɵɵtext(42,"\n "),o.ɵɵelementStart(43,"label",23),o.ɵɵtext(44),o.ɵɵpipe(45,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(46,"\n "),o.ɵɵelementStart(47,"div",15),o.ɵɵtext(48,"\n "),o.ɵɵelementStart(49,"input",24),o.ɵɵlistener("ngModelChange",function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().masterPasswordRetype=e}),o.ɵɵelementEnd(),o.ɵɵtext(50,"\n "),o.ɵɵelementStart(51,"button",19),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().togglePassword(!0)}),o.ɵɵpipe(52,"i18n"),o.ɵɵtext(53,"\n "),o.ɵɵelement(54,"i",20),o.ɵɵtext(55,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(56,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(57,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(58,"\n "),o.ɵɵelementStart(59,"div",12),o.ɵɵtext(60,"\n "),o.ɵɵelementStart(61,"label",25),o.ɵɵtext(62),o.ɵɵpipe(63,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(64,"\n "),o.ɵɵelementStart(65,"input",26),o.ɵɵlistener("ngModelChange",function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().hint=e}),o.ɵɵelementEnd(),o.ɵɵtext(66,"\n "),o.ɵɵelementStart(67,"small",22),o.ɵɵtext(68),o.ɵɵpipe(69,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(70,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(71,"\n "),o.ɵɵelement(72,"hr"),o.ɵɵtext(73,"\n "),o.ɵɵelementStart(74,"div",15),o.ɵɵtext(75,"\n "),o.ɵɵelementStart(76,"button",27),o.ɵɵtext(77,"\n "),o.ɵɵelement(78,"i",9),o.ɵɵpipe(79,"i18n"),o.ɵɵtext(80,"\n "),o.ɵɵelementStart(81,"span"),o.ɵɵtext(82),o.ɵɵpipe(83,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(84,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(85,"\n "),o.ɵɵelementStart(86,"button",28),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().logOut()}),o.ɵɵtext(87),o.ɵɵpipe(88,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(89,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(90,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(),i=o.ɵɵreference(1);o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(4,22,"ssoCompleteRegistration")),o.ɵɵadvance(5),o.ɵɵproperty("ngIf",r.enforcedPolicyOptions),o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(12,24,"masterPass")),o.ɵɵadvance(7),o.ɵɵpropertyInterpolate("type",r.showPassword?"text":"password"),o.ɵɵproperty("ngModel",r.masterPassword),o.ɵɵadvance(2),o.ɵɵproperty("score",r.masterPasswordScore)("showText",!0),o.ɵɵadvance(6),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(27,26,"toggleVisibility")),o.ɵɵadvance(3),o.ɵɵproperty("ngClass",o.ɵɵpureFunction2(44,B,!r.showPassword,r.showPassword)),o.ɵɵadvance(8),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(38,28,"masterPassDesc")),o.ɵɵadvance(7),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(45,30,"reTypeMasterPass")),o.ɵɵadvance(5),o.ɵɵpropertyInterpolate("type",r.showPassword?"text":"password"),o.ɵɵproperty("ngModel",r.masterPasswordRetype),o.ɵɵadvance(2),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(52,32,"toggleVisibility")),o.ɵɵadvance(3),o.ɵɵproperty("ngClass",o.ɵɵpureFunction2(47,B,!r.showPassword,r.showPassword)),o.ɵɵadvance(8),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(63,34,"masterPassHint")),o.ɵɵadvance(3),o.ɵɵproperty("ngModel",r.hint),o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(69,36,"masterPassHintDesc")),o.ɵɵadvance(8),o.ɵɵproperty("disabled",i.loading),o.ɵɵadvance(2),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(79,38,"loading")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(83,40,"submit")),o.ɵɵadvance(5),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(88,42,"logOut"),"\n ")}}var V=function(e){function t(t,n,r,i,a,o,s,l,c,p,u){return e.call(this,n,r,i,a,o,s,l,c,t,p,u)||this}return i(t,e),t.ɵfac=function(e){return new(e||t)(o.ɵɵdirectiveInject(s.ApiService),o.ɵɵdirectiveInject(l.I18nService),o.ɵɵdirectiveInject(c.CryptoService),o.ɵɵdirectiveInject(p.MessagingService),o.ɵɵdirectiveInject(u.UserService),o.ɵɵdirectiveInject(d.PasswordGenerationService),o.ɵɵdirectiveInject(m.PlatformUtilsService),o.ɵɵdirectiveInject(h.PolicyService),o.ɵɵdirectiveInject(f.Router),o.ɵɵdirectiveInject(v.SyncService),o.ɵɵdirectiveInject(f.ActivatedRoute))},t.ɵcmp=o.ɵɵdefineComponent({type:t,selectors:[["app-set-password"]],features:[o.ɵɵInheritDefinitionFeature],decls:21,vars:6,consts:[["ngNativeValidate","","autocomplete","off",3,"appApiAction","ngSubmit"],["form",""],[1,"row","justify-content-md-center","mt-5"],[1,"col-5"],[1,"lead","text-center","mb-4"],[1,"card","d-block"],["class","card-body text-center",4,"ngIf"],["class","card-body",4,"ngIf"],[1,"card-body","text-center"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"card-body"],["type","info"],[1,"form-group"],["type","info",4,"ngIf"],["for","masterPassword"],[1,"d-flex"],[1,"w-100"],["id","masterPassword","name","MasterPasswordHash","required","","appInputVerbatim","",1,"text-monospace","form-control","mb-1",3,"type","ngModel","ngModelChange","input"],[3,"score","showText"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"progress-bar","invisible"],[1,"form-text","text-muted"],["for","masterPasswordRetype"],["id","masterPasswordRetype","name","MasterPasswordRetype","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["for","hint"],["id","hint","type","text","name","Hint",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["type","button",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0",3,"click"],[1,"mb-0"],[4,"ngIf"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"form",0,1),o.ɵɵlistener("ngSubmit",function(){return t.submit()}),o.ɵɵtext(2,"\n "),o.ɵɵelementStart(3,"div",2),o.ɵɵtext(4,"\n "),o.ɵɵelementStart(5,"div",3),o.ɵɵtext(6,"\n "),o.ɵɵelementStart(7,"p",4),o.ɵɵtext(8),o.ɵɵpipe(9,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(10,"\n "),o.ɵɵelementStart(11,"div",5),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,E,6,6,"div",6),o.ɵɵtext(14,"\n "),o.ɵɵtemplate(15,D,91,50,"div",7),o.ɵɵtext(16,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(17,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(18,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(19,"\n"),o.ɵɵelementEnd(),o.ɵɵtext(20,"\n")),2&e&&(o.ɵɵproperty("appApiAction",t.formPromise),o.ɵɵadvance(8),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(9,4,"setMasterPassword")),o.ɵɵadvance(5),o.ɵɵproperty("ngIf",t.syncLoading),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!t.syncLoading))},directives:[y.NgControlStatusGroup,y.NgForm,g.ApiActionDirective,x.NgIf,b.CalloutComponent,y.DefaultValueAccessor,y.RequiredValidator,S.InputVerbatimDirective,y.NgControlStatus,y.NgModel,w.PasswordStrengthComponent,C.A11yTitleDirective,x.NgClass],pipes:[I.I18nPipe],encapsulation:2}),t}(a.SetPasswordComponent);t.SetPasswordComponent=V},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1?t[1]:null},e.prototype.checkState=function(e,t){if(null==e)return!1;if(null==t)return!1;var n=e.split("_identifier="),r=t.split("_identifier=");return n[0]===r[0]},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.AuthService),s.ɵɵdirectiveInject(c.Router),s.ɵɵdirectiveInject(p.I18nService),s.ɵɵdirectiveInject(c.ActivatedRoute),s.ɵɵdirectiveInject(u.StorageService),s.ɵɵdirectiveInject(d.StateService),s.ɵɵdirectiveInject(m.PlatformUtilsService),s.ɵɵdirectiveInject(h.ApiService),s.ɵɵdirectiveInject(f.CryptoFunctionService),s.ɵɵdirectiveInject(v.PasswordGenerationService))},e.ɵdir=s.ɵɵdefineDirective({type:e}),e}();t.SsoComponent=y},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]this.pageSize&&(t=this.pagedCollectionsCount),this.collections.length>e&&(this.pagedCollections=this.pagedCollections.concat(this.collections.slice(e,e+t))),this.pagedCollectionsCount=this.pagedCollections.length,this.didScroll=this.pagedCollections.length>this.pageSize}},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(l.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(c.CollectionAddEditComponent,this.addEditModalRef);r.organizationId=this.organizationId,r.collectionId=null!=e?e.id:null,r.onSavedCollection.subscribe(function(){t.modal.close(),t.load()}),r.onDeletedCollection.subscribe(function(){t.modal.close(),t.removeCollection(e)}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.add=function(){this.edit(null)},e.prototype.delete=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteCollectionConfirmation"),e.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteCollection(this.organizationId,e.id)];case 3:return t.sent(),this.analytics.eventTrack.next({action:"Deleted Collection"}),this.toasterService.popAsync("success",null,this.i18nService.t("deletedCollectionId",e.name)),this.removeCollection(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}})})},e.prototype.users=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(l.ModalComponent);this.modal=this.usersModalRef.createComponent(n).instance;var r=this.modal.show(p.EntityUsersComponent,this.usersModalRef);r.organizationId=this.organizationId,r.entity="collection",r.entityId=e.id,r.entityName=e.name,r.onEditedUsers.subscribe(function(){t.load(),t.modal.close()}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.resetPaging=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return this.pagedCollections=[],this.loadMore(),[2]})})},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.collections&&this.collections.length>this.pageSize},e.prototype.removeCollection=function(e){var t=this.collections.indexOf(e);t>-1&&(this.collections.splice(t,1),this.resetPaging())},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.ApiService),u.ɵɵdirectiveInject(m.ActivatedRoute),u.ɵɵdirectiveInject(h.CollectionService),u.ɵɵdirectiveInject(u.ComponentFactoryResolver),u.ɵɵdirectiveInject(f.Angulartics2),u.ɵɵdirectiveInject(v.ToasterService),u.ɵɵdirectiveInject(y.I18nService),u.ɵɵdirectiveInject(g.PlatformUtilsService),u.ɵɵdirectiveInject(x.UserService),u.ɵɵdirectiveInject(b.SearchService))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["app-org-manage-collections"]],viewQuery:function(e,t){var n;(1&e&&(u.ɵɵstaticViewQuery(_,!0,a.ViewContainerRef),u.ɵɵstaticViewQuery(A,!0,a.ViewContainerRef)),2&e)&&(u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.addEditModalRef=n.first),u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.usersModalRef=n.first))},decls:37,vars:20,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["usersTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover table-list","infiniteScroll","",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-users"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-trash-o"]],template:function(e,t){1&e&&(u.ɵɵelementStart(0,"div",0),u.ɵɵtext(1,"\n "),u.ɵɵelementStart(2,"h1"),u.ɵɵtext(3),u.ɵɵpipe(4,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(5,"\n "),u.ɵɵelementStart(6,"div",1),u.ɵɵtext(7,"\n "),u.ɵɵelementStart(8,"div"),u.ɵɵtext(9,"\n "),u.ɵɵelementStart(10,"label",2),u.ɵɵtext(11),u.ɵɵpipe(12,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(13,"\n "),u.ɵɵelementStart(14,"input",3),u.ɵɵlistener("ngModelChange",function(e){return t.searchText=e}),u.ɵɵpipe(15,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(16,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(17,"\n "),u.ɵɵelementStart(18,"button",4),u.ɵɵlistener("click",function(){return t.add()}),u.ɵɵtext(19,"\n "),u.ɵɵelement(20,"i",5),u.ɵɵtext(21),u.ɵɵpipe(22,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(23,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(24,"\n"),u.ɵɵelementEnd(),u.ɵɵtext(25,"\n"),u.ɵɵtemplate(26,O,9,6,"ng-container",6),u.ɵɵtext(27,"\n"),u.ɵɵtemplate(28,D,6,2,"ng-container",6),u.ɵɵpipe(29,"search"),u.ɵɵtext(30,"\n"),u.ɵɵtemplate(31,V,0,0,"ng-template",null,7,u.ɵɵtemplateRefExtractor),u.ɵɵtext(33,"\n"),u.ɵɵtemplate(34,j,0,0,"ng-template",null,8,u.ɵɵtemplateRefExtractor),u.ɵɵtext(36,"\n")),2&e&&(u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(4,7,"collections")),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(12,9,"search")),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate("placeholder",u.ɵɵpipeBind1(15,11,"search")),u.ɵɵproperty("ngModel",t.searchText),u.ɵɵadvance(7),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(22,13,"newCollection"),"\n "),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",t.loading),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedCollections:u.ɵɵpipeBind4(29,15,t.collections,t.searchText,"name","id"))))},directives:[S.DefaultValueAccessor,S.NgControlStatus,S.NgModel,w.NgIf,C.InfiniteScrollDirective,w.NgForOf,I.StopClickDirective,E.A11yTitleDirective],pipes:[P.I18nPipe,k.SearchPipe],encapsulation:2}),e}();t.CollectionsComponent=R},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&r.groups.forEach(function(e){var t=s.groups.filter(function(t){return!t.accessAll&&t.id===e.id});null!=t&&t.length>0&&(t[0].checked=!0,t[0].readOnly=e.readOnly,t[0].hidePasswords=e.hidePasswords)}),[3,9];case 8:return i.sent(),[3,9];case 9:return[3,11];case 10:this.title=this.i18nService.t("addCollection"),i.label=11;case 11:return this.groups.forEach(function(e){e.accessAll&&(e.checked=!0)}),this.loading=!1,[2]}})})},e.prototype.check=function(e,t){e.accessAll||(e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1,e.hidePasswords=!1))},e.prototype.selectAll=function(e){var t=this;this.groups.forEach(function(n){return t.check(n,e)})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:if(null==this.orgKey)throw new Error("No encryption key for this organization.");return e=new s.CollectionRequest,t=e,[4,this.cryptoService.encrypt(this.name,this.orgKey)];case 1:t.name=n.sent().encryptedString,e.externalId=this.externalId,e.groups=this.groups.filter(function(e){return e.checked&&!e.accessAll}).map(function(e){return new l.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)}),n.label=2;case 2:return n.trys.push([2,4,,5]),this.editMode?this.formPromise=this.apiService.putCollection(this.organizationId,this.collectionId,e):this.formPromise=this.apiService.postCollection(this.organizationId,e),[4,this.formPromise];case 3:return n.sent(),this.analytics.eventTrack.next({action:this.editMode?"Edited Collection":"Created Collection"}),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedCollectionId":"createdCollectionId",this.name)),this.onSavedCollection.emit(),[3,5];case 4:return n.sent(),[3,5];case 5:return[2]}})})},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteCollectionConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteCollection(this.organizationId,this.collectionId),[4,this.deletePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Deleted Collection"}),this.toasterService.popAsync("success",null,this.i18nService.t("deletedCollectionId",this.name)),this.onDeletedCollection.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.Angulartics2),p.ɵɵdirectiveInject(h.ToasterService),p.ɵɵdirectiveInject(f.PlatformUtilsService),p.ɵɵdirectiveInject(v.CryptoService),p.ɵɵdirectiveInject(y.UserService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-collection-add-edit"]],inputs:{collectionId:"collectionId",organizationId:"organizationId"},outputs:{onSavedCollection:"onSavedCollection",onDeletedCollection:"onDeletedCollection"},decls:49,vars:18,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","collectionAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","collectionAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"form-group"],["for","name"],["id","name","type","text","name","Name","required","","appAutofocus","",1,"form-control",3,"ngModel","ngModelChange"],["for","externalId"],["id","externalId","type","text","name","ExternalId",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-muted"],[4,"ngIf"],[1,"mt-4","d-flex","mb-0"],["class","ml-auto",4,"ngIf"],["class","table table-hover table-list mb-0",4,"ngIf"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","disabled","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["aria-hidden","true",1,"fa","fa-th","text-muted","fa-fw",3,"title"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",function(){return t.submit()}),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,E,9,6,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵtemplate(22,M,26,12,"div",8),p.ɵɵtext(23,"\n "),p.ɵɵelementStart(24,"div",9),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",10),p.ɵɵtext(27,"\n "),p.ɵɵelement(28,"i",11),p.ɵɵpipe(29,"i18n"),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"span"),p.ɵɵtext(32),p.ɵɵpipe(33,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"button",12),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementStart(40,"div",13),p.ɵɵtext(41,"\n "),p.ɵɵtemplate(42,B,9,10,"button",14),p.ɵɵtext(43,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,10,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading),p.ɵɵadvance(4),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(29,12,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(33,14,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,16,"cancel")),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.editMode)}},directives:[g.NgControlStatusGroup,g.NgForm,x.ApiActionDirective,b.A11yTitleDirective,S.NgIf,g.DefaultValueAccessor,g.RequiredValidator,w.AutofocusDirective,g.NgControlStatus,g.NgModel,S.NgForOf,g.CheckboxControlValueAccessor,C.StopPropDirective],pipes:[I.I18nPipe],encapsulation:2}),e}();t.CollectionAddEditComponent=D},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.groups=[],null!=e&&(this.name=e.name?e.name.encryptedString:null,this.externalId=e.externalId)}}();t.CollectionRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?this.events=this.events.concat(a):this.events=a,this.loading=!1,this.morePromise=null,this.refreshPromise=null,[2]}})})},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(o.ApiService),a.ɵɵdirectiveInject(s.ActivatedRoute),a.ɵɵdirectiveInject(l.EventService),a.ɵɵdirectiveInject(c.I18nService),a.ɵɵdirectiveInject(p.ToasterService),a.ɵɵdirectiveInject(u.UserService),a.ɵɵdirectiveInject(s.Router))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["app-org-events"]],decls:41,vars:27,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],[1,"form-inline"],["for","start",1,"sr-only"],["type","datetime-local","id","start","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],[1,"mx-2"],["for","end",1,"sr-only"],["type","datetime-local","id","end","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"appApiAction","disabled","click"],["refreshBtn",""],["aria-hidden","true",1,"fa","fa-refresh","fa-fw",3,"ngClass"],[4,"ngIf"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover",4,"ngIf"],["type","button","class","btn btn-block btn-link btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],[1,"table","table-hover"],["width","210",1,"border-top-0"],["width","40",1,"border-top-0"],["width","150",1,"border-top-0"],[1,"border-top-0"],[4,"ngFor","ngForOf"],["aria-hidden","true",3,"title"],[3,"title"],[3,"innerHTML"],["type","button",1,"btn","btn-block","btn-link","btn-submit",3,"appApiAction","disabled","click"],["moreBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"]],template:function(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"h1"),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"div",1),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"div",2),a.ɵɵtext(9,"\n "),a.ɵɵelementStart(10,"label",3),a.ɵɵtext(11),a.ɵɵpipe(12,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementStart(14,"input",4),a.ɵɵlistener("ngModelChange",function(e){return t.start=e}),a.ɵɵpipe(15,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(16,"\n "),a.ɵɵelementStart(17,"span",5),a.ɵɵtext(18,"-"),a.ɵɵelementEnd(),a.ɵɵtext(19,"\n "),a.ɵɵelementStart(20,"label",6),a.ɵɵtext(21),a.ɵɵpipe(22,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(23,"\n "),a.ɵɵelementStart(24,"input",7),a.ɵɵlistener("ngModelChange",function(e){return t.end=e}),a.ɵɵpipe(25,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(26,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(27,"\n "),a.ɵɵelementStart(28,"button",8,9),a.ɵɵlistener("click",function(){return t.loadEvents(!0)}),a.ɵɵtext(30,"\n "),a.ɵɵelement(31,"i",10),a.ɵɵtext(32),a.ɵɵpipe(33,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(34,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(35,"\n"),a.ɵɵelementEnd(),a.ɵɵtext(36,"\n"),a.ɵɵtemplate(37,v,9,6,"ng-container",11),a.ɵɵtext(38,"\n"),a.ɵɵtemplate(39,S,8,3,"ng-container",11),a.ɵɵtext(40,"\n")),2&e){var n=a.ɵɵreference(29);a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(4,13,"eventLogs")),a.ɵɵadvance(8),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(12,15,"startDate")),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("placeholder",a.ɵɵpipeBind1(15,17,"startDate")),a.ɵɵproperty("ngModel",t.start),a.ɵɵadvance(7),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(22,19,"endDate")),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("placeholder",a.ɵɵpipeBind1(25,21,"endDate")),a.ɵɵproperty("ngModel",t.end),a.ɵɵadvance(4),a.ɵɵproperty("appApiAction",t.refreshPromise)("disabled",t.loaded&&n.loading),a.ɵɵadvance(3),a.ɵɵproperty("ngClass",a.ɵɵpureFunction1(25,w,t.loaded&&n.loading)),a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(33,23,"refresh"),"\n "),a.ɵɵadvance(5),a.ɵɵproperty("ngIf",!t.loaded),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.loaded)}},directives:[d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,m.ApiActionDirective,h.NgClass,h.NgIf,h.NgForOf],pipes:[f.I18nPipe,h.DatePipe],encapsulation:2}),e}();t.EventsComponent=C},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?e.data:[]).sort(o.Utils.getSortFunction(this.i18nService,"name")),this.groups=t,this.resetPaging(),this.loading=!1,[2]}})})},e.prototype.loadMore=function(){if(this.groups&&!(this.groups.length<=this.pageSize)){var e=this.pagedGroups.length,t=this.pageSize;0===e&&this.pagedGroupsCount>this.pageSize&&(t=this.pagedGroupsCount),this.groups.length>e&&(this.pagedGroups=this.pagedGroups.concat(this.groups.slice(e,e+t))),this.pagedGroupsCount=this.pagedGroups.length,this.didScroll=this.pagedGroups.length>this.pageSize}},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(c.GroupAddEditComponent,this.addEditModalRef);r.organizationId=this.organizationId,r.groupId=null!=e?e.id:null,r.onSavedGroup.subscribe(function(){t.modal.close(),t.load()}),r.onDeletedGroup.subscribe(function(){t.modal.close(),t.removeGroup(e)}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.add=function(){this.edit(null)},e.prototype.delete=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteGroupConfirmation"),e.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteGroup(this.organizationId,e.id)];case 3:return t.sent(),this.analytics.eventTrack.next({action:"Deleted Group"}),this.toasterService.popAsync("success",null,this.i18nService.t("deletedGroupId",e.name)),this.removeGroup(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}})})},e.prototype.users=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.usersModalRef.createComponent(n).instance;var r=this.modal.show(l.EntityUsersComponent,this.usersModalRef);r.organizationId=this.organizationId,r.entity="group",r.entityId=e.id,r.entityName=e.name,r.onEditedUsers.subscribe(function(){t.modal.close()}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.resetPaging=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return this.pagedGroups=[],this.loadMore(),[2]})})},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.groups&&this.groups.length>this.pageSize},e.prototype.removeGroup=function(e){var t=this.groups.indexOf(e);t>-1&&(this.groups.splice(t,1),this.resetPaging())},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.ActivatedRoute),p.ɵɵdirectiveInject(m.I18nService),p.ɵɵdirectiveInject(p.ComponentFactoryResolver),p.ɵɵdirectiveInject(h.Angulartics2),p.ɵɵdirectiveInject(f.ToasterService),p.ɵɵdirectiveInject(v.PlatformUtilsService),p.ɵɵdirectiveInject(y.UserService),p.ɵɵdirectiveInject(d.Router),p.ɵɵdirectiveInject(g.SearchService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-org-groups"]],viewQuery:function(e,t){var n;(1&e&&(p.ɵɵstaticViewQuery(P,!0,a.ViewContainerRef),p.ɵɵstaticViewQuery(k,!0,a.ViewContainerRef)),2&e)&&(p.ɵɵqueryRefresh(n=p.ɵɵloadQuery())&&(t.addEditModalRef=n.first),p.ɵɵqueryRefresh(n=p.ɵɵloadQuery())&&(t.usersModalRef=n.first))},decls:37,vars:20,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["usersTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover table-list","infiniteScroll","",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-users"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-trash-o"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"h1"),p.ɵɵtext(3),p.ɵɵpipe(4,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(5,"\n "),p.ɵɵelementStart(6,"div",1),p.ɵɵtext(7,"\n "),p.ɵɵelementStart(8,"div"),p.ɵɵtext(9,"\n "),p.ɵɵelementStart(10,"label",2),p.ɵɵtext(11),p.ɵɵpipe(12,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(13,"\n "),p.ɵɵelementStart(14,"input",3),p.ɵɵlistener("ngModelChange",function(e){return t.searchText=e}),p.ɵɵpipe(15,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(16,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementStart(18,"button",4),p.ɵɵlistener("click",function(){return t.add()}),p.ɵɵtext(19,"\n "),p.ɵɵelement(20,"i",5),p.ɵɵtext(21),p.ɵɵpipe(22,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(23,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(24,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(25,"\n"),p.ɵɵtemplate(26,_,9,6,"ng-container",6),p.ɵɵtext(27,"\n"),p.ɵɵtemplate(28,M,6,2,"ng-container",6),p.ɵɵpipe(29,"search"),p.ɵɵtext(30,"\n"),p.ɵɵtemplate(31,B,0,0,"ng-template",null,7,p.ɵɵtemplateRefExtractor),p.ɵɵtext(33,"\n"),p.ɵɵtemplate(34,D,0,0,"ng-template",null,8,p.ɵɵtemplateRefExtractor),p.ɵɵtext(36,"\n")),2&e&&(p.ɵɵadvance(3),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(4,7,"groups")),p.ɵɵadvance(8),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(12,9,"search")),p.ɵɵadvance(3),p.ɵɵpropertyInterpolate("placeholder",p.ɵɵpipeBind1(15,11,"search")),p.ɵɵproperty("ngModel",t.searchText),p.ɵɵadvance(7),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(22,13,"newGroup"),"\n "),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedGroups:p.ɵɵpipeBind4(29,15,t.groups,t.searchText,"name","id"))))},directives:[x.DefaultValueAccessor,x.NgControlStatus,x.NgModel,b.NgIf,S.InfiniteScrollDirective,b.NgForOf,w.StopClickDirective,C.A11yTitleDirective],pipes:[I.I18nPipe,E.SearchPipe],encapsulation:2}),e}();t.GroupsComponent=V},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(n[0].checked=!0,n[0].readOnly=e.readOnly,n[0].hidePasswords=e.hidePasswords)}),[3,5];case 4:return n.sent(),[3,5];case 5:return[3,7];case 6:this.title=this.i18nService.t("addGroup"),n.label=7;case 7:return this.loading=!1,[2]}})})},e.prototype.loadCollections=function(){return r(this,void 0,void 0,function(){var e,t,n;return i(this,function(r){switch(r.label){case 0:return[4,this.apiService.getCollections(this.organizationId)];case 1:return e=r.sent(),t=e.data.map(function(e){return new s.Collection(new o.CollectionData(e))}),n=this,[4,this.collectionService.decryptMany(t)];case 2:return n.collections=r.sent(),[2]}})})},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.collections.forEach(function(n){return t.check(n,e)})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:(e=new l.GroupRequest).name=this.name,e.externalId=this.externalId,e.accessAll="all"===this.access,e.accessAll||(e.collections=this.collections.filter(function(e){return e.checked}).map(function(e){return new c.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)})),t.label=1;case 1:return t.trys.push([1,3,,4]),this.editMode?this.formPromise=this.apiService.putGroup(this.organizationId,this.groupId,e):this.formPromise=this.apiService.postGroup(this.organizationId,e),[4,this.formPromise];case 2:return t.sent(),this.analytics.eventTrack.next({action:this.editMode?"Edited Group":"Created Group"}),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedGroupId":"createdGroupId",this.name)),this.onSavedGroup.emit(),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteGroupConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteGroup(this.organizationId,this.groupId),[4,this.deletePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Deleted Group"}),this.toasterService.popAsync("success",null,this.i18nService.t("deletedGroupId",this.name)),this.onDeletedGroup.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.Angulartics2),p.ɵɵdirectiveInject(h.ToasterService),p.ɵɵdirectiveInject(f.CollectionService),p.ɵɵdirectiveInject(v.PlatformUtilsService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-group-add-edit"]],inputs:{groupId:"groupId",organizationId:"organizationId"},outputs:{onSavedGroup:"onSavedGroup",onDeletedGroup:"onDeletedGroup"},decls:49,vars:18,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","groupAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","groupAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","externalId"],["id","externalId","type","text","name","ExternalId",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-muted"],[1,"mt-4","d-flex"],[1,"mb-2"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#access-control",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],["class","ml-auto",4,"ngIf"],[1,"form-group",3,"ngClass"],[1,"form-check"],["type","radio","name","access","id","accessAll","value","all",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessAll",1,"form-check-label"],["type","radio","name","access","id","accessSelected","value","selected",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessSelected",1,"form-check-label"],[4,"ngIf"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",function(){return t.submit()}),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,C,9,6,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵtemplate(22,O,62,30,"div",8),p.ɵɵtext(23,"\n "),p.ɵɵelementStart(24,"div",9),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",10),p.ɵɵtext(27,"\n "),p.ɵɵelement(28,"i",11),p.ɵɵpipe(29,"i18n"),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"span"),p.ɵɵtext(32),p.ɵɵpipe(33,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"button",12),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementStart(40,"div",13),p.ɵɵtext(41,"\n "),p.ɵɵtemplate(42,T,9,10,"button",14),p.ɵɵtext(43,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,10,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading),p.ɵɵadvance(4),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(29,12,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(33,14,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,16,"cancel")),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.editMode)}},directives:[y.NgControlStatusGroup,y.NgForm,g.ApiActionDirective,x.A11yTitleDirective,b.NgIf,y.DefaultValueAccessor,y.RequiredValidator,y.NgControlStatus,y.NgModel,b.NgClass,y.RadioControlValueAccessor,b.NgForOf,y.CheckboxControlValueAccessor,S.StopPropDirective],pipes:[w.I18nPipe],encapsulation:2}),e}();t.GroupAddEditComponent=M},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&t[0].status===l.OrganizationUserStatusType.Confirmed&&this.events(t[0]),null!=n&&n.unsubscribe(),[2]})})}),[2]}})})}),[2]})})},e.prototype.load=function(){return r(this,void 0,void 0,function(){var e,t=this;return i(this,function(n){switch(n.label){case 0:return[4,this.apiService.getOrganizationUsers(this.organizationId)];case 1:return e=n.sent(),this.statusMap.clear(),this.allUsers=null!=e.data&&e.data.length>0?e.data:[],this.allUsers.sort(p.Utils.getSortFunction(this.i18nService,"email")),this.allUsers.forEach(function(e){t.statusMap.has(e.status)?t.statusMap.get(e.status).push(e):t.statusMap.set(e.status,[e])}),this.filter(this.status),this.loading=!1,[2]}})})},e.prototype.filter=function(e){this.status=e,null!=this.status?this.users=this.statusMap.get(this.status):this.users=this.allUsers,this.resetPaging()},e.prototype.loadMore=function(){if(this.users&&!(this.users.length<=this.pageSize)){var e=this.pagedUsers.length,t=this.pageSize;0===e&&this.pagedUsersCount>this.pageSize&&(t=this.pagedUsersCount),this.users.length>e&&(this.pagedUsers=this.pagedUsers.concat(this.users.slice(e,e+t))),this.pagedUsersCount=this.pagedUsers.length,this.didScroll=this.pagedUsers.length>this.pageSize}},Object.defineProperty(e.prototype,"allCount",{get:function(){return null!=this.allUsers?this.allUsers.length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"invitedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Invited)?this.statusMap.get(l.OrganizationUserStatusType.Invited).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"acceptedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Accepted)?this.statusMap.get(l.OrganizationUserStatusType.Accepted).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"confirmedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Confirmed)?this.statusMap.get(l.OrganizationUserStatusType.Confirmed).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showConfirmUsers",{get:function(){return null!=this.allUsers&&null!=this.statusMap&&this.allUsers.length>1&&this.confirmedCount>0&&this.confirmedCount<3&&this.acceptedCount>0},enumerable:!0,configurable:!0}),e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(m.UserAddEditComponent,this.addEditModalRef);r.name=null!=e?e.name||e.email:null,r.organizationId=this.organizationId,r.organizationUserId=null!=e?e.id:null,r.onSavedUser.subscribe(function(){t.modal.close(),t.load()}),r.onDeletedUser.subscribe(function(){t.modal.close(),t.removeUser(e)}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.invite=function(){this.edit(null)},e.prototype.groups=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent);this.modal=this.groupsModalRef.createComponent(n).instance;var r=this.modal.show(f.UserGroupsComponent,this.groupsModalRef);r.name=null!=e?e.name||e.email:null,r.organizationId=this.organizationId,r.organizationUserId=null!=e?e.id:null,r.onSavedUser.subscribe(function(){t.modal.close()}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.remove=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("removeUserConfirmation"),e.name||e.email,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteOrganizationUser(this.organizationId,e.id)];case 3:return t.sent(),this.analytics.eventTrack.next({action:"Deleted User"}),this.toasterService.popAsync("success",null,this.i18nService.t("removedUserId",e.name||e.email)),this.removeUser(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}})})},e.prototype.reinvite=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return null!=this.actionPromise?[2]:(this.actionPromise=this.apiService.postOrganizationUserReinvite(this.organizationId,e.id),[4,this.actionPromise]);case 1:return t.sent(),this.analytics.eventTrack.next({action:"Reinvited User"}),this.toasterService.popAsync("success",null,this.i18nService.t("hasBeenReinvited",e.name||e.email)),this.actionPromise=null,[2]}})})},e.prototype.confirm=function(e){return r(this,void 0,void 0,function(){function t(t){e.status=l.OrganizationUserStatusType.Confirmed;var n=t.statusMap.get(l.OrganizationUserStatusType.Accepted).indexOf(e);n>-1&&(t.statusMap.get(l.OrganizationUserStatusType.Accepted).splice(n,1),t.statusMap.get(l.OrganizationUserStatusType.Confirmed).push(e))}var n,r,a,s=this;return i(this,function(i){switch(i.label){case 0:return null!=this.actionPromise?[2]:[4,this.storageService.get(o.ConstantsService.autoConfirmFingerprints)];case 1:return null!=(n=i.sent())&&n?(this.actionPromise=this.doConfirmation(e),[4,this.actionPromise]):(null!=this.modal&&this.modal.close(),r=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent),this.modal=this.confirmModalRef.createComponent(r).instance,(a=this.modal.show(h.UserConfirmComponent,this.confirmModalRef)).name=null!=e?e.name||e.email:null,a.organizationId=this.organizationId,a.organizationUserId=null!=e?e.id:null,a.userId=null!=e?e.userId:null,a.onConfirmedUser.subscribe(function(){s.modal.close(),t(s)}),this.modal.onClosed.subscribe(function(){s.modal=null}),[2]);case 2:return i.sent(),t(this),this.analytics.eventTrack.next({action:"Confirmed User"}),this.toasterService.popAsync("success",null,this.i18nService.t("hasBeenConfirmed",e.name||e.email)),this.actionPromise=null,[2]}})})},e.prototype.events=function(e){return r(this,void 0,void 0,function(){var t,n,r=this;return i(this,function(i){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent),this.modal=this.eventsModalRef.createComponent(t).instance,(n=this.modal.show(d.EntityEventsComponent,this.eventsModalRef)).name=e.name||e.email,n.organizationId=this.organizationId,n.entityId=e.id,n.showUser=!1,n.entity="user",this.modal.onClosed.subscribe(function(){r.modal=null}),[2]})})},e.prototype.resetPaging=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return this.pagedUsers=[],this.loadMore(),[2]})})},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.users&&this.users.length>this.pageSize},e.prototype.doConfirmation=function(e){return r(this,void 0,void 0,function(){var t,n,r,a,o,l,c,u;return i(this,function(i){switch(i.label){case 0:return[4,this.cryptoService.getOrgKey(this.organizationId)];case 1:return t=i.sent(),[4,this.apiService.getUserPublicKey(e.userId)];case 2:n=i.sent(),r=p.Utils.fromB64ToArray(n.publicKey),i.label=3;case 3:return i.trys.push([3,5,,6]),o=(a=console).log,l="User's fingerprint: ",[4,this.cryptoService.getFingerprint(e.userId,r.buffer)];case 4:return o.apply(a,[l+i.sent().join("-")]),[3,6];case 5:return i.sent(),[3,6];case 6:return[4,this.cryptoService.rsaEncrypt(t.key,r.buffer)];case 7:return c=i.sent(),(u=new s.OrganizationUserConfirmRequest).key=c.encryptedString,[4,this.apiService.postOrganizationUserConfirm(this.organizationId,e.id,u)];case 8:return i.sent(),[2]}})})},e.prototype.removeUser=function(e){var t=this.users.indexOf(e);t>-1&&(this.users.splice(t,1),this.resetPaging()),this.statusMap.has(l.OrganizationUserStatusType.Accepted)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Accepted).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Accepted).splice(t,1),this.statusMap.has(l.OrganizationUserStatusType.Invited)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Invited).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Invited).splice(t,1),this.statusMap.has(l.OrganizationUserStatusType.Confirmed)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Confirmed).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Confirmed).splice(t,1)},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.ApiService),v.ɵɵdirectiveInject(g.ActivatedRoute),v.ɵɵdirectiveInject(x.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(b.PlatformUtilsService),v.ɵɵdirectiveInject(S.Angulartics2),v.ɵɵdirectiveInject(w.ToasterService),v.ɵɵdirectiveInject(C.CryptoService),v.ɵɵdirectiveInject(I.UserService),v.ɵɵdirectiveInject(g.Router),v.ɵɵdirectiveInject(E.StorageService),v.ɵɵdirectiveInject(P.SearchService))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["app-org-people"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(j,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(R,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(F,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(U,!0,a.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.addEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.groupsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.eventsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.confirmModalRef=n.first))},decls:64,vars:45,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["role","group",1,"btn-group","btn-group-sm"],["type","button",1,"btn","btn-outline-secondary",3,"ngClass","click"],["class","badge badge-pill badge-info",4,"ngIf"],["class","badge badge-pill badge-warning",4,"ngIf"],[1,"ml-3"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["groupsTemplate",""],["eventsTemplate",""],["confirmTemplate",""],[1,"badge","badge-pill","badge-info"],[1,"badge","badge-pill","badge-warning"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","info","icon","fa-check-circle",3,"title",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["type","info","icon","fa-check-circle",3,"title"],["width","30"],["size","25",3,"data","email","circle","fontSize"],["href","#","appStopClick","",3,"click"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["class","dropdown-item","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-success","href","#","appStopClick","",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-remove"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-lock",3,"title"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-envelope-o"],["href","#","appStopClick","",1,"dropdown-item","text-success",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-check"],["aria-hidden","true",1,"fa","fa-fw","fa-sitemap"],["aria-hidden","true",1,"fa","fa-fw","fa-file-text-o"]],template:function(e,t){1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"h1"),v.ɵɵtext(3),v.ɵɵpipe(4,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(5,"\n "),v.ɵɵelementStart(6,"div",1),v.ɵɵtext(7,"\n "),v.ɵɵelementStart(8,"div",2),v.ɵɵtext(9,"\n "),v.ɵɵelementStart(10,"button",3),v.ɵɵlistener("click",function(){return t.filter(null)}),v.ɵɵtext(11),v.ɵɵpipe(12,"i18n"),v.ɵɵtemplate(13,N,2,1,"span",4),v.ɵɵtext(14,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(15,"\n "),v.ɵɵelementStart(16,"button",3),v.ɵɵlistener("click",function(){return t.filter(t.organizationUserStatusType.Invited)}),v.ɵɵtext(17),v.ɵɵpipe(18,"i18n"),v.ɵɵtemplate(19,z,2,1,"span",4),v.ɵɵtext(20,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(21,"\n "),v.ɵɵelementStart(22,"button",3),v.ɵɵlistener("click",function(){return t.filter(t.organizationUserStatusType.Accepted)}),v.ɵɵtext(23),v.ɵɵpipe(24,"i18n"),v.ɵɵtemplate(25,L,2,1,"span",5),v.ɵɵtext(26,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(27,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(28,"\n "),v.ɵɵelementStart(29,"div",6),v.ɵɵtext(30,"\n "),v.ɵɵelementStart(31,"label",7),v.ɵɵtext(32),v.ɵɵpipe(33,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(34,"\n "),v.ɵɵelementStart(35,"input",8),v.ɵɵlistener("ngModelChange",function(e){return t.searchText=e}),v.ɵɵpipe(36,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(37,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(38,"\n "),v.ɵɵelementStart(39,"button",9),v.ɵɵlistener("click",function(){return t.invite()}),v.ɵɵtext(40,"\n "),v.ɵɵelement(41,"i",10),v.ɵɵtext(42),v.ɵɵpipe(43,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(44,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(45,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(46,"\n"),v.ɵɵtemplate(47,G,9,6,"ng-container",11),v.ɵɵtext(48,"\n"),v.ɵɵtemplate(49,se,6,2,"ng-container",11),v.ɵɵpipe(50,"search"),v.ɵɵtext(51,"\n"),v.ɵɵtemplate(52,le,0,0,"ng-template",null,12,v.ɵɵtemplateRefExtractor),v.ɵɵtext(54,"\n"),v.ɵɵtemplate(55,ce,0,0,"ng-template",null,13,v.ɵɵtemplateRefExtractor),v.ɵɵtext(57,"\n"),v.ɵɵtemplate(58,pe,0,0,"ng-template",null,14,v.ɵɵtemplateRefExtractor),v.ɵɵtext(60,"\n"),v.ɵɵtemplate(61,ue,0,0,"ng-template",null,15,v.ɵɵtemplateRefExtractor),v.ɵɵtext(63,"\n")),2&e&&(v.ɵɵadvance(3),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(4,16,"people")),v.ɵɵadvance(7),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(36,de,null==t.status)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(12,18,"all"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.allCount),v.ɵɵadvance(3),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(38,de,t.status==t.organizationUserStatusType.Invited)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(18,20,"invited"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.invitedCount),v.ɵɵadvance(3),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(40,de,t.status==t.organizationUserStatusType.Accepted)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(24,22,"accepted"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.acceptedCount),v.ɵɵadvance(7),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(33,24,"search")),v.ɵɵadvance(3),v.ɵɵpropertyInterpolate("placeholder",v.ɵɵpipeBind1(36,26,"search")),v.ɵɵproperty("ngModel",t.searchText),v.ɵɵadvance(7),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(43,28,"inviteUser"),"\n "),v.ɵɵadvance(5),v.ɵɵproperty("ngIf",t.loading),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedUsers:v.ɵɵpipeBindV(50,30,v.ɵɵpureFunction2(42,me,t.users,t.searchText)))))},directives:[k.NgClass,k.NgIf,_.DefaultValueAccessor,_.NgControlStatus,_.NgModel,A.InfiniteScrollDirective,k.NgForOf,O.CalloutComponent,T.AvatarComponent,M.StopClickDirective,B.A11yTitleDirective],pipes:[D.I18nPipe,V.SearchPipe],encapsulation:2}),e}();t.PeopleComponent=he},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationUserConfirmRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(n[0].checked=!0,n[0].readOnly=e.readOnly,n[0].hidePasswords=e.hidePasswords)}),[3,5];case 4:return n.sent(),[3,5];case 5:return[3,7];case 6:this.title=this.i18nService.t("inviteUser"),n.label=7;case 7:return this.loading=!1,[2]}})})},e.prototype.loadCollections=function(){return r(this,void 0,void 0,function(){var e,t,n;return i(this,function(r){switch(r.label){case 0:return[4,this.apiService.getCollections(this.organizationId)];case 1:return e=r.sent(),t=e.data.map(function(e){return new s.Collection(new o.CollectionData(e))}),n=this,[4,this.collectionService.decryptMany(t)];case 2:return n.collections=r.sent(),[2]}})})},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.collections.forEach(function(n){return t.check(n,e)})},e.prototype.setRequestPermissions=function(e,t){return e.accessBusinessPortal=!t&&this.permissions.accessBusinessPortal,e.accessEventLogs=this.permissions.accessEventLogs=!t&&this.permissions.accessEventLogs,e.accessImportExport=!t&&this.permissions.accessImportExport,e.accessReports=!t&&this.permissions.accessReports,e.manageAllCollections=!t&&this.permissions.manageAllCollections,e.manageAssignedCollections=!t&&this.permissions.manageAssignedCollections,e.manageGroups=!t&&this.permissions.manageGroups,e.manageSso=!t&&this.permissions.manageSso,e.managePolicies=!t&&this.permissions.managePolicies,e.manageUsers=!t&&this.permissions.manageUsers,e},e.prototype.submit=function(){var e,t;return r(this,void 0,void 0,function(){var n,r;return i(this,function(i){switch(i.label){case 0:n=null,"all"!==this.access&&(n=this.collections.filter(function(e){return e.checked}).map(function(e){return new p.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)})),i.label=1;case 1:return i.trys.push([1,3,,4]),this.editMode?((r=new c.OrganizationUserUpdateRequest).accessAll="all"===this.access,r.type=this.type,r.collections=n,r.permissions=this.setRequestPermissions(null!==(e=r.permissions)&&void 0!==e?e:new d.PermissionsApi,r.type!==u.OrganizationUserType.Custom),this.formPromise=this.apiService.putOrganizationUser(this.organizationId,this.organizationUserId,r)):((r=new l.OrganizationUserInviteRequest).emails=this.emails.trim().split(/\s*,\s*/),r.accessAll="all"===this.access,r.type=this.type,r.permissions=this.setRequestPermissions(null!==(t=r.permissions)&&void 0!==t?t:new d.PermissionsApi,r.type!==u.OrganizationUserType.Custom),r.collections=n,this.formPromise=this.apiService.postOrganizationUserInvite(this.organizationId,r)),[4,this.formPromise];case 2:return i.sent(),this.analytics.eventTrack.next({action:this.editMode?"Edited User":"Invited User"}),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedUserId":"invitedUsers",this.name)),this.onSavedUser.emit(),[3,4];case 3:return i.sent(),[3,4];case 4:return[2]}})})},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("removeUserConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteOrganizationUser(this.organizationId,this.organizationUserId),[4,this.deletePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Deleted User"}),this.toasterService.popAsync("success",null,this.i18nService.t("removedUserId",this.name)),this.onDeletedUser.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.ɵfac=function(t){return new(t||e)(m.ɵɵdirectiveInject(h.ApiService),m.ɵɵdirectiveInject(f.I18nService),m.ɵɵdirectiveInject(v.Angulartics2),m.ɵɵdirectiveInject(y.ToasterService),m.ɵɵdirectiveInject(g.CollectionService),m.ɵɵdirectiveInject(x.PlatformUtilsService))},e.ɵcmp=m.ɵɵdefineComponent({type:e,selectors:[["app-user-add-edit"]],inputs:{name:"name",organizationUserId:"organizationUserId",organizationId:"organizationId"},outputs:{onSavedUser:"onSavedUser",onDeletedUser:"onDeletedUser"},decls:51,vars:19,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAddEditTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[4,"ngIf"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#user-types",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-check","mt-2","form-check-block"],["type","radio","name","userType","id","userTypeUser",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeUser",1,"form-check-label"],["type","radio","name","userType","id","userTypeManager",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeManager",1,"form-check-label"],["type","radio","name","userType","id","userTypeAdmin",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeAdmin",1,"form-check-label"],["type","radio","name","userType","id","userTypeOwner",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeOwner",1,"form-check-label"],["type","radio","name","userType","id","userTypeCustom",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeCustom",1,"form-check-label"],[1,"mt-4","d-flex"],[1,"mb-3"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#access-control",3,"appA11yTitle"],["class","ml-auto",4,"ngIf"],[1,"form-group",3,"ngClass"],[1,"form-check"],["type","radio","name","access","id","accessAll","value","all",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessAll",1,"form-check-label"],["type","radio","name","access","id","accessSelected","value","selected",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessSelected",1,"form-check-label"],[1,"form-group","mb-4"],["for","emails"],["id","emails","type","text","name","Emails","required","","appAutoFocus","",1,"form-control",3,"ngModel","ngModelChange"],[1,"row"],[1,"col-6"],[1,"font-weight-bold","mb-0"],[1,"my-0","mr-2"],[1,"form-group","mb-0"],[1,"form-check","mt-1","form-check-block"],["type","checkbox","name","manageAssignedCollections","id","manageAssignedCollections",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageAssignedCollections",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessBusinessPortal","id","accessBusinessPortal",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessBusinessPortal",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessEventLogs","id","accessEventLogs",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessEventLogs",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessImportExport","id","accessImportExport",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessImportExport",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessReports","id","accessReports",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessReports",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageAllCollections","id","manageAllCollections",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageAllCollections",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageGroups","id","manageGroups",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageGroups",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageSso","id","managePolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageSso",1,"form-check-label","font-weight-normal"],["type","checkbox","name","managePolicies","id","managePolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","managePolicies",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageUsers","id","manageUsers",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageUsers",1,"form-check-label","font-weight-normal"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"form",2,3),m.ɵɵlistener("ngSubmit",function(){return t.submit()}),m.ɵɵtext(6,"\n "),m.ɵɵelementStart(7,"div",4),m.ɵɵtext(8,"\n "),m.ɵɵelementStart(9,"h2",5),m.ɵɵtext(10),m.ɵɵtemplate(11,P,2,1,"small",6),m.ɵɵtext(12,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(13,"\n "),m.ɵɵelementStart(14,"button",7),m.ɵɵpipe(15,"i18n"),m.ɵɵtext(16,"\n "),m.ɵɵelementStart(17,"span",8),m.ɵɵtext(18,"×"),m.ɵɵelementEnd(),m.ɵɵtext(19,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(20,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(21,"\n "),m.ɵɵtemplate(22,k,9,6,"div",9),m.ɵɵtext(23,"\n "),m.ɵɵtemplate(24,j,119,67,"div",9),m.ɵɵtext(25,"\n "),m.ɵɵelementStart(26,"div",10),m.ɵɵtext(27,"\n "),m.ɵɵelementStart(28,"button",11),m.ɵɵtext(29,"\n "),m.ɵɵelement(30,"i",12),m.ɵɵpipe(31,"i18n"),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"span"),m.ɵɵtext(34),m.ɵɵpipe(35,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(36,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(37,"\n "),m.ɵɵelementStart(38,"button",13),m.ɵɵtext(39),m.ɵɵpipe(40,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(41,"\n "),m.ɵɵelementStart(42,"div",14),m.ɵɵtext(43,"\n "),m.ɵɵtemplate(44,R,9,10,"button",15),m.ɵɵtext(45,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(46,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(47,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(48,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(49,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(50,"\n")),2&e){var n=m.ɵɵreference(5);m.ɵɵadvance(4),m.ɵɵproperty("appApiAction",t.formPromise),m.ɵɵadvance(6),m.ɵɵtextInterpolate1("\n ",t.title,"\n "),m.ɵɵadvance(1),m.ɵɵproperty("ngIf",t.name),m.ɵɵadvance(3),m.ɵɵpropertyInterpolate("appA11yTitle",m.ɵɵpipeBind1(15,11,"close")),m.ɵɵadvance(8),m.ɵɵproperty("ngIf",t.loading),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",!t.loading),m.ɵɵadvance(4),m.ɵɵproperty("disabled",n.loading),m.ɵɵadvance(2),m.ɵɵpropertyInterpolate("title",m.ɵɵpipeBind1(31,13,"loading")),m.ɵɵadvance(4),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(35,15,"save")),m.ɵɵadvance(5),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(40,17,"cancel")),m.ɵɵadvance(5),m.ɵɵproperty("ngIf",t.editMode)}},directives:[b.NgControlStatusGroup,b.NgForm,S.ApiActionDirective,w.NgIf,C.A11yTitleDirective,b.RadioControlValueAccessor,b.DefaultValueAccessor,b.NgControlStatus,b.NgModel,w.NgClass,b.RequiredValidator,b.CheckboxControlValueAccessor,w.NgForOf,I.StopPropDirective],pipes:[E.I18nPipe],encapsulation:2}),e}();t.UserAddEditComponent=F},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(t[0].checked=!0)}),[3,5];case 4:return i.sent(),[3,5];case 5:return this.loading=!1,[2]}})})},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.groups.forEach(function(n){return t.check(n,e)})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:(e=new o.OrganizationUserUpdateGroupsRequest).groupIds=this.groups.filter(function(e){return e.checked}).map(function(e){return e.id}),t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.apiService.putOrganizationUserGroups(this.organizationId,this.organizationUserId,e),[4,this.formPromise];case 2:return t.sent(),this.analytics.eventTrack.next({action:"Edited User Groups"}),this.toasterService.popAsync("success",null,this.i18nService.t("editedGroupsForUser",this.name)),this.onSavedUser.emit(),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(c.ApiService),l.ɵɵdirectiveInject(p.I18nService),l.ɵɵdirectiveInject(u.Angulartics2),l.ɵɵdirectiveInject(d.ToasterService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["app-user-groups"]],inputs:{name:"name",organizationUserId:"organizationUserId",organizationId:"organizationId"},outputs:{onSavedUser:"onSavedUser"},decls:47,vars:20,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","groupAccessTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","groupAccessTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[4,"ngIf"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"]],template:function(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtext(1,"\n "),l.ɵɵelementStart(2,"div",1),l.ɵɵtext(3,"\n "),l.ɵɵelementStart(4,"form",2,3),l.ɵɵlistener("ngSubmit",function(){return t.submit()}),l.ɵɵtext(6,"\n "),l.ɵɵelementStart(7,"div",4),l.ɵɵtext(8,"\n "),l.ɵɵelementStart(9,"h2",5),l.ɵɵtext(10),l.ɵɵpipe(11,"i18n"),l.ɵɵtemplate(12,x,2,1,"small",6),l.ɵɵtext(13,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(14,"\n "),l.ɵɵelementStart(15,"button",7),l.ɵɵpipe(16,"i18n"),l.ɵɵtext(17,"\n "),l.ɵɵelementStart(18,"span",8),l.ɵɵtext(19,"×"),l.ɵɵelementEnd(),l.ɵɵtext(20,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(21,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(22,"\n "),l.ɵɵtemplate(23,b,9,6,"div",9),l.ɵɵtext(24,"\n "),l.ɵɵtemplate(25,I,10,5,"div",9),l.ɵɵtext(26,"\n "),l.ɵɵelementStart(27,"div",10),l.ɵɵtext(28,"\n "),l.ɵɵelementStart(29,"button",11),l.ɵɵtext(30,"\n "),l.ɵɵelement(31,"i",12),l.ɵɵpipe(32,"i18n"),l.ɵɵtext(33,"\n "),l.ɵɵelementStart(34,"span"),l.ɵɵtext(35),l.ɵɵpipe(36,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(37,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(38,"\n "),l.ɵɵelementStart(39,"button",13),l.ɵɵtext(40),l.ɵɵpipe(41,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(42,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(43,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(44,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(45,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(46,"\n")),2&e){var n=l.ɵɵreference(5);l.ɵɵadvance(4),l.ɵɵproperty("appApiAction",t.formPromise),l.ɵɵadvance(6),l.ɵɵtextInterpolate1("\n ",l.ɵɵpipeBind1(11,10,"groupAccess"),"\n "),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.name),l.ɵɵadvance(3),l.ɵɵpropertyInterpolate("appA11yTitle",l.ɵɵpipeBind1(16,12,"close")),l.ɵɵadvance(8),l.ɵɵproperty("ngIf",t.loading),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",!t.loading),l.ɵɵadvance(4),l.ɵɵproperty("disabled",n.loading),l.ɵɵadvance(2),l.ɵɵpropertyInterpolate("title",l.ɵɵpipeBind1(32,14,"loading")),l.ɵɵadvance(4),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(36,16,"save")),l.ɵɵadvance(5),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(41,18,"cancel"))}},directives:[m.ɵangular_packages_forms_forms_y,m.NgControlStatusGroup,m.NgForm,h.ApiActionDirective,f.NgIf,v.A11yTitleDirective,f.NgForOf,m.CheckboxControlValueAccessor,y.StopPropDirective,m.NgControlStatus,m.NgModel],pipes:[g.I18nPipe],encapsulation:2}),e}();t.UserGroupsComponent=E},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?e.data:[],this.orgPolicies.forEach(function(e){t.policiesEnabledMap.set(e.type,e.enabled)}),this.policies.forEach(function(e){e.enabled=t.policiesEnabledMap.has(e.type)&&t.policiesEnabledMap.get(e.type)}),this.loading=!1,[2]}})})},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.editModalRef.createComponent(n).instance;var r=this.modal.show(l.PolicyEditComponent,this.editModalRef);r.name=e.name,r.description=e.description,r.type=e.type,r.organizationId=this.organizationId,r.policiesEnabledMap=this.policiesEnabledMap,r.onSavedPolicy.subscribe(function(){t.modal.close(),t.load()}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.goToEnterprisePortal=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:if(null!=this.enterpriseTokenPromise)return[2];n.label=1;case 1:return n.trys.push([1,5,,6]),this.enterpriseTokenPromise=this.apiService.getEnterprisePortalSignInToken(),[4,this.enterpriseTokenPromise];case 2:return null==(e=n.sent())?[3,4]:[4,this.userService.getUserId()];case 3:t=n.sent(),this.platformUtilsService.launchUri(this.enterpriseUrl+"/login?userId="+t+"&token="+window.encodeURIComponent(e)+"&organizationId="+this.organizationId),n.label=4;case 4:return[3,6];case 5:return n.sent(),[3,6];case 6:return this.enterpriseTokenPromise=null,[2]}})})},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.ApiService),c.ɵɵdirectiveInject(u.ActivatedRoute),c.ɵɵdirectiveInject(d.I18nService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(m.PlatformUtilsService),c.ɵɵdirectiveInject(h.UserService),c.ɵɵdirectiveInject(u.Router),c.ɵɵdirectiveInject(f.EnvironmentService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["app-org-policies"]],viewQuery:function(e,t){var n;(1&e&&c.ɵɵstaticViewQuery(b,!0,a.ViewContainerRef),2&e)&&(c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.editModalRef=n.first))},decls:16,vars:6,consts:[[3,"type",4,"ngIf"],[1,"page-header","d-flex"],[4,"ngIf"],["class","table table-hover table-list",4,"ngIf"],["editTemplate",""],[3,"type"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"table","table-hover","table-list"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],["class","badge badge-success",4,"ngIf"],[1,"text-muted","d-block"],[1,"badge","badge-success"]],template:function(e,t){1&e&&(c.ɵɵtemplate(0,S,10,7,"app-callout",0),c.ɵɵtext(1,"\n"),c.ɵɵelementStart(2,"div",1),c.ɵɵtext(3,"\n "),c.ɵɵelementStart(4,"h1"),c.ɵɵtext(5),c.ɵɵpipe(6,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵtemplate(9,w,9,6,"ng-container",2),c.ɵɵtext(10,"\n"),c.ɵɵtemplate(11,P,7,1,"table",3),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,k,0,0,"ng-template",null,4,c.ɵɵtemplateRefExtractor),c.ɵɵtext(15,"\n")),2&e&&(c.ɵɵproperty("ngIf",t.userCanAccessBusinessPortal),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(6,4,"policies")),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",!t.loading))},directives:[v.NgIf,y.CalloutComponent,v.NgForOf,g.StopClickDirective],pipes:[x.I18nPipe],encapsulation:2}),e}();t.PoliciesComponent=_},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(6);t.ApiService=r.ApiService;var i=n(850);t.AppIdService=i.AppIdService;var a=n(88);t.AuditService=a.AuditService;var o=n(59);t.AuthService=o.AuthService;var s=n(20);t.CipherService=s.CipherService;var l=n(41);t.CollectionService=l.CollectionService;var c=n(19);t.CryptoService=c.CryptoService;var p=n(65);t.EnvironmentService=p.EnvironmentService;var u=n(49);t.FolderService=u.FolderService;var d=n(3);t.I18nService=d.I18nService;var m=n(851);t.LogService=m.LogService;var h=n(15);t.MessagingService=h.MessagingService;var f=n(36);t.PasswordGenerationService=f.PasswordGenerationService;var v=n(5);t.PlatformUtilsService=v.PlatformUtilsService;var y=n(81);t.SearchService=y.SearchService;var g=n(278);t.SettingsService=g.SettingsService;var x=n(42);t.StorageService=x.StorageService;var b=n(39);t.StateService=b.StateService;var S=n(62);t.SyncService=S.SyncService;var w=n(101);t.TokenService=w.TokenService;var C=n(115);t.TotpService=C.TotpService;var I=n(7);t.UserService=I.UserService;var E=n(112);t.VaultTimeoutService=E.VaultTimeoutService},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1?"×"+n.quantity:""," @ ",o.ɵɵpipeBind2(4,5,n.amount,"$"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate2("\n ",o.ɵɵpipeBind2(8,8,n.quantity*n.amount,"$")," /",o.ɵɵpipeBind1(9,11,n.interval),"\n ")}}function V(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",20),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"strong",21),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"table",22),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"tbody"),o.ɵɵtext(9,"\n "),o.ɵɵtemplate(10,D,11,13,"tr",23),o.ɵɵtext(11,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(4,2,"details")),o.ɵɵadvance(7),o.ɵɵproperty("ngForOf",n.subscription.items)}}function j(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",14),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",15),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"dl"),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"dt"),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementStart(10,"dd"),o.ɵɵtext(11),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,B,23,15,"ng-container",1),o.ɵɵtext(14,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(15,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(16,"\n "),o.ɵɵtemplate(17,V,14,4,"div",16),o.ɵɵtext(18,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(7),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(8,4,"billingPlan")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(n.sub.plan.name),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",n.subscription)}}function R(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",27),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",28),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"button",29),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!1)}),o.ɵɵpipe(5,"i18n"),o.ɵɵelementStart(6,"span",30),o.ɵɵtext(7,"×"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementStart(9,"h3",31),o.ɵɵtext(10),o.ɵɵpipe(11,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementStart(13,"app-update-license",32),o.ɵɵlistener("onUpdated",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!0)})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!1)}),o.ɵɵelementEnd(),o.ɵɵtext(14,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(15,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(3);o.ɵɵadvance(4),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(5,3,"cancel")),o.ɵɵadvance(6),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(11,5,"updateLicense")),o.ɵɵadvance(3),o.ɵɵproperty("organizationId",r.organizationId)}}function F(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div"),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"button",24),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).updateLicense()}),o.ɵɵtext(5),o.ɵɵpipe(6,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"a",25),o.ɵɵtext(9),o.ɵɵpipe(10,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(11,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,R,16,7,"div",26),o.ɵɵtext(14,"\n "),o.ɵɵelementContainerEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(5),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(6,3,"updateLicense"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(10,5,"manageSubscription"),"\n "),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",r.showUpdateLicense)}}function U(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",24),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).changePlan()}),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"changeBillingPlan"),"\n "))}function N(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",42),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).downloadLicense()}),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(3);o.ɵɵproperty("disabled",r.showDownloadLicense),o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,2,"downloadLicense"),"\n ")}}function z(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",43,44),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).cancel()}),o.ɵɵtext(2,"\n "),o.ɵɵelement(3,"i",10),o.ɵɵpipe(4,"i18n"),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"span"),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵreference(1),i=o.ɵɵnextContext(3);o.ɵɵproperty("appApiAction",i.cancelPromise)("disabled",r.loading),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(4,4,"loading")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(8,6,"cancelSubscription"))}}function L(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"app-change-plan",45),o.ɵɵlistener("onChanged",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeChangePlan(!0)})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeChangePlan(!1)}),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(3);o.ɵɵproperty("organizationId",r.organizationId)}}function G(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",46),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"app-download-license",47),o.ɵɵlistener("onDownloaded",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeDownloadLicense()})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeDownloadLicense()}),o.ɵɵelementEnd(),o.ɵɵtext(3,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(3);o.ɵɵadvance(2),o.ɵɵproperty("organizationId",r.organizationId)}}function K(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",33),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"button",24),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustSeats(!0)}),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"button",50),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustSeats(!1)}),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(4,2,"addSeats"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(8,4,"removeSeats"),"\n "))}function q(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"app-adjust-seats",51),o.ɵɵlistener("onAdjusted",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeSeats(!0)})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeSeats(!1)}),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(4);o.ɵɵproperty("seatPrice",r.seatPrice)("add",r.adjustSeatsAdd)("organizationId",r.organizationId)("interval",r.billingInterval)}}function W(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",46),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,K,10,6,"div",48),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,q,1,4,"app-adjust-seats",49),o.ɵɵtext(7,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.showAdjustSeats),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.showAdjustSeats)}}function H(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",33),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"button",24),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustStorage(!0)}),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"button",50),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustStorage(!1)}),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(4,2,"addStorage"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(8,4,"removeStorage"),"\n "))}function $(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"app-adjust-storage",53),o.ɵɵlistener("onAdjusted",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeStorage(!0)})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeStorage(!1)}),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(4);o.ɵɵproperty("storageGbPrice",r.storageGbPrice)("add",r.adjustStorageAdd)("organizationId",r.organizationId)("interval",r.billingInterval)}}function Y(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",46),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,H,10,6,"div",48),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,$,1,4,"app-adjust-storage",52),o.ɵɵtext(7,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.showAdjustStorage),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.showAdjustStorage)}}var Q=function(e){return{width:e}};function J(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",33),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,U,3,3,"button",34),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,N,3,4,"button",35),o.ɵɵtext(7,"\n "),o.ɵɵtemplate(8,z,10,8,"button",36),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(10,"\n "),o.ɵɵtemplate(11,L,1,1,"app-change-plan",37),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,G,4,1,"div",38),o.ɵɵtext(14,"\n "),o.ɵɵelementStart(15,"h2",39),o.ɵɵtext(16),o.ɵɵpipe(17,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(18,"\n "),o.ɵɵelementStart(19,"p"),o.ɵɵtext(20),o.ɵɵpipe(21,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(22,"\n "),o.ɵɵtemplate(23,W,9,2,"ng-container",1),o.ɵɵtext(24,"\n "),o.ɵɵelementStart(25,"h2",39),o.ɵɵtext(26),o.ɵɵpipe(27,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(28,"\n "),o.ɵɵelementStart(29,"p"),o.ɵɵtext(30),o.ɵɵpipe(31,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(32,"\n "),o.ɵɵelementStart(33,"div",40),o.ɵɵtext(34,"\n "),o.ɵɵelementStart(35,"div",41),o.ɵɵtext(36),o.ɵɵpipe(37,"percent"),o.ɵɵelementEnd(),o.ɵɵtext(38,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(39,"\n "),o.ɵɵtemplate(40,Y,9,2,"ng-container",1),o.ɵɵtext(41,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.showChangePlan),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.canDownloadLicense),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),o.ɵɵadvance(3),o.ɵɵproperty("ngIf",n.showChangePlan),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.showDownloadLicense),o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(17,14,"userSeats")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind2(21,16,"subscriptionUserSeats",n.sub.seats)),o.ɵɵadvance(3),o.ɵɵproperty("ngIf",n.subscription&&n.canAdjustSeats&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(27,19,"storage")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind3(31,21,"subscriptionStorage",n.sub.maxStorageGb||0,n.sub.storageName||"0 MB")),o.ɵɵadvance(5),o.ɵɵproperty("ngStyle",o.ɵɵpureFunction1(27,Q,n.storageProgressWidth+"%")),o.ɵɵattribute("aria-valuenow",n.storagePercentage),o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(37,25,n.storagePercentage/100),""),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel)}}function X(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵtemplate(2,P,4,6,"app-callout",5),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,k,18,14,"app-callout",5),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,T,17,9,"dl",1),o.ɵɵtext(7,"\n "),o.ɵɵtemplate(8,j,19,6,"div",6),o.ɵɵtext(9,"\n "),o.ɵɵtemplate(10,F,15,7,"ng-container",1),o.ɵɵtext(11,"\n "),o.ɵɵtemplate(12,J,42,29,"ng-container",1),o.ɵɵtext(13,"\n"),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription&&n.subscription.cancelled),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!n.selfHosted)}}var Z=function(){function e(e,t,n,r,i,a,o){this.apiService=e,this.platformUtilsService=t,this.i18nService=n,this.analytics=r,this.toasterService=i,this.messagingService=a,this.route=o,this.loading=!1,this.firstLoaded=!1,this.adjustSeatsAdd=!0,this.showAdjustSeats=!1,this.adjustStorageAdd=!0,this.showAdjustStorage=!1,this.showUpdateLicense=!1,this.showDownloadLicense=!1,this.showChangePlan=!1,this.selfHosted=!1,this.selfHosted=t.isSelfHost()}return e.prototype.ngOnInit=function(){return r(this,void 0,void 0,function(){var e=this;return i(this,function(t){return this.route.parent.parent.params.subscribe(function(t){return r(e,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.organizationId=t.organizationId,[4,this.load()];case 1:return e.sent(),this.firstLoaded=!0,[2]}})})}),[2]})})},e.prototype.load=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return this.loading?[2]:(this.loading=!0,e=this,[4,this.apiService.getOrganizationSubscription(this.organizationId)]);case 1:return e.sub=t.sent(),this.loading=!1,[2]}})})},e.prototype.reinstate=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.loading?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("reinstateConfirmation"),this.i18nService.t("reinstateSubscription"),this.i18nService.t("yes"),this.i18nService.t("cancel"))];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.reinstatePromise=this.apiService.postOrganizationReinstate(this.organizationId),[4,this.reinstatePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Reinstated Plan"}),this.toasterService.popAsync("success",null,this.i18nService.t("reinstated")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.prototype.cancel=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.loading?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("cancelConfirmation"),this.i18nService.t("cancelSubscription"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.cancelPromise=this.apiService.postOrganizationCancel(this.organizationId),[4,this.cancelPromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Canceled Plan"}),this.toasterService.popAsync("success",null,this.i18nService.t("canceledSubscription")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.prototype.changePlan=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return null==this.subscription&&this.sub.planType===a.PlanType.Free?(this.showChangePlan=!this.showChangePlan,[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("changeBillingPlanDesc"),this.i18nService.t("changeBillingPlan"),this.i18nService.t("contactSupport"),this.i18nService.t("close"))];case 1:return e.sent()&&this.platformUtilsService.launchUri("https://bitwarden.com/contact"),[2]}})})},e.prototype.closeChangePlan=function(e){this.showChangePlan=!1},e.prototype.downloadLicense=function(){this.showDownloadLicense=!this.showDownloadLicense},e.prototype.closeDownloadLicense=function(){this.showDownloadLicense=!1},e.prototype.updateLicense=function(){this.loading||(this.showUpdateLicense=!0)},e.prototype.closeUpdateLicense=function(e){this.showUpdateLicense=!1,e&&(this.load(),this.messagingService.send("updatedOrgLicense"))},e.prototype.adjustSeats=function(e){this.adjustSeatsAdd=e,this.showAdjustSeats=!0},e.prototype.closeSeats=function(e){this.showAdjustSeats=!1,e&&this.load()},e.prototype.adjustStorage=function(e){this.adjustStorageAdd=e,this.showAdjustStorage=!0},e.prototype.closeStorage=function(e){this.showAdjustStorage=!1,e&&this.load()},Object.defineProperty(e.prototype,"isExpired",{get:function(){return null!=this.sub&&null!=this.sub.expiration&&new Date(this.sub.expiration)0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]

'+this.i18nService.t("twoFactorRecoveryYourCode")+":

"+this.code+'

'+new Date+"

"),e.onafterprint=function(){return e.close()},e.print()},e.prototype.formatString=function(e){return null==e?null:e.replace(/(.{4})/g,"$1 ").trim().toUpperCase()},e.prototype.processResponse=function(e){this.code=this.formatString(e.code)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(a.I18nService))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["app-two-factor-recovery"]],decls:31,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","2faRecoveryTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content"],[1,"modal-header"],["id","2faRecoveryTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[3,"organizationId","type","onAuthed",4,"ngIf"],[4,"ngIf"],[3,"organizationId","type","onAuthed"],[1,"modal-body","text-center"],[1,"modal-footer"],["type","button","class","btn btn-primary",3,"click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-lg"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵtext(1,"\n "),i.ɵɵelementStart(2,"div",1),i.ɵɵtext(3,"\n "),i.ɵɵelementStart(4,"div",2),i.ɵɵtext(5,"\n "),i.ɵɵelementStart(6,"div",3),i.ɵɵtext(7,"\n "),i.ɵɵelementStart(8,"h2",4),i.ɵɵtext(9),i.ɵɵpipe(10,"i18n"),i.ɵɵelementStart(11,"small"),i.ɵɵtext(12),i.ɵɵpipe(13,"i18n"),i.ɵɵelementEnd(),i.ɵɵtext(14,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(15,"\n "),i.ɵɵelementStart(16,"button",5),i.ɵɵpipe(17,"i18n"),i.ɵɵtext(18,"\n "),i.ɵɵelementStart(19,"span",6),i.ɵɵtext(20,"×"),i.ɵɵelementEnd(),i.ɵɵtext(21,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(22,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(23,"\n "),i.ɵɵtemplate(24,p,2,2,"app-two-factor-verify",7),i.ɵɵtext(25,"\n "),i.ɵɵtemplate(26,h,18,6,"ng-container",8),i.ɵɵtext(27,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(28,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(29,"\n"),i.ɵɵelementEnd(),i.ɵɵtext(30,"\n")),2&e&&(i.ɵɵadvance(9),i.ɵɵtextInterpolate1("\n ",i.ɵɵpipeBind1(10,5,"twoStepLogin"),"\n "),i.ɵɵadvance(3),i.ɵɵtextInterpolate(i.ɵɵpipeBind1(13,7,"recoveryCodeTitle")),i.ɵɵadvance(4),i.ɵɵpropertyInterpolate("appA11yTitle",i.ɵɵpipeBind1(17,9,"close")),i.ɵɵadvance(8),i.ɵɵproperty("ngIf",!t.authed),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.authed))},directives:[o.A11yTitleDirective,s.NgIf,l.TwoFactorVerifyComponent],pipes:[c.I18nPipe],encapsulation:2}),e}();t.TwoFactorRecoveryComponent=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1&&n.configured)}}function j(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",41),d.ɵɵtext(3,"\n "),d.ɵɵelementContainerEnd())}function R(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",41),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fWaiting"),"...\n "))}function F(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",42),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fClickSave"),"\n "))}function U(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",43),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fProblemReadingTryAgain"),"\n "))}function N(e,t){if(1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵtemplate(2,R,5,3,"ng-container",25),d.ɵɵtext(3,"\n "),d.ɵɵtemplate(4,F,5,3,"ng-container",25),d.ɵɵtext(5,"\n "),d.ɵɵtemplate(6,U,5,3,"ng-container",25),d.ɵɵtext(7,"\n "),d.ɵɵelementContainerEnd()),2&e){var n=d.ɵɵnextContext(2);d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.u2fListening),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.u2fResponse),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.u2fError)}}function z(e,t){1&e&&(d.ɵɵelement(0,"i",44),d.ɵɵpipe(1,"i18n")),2&e&&d.ɵɵpropertyInterpolate("title",d.ɵɵpipeBind1(1,1,"loading"))}function L(e,t){1&e&&(d.ɵɵelementStart(0,"span"),d.ɵɵtext(1),d.ɵɵpipe(2,"i18n"),d.ɵɵelementEnd()),2&e&&(d.ɵɵadvance(1),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(2,1,"save")))}function G(e,t){if(1&e){var n=d.ɵɵgetCurrentView();d.ɵɵelementStart(0,"button",45,46),d.ɵɵlistener("click",function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext(2).disable()}),d.ɵɵtext(2,"\n "),d.ɵɵelement(3,"i",44),d.ɵɵpipe(4,"i18n"),d.ɵɵtext(5,"\n "),d.ɵɵelementStart(6,"span"),d.ɵɵtext(7),d.ɵɵpipe(8,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(9,"\n "),d.ɵɵelementEnd()}if(2&e){var r=d.ɵɵreference(1),i=d.ɵɵnextContext(2);d.ɵɵproperty("appApiAction",i.disablePromise)("disabled",r.loading),d.ɵɵadvance(3),d.ɵɵpropertyInterpolate("title",d.ɵɵpipeBind1(4,4,"loading")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(8,6,"disableAllKeys"))}}function K(e,t){if(1&e){var n=d.ɵɵgetCurrentView();d.ɵɵelementStart(0,"form",10,11),d.ɵɵlistener("ngSubmit",function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext().submit()}),d.ɵɵtext(2,"\n "),d.ɵɵelementStart(3,"div",12),d.ɵɵtext(4,"\n "),d.ɵɵtemplate(5,k,4,6,"app-callout",13),d.ɵɵtext(6,"\n "),d.ɵɵelementStart(7,"app-callout",14),d.ɵɵtext(8,"\n "),d.ɵɵelementStart(9,"p"),d.ɵɵtext(10),d.ɵɵpipe(11,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(12,"\n "),d.ɵɵelementStart(13,"ul",15),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"li"),d.ɵɵtext(16),d.ɵɵpipe(17,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(18,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(19,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(20,"\n "),d.ɵɵelement(21,"img",16),d.ɵɵtext(22,"\n "),d.ɵɵelementStart(23,"ul",17),d.ɵɵtext(24,"\n "),d.ɵɵtemplate(25,V,13,5,"li",18),d.ɵɵtext(26,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(27,"\n "),d.ɵɵelement(28,"hr"),d.ɵɵtext(29,"\n "),d.ɵɵelementStart(30,"p"),d.ɵɵtext(31),d.ɵɵpipe(32,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(33,"\n "),d.ɵɵelementStart(34,"ol"),d.ɵɵtext(35,"\n "),d.ɵɵelementStart(36,"li"),d.ɵɵtext(37),d.ɵɵpipe(38,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(39,"\n "),d.ɵɵelementStart(40,"li"),d.ɵɵtext(41),d.ɵɵpipe(42,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(43,"\n "),d.ɵɵelementStart(44,"li"),d.ɵɵtext(45),d.ɵɵpipe(46,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(47,"\n "),d.ɵɵelementStart(48,"li"),d.ɵɵtext(49),d.ɵɵpipe(50,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(51,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(52,"\n "),d.ɵɵelementStart(53,"div",19),d.ɵɵtext(54,"\n "),d.ɵɵelementStart(55,"div",20),d.ɵɵtext(56,"\n "),d.ɵɵelementStart(57,"label",21),d.ɵɵtext(58),d.ɵɵpipe(59,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(60,"\n "),d.ɵɵelementStart(61,"input",22),d.ɵɵlistener("ngModelChange",function(e){return d.ɵɵrestoreView(n),d.ɵɵnextContext().name=e}),d.ɵɵelementEnd(),d.ɵɵtext(62,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(63,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(64,"\n "),d.ɵɵelementStart(65,"button",23,24),d.ɵɵlistener("click",function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext().readKey()}),d.ɵɵtext(67),d.ɵɵpipe(68,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(69,"\n "),d.ɵɵtemplate(70,j,4,0,"ng-container",25),d.ɵɵtext(71,"\n "),d.ɵɵtemplate(72,N,8,3,"ng-container",25),d.ɵɵtext(73,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(74,"\n "),d.ɵɵelementStart(75,"div",26),d.ɵɵtext(76,"\n "),d.ɵɵelementStart(77,"button",27),d.ɵɵtext(78,"\n "),d.ɵɵtemplate(79,z,2,3,"i",28),d.ɵɵtext(80,"\n "),d.ɵɵtemplate(81,L,3,3,"span",25),d.ɵɵtext(82,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(83,"\n "),d.ɵɵtemplate(84,G,10,8,"button",29),d.ɵɵtext(85,"\n "),d.ɵɵelementStart(86,"button",30),d.ɵɵtext(87),d.ɵɵpipe(88,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(89,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(90,"\n "),d.ɵɵelementEnd()}if(2&e){var r=d.ɵɵreference(1),i=d.ɵɵreference(66),a=d.ɵɵnextContext();d.ɵɵproperty("appApiAction",a.formPromise),d.ɵɵadvance(5),d.ɵɵproperty("ngIf",a.enabled),d.ɵɵadvance(5),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(11,23,"twoFactorU2fWarning")),d.ɵɵadvance(6),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(17,25,"twoFactorU2fSupportWeb")),d.ɵɵadvance(9),d.ɵɵproperty("ngForOf",a.keys),d.ɵɵadvance(6),d.ɵɵtextInterpolate1("",d.ɵɵpipeBind1(32,27,"twoFactorU2fAdd"),":"),d.ɵɵadvance(6),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(38,29,"twoFactorU2fGiveName")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(42,31,"twoFactorU2fPlugInReadKey")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(46,33,"twoFactorU2fTouchButton")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(50,35,"twoFactorU2fSaveForm")),d.ɵɵadvance(9),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(59,37,"name")),d.ɵɵadvance(3),d.ɵɵproperty("ngModel",a.name)("disabled",!a.keyIdAvailable),d.ɵɵadvance(4),d.ɵɵproperty("disabled",i.loading||a.u2fListening||!a.keyIdAvailable)("appApiAction",a.challengePromise),d.ɵɵadvance(2),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(68,39,"readKey"),"\n "),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",i.loading),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",!i.loading),d.ɵɵadvance(5),d.ɵɵproperty("disabled",r.loading||!a.u2fResponse),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",r.loading),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",!r.loading),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",a.enabled),d.ɵɵadvance(3),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(88,41,"close"))}}var q=function(e){function t(t,n,r,i,a,o){var l=e.call(this,t,n,r,i,a)||this;return l.ngZone=o,l.type=s.TwoFactorProviderType.U2f,l.keyIdAvailable=null,l.keysConfiguredCount=0,l.u2fScript=window.document.createElement("script"),l.u2fScript.src="scripts/u2f.js",l.u2fScript.async=!0,l}return i(t,e),t.prototype.ngOnInit=function(){window.document.body.appendChild(this.u2fScript)},t.prototype.ngOnDestroy=function(){window.document.body.removeChild(this.u2fScript)},t.prototype.auth=function(t){e.prototype.auth.call(this,t),this.processResponse(t.response)},t.prototype.submit=function(){var t=this;if(null==this.u2fResponse||null==this.keyIdAvailable)return Promise.reject();var n=new p.UpdateTwoFactorU2fRequest;return n.masterPasswordHash=this.masterPasswordHash,n.deviceResponse=this.u2fResponse,n.id=this.keyIdAvailable,n.name=this.name,e.prototype.enable.call(this,function(){return a(t,void 0,void 0,function(){var e;return o(this,function(t){switch(t.label){case 0:return this.formPromise=this.apiService.putTwoFactorU2f(n),[4,this.formPromise];case 1:return e=t.sent(),[4,this.processResponse(e)];case 2:return t.sent(),[2]}})})})},t.prototype.disable=function(){return e.prototype.disable.call(this,this.formPromise)},t.prototype.remove=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return this.keysConfiguredCount<=1||null!=e.removePromise?[2]:(t=null!=e.name?e.name:this.i18nService.t("u2fkeyX",e.id),[4,this.platformUtilsService.showDialog(this.i18nService.t("removeU2fConfirmation"),t,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]);case 1:if(!i.sent())return[2];(n=new c.UpdateTwoFactorU2fDeleteRequest).id=e.id,n.masterPasswordHash=this.masterPasswordHash,i.label=2;case 2:return i.trys.push([2,5,,6]),e.removePromise=this.apiService.deleteTwoFactorU2f(n),[4,e.removePromise];case 3:return r=i.sent(),e.removePromise=null,[4,this.processResponse(r)];case 4:return i.sent(),[3,6];case 5:return i.sent(),[3,6];case 6:return[2]}})})},t.prototype.readKey=function(){return a(this,void 0,void 0,function(){var e,t;return o(this,function(n){switch(n.label){case 0:if(null==this.keyIdAvailable)return[2];(e=new l.PasswordVerificationRequest).masterPasswordHash=this.masterPasswordHash,n.label=1;case 1:return n.trys.push([1,3,,4]),this.challengePromise=this.apiService.getTwoFactorU2fChallenge(e),[4,this.challengePromise];case 2:return t=n.sent(),this.readDevice(t),[3,4];case 3:return n.sent(),[3,4];case 4:return[2]}})})},t.prototype.readDevice=function(e){var t=this;console.log("listening for key..."),this.resetU2f(!0),window.u2f.register(e.appId,[{version:e.version,challenge:e.challenge}],[],function(e){t.ngZone.run(function(){if(t.u2fListening=!1,e.errorCode)return t.u2fError=!0,void console.log("error: "+e.errorCode);t.u2fResponse=JSON.stringify(e)})},15)},t.prototype.resetU2f=function(e){void 0===e&&(e=!1),this.u2fResponse=null,this.u2fError=!1,this.u2fListening=e},t.prototype.processResponse=function(e){this.resetU2f(),this.keys=[],this.keyIdAvailable=null,this.name=null,this.keysConfiguredCount=0;for(var t=function(t){if(null!=e.keys){var r=e.keys.filter(function(e){return e.id===t});if(r.length>0)return n.keysConfiguredCount++,n.keys.push({id:t,name:r[0].name,configured:!0,compromised:r[0].compromised,removePromise:null}),"continue"}n.keys.push({id:t,name:null,configured:!1,compromised:!1,removePromise:null}),null==n.keyIdAvailable&&(n.keyIdAvailable=t)},n=this,r=1;r<=5;r++)t(r);this.enabled=e.enabled},t.ɵfac=function(e){return new(e||t)(d.ɵɵdirectiveInject(m.ApiService),d.ɵɵdirectiveInject(h.I18nService),d.ɵɵdirectiveInject(f.Angulartics2),d.ɵɵdirectiveInject(v.ToasterService),d.ɵɵdirectiveInject(y.PlatformUtilsService),d.ɵɵdirectiveInject(d.NgZone))},t.ɵcmp=d.ɵɵdefineComponent({type:t,selectors:[["app-two-factor-u2f"]],features:[d.ɵɵInheritDefinitionFeature],decls:30,vars:8,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","2faU2fTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],[1,"modal-content"],[1,"modal-header"],["id","2faU2fTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[3,"organizationId","type","onAuthed",4,"ngIf"],["ngNativeValidate","",3,"appApiAction","ngSubmit",4,"ngIf"],[3,"organizationId","type","onAuthed"],["ngNativeValidate","",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-body"],["type","success","icon","fa-check-circle",3,"title",4,"ngIf"],["type","warning"],[1,"mb-0"],["src","images/4.png","alt","",1,"float-right","ml-5"],[1,"fa-ul"],[3,"appApiAction",4,"ngFor","ngForOf"],[1,"row"],[1,"form-group","col-6"],["for","name"],["id","name","type","text","name","Name",1,"form-control",3,"ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-secondary","mr-2",3,"disabled","appApiAction","click"],["readKeyBtn",""],[4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary",3,"disabled"],["class","fa fa-spinner fa-spin","aria-hidden","true",3,"title",4,"ngIf"],["type","button","class","btn btn-outline-secondary btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["type","success","icon","fa-check-circle",3,"title"],[3,"appApiAction"],["removeKeyBtn",""],[1,"fa-li","fa","fa-key"],["aria-hidden","true",1,"fa","fa-fw","fa-exclamation-triangle","text-warning",3,"title"],[1,"sr-only"],["aria-hidden","true",1,"fa","fa-fw","fa-check","text-success",3,"title"],["class","fa fa-spin fa-spinner text-muted fa-fw","aria-hidden","true",3,"title",4,"ngIf"],["href","#","appStopClick","",3,"click"],["aria-hidden","true",1,"fa","fa-spin","fa-spinner","text-muted","fa-fw",3,"title"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted"],["aria-hidden","true",1,"fa","fa-check-circle","text-success"],["aria-hidden","true",1,"fa","fa-warning","text-danger"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button",1,"btn","btn-outline-secondary","btn-submit",3,"appApiAction","disabled","click"],["disableBtn",""]],template:function(e,t){1&e&&(d.ɵɵelementStart(0,"div",0),d.ɵɵtext(1,"\n "),d.ɵɵelementStart(2,"div",1),d.ɵɵtext(3,"\n "),d.ɵɵelementStart(4,"div",2),d.ɵɵtext(5,"\n "),d.ɵɵelementStart(6,"div",3),d.ɵɵtext(7,"\n "),d.ɵɵelementStart(8,"h2",4),d.ɵɵtext(9),d.ɵɵpipe(10,"i18n"),d.ɵɵelementStart(11,"small"),d.ɵɵtext(12,"FIDO U2F"),d.ɵɵelementEnd(),d.ɵɵtext(13,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"button",5),d.ɵɵpipe(16,"i18n"),d.ɵɵtext(17,"\n "),d.ɵɵelementStart(18,"span",6),d.ɵɵtext(19,"×"),d.ɵɵelementEnd(),d.ɵɵtext(20,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(21,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(22,"\n "),d.ɵɵtemplate(23,P,2,2,"app-two-factor-verify",7),d.ɵɵtext(24,"\n "),d.ɵɵtemplate(25,K,91,43,"form",8),d.ɵɵtext(26,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(27,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(28,"\n"),d.ɵɵelementEnd(),d.ɵɵtext(29,"\n")),2&e&&(d.ɵɵadvance(9),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(10,4,"twoStepLogin"),"\n "),d.ɵɵadvance(6),d.ɵɵpropertyInterpolate("appA11yTitle",d.ɵɵpipeBind1(16,6,"close")),d.ɵɵadvance(8),d.ɵɵproperty("ngIf",!t.authed),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",t.authed))},directives:[g.A11yTitleDirective,x.NgIf,b.TwoFactorVerifyComponent,S.NgControlStatusGroup,S.NgForm,w.ApiActionDirective,C.CalloutComponent,x.NgForOf,S.DefaultValueAccessor,S.NgControlStatus,S.NgModel,I.StopClickDirective],pipes:[E.I18nPipe],encapsulation:2}),t}(u.TwoFactorBaseComponent);t.TwoFactorU2fComponent=q},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?this.keys[0].key:null,n.key2=null!=this.keys&&this.keys.length>1?this.keys[1].key:null,n.key3=null!=this.keys&&this.keys.length>2?this.keys[2].key:null,n.key4=null!=this.keys&&this.keys.length>3?this.keys[3].key:null,n.key5=null!=this.keys&&this.keys.length>4?this.keys[4].key:null,n.nfc=this.nfc,e.prototype.enable.call(this,function(){return a(t,void 0,void 0,function(){var e;return o(this,function(t){switch(t.label){case 0:return this.formPromise=this.apiService.putTwoFactorYubiKey(n),[4,this.formPromise];case 1:return e=t.sent(),[4,this.processResponse(e)];case 2:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("yubikeysUpdated")),[2]}})})})},t.prototype.disable=function(){return e.prototype.disable.call(this,this.disablePromise)},t.prototype.remove=function(e){e.existingKey=null,e.key=null},t.prototype.processResponse=function(e){this.enabled=e.enabled,this.keys=[{key:e.key1,existingKey:this.padRight(e.key1)},{key:e.key2,existingKey:this.padRight(e.key2)},{key:e.key3,existingKey:this.padRight(e.key3)},{key:e.key4,existingKey:this.padRight(e.key4)},{key:e.key5,existingKey:this.padRight(e.key5)}],this.nfc=e.nfc||!e.enabled},t.prototype.padRight=function(e,t,n){if(void 0===t&&(t="•"),void 0===n&&(n=44),null==e||null==t||e.length>=n)return e;for(var r=(n-e.length)/t.length,i=0;i0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&this.viewEvents(n[0]),null!=a&&a.unsubscribe(),[2]}})})}),null!=t&&t.unsubscribe(),[2]}})})})},e.prototype.ngOnDestroy=function(){this.broadcasterService.unsubscribe("OrgVaultComponent")},e.prototype.clearGroupingFilters=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchVault"),[4,this.ciphersComponent.applyFilter()];case 1:return e.sent(),this.clearFilters(),this.go(),[2]}})})},e.prototype.filterCipherType=function(e,t){return void 0===t&&(t=!1),r(this,void 0,void 0,function(){var n;return i(this,function(r){switch(r.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchType"),n=function(t){return t.type===e},t?[4,this.ciphersComponent.reload(n)]:[3,2];case 1:return r.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(n)];case 3:r.sent(),r.label=4;case 4:return this.clearFilters(),this.type=e,this.go(),[2]}})})},e.prototype.filterCollection=function(e,t){return void 0===t&&(t=!1),r(this,void 0,void 0,function(){var n;return i(this,function(r){switch(r.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchCollection"),n=function(t){return"unassigned"===e?null==t.collectionIds||0===t.collectionIds.length:null!=t.collectionIds&&t.collectionIds.indexOf(e)>-1},t?[4,this.ciphersComponent.reload(n)]:[3,2];case 1:return r.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(n)];case 3:r.sent(),r.label=4;case 4:return this.clearFilters(),this.collectionId=e,this.go(),[2]}})})},e.prototype.filterDeleted=function(e){return void 0===e&&(e=!1),r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return this.ciphersComponent.showAddNew=!1,this.ciphersComponent.deleted=!0,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchTrash"),e?[4,this.ciphersComponent.reload(null,!0)]:[3,2];case 1:return t.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(null)];case 3:t.sent(),t.label=4;case 4:return this.clearFilters(),this.deleted=!0,this.go(),[2]}})})},e.prototype.filterSearchText=function(e){this.ciphersComponent.searchText=e,this.ciphersComponent.search(200)},e.prototype.editCipherAttachments=function(e){var t=this;if(null!=this.organization.maxStorageGb&&0!==this.organization.maxStorageGb){null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.attachmentsModalRef.createComponent(n).instance;var a=this.modal.show(c.AttachmentsComponent,this.attachmentsModalRef);a.organization=this.organization,a.cipherId=e.id;var s=!1;a.onUploadedAttachment.subscribe(function(){return s=!0}),a.onDeletedAttachment.subscribe(function(){return s=!0}),this.modal.onClosed.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal=null,s?[4,this.ciphersComponent.refresh()]:[3,2];case 1:e.sent(),e.label=2;case 2:return s=!1,[2]}})})})}else this.messagingService.send("upgradeOrganization",{organizationId:e.organizationId})},e.prototype.editCipherCollections=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.collectionsModalRef.createComponent(n).instance;var a=this.modal.show(u.CollectionsComponent,this.collectionsModalRef);this.organization.canManageAllCollections&&(a.collectionIds=e.collectionIds,a.collections=this.groupingsComponent.collections.filter(function(e){return!e.readOnly})),a.organization=this.organization,a.cipherId=e.id,a.onSavedCollections.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){return this.modal=null,[2]})})})},e.prototype.addCipher=function(){var e=this.editCipher(null);e.organizationId=this.organization.id,e.type=this.type,this.organization.canManageAllCollections&&(e.collections=this.groupingsComponent.collections.filter(function(e){return!e.readOnly})),null!=this.collectionId&&(e.collectionIds=[this.collectionId])},e.prototype.editCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.cipherAddEditModalRef.createComponent(n).instance;var a=this.modal.show(l.AddEditComponent,this.cipherAddEditModalRef);return a.organization=this.organization,a.cipherId=null==e?null:e.id,a.onSavedCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),a.onDeletedCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),a.onRestoredCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){t.modal=null}),a},e.prototype.cloneCipher=function(e){var t=this.editCipher(e);t.cloneMode=!0,t.organizationId=this.organization.id,this.organization.canManageAllCollections&&(t.collections=this.groupingsComponent.collections.filter(function(e){return!e.readOnly})),t.collectionIds=e.collectionIds},e.prototype.viewEvents=function(e){return r(this,void 0,void 0,function(){var t,n,r=this;return i(this,function(i){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent),this.modal=this.eventsModalRef.createComponent(t).instance,(n=this.modal.show(s.EntityEventsComponent,this.eventsModalRef)).name=e.name,n.organizationId=this.organization.id,n.entityId=e.id,n.showUser=!0,n.entity="cipher",this.modal.onClosed.subscribe(function(){r.modal=null}),[2]})})},e.prototype.clearFilters=function(){this.collectionId=null,this.type=null,this.deleted=!1},e.prototype.go=function(e){void 0===e&&(e=null),null==e&&(e={type:this.type,collectionId:this.collectionId,deleted:!!this.deleted||null}),this.router.navigate([],{relativeTo:this.route,queryParams:e,replaceUrl:!0})},e.ɵfac=function(t){return new(t||e)(m.ɵɵdirectiveInject(h.ActivatedRoute),m.ɵɵdirectiveInject(f.UserService),m.ɵɵdirectiveInject(h.Router),m.ɵɵdirectiveInject(m.ChangeDetectorRef),m.ɵɵdirectiveInject(v.SyncService),m.ɵɵdirectiveInject(y.I18nService),m.ɵɵdirectiveInject(m.ComponentFactoryResolver),m.ɵɵdirectiveInject(g.MessagingService),m.ɵɵdirectiveInject(x.BroadcasterService),m.ɵɵdirectiveInject(m.NgZone))},e.ɵcmp=m.ɵɵdefineComponent({type:e,selectors:[["app-org-vault"]],viewQuery:function(e,t){var n;(1&e&&(m.ɵɵstaticViewQuery(d.GroupingsComponent,!0),m.ɵɵstaticViewQuery(p.CiphersComponent,!0),m.ɵɵstaticViewQuery(P,!0,a.ViewContainerRef),m.ɵɵstaticViewQuery(k,!0,a.ViewContainerRef),m.ɵɵstaticViewQuery(_,!0,a.ViewContainerRef),m.ɵɵstaticViewQuery(A,!0,a.ViewContainerRef)),2&e)&&(m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.groupingsComponent=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.ciphersComponent=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.attachmentsModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.cipherAddEditModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.collectionsModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.eventsModalRef=n.first))},decls:51,vars:13,consts:[[1,"container","page-content"],[1,"row"],[1,"col-3"],[3,"showFolders","showFavorites","showTrash","onAllClicked","onCipherTypeClicked","onCollectionClicked","onSearchTextChanged","onTrashClicked"],[1,"col-9"],[1,"page-header","d-flex"],[3,"appApiAction"],["actionSpinner",""],[4,"ngIf"],[1,"ml-auto","d-flex"],[3,"ciphersComponent","modal","deleted","organization"],["type","button","class","btn btn-outline-primary btn-sm ml-auto",3,"click",4,"ngIf"],[3,"onCipherClicked","onAttachmentsClicked","onAddCipher","onCollectionsClicked","onEventsClicked","onCloneClicked"],["attachments",""],["cipherAddEdit",""],["collections",""],["eventsTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","button",1,"btn","btn-outline-primary","btn-sm","ml-auto",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"div",2),m.ɵɵtext(5,"\n "),m.ɵɵelementStart(6,"app-org-vault-groupings",3),m.ɵɵlistener("onAllClicked",function(){return t.clearGroupingFilters()})("onCipherTypeClicked",function(e){return t.filterCipherType(e)})("onCollectionClicked",function(e){return t.filterCollection(e.id)})("onSearchTextChanged",function(e){return t.filterSearchText(e)})("onTrashClicked",function(){return t.filterDeleted()}),m.ɵɵtext(7,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(8,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(9,"\n "),m.ɵɵelementStart(10,"div",4),m.ɵɵtext(11,"\n "),m.ɵɵelementStart(12,"div",5),m.ɵɵtext(13,"\n "),m.ɵɵelementStart(14,"h1"),m.ɵɵtext(15),m.ɵɵpipe(16,"i18n"),m.ɵɵelementStart(17,"small",6,7),m.ɵɵtext(19,"\n "),m.ɵɵtemplate(20,O,9,6,"ng-container",8),m.ɵɵtext(21,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(22,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(23,"\n "),m.ɵɵelementStart(24,"div",9),m.ɵɵtext(25,"\n "),m.ɵɵelementStart(26,"app-vault-bulk-actions",10),m.ɵɵtext(27,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(28,"\n "),m.ɵɵtemplate(29,T,5,3,"button",11),m.ɵɵtext(30,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(31,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"app-org-vault-ciphers",12),m.ɵɵlistener("onCipherClicked",function(e){return t.editCipher(e)})("onAttachmentsClicked",function(e){return t.editCipherAttachments(e)})("onAddCipher",function(){return t.addCipher()})("onCollectionsClicked",function(e){return t.editCipherCollections(e)})("onEventsClicked",function(e){return t.viewEvents(e)})("onCloneClicked",function(e){return t.cloneCipher(e)}),m.ɵɵtext(34,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(35,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(36,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(37,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(38,"\n"),m.ɵɵtemplate(39,M,0,0,"ng-template",null,13,m.ɵɵtemplateRefExtractor),m.ɵɵtext(41,"\n"),m.ɵɵtemplate(42,B,0,0,"ng-template",null,14,m.ɵɵtemplateRefExtractor),m.ɵɵtext(44,"\n"),m.ɵɵtemplate(45,D,0,0,"ng-template",null,15,m.ɵɵtemplateRefExtractor),m.ɵɵtext(47,"\n"),m.ɵɵtemplate(48,V,0,0,"ng-template",null,16,m.ɵɵtemplateRefExtractor),m.ɵɵtext(50,"\n")),2&e){var n=m.ɵɵreference(18);m.ɵɵadvance(6),m.ɵɵproperty("showFolders",!1)("showFavorites",!1)("showTrash",!0),m.ɵɵadvance(9),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(16,11,"vault"),"\n "),m.ɵɵadvance(2),m.ɵɵproperty("appApiAction",t.ciphersComponent.actionPromise),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",n.loading),m.ɵɵadvance(6),m.ɵɵproperty("ciphersComponent",t.ciphersComponent)("modal",t.modal)("deleted",t.deleted)("organization",t.organization),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",!t.deleted)}},directives:[b.GroupingsComponent,S.ApiActionDirective,w.NgIf,C.BulkActionsComponent,I.CiphersComponent],pipes:[E.I18nPipe],encapsulation:2}),e}();t.VaultComponent=j},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]104857600)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("maxFileSize")),[2];i.label=1;case 1:return i.trys.push([1,4,,5]),this.formPromise=this.saveCipherAttachment(t[0]),n=this,[4,this.formPromise];case 2:return n.cipherDomain=i.sent(),r=this,[4,this.cipherDomain.decrypt()];case 3:return r.cipher=i.sent(),this.platformUtilsService.eventTrack("Added Attachment"),this.platformUtilsService.showToast("success",null,this.i18nService.t("attachmentSaved")),this.onUploadedAttachment.emit(),[3,5];case 4:return i.sent(),[3,5];case 5:return e.type="",e.type="file",e.value="",[2]}})})},e.prototype.delete=function(e){return r(this,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return null!=this.deletePromises[e.id]?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteAttachmentConfirmation"),this.i18nService.t("deleteAttachment"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!n.sent())return[2];n.label=2;case 2:return n.trys.push([2,4,,5]),this.deletePromises[e.id]=this.deleteCipherAttachment(e.id),[4,this.deletePromises[e.id]];case 3:return n.sent(),this.platformUtilsService.eventTrack("Deleted Attachment"),this.platformUtilsService.showToast("success",null,this.i18nService.t("deletedAttachment")),(t=this.cipher.attachments.indexOf(e))>-1&&this.cipher.attachments.splice(t,1),[3,5];case 4:return n.sent(),[3,5];case 5:return this.deletePromises[e.id]=null,this.onDeletedAttachment.emit(),[2]}})})},e.prototype.download=function(e){return r(this,void 0,void 0,function(){var t,n,r,a,o,s;return i(this,function(i){switch(i.label){case 0:return(t=e).downloading?[2]:this.canAccessAttachments?(t.downloading=!0,[4,fetch(new Request(e.url,{cache:"no-store"}))]):(this.platformUtilsService.showToast("error",this.i18nService.t("premiumRequired"),this.i18nService.t("premiumRequiredDesc")),[2]);case 1:if(200!==(n=i.sent()).status)return this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),t.downloading=!1,[2];i.label=2;case 2:return i.trys.push([2,8,,9]),[4,n.arrayBuffer()];case 3:return r=i.sent(),null==e.key?[3,4]:(o=e.key,[3,6]);case 4:return[4,this.cryptoService.getOrgKey(this.cipher.organizationId)];case 5:o=i.sent(),i.label=6;case 6:return a=o,[4,this.cryptoService.decryptFromBytes(r,a)];case 7:return s=i.sent(),this.platformUtilsService.saveFile(this.win,s,null,e.fileName),[3,9];case 8:return i.sent(),this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),[3,9];case 9:return t.downloading=!1,[2]}})})},e.prototype.init=function(){return r(this,void 0,void 0,function(){var e,t,n,r;return i(this,function(i){switch(i.label){case 0:return e=this,[4,this.loadCipher()];case 1:return e.cipherDomain=i.sent(),t=this,[4,this.cipherDomain.decrypt()];case 2:return t.cipher=i.sent(),n=this,[4,this.cryptoService.hasEncKey()];case 3:return n.hasUpdatedKey=i.sent(),[4,this.userService.canAccessPremium()];case 4:return r=i.sent(),this.canAccessAttachments=r||null!=this.cipher.organizationId,this.canAccessAttachments?[3,6]:[4,this.platformUtilsService.showDialog(this.i18nService.t("premiumRequiredDesc"),this.i18nService.t("premiumRequired"),this.i18nService.t("learnMore"),this.i18nService.t("cancel"))];case 5:return i.sent()&&this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/?premium=purchase"),[3,8];case 6:return this.hasUpdatedKey?[3,8]:[4,this.platformUtilsService.showDialog(this.i18nService.t("updateKey"),this.i18nService.t("featureUnavailable"),this.i18nService.t("learnMore"),this.i18nService.t("cancel"),"warning")];case 7:i.sent()&&this.platformUtilsService.launchUri("https://help.bitwarden.com/article/update-encryption-key/"),i.label=8;case 8:return[2]}})})},e.prototype.reuploadCipherAttachment=function(e,t){return r(this,void 0,void 0,function(){var n,a=this;return i(this,function(o){switch(o.label){case 0:if(n=e,null!=e.key||n.downloading||null!=this.reuploadPromises[e.id])return[2];o.label=1;case 1:return o.trys.push([1,3,,4]),this.reuploadPromises[e.id]=Promise.resolve().then(function(){return r(a,void 0,void 0,function(){var r,a,o,s,l,c,p,u,d;return i(this,function(i){switch(i.label){case 0:return n.downloading=!0,[4,fetch(new Request(e.url,{cache:"no-store"}))];case 1:if(200!==(r=i.sent()).status)return this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),n.downloading=!1,[2];i.label=2;case 2:return i.trys.push([2,11,,12]),[4,r.arrayBuffer()];case 3:return a=i.sent(),null==e.key?[3,4]:(s=e.key,[3,6]);case 4:return[4,this.cryptoService.getOrgKey(this.cipher.organizationId)];case 5:s=i.sent(),i.label=6;case 6:return o=s,[4,this.cryptoService.decryptFromBytes(a,o)];case 7:return l=i.sent(),c=this,[4,this.cipherService.saveAttachmentRawWithServer(this.cipherDomain,e.fileName,l,t)];case 8:return c.cipherDomain=i.sent(),p=this,[4,this.cipherDomain.decrypt()];case 9:return p.cipher=i.sent(),this.deletePromises[e.id]=this.deleteCipherAttachment(e.id),[4,this.deletePromises[e.id]];case 10:return i.sent(),(u=this.cipher.attachments.filter(function(t){return t.id===e.id})).length>0&&(d=this.cipher.attachments.indexOf(u[0]))>-1&&this.cipher.attachments.splice(d,1),this.platformUtilsService.eventTrack("Reuploaded Attachment"),this.platformUtilsService.showToast("success",null,this.i18nService.t("attachmentSaved")),this.onReuploadedAttachment.emit(),[3,12];case 11:return i.sent(),this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),[3,12];case 12:return n.downloading=!1,[2]}})})}),[4,this.reuploadPromises[e.id]];case 2:return o.sent(),[3,4];case 3:return o.sent(),[3,4];case 4:return[2]}})})},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.saveCipherAttachment=function(e){return this.cipherService.saveAttachmentWithServer(this.cipherDomain,e)},e.prototype.deleteCipherAttachment=function(e){return this.cipherService.deleteAttachmentWithServer(this.cipher.id,e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(s.CipherService),o.ɵɵdirectiveInject(l.I18nService),o.ɵɵdirectiveInject(c.CryptoService),o.ɵɵdirectiveInject(p.UserService),o.ɵɵdirectiveInject(u.PlatformUtilsService),o.ɵɵdirectiveInject(Window))},e.ɵdir=o.ɵɵdefineDirective({type:e,inputs:{cipherId:"cipherId"},outputs:{onUploadedAttachment:"onUploadedAttachment",onDeletedAttachment:"onDeletedAttachment",onReuploadedAttachment:"onReuploadedAttachment"}}),e}();t.AttachmentsComponent=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(this.organizationId=this.organizations[0].id),this.filterCollections(),[2]}})})},e.prototype.ngOnDestroy=function(){this.selectAll(!1)},e.prototype.filterCollections=function(){var e=this;this.selectAll(!1),null==this.organizationId||0===this.writeableCollections.length?this.collections=[]:this.collections=this.writeableCollections.filter(function(t){return t.organizationId===e.organizationId})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:e=this.collections.filter(function(e){return e.checked}).map(function(e){return e.id}),t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.cipherService.shareManyWithServer(this.shareableCiphers,this.organizationId,e),[4,this.formPromise];case 2:return t.sent(),this.onShared.emit(),this.analytics.eventTrack.next({action:"Bulk Shared Items"}),this.toasterService.popAsync("success",null,this.i18nService.t("sharedItems")),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t},e.prototype.selectAll=function(e){var t=this;(e?this.collections:this.writeableCollections).forEach(function(n){return t.check(n,e)})},Object.defineProperty(e.prototype,"canSave",{get:function(){if(null!=this.shareableCiphers&&this.shareableCiphers.length>0&&null!=this.collections)for(var e=0;e0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=this.maxAccessCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expired",{get:function(){return null!=this.expirationDate&&this.expirationDate<=new Date},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pendingDelete",{get:function(){return this.deletionDate<=new Date},enumerable:!0,configurable:!0}),e}();t.SendView=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var L=function(e){function t(t,n,r,i,a,o,s,l,c,p,u){var d=e.call(this,t,n,r,i,a,o,s)||this;return d.folderService=l,d.cipherService=c,d.syncService=p,d.apiService=u,d.rotateEncKey=!1,d}return i(t,e),t.prototype.rotateEncKeyClicked=function(){return a(this,void 0,void 0,function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:return this.rotateEncKey?[4,this.cipherService.getAllDecrypted()]:[3,5];case 1:if(e=r.sent(),t=!1,null!=e)for(n=0;n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0),o.ɵɵadvance(2),o.ɵɵproperty("disabled",n.loading),o.ɵɵadvance(2),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(43,27,"loading")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(47,29,"save"))}},directives:[u.NgControlStatusGroup,u.NgForm,d.ApiActionDirective,m.NgIf,m.NgForOf,u.DefaultValueAccessor,u.RequiredValidator,u.NgControlStatus,u.NgModel,h.A11yTitleDirective,m.NgClass,f.StopClickDirective],pipes:[v.I18nPipe],encapsulation:2}),e}();t.DomainRulesComponent=P},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1?"×"+n.quantity:""," @ ",a.ɵɵpipeBind2(4,5,n.amount,"$"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate2("\n ",a.ɵɵpipeBind2(8,8,n.quantity*n.amount,"$")," /",a.ɵɵpipeBind1(9,11,n.interval),"\n ")}}function A(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",16),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"strong",17),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"table",18),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"tbody"),a.ɵɵtext(9,"\n "),a.ɵɵtemplate(10,_,11,13,"tr",19),a.ɵɵtext(11,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(4,2,"details")),a.ɵɵadvance(7),a.ɵɵproperty("ngForOf",n.subscription.items)}}function O(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",10),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",11),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"dl"),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"dt"),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementStart(10,"dd"),a.ɵɵtext(11,"\n "),a.ɵɵelementStart(12,"span",12),a.ɵɵtext(13),a.ɵɵelementEnd(),a.ɵɵtext(14,"\n "),a.ɵɵtemplate(15,k,3,3,"span",13),a.ɵɵtext(16,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(17,"\n "),a.ɵɵelementStart(18,"dt"),a.ɵɵtext(19),a.ɵɵpipe(20,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(21,"\n "),a.ɵɵelementStart(22,"dd"),a.ɵɵtext(23),a.ɵɵpipe(24,"date"),a.ɵɵpipe(25,"currency"),a.ɵɵelementEnd(),a.ɵɵtext(26,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(27,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(28,"\n "),a.ɵɵtemplate(29,A,14,4,"div",14),a.ɵɵtext(30,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(7),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(8,6,"status")),a.ɵɵadvance(6),a.ɵɵtextInterpolate(n.subscription&&n.subscription.status||"-"),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(20,8,"nextCharge")),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("",n.nextInvoice?a.ɵɵpipeBind2(24,10,n.nextInvoice.date,"mediumDate")+", "+a.ɵɵpipeBind2(25,13,n.nextInvoice.amount,"$"):"-","\n "),a.ɵɵadvance(6),a.ɵɵproperty("ngIf",n.subscription)}}function T(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",23),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",24),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"button",25),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!1)}),a.ɵɵpipe(5,"i18n"),a.ɵɵelementStart(6,"span",26),a.ɵɵtext(7,"×"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementStart(9,"h3",27),a.ɵɵtext(10),a.ɵɵpipe(11,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementStart(13,"app-update-license",28),a.ɵɵlistener("onUpdated",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!0)})("onCanceled",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!1)}),a.ɵɵtext(14,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(15,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(16,"\n "),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(4),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(5,2,"cancel")),a.ɵɵadvance(6),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(11,4,"updateLicense")))}function M(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div"),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"button",20),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).updateLicense()}),a.ɵɵtext(5),a.ɵɵpipe(6,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"a",21),a.ɵɵtext(9),a.ɵɵpipe(10,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(11,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,T,17,6,"div",22),a.ɵɵtext(14,"\n "),a.ɵɵelementContainerEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵadvance(5),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(6,3,"updateLicense"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(10,5,"manageSubscription"),"\n "),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",r.showUpdateLicense)}}function B(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",20),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).downloadLicense()}),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"downloadLicense"),"\n "))}function D(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",35,36),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).cancel()}),a.ɵɵtext(2,"\n "),a.ɵɵelement(3,"i",9),a.ɵɵpipe(4,"i18n"),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"span"),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵreference(1),i=a.ɵɵnextContext(3);a.ɵɵproperty("appApiAction",i.cancelPromise)("disabled",r.loading),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(4,4,"loading")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(8,6,"cancelSubscription"))}}function V(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",29),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"button",20),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustStorage(!0)}),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"button",40),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustStorage(!1)}),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(3),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(4,2,"addStorage"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(8,4,"removeStorage"),"\n "))}function j(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"app-adjust-storage",41),a.ɵɵlistener("onAdjusted",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeStorage(!0)})("onCanceled",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeStorage(!1)}),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(4);a.ɵɵproperty("storageGbPrice",4)("add",r.adjustStorageAdd)}}function R(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",37),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,V,10,6,"div",38),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,j,1,2,"app-adjust-storage",39),a.ɵɵtext(7,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.showAdjustStorage),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.showAdjustStorage)}}var F=function(e){return{width:e}};function U(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",29),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,B,3,3,"button",30),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,D,10,8,"button",31),a.ɵɵtext(7,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementStart(9,"h2",32),a.ɵɵtext(10),a.ɵɵpipe(11,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementStart(13,"p"),a.ɵɵtext(14),a.ɵɵpipe(15,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(16,"\n "),a.ɵɵelementStart(17,"div",33),a.ɵɵtext(18,"\n "),a.ɵɵelementStart(19,"div",34),a.ɵɵtext(20),a.ɵɵpipe(21,"percent"),a.ɵɵelementEnd(),a.ɵɵtext(22,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(23,"\n "),a.ɵɵtemplate(24,R,9,2,"ng-container",1),a.ɵɵtext(25,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.subscription||!n.subscription.cancelled),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(11,8,"storage")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind3(15,10,"subscriptionStorage",n.sub.maxStorageGb||0,n.sub.storageName||"0 MB")),a.ɵɵadvance(5),a.ɵɵproperty("ngStyle",a.ɵɵpureFunction1(16,F,n.storageProgressWidth+"%")),a.ɵɵattribute("aria-valuenow",n.storagePercentage),a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(21,14,n.storagePercentage/100),""),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel)}}function N(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵtemplate(2,w,4,6,"app-callout",4),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,C,18,14,"app-callout",4),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,P,10,5,"dl",1),a.ɵɵtext(7,"\n "),a.ɵɵtemplate(8,O,31,16,"div",5),a.ɵɵtext(9,"\n "),a.ɵɵtemplate(10,M,15,7,"ng-container",1),a.ɵɵtext(11,"\n "),a.ɵɵtemplate(12,U,26,18,"ng-container",1),a.ɵɵtext(13,"\n"),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription&&n.subscription.cancelled),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.selfHosted)}}var z=function(){function e(e,t,n,r,i,a,o){this.tokenService=e,this.apiService=t,this.platformUtilsService=n,this.i18nService=r,this.analytics=i,this.toasterService=a,this.router=o,this.loading=!1,this.firstLoaded=!1,this.adjustStorageAdd=!0,this.showAdjustStorage=!1,this.showUpdateLicense=!1,this.selfHosted=!1,this.selfHosted=n.isSelfHost()}return e.prototype.ngOnInit=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.load()];case 1:return e.sent(),this.firstLoaded=!0,[2]}})})},e.prototype.load=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return this.loading?[2]:this.tokenService.getPremium()?(this.loading=!0,e=this,[4,this.apiService.getUserSubscription()]):[3,2];case 1:return e.sub=t.sent(),[3,3];case 2:return this.router.navigate(["/settings/premium"]),[2];case 3:return this.loading=!1,[2]}})})},e.prototype.reinstate=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.loading?[2]:this.usingInAppPurchase?(this.platformUtilsService.showDialog(this.i18nService.t("manageSubscriptionFromStore"),this.i18nService.t("cancelSubscription"),null,null,"warning"),[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("reinstateConfirmation"),this.i18nService.t("reinstateSubscription"),this.i18nService.t("yes"),this.i18nService.t("cancel"))];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.reinstatePromise=this.apiService.postReinstatePremium(),[4,this.reinstatePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Reinstated Premium"}),this.toasterService.popAsync("success",null,this.i18nService.t("reinstated")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.prototype.cancel=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.loading?[2]:this.usingInAppPurchase?(this.platformUtilsService.showDialog(this.i18nService.t("manageSubscriptionFromStore"),this.i18nService.t("cancelSubscription"),null,null,"warning"),[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("cancelConfirmation"),this.i18nService.t("cancelSubscription"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.cancelPromise=this.apiService.postCancelPremium(),[4,this.cancelPromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Canceled Premium"}),this.toasterService.popAsync("success",null,this.i18nService.t("canceledSubscription")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.prototype.downloadLicense=function(){if(!this.loading){var e=JSON.stringify(this.sub.license,null,2);this.platformUtilsService.saveFile(window,e,null,"bitwarden_premium_license.json")}},e.prototype.updateLicense=function(){this.loading||(this.showUpdateLicense=!0)},e.prototype.closeUpdateLicense=function(e){this.showUpdateLicense=!1,e&&this.load()},e.prototype.adjustStorage=function(e){this.usingInAppPurchase?this.platformUtilsService.showDialog(this.i18nService.t("cannotPerformInAppPurchase"),this.i18nService.t(e?"addStorage":"removeStorage"),null,null,"warning"):(this.adjustStorageAdd=e,this.showAdjustStorage=!0)},e.prototype.closeStorage=function(e){this.showAdjustStorage=!1,e&&this.load()},Object.defineProperty(e.prototype,"subscriptionMarkedForCancel",{get:function(){return null!=this.subscription&&!this.subscription.cancelled&&this.subscription.cancelAtEndDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subscription",{get:function(){return null!=this.sub?this.sub.subscription:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nextInvoice",{get:function(){return null!=this.sub?this.sub.upcomingInvoice:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storagePercentage",{get:function(){return null!=this.sub&&this.sub.maxStorageGb?+(this.sub.storageGb/this.sub.maxStorageGb*100).toFixed(2):0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storageProgressWidth",{get:function(){return this.storagePercentage<5?5:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usingInAppPurchase",{get:function(){return null!=this.sub&&this.sub.usingInAppPurchase},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(o.TokenService),a.ɵɵdirectiveInject(s.ApiService),a.ɵɵdirectiveInject(l.PlatformUtilsService),a.ɵɵdirectiveInject(c.I18nService),a.ɵɵdirectiveInject(p.Angulartics2),a.ɵɵdirectiveInject(u.ToasterService),a.ɵɵdirectiveInject(d.Router))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["app-user-subscription"]],decls:13,vars:6,consts:[[1,"page-header"],[4,"ngIf"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","warning",3,"title",4,"ngIf"],["class","row",4,"ngIf"],["type","warning",3,"title"],["type","button",1,"btn","btn-outline-secondary","btn-submit",3,"appApiAction","disabled","click"],["reinstateBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"row"],[1,"col-4"],[1,"text-capitalize"],["class","badge badge-warning",4,"ngIf"],["class","col-8",4,"ngIf"],[1,"badge","badge-warning"],[1,"col-8"],[1,"d-block","mb-1"],[1,"table"],[4,"ngFor","ngForOf"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["href","https://vault.bitwarden.com/#/settings/subscription","target","_blank","rel","noopener",1,"btn","btn-outline-secondary"],["class","card mt-3",4,"ngIf"],[1,"card","mt-3"],[1,"card-body"],["type","button",1,"close",3,"appA11yTitle","click"],["aria-hidden","true"],[1,"card-body-header"],[3,"onUpdated","onCanceled"],[1,"d-flex"],["type","button","class","btn btn-outline-secondary",3,"click",4,"ngIf"],["type","button","class","btn btn-outline-danger btn-submit ml-auto",3,"appApiAction","disabled","click",4,"ngIf"],[1,"spaced-header"],[1,"progress"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",1,"progress-bar","bg-success",3,"ngStyle"],["type","button",1,"btn","btn-outline-danger","btn-submit","ml-auto",3,"appApiAction","disabled","click"],["cancelBtn",""],[1,"mt-3"],["class","d-flex",4,"ngIf"],[3,"storageGbPrice","add","onAdjusted","onCanceled",4,"ngIf"],["type","button",1,"ml-1","btn","btn-outline-secondary",3,"click"],[3,"storageGbPrice","add","onAdjusted","onCanceled"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"h1"),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵtemplate(5,b,9,6,"small",1),a.ɵɵtext(6,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(7,"\n"),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n"),a.ɵɵtemplate(9,S,9,6,"ng-container",1),a.ɵɵtext(10,"\n"),a.ɵɵtemplate(11,N,14,6,"ng-container",1),a.ɵɵtext(12,"\n")),2&e&&(a.ɵɵadvance(3),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(4,4,"premiumMembership"),"\n "),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.firstLoaded&&t.loading),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!t.firstLoaded&&t.loading),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.sub))},directives:[m.NgIf,h.CalloutComponent,f.ApiActionDirective,m.NgForOf,v.A11yTitleDirective,y.UpdateLicenseComponent,m.NgStyle,g.AdjustStorageComponent],pipes:[x.I18nPipe,m.DatePipe,m.CurrencyPipe,m.PercentPipe],encapsulation:2}),e}();t.UserSubscriptionComponent=z},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1})];case 1:return t.sent(),this.clearFilters(),this.collectionId=e,this.go(),[2]}})})},e.prototype.filterSearchText=function(e){this.ciphersComponent.searchText=e,this.ciphersComponent.search(200)},e.prototype.editCipherAttachments=function(e){return r(this,void 0,void 0,function(){var t,n,a,s,l,c=this;return i(this,function(u){switch(u.label){case 0:return[4,this.userService.canAccessPremium()];case 1:return t=u.sent(),null!=e.organizationId||t?[3,2]:(this.messagingService.send("premiumRequired"),[2]);case 2:return null==e.organizationId?[3,4]:[4,this.userService.getOrganization(e.organizationId)];case 3:if(null!=(n=u.sent())&&(null==n.maxStorageGb||0===n.maxStorageGb))return this.messagingService.send("upgradeOrganization",{organizationId:e.organizationId}),[2];u.label=4;case 4:return null!=this.modal&&this.modal.close(),a=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent),this.modal=this.attachmentsModalRef.createComponent(a).instance,(s=this.modal.show(p.AttachmentsComponent,this.attachmentsModalRef)).cipherId=e.id,l=!1,s.onUploadedAttachment.subscribe(function(){return l=!0}),s.onDeletedAttachment.subscribe(function(){return l=!0}),s.onReuploadedAttachment.subscribe(function(){return l=!0}),this.modal.onClosed.subscribe(function(){return r(c,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal=null,l?[4,this.ciphersComponent.refresh()]:[3,2];case 1:e.sent(),e.label=2;case 2:return l=!1,[2]}})})}),[2]}})})},e.prototype.shareCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.shareModalRef.createComponent(n).instance;var a=this.modal.show(f.ShareComponent,this.shareModalRef);a.cipherId=e.id,a.onSharedCipher.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){return this.modal=null,[2]})})})},e.prototype.editCipherCollections=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.collectionsModalRef.createComponent(n).instance;var a=this.modal.show(d.CollectionsComponent,this.collectionsModalRef);a.cipherId=e.id,a.onSavedCollections.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){return this.modal=null,[2]})})})},e.prototype.addFolder=function(){return r(this,void 0,void 0,function(){var e,t,n=this;return i(this,function(a){return null!=this.modal&&this.modal.close(),e=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent),this.modal=this.folderAddEditModalRef.createComponent(e).instance,(t=this.modal.show(m.FolderAddEditComponent,this.folderAddEditModalRef)).folderId=null,t.onSavedFolder.subscribe(function(){return r(n,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){n.modal=null}),[2]})})},e.prototype.editFolder=function(e){return r(this,void 0,void 0,function(){var t,n,a=this;return i(this,function(s){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent),this.modal=this.folderAddEditModalRef.createComponent(t).instance,(n=this.modal.show(m.FolderAddEditComponent,this.folderAddEditModalRef)).folderId=e,n.onSavedFolder.subscribe(function(){return r(a,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[2]}})})}),n.onDeletedFolder.subscribe(function(){return r(a,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[4,this.filterFolder("none")];case 2:return e.sent(),this.groupingsComponent.selectedFolderId=null,[2]}})})}),this.modal.onClosed.subscribe(function(){a.modal=null}),[2]})})},e.prototype.addCipher=function(){var e=this,t=this.editCipher(null);if(t.type=this.type,t.folderId="none"===this.folderId?null:this.folderId,null!=this.collectionId){var n=this.groupingsComponent.collections.filter(function(t){return t.id===e.collectionId});n.length>0&&(t.organizationId=n[0].organizationId,t.collectionIds=[this.collectionId])}},e.prototype.editCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.cipherAddEditModalRef.createComponent(n).instance;var a=this.modal.show(c.AddEditComponent,this.cipherAddEditModalRef);return a.cipherId=null==e?null:e.id,a.onSavedCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),a.onDeletedCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),a.onRestoredCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){t.modal=null}),a},e.prototype.cloneCipher=function(e){this.editCipher(e).cloneMode=!0},e.prototype.updateKey=function(){var e=this;null!=this.modal&&this.modal.close();var t=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.updateKeyModalRef.createComponent(t).instance,this.modal.show(l.UpdateKeyComponent,this.updateKeyModalRef),this.modal.onClosed.subscribe(function(){e.modal=null})},e.prototype.clearFilters=function(){this.folderId=null,this.collectionId=null,this.favorites=!1,this.type=null,this.deleted=!1},e.prototype.go=function(e){void 0===e&&(e=null),null==e&&(e={favorites:!!this.favorites||null,type:this.type,folderId:this.folderId,collectionId:this.collectionId,deleted:!!this.deleted||null}),this.router.navigate([],{relativeTo:this.route,queryParams:e,replaceUrl:!0})},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.SyncService),v.ɵɵdirectiveInject(g.ActivatedRoute),v.ɵɵdirectiveInject(g.Router),v.ɵɵdirectiveInject(v.ChangeDetectorRef),v.ɵɵdirectiveInject(x.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(b.TokenService),v.ɵɵdirectiveInject(S.CryptoService),v.ɵɵdirectiveInject(w.MessagingService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(I.PlatformUtilsService),v.ɵɵdirectiveInject(E.BroadcasterService),v.ɵɵdirectiveInject(v.NgZone))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["app-vault"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(h.GroupingsComponent,!0),v.ɵɵstaticViewQuery(u.CiphersComponent,!0),v.ɵɵstaticViewQuery(s.OrganizationsComponent,!0),v.ɵɵstaticViewQuery(j,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(R,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(F,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(U,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(N,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(z,!0,a.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.groupingsComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.ciphersComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.organizationsComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.attachmentsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.folderAddEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.cipherAddEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.shareModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.collectionsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.updateKeyModalRef=n.first))},decls:88,vars:20,consts:[[1,"container","page-content"],[1,"row"],[1,"col-3"],[3,"onAllClicked","onFavoritesClicked","onCipherTypeClicked","onFolderClicked","onAddFolder","onEditFolder","onCollectionClicked","onSearchTextChanged","onTrashClicked"],[1,"col-6"],[1,"page-header","d-flex"],[3,"appApiAction"],["actionSpinner",""],[4,"ngIf"],[1,"ml-auto","d-flex"],[3,"ciphersComponent","modal","deleted"],["type","button","class","btn btn-outline-primary btn-sm",3,"click",4,"ngIf"],[3,"onCipherClicked","onAttachmentsClicked","onAddCipher","onShareClicked","onCollectionsClicked","onCloneClicked"],["class","card border-warning mb-4",4,"ngIf"],["class","d-block mb-4",4,"ngIf"],[1,"d-block","mb-4"],["class","card border-success mb-4",4,"ngIf"],[1,"card"],[1,"card-header","d-flex"],["href","https://help.bitwarden.com/article/what-is-an-organization/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"card-body"],[3,"vault"],["attachments",""],["folderAddEdit",""],["cipherAddEdit",""],["share",""],["collections",""],["updateKeyTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","button",1,"btn","btn-outline-primary","btn-sm",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[1,"card","border-warning","mb-4"],[1,"card-header","bg-warning","text-white"],["aria-hidden","true",1,"fa","fa-warning","fa-fw"],["type","button",1,"btn","btn-block","btn-outline-secondary",3,"click"],["target","_blank","href","https://browser-update.org/update-browser.html","rel","noopener",1,"btn","btn-block","btn-outline-secondary"],[1,"card","border-success","mb-4"],[1,"card-header","bg-success","text-white"],["aria-hidden","true",1,"fa","fa-star","fa-fw"],["routerLink","/settings/premium",1,"btn","btn-block","btn-outline-secondary"]],template:function(e,t){if(1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"div",1),v.ɵɵtext(3,"\n "),v.ɵɵelementStart(4,"div",2),v.ɵɵtext(5,"\n "),v.ɵɵelementStart(6,"app-vault-groupings",3),v.ɵɵlistener("onAllClicked",function(){return t.clearGroupingFilters()})("onFavoritesClicked",function(){return t.filterFavorites()})("onCipherTypeClicked",function(e){return t.filterCipherType(e)})("onFolderClicked",function(e){return t.filterFolder(e.id)})("onAddFolder",function(){return t.addFolder()})("onEditFolder",function(e){return t.editFolder(e.id)})("onCollectionClicked",function(e){return t.filterCollection(e.id)})("onSearchTextChanged",function(e){return t.filterSearchText(e)})("onTrashClicked",function(){return t.filterDeleted()}),v.ɵɵtext(7,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(8,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(9,"\n "),v.ɵɵelementStart(10,"div",4),v.ɵɵtext(11,"\n "),v.ɵɵelementStart(12,"div",5),v.ɵɵtext(13,"\n "),v.ɵɵelementStart(14,"h1"),v.ɵɵtext(15),v.ɵɵpipe(16,"i18n"),v.ɵɵelementStart(17,"small",6,7),v.ɵɵtext(19,"\n "),v.ɵɵtemplate(20,L,9,6,"ng-container",8),v.ɵɵtext(21,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(22,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(23,"\n "),v.ɵɵelementStart(24,"div",9),v.ɵɵtext(25,"\n "),v.ɵɵelementStart(26,"app-vault-bulk-actions",10),v.ɵɵtext(27,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(28,"\n "),v.ɵɵtemplate(29,G,5,3,"button",11),v.ɵɵtext(30,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(31,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(32,"\n "),v.ɵɵelementStart(33,"app-vault-ciphers",12),v.ɵɵlistener("onCipherClicked",function(e){return t.editCipher(e)})("onAttachmentsClicked",function(e){return t.editCipherAttachments(e)})("onAddCipher",function(){return t.addCipher()})("onShareClicked",function(e){return t.shareCipher(e)})("onCollectionsClicked",function(e){return t.editCipherCollections(e)})("onCloneClicked",function(e){return t.cloneCipher(e)}),v.ɵɵtext(34,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(35,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(36,"\n "),v.ɵɵelementStart(37,"div",2),v.ɵɵtext(38,"\n "),v.ɵɵtemplate(39,K,19,9,"div",13),v.ɵɵtext(40,"\n "),v.ɵɵtemplate(41,q,1,0,"app-verify-email",14),v.ɵɵtext(42,"\n "),v.ɵɵelement(43,"app-send-info",15),v.ɵɵtext(44,"\n "),v.ɵɵtemplate(45,W,19,9,"div",13),v.ɵɵtext(46,"\n "),v.ɵɵtemplate(47,H,19,9,"div",16),v.ɵɵtext(48,"\n "),v.ɵɵelementStart(49,"div",17),v.ɵɵtext(50,"\n "),v.ɵɵelementStart(51,"div",18),v.ɵɵtext(52),v.ɵɵpipe(53,"i18n"),v.ɵɵelementStart(54,"a",19),v.ɵɵpipe(55,"i18n"),v.ɵɵtext(56,"\n "),v.ɵɵelement(57,"i",20),v.ɵɵtext(58,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(59,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(60,"\n "),v.ɵɵelementStart(61,"div",21),v.ɵɵtext(62,"\n "),v.ɵɵelement(63,"app-organizations",22),v.ɵɵtext(64,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(65,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(66,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(67,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(68,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(69,"\n"),v.ɵɵtemplate(70,$,0,0,"ng-template",null,23,v.ɵɵtemplateRefExtractor),v.ɵɵtext(72,"\n"),v.ɵɵtemplate(73,Y,0,0,"ng-template",null,24,v.ɵɵtemplateRefExtractor),v.ɵɵtext(75,"\n"),v.ɵɵtemplate(76,Q,0,0,"ng-template",null,25,v.ɵɵtemplateRefExtractor),v.ɵɵtext(78,"\n"),v.ɵɵtemplate(79,J,0,0,"ng-template",null,26,v.ɵɵtemplateRefExtractor),v.ɵɵtext(81,"\n"),v.ɵɵtemplate(82,X,0,0,"ng-template",null,27,v.ɵɵtemplateRefExtractor),v.ɵɵtext(84,"\n"),v.ɵɵtemplate(85,Z,0,0,"ng-template",null,28,v.ɵɵtemplateRefExtractor),v.ɵɵtext(87,"\n")),2&e){var n=v.ɵɵreference(18);v.ɵɵadvance(15),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(16,14,"myVault"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("appApiAction",t.ciphersComponent.actionPromise),v.ɵɵadvance(3),v.ɵɵproperty("ngIf",n.loading),v.ɵɵadvance(6),v.ɵɵproperty("ciphersComponent",t.ciphersComponent)("modal",t.modal)("deleted",t.deleted),v.ɵɵadvance(3),v.ɵɵproperty("ngIf",!t.deleted),v.ɵɵadvance(10),v.ɵɵproperty("ngIf",t.showUpdateKey),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.showVerifyEmail),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.showBrowserOutdated),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.showPremiumCallout),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(53,16,"organizations"),"\n "),v.ɵɵadvance(2),v.ɵɵpropertyInterpolate("appA11yTitle",v.ɵɵpipeBind1(55,18,"learnMore")),v.ɵɵadvance(9),v.ɵɵproperty("vault",!0)}},directives:[P.GroupingsComponent,k.ApiActionDirective,_.NgIf,A.BulkActionsComponent,O.CiphersComponent,T.SendInfoComponent,M.A11yTitleDirective,B.OrganizationsComponent,D.VerifyEmailComponent,g.RouterLinkWithHref],pipes:[V.I18nPipe],encapsulation:2}),e}();t.VaultComponent=ee},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&this.trustedContacts.splice(t,1)},e.prototype.removeGrantor=function(e){var t=this.grantedContacts.indexOf(e);t>-1&&this.grantedContacts.splice(t,1)},e.prototype.doConfirmation=function(e){return r(this,void 0,void 0,function(){var t,n,r,a,o,s,p,u;return i(this,function(i){switch(i.label){case 0:return[4,this.cryptoService.getEncKey()];case 1:return t=i.sent(),[4,this.apiService.getUserPublicKey(e.granteeId)];case 2:n=i.sent(),r=l.Utils.fromB64ToArray(n.publicKey),i.label=3;case 3:return i.trys.push([3,5,,6]),o=(a=console).log,s="User's fingerprint: ",[4,this.cryptoService.getFingerprint(e.granteeId,r.buffer)];case 4:return o.apply(a,[s+i.sent().join("-")]),[3,6];case 5:return i.sent(),[3,6];case 6:return[4,this.cryptoService.rsaEncrypt(t.key,r.buffer)];case 7:return p=i.sent(),(u=new c.EmergencyAccessConfirmRequest).key=p.encryptedString,[4,this.apiService.postEmergencyAccessConfirm(e.id,u)];case 8:return i.sent(),[2]}})})},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.ApiService),v.ɵɵdirectiveInject(g.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(x.PlatformUtilsService),v.ɵɵdirectiveInject(b.ToasterService),v.ɵɵdirectiveInject(S.CryptoService),v.ɵɵdirectiveInject(w.StorageService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(I.MessagingService))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["emergency-access"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(T,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(M,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(B,!0,a.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.addEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.takeoverModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.confirmModalRef=n.first))},decls:59,vars:25,consts:[[1,"page-header"],["href","https://bitwarden.com/help/article/emergency-access/","target","_blank","rel","noopener"],[4,"ngIf"],[1,"page-header","d-flex"],["href","#","appStopClick","","class","badge badge-primary",3,"click",4,"ngIf"],[1,"ml-auto","d-flex"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"disabled","click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"page-header","spaced-header"],["addEdit",""],["takeoverTemplate",""],["confirmTemplate",""],["href","#","appStopClick","",1,"badge","badge-primary",3,"click"],[1,"table","table-hover","table-list","mb-0"],[4,"ngFor","ngForOf"],["width","30"],["size","25",3,"data","email","circle","fontSize"],["href","#","appStopClick","",3,"click"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","badge badge-success",4,"ngIf"],["class","badge badge-primary",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["class","dropdown-item","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-success","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-warning","href","#","appStopClick","",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-remove"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"badge","badge-success"],[1,"badge","badge-primary"],[1,"text-muted","d-block"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-envelope-o"],["href","#","appStopClick","",1,"dropdown-item","text-success",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-check"],["href","#","appStopClick","",1,"dropdown-item","text-warning",3,"click"],["class","dropdown-item",3,"routerLink",4,"ngIf"],["aria-hidden","true",1,"fa","fa-fw","fa-key"],[1,"dropdown-item",3,"routerLink"],["aria-hidden","true",1,"fa","fa-fw","fa-eye"]],template:function(e,t){1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"h1"),v.ɵɵtext(3),v.ɵɵpipe(4,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(5,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(6,"\n"),v.ɵɵelementStart(7,"p"),v.ɵɵtext(8),v.ɵɵpipe(9,"i18n"),v.ɵɵelementStart(10,"a",1),v.ɵɵtext(11),v.ɵɵpipe(12,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(13,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(14,"\n\n"),v.ɵɵtemplate(15,D,7,6,"p",2),v.ɵɵtext(16,"\n\n"),v.ɵɵelementStart(17,"div",3),v.ɵɵtext(18,"\n "),v.ɵɵelementStart(19,"h2"),v.ɵɵtext(20),v.ɵɵpipe(21,"i18n"),v.ɵɵtemplate(22,V,3,3,"a",4),v.ɵɵtext(23,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(24,"\n "),v.ɵɵelementStart(25,"div",5),v.ɵɵtext(26,"\n "),v.ɵɵelementStart(27,"button",6),v.ɵɵlistener("click",function(){return t.invite()}),v.ɵɵtext(28,"\n "),v.ɵɵelement(29,"i",7),v.ɵɵtext(30),v.ɵɵpipe(31,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(32,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(33,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(34,"\n\n"),v.ɵɵtemplate(35,$,7,1,"table",8),v.ɵɵtext(36,"\n\n"),v.ɵɵtemplate(37,Y,3,3,"p",2),v.ɵɵtext(38,"\n\n"),v.ɵɵelementStart(39,"div",9),v.ɵɵtext(40,"\n "),v.ɵɵelementStart(41,"h2"),v.ɵɵtext(42),v.ɵɵpipe(43,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(44,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(45,"\n\n"),v.ɵɵtemplate(46,se,7,1,"table",8),v.ɵɵtext(47,"\n\n"),v.ɵɵtemplate(48,le,3,3,"p",2),v.ɵɵtext(49,"\n\n"),v.ɵɵtemplate(50,ce,0,0,"ng-template",null,10,v.ɵɵtemplateRefExtractor),v.ɵɵtext(52,"\n"),v.ɵɵtemplate(53,pe,0,0,"ng-template",null,11,v.ɵɵtemplateRefExtractor),v.ɵɵtext(55,"\n"),v.ɵɵtemplate(56,ue,0,0,"ng-template",null,12,v.ɵɵtemplateRefExtractor),v.ɵɵtext(58,"\n")),2&e&&(v.ɵɵadvance(3),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(4,13,"emergencyAccess")),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(9,15,"emergencyAccessDesc"),"\n "),v.ɵɵadvance(3),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(12,17,"learnMore"),".\n "),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.isOrganizationOwner),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(21,19,"trustedEmergencyContacts"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.canAccessPremium),v.ɵɵadvance(5),v.ɵɵproperty("disabled",!t.canAccessPremium),v.ɵɵadvance(3),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(31,21,"addEmergencyContact"),"\n "),v.ɵɵadvance(5),v.ɵɵproperty("ngIf",t.trustedContacts&&t.trustedContacts.length),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.trustedContacts||!t.trustedContacts.length),v.ɵɵadvance(5),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(43,23,"designatedEmergencyContacts")),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.grantedContacts&&t.grantedContacts.length),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.grantedContacts||!t.grantedContacts.length))},directives:[E.NgIf,P.StopClickDirective,E.NgForOf,k.AvatarComponent,_.A11yTitleDirective,A.RouterLinkWithHref],pipes:[O.I18nPipe],encapsulation:2}),e}();t.EmergencyAccessComponent=de},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.View=0]="View",e[e.Takeover=1]="Takeover"}(t.EmergencyAccessType||(t.EmergencyAccessType={}))},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(510),s=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.granteeId=n.getResponseProperty("GranteeId"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.type=n.getResponseProperty("Type"),n.status=n.getResponseProperty("Status"),n.waitTimeDays=n.getResponseProperty("WaitTimeDays"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(a.BaseResponse);t.EmergencyAccessGranteeDetailsResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.grantorId=n.getResponseProperty("GrantorId"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.type=n.getResponseProperty("Type"),n.status=n.getResponseProperty("Status"),n.waitTimeDays=n.getResponseProperty("WaitTimeDays"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(a.BaseResponse);t.EmergencyAccessGrantorDetailsResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;return n.keyEncrypted=n.getResponseProperty("KeyEncrypted"),n.kdf=n.getResponseProperty("Kdf"),n.kdfIterations=n.getResponseProperty("KdfIterations"),n}return i(t,e),t}(a.BaseResponse);t.EmergencyAccessTakeoverResponse=c;var p=function(e){function t(t){var n=e.call(this,t)||this;n.ciphers=[],n.keyEncrypted=n.getResponseProperty("KeyEncrypted");var r=n.getResponseProperty("Ciphers");return null!=r&&(n.ciphers=r.map(function(e){return new o.CipherResponse(e)})),n}return i(t,e),t}(a.BaseResponse);t.EmergencyAccessViewResponse=p},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var U=function(e){function t(t,n,r,i,a,o,l,c,p){var u=e.call(this,t,n,r,i,a,o,l)||this;return u.apiService=c,u.toasterService=p,u.onDone=new s.EventEmitter,u}return i(t,e),t.prototype.ngOnInit=function(){return a(this,void 0,void 0,function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:return[4,this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId)];case 1:return null!=(e=r.sent()).data&&e.data.length>0?(t=e.data.map(function(e){return new p.Policy(new c.PolicyData(e))}),n=this,[4,this.policyService.getMasterPasswordPolicyOptions(t)]):[3,3];case 2:n.enforcedPolicyOptions=r.sent(),r.label=3;case 3:return[2]}})})},t.prototype.submit=function(){return a(this,void 0,void 0,function(){var e,t,n,r,i,a,s;return o(this,function(o){switch(o.label){case 0:return[4,this.strongPassword()];case 1:return o.sent()?[4,this.apiService.postEmergencyAccessTakeover(this.emergencyAccessId)]:[2];case 2:return e=o.sent(),[4,this.cryptoService.rsaDecrypt(e.keyEncrypted)];case 3:return t=o.sent(),null==(n=new u.SymmetricCryptoKey(t))?(this.toasterService.popAsync("error",this.i18nService.t("errorOccurred"),this.i18nService.t("unexpectedError")),[2]):[4,this.cryptoService.makeKey(this.masterPassword,this.email,e.kdf,e.kdfIterations)];case 4:return r=o.sent(),[4,this.cryptoService.hashPassword(this.masterPassword,r)];case 5:return i=o.sent(),[4,this.cryptoService.remakeEncKey(r,n)];case 6:a=o.sent(),(s=new d.EmergencyAccessPasswordRequest).newMasterPasswordHash=i,s.key=a[1].encryptedString,this.apiService.postEmergencyAccessPassword(this.emergencyAccessId,s);try{this.onDone.emit()}catch(l){}return[2]}})})},t.ɵfac=function(e){return new(e||t)(m.ɵɵdirectiveInject(h.I18nService),m.ɵɵdirectiveInject(f.CryptoService),m.ɵɵdirectiveInject(v.MessagingService),m.ɵɵdirectiveInject(y.UserService),m.ɵɵdirectiveInject(g.PasswordGenerationService),m.ɵɵdirectiveInject(x.PlatformUtilsService),m.ɵɵdirectiveInject(b.PolicyService),m.ɵɵdirectiveInject(S.ApiService),m.ɵɵdirectiveInject(w.ToasterService))},t.ɵcmp=m.ɵɵdefineComponent({type:t,selectors:[["emergency-access-takeover"]],inputs:{emergencyAccessId:"emergencyAccessId",name:"name",email:"email",kdf:"kdf",kdfIterations:"kdfIterations"},outputs:{onDone:"onDone"},features:[m.ɵɵInheritDefinitionFeature],decls:81,vars:32,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAddEditTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[1,"modal-body"],["type","warning"],["type","info",4,"ngIf"],[1,"row"],[1,"col-6"],[1,"form-group"],["for","masterPassword"],["id","masterPassword","type","password","name","NewMasterPasswordHash","required","","appInputVerbatim","","autocomplete","new-password",1,"form-control","mb-1",3,"ngModel","ngModelChange","input"],[3,"score","showText"],["for","masterPasswordRetype"],["id","masterPasswordRetype","type","password","name","MasterPasswordRetype","required","","appInputVerbatim","","autocomplete","new-password",1,"form-control",3,"ngModel","ngModelChange"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],["type","info"],[1,"mb-0"],[4,"ngIf"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"form",2,3),m.ɵɵlistener("ngSubmit",function(){return t.submit()}),m.ɵɵtext(6,"\n "),m.ɵɵelementStart(7,"div",4),m.ɵɵtext(8,"\n "),m.ɵɵelementStart(9,"h2",5),m.ɵɵtext(10),m.ɵɵpipe(11,"i18n"),m.ɵɵtemplate(12,T,2,1,"small",6),m.ɵɵtext(13,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(14,"\n "),m.ɵɵelementStart(15,"button",7),m.ɵɵpipe(16,"i18n"),m.ɵɵtext(17,"\n "),m.ɵɵelementStart(18,"span",8),m.ɵɵtext(19,"×"),m.ɵɵelementEnd(),m.ɵɵtext(20,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(21,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(22,"\n "),m.ɵɵelementStart(23,"div",9),m.ɵɵtext(24,"\n "),m.ɵɵelementStart(25,"app-callout",10),m.ɵɵtext(26),m.ɵɵpipe(27,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(28,"\n "),m.ɵɵtemplate(29,F,18,9,"app-callout",11),m.ɵɵtext(30,"\n "),m.ɵɵelementStart(31,"div",12),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"div",13),m.ɵɵtext(34,"\n "),m.ɵɵelementStart(35,"div",14),m.ɵɵtext(36,"\n "),m.ɵɵelementStart(37,"label",15),m.ɵɵtext(38),m.ɵɵpipe(39,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(40,"\n "),m.ɵɵelementStart(41,"input",16),m.ɵɵlistener("ngModelChange",function(e){return t.masterPassword=e})("input",function(){return t.updatePasswordStrength()}),m.ɵɵelementEnd(),m.ɵɵtext(42,"\n "),m.ɵɵelement(43,"app-password-strength",17),m.ɵɵtext(44,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(45,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(46,"\n "),m.ɵɵelementStart(47,"div",13),m.ɵɵtext(48,"\n "),m.ɵɵelementStart(49,"div",14),m.ɵɵtext(50,"\n "),m.ɵɵelementStart(51,"label",18),m.ɵɵtext(52),m.ɵɵpipe(53,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(54,"\n "),m.ɵɵelementStart(55,"input",19),m.ɵɵlistener("ngModelChange",function(e){return t.masterPasswordRetype=e}),m.ɵɵelementEnd(),m.ɵɵtext(56,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(57,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(58,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(59,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(60,"\n "),m.ɵɵelementStart(61,"div",20),m.ɵɵtext(62,"\n "),m.ɵɵelementStart(63,"button",21),m.ɵɵtext(64,"\n "),m.ɵɵelement(65,"i",22),m.ɵɵpipe(66,"i18n"),m.ɵɵtext(67,"\n "),m.ɵɵelementStart(68,"span"),m.ɵɵtext(69),m.ɵɵpipe(70,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(71,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(72,"\n "),m.ɵɵelementStart(73,"button",23),m.ɵɵtext(74),m.ɵɵpipe(75,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(76,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(77,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(78,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(79,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(80,"\n")),2&e){var n=m.ɵɵreference(5);m.ɵɵadvance(4),m.ɵɵproperty("appApiAction",t.formPromise),m.ɵɵadvance(6),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(11,16,"takeover"),"\n "),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",t.name),m.ɵɵadvance(3),m.ɵɵpropertyInterpolate("appA11yTitle",m.ɵɵpipeBind1(16,18,"close")),m.ɵɵadvance(11),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(27,20,"loggedOutWarning")),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",t.enforcedPolicyOptions),m.ɵɵadvance(9),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(39,22,"newMasterPass")),m.ɵɵadvance(3),m.ɵɵproperty("ngModel",t.masterPassword),m.ɵɵadvance(2),m.ɵɵproperty("score",t.masterPasswordScore)("showText",!0),m.ɵɵadvance(9),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(53,24,"confirmNewMasterPass")),m.ɵɵadvance(3),m.ɵɵproperty("ngModel",t.masterPasswordRetype),m.ɵɵadvance(8),m.ɵɵproperty("disabled",n.loading),m.ɵɵadvance(2),m.ɵɵpropertyInterpolate("title",m.ɵɵpipeBind1(66,26,"loading")),m.ɵɵadvance(4),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(70,28,"save")),m.ɵɵadvance(5),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(75,30,"cancel"))}},directives:[C.NgControlStatusGroup,C.NgForm,I.ApiActionDirective,E.NgIf,P.A11yTitleDirective,k.CalloutComponent,C.DefaultValueAccessor,C.RequiredValidator,_.InputVerbatimDirective,C.NgControlStatus,C.NgModel,A.PasswordStrengthComponent],pipes:[O.I18nPipe],encapsulation:2}),t}(l.ChangePasswordComponent);t.EmergencyAccessTakeoverComponent=U},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1?"&":"?",e+="end="+n),null!=r&&(e+=e.indexOf("?")>-1?"&":"?",e+="continuationToken="+r),e},e.prototype.isJsonResponse=function(e){var t=e.headers.get("content-type");return null!=t&&t.indexOf("application/json")>-1},e.prototype.isTextResponse=function(e){var t=e.headers.get("content-type");return null!=t&&t.indexOf("text")>-1},e}();t.ApiService=q},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(295),s=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.name=n.getResponseProperty("Name"),n.externalId=n.getResponseProperty("ExternalId"),n}return i(t,e),t}(a.BaseResponse);t.CollectionResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.readOnly=n.getResponseProperty("ReadOnly")||!1,n}return i(t,e),t}(s);t.CollectionDetailsResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;n.groups=[];var r=n.getResponseProperty("Groups");return null!=r&&(n.groups=r.map(function(e){return new o.SelectionReadOnlyResponse(e)})),n}return i(t,e),t}(s);t.CollectionGroupDetailsResponse=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(903),s=function(e){function t(t){var n=e.call(this,t)||this;n.globalEquivalentDomains=[],n.equivalentDomains=n.getResponseProperty("EquivalentDomains");var r=n.getResponseProperty("GlobalEquivalentDomains");return n.globalEquivalentDomains=null!=r?r.map(function(e){return new o.GlobalDomainResponse(e)}):[],n}return i(t,e),t}(a.BaseResponse);t.DomainsResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.revisionDate=n.getResponseProperty("RevisionDate"),n}return i(t,e),t}(n(24).BaseResponse);t.FolderResponse=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(675),s=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.identifier=n.getResponseProperty("Identifier"),n.name=n.getResponseProperty("Name"),n.businessName=n.getResponseProperty("BusinessName"),n.businessAddress1=n.getResponseProperty("BusinessAddress1"),n.businessAddress2=n.getResponseProperty("BusinessAddress2"),n.businessAddress3=n.getResponseProperty("BusinessAddress3"),n.businessCountry=n.getResponseProperty("BusinessCountry"),n.businessTaxNumber=n.getResponseProperty("BusinessTaxNumber"),n.billingEmail=n.getResponseProperty("BillingEmail");var r=n.getResponseProperty("Plan");return n.plan=null==r?null:new o.PlanResponse(r),n.planType=n.getResponseProperty("PlanType"),n.seats=n.getResponseProperty("Seats"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.useGroups=n.getResponseProperty("UseGroups"),n.useDirectory=n.getResponseProperty("UseDirectory"),n.useEvents=n.getResponseProperty("UseEvents"),n.useTotp=n.getResponseProperty("UseTotp"),n.use2fa=n.getResponseProperty("Use2fa"),n.useApi=n.getResponseProperty("UseApi"),n}return i(t,e),t}(a.BaseResponse);t.OrganizationResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n.type=n.getResponseProperty("Type"),n.product=n.getResponseProperty("Product"),n.name=n.getResponseProperty("Name"),n.isAnnual=n.getResponseProperty("IsAnnual"),n.nameLocalizationKey=n.getResponseProperty("NameLocalizationKey"),n.descriptionLocalizationKey=n.getResponseProperty("DescriptionLocalizationKey"),n.canBeUsedByBusiness=n.getResponseProperty("CanBeUsedByBusiness"),n.baseSeats=n.getResponseProperty("BaseSeats"),n.baseStorageGb=n.getResponseProperty("BaseStorageGb"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxUsers=n.getResponseProperty("MaxUsers"),n.hasAdditionalSeatsOption=n.getResponseProperty("HasAdditionalSeatsOption"),n.maxAdditionalSeats=n.getResponseProperty("MaxAdditionalSeats"),n.hasAdditionalStorageOption=n.getResponseProperty("HasAdditionalStorageOption"),n.maxAdditionalStorage=n.getResponseProperty("MaxAdditionalStorage"),n.hasPremiumAccessOption=n.getResponseProperty("HasPremiumAccessOption"),n.trialPeriodDays=n.getResponseProperty("TrialPeriodDays"),n.hasSelfHost=n.getResponseProperty("HasSelfHost"),n.hasPolicies=n.getResponseProperty("HasPolicies"),n.hasGroups=n.getResponseProperty("HasGroups"),n.hasDirectory=n.getResponseProperty("HasDirectory"),n.hasEvents=n.getResponseProperty("HasEvents"),n.hasTotp=n.getResponseProperty("HasTotp"),n.has2fa=n.getResponseProperty("Has2fa"),n.hasApi=n.getResponseProperty("HasApi"),n.hasSso=n.getResponseProperty("HasSso"),n.usersGetPremium=n.getResponseProperty("UsersGetPremium"),n.upgradeSortOrder=n.getResponseProperty("UpgradeSortOrder"),n.displaySortOrder=n.getResponseProperty("SortOrder"),n.legacyYear=n.getResponseProperty("LegacyYear"),n.disabled=n.getResponseProperty("Disabled"),n.stripePlanId=n.getResponseProperty("StripePlanId"),n.stripeSeatPlanId=n.getResponseProperty("StripeSeatPlanId"),n.stripeStoragePlanId=n.getResponseProperty("StripeStoragePlanId"),n.stripePremiumAccessPlanId=n.getResponseProperty("StripePremiumAccessPlanId"),n.basePrice=n.getResponseProperty("BasePrice"),n.seatPrice=n.getResponseProperty("SeatPrice"),n.additionalStoragePricePerGb=n.getResponseProperty("AdditionalStoragePricePerGb"),n.premiumAccessOptionPrice=n.getResponseProperty("PremiumAccessOptionPrice"),n}return i(t,e),t}(n(24).BaseResponse);t.PlanResponse=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=function(e){function t(t){var n=e.call(this,t)||this;n.storageName=n.getResponseProperty("StorageName"),n.storageGb=n.getResponseProperty("StorageGb"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.license=n.getResponseProperty("License"),n.expiration=n.getResponseProperty("Expiration"),n.usingInAppPurchase=n.getResponseProperty("UsingInAppPurchase");var r=n.getResponseProperty("Subscription"),i=n.getResponseProperty("UpcomingInvoice");return n.subscription=null==r?null:new s(r),n.upcomingInvoice=null==i?null:new c(i),n}return i(t,e),t}(a.BaseResponse);t.SubscriptionResponse=o;var s=function(e){function t(t){var n=e.call(this,t)||this;n.items=[],n.trialEndDate=n.getResponseProperty("TrialStartDate"),n.trialEndDate=n.getResponseProperty("TrialEndDate"),n.periodStartDate=n.getResponseProperty("PeriodStartDate"),n.periodEndDate=n.getResponseProperty("PeriodEndDate"),n.cancelledDate=n.getResponseProperty("CancelledDate"),n.cancelAtEndDate=n.getResponseProperty("CancelAtEndDate"),n.status=n.getResponseProperty("Status"),n.cancelled=n.getResponseProperty("Cancelled");var r=n.getResponseProperty("Items");return null!=r&&(n.items=r.map(function(e){return new l(e)})),n}return i(t,e),t}(a.BaseResponse);t.BillingSubscriptionResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.name=n.getResponseProperty("Name"),n.amount=n.getResponseProperty("Amount"),n.quantity=n.getResponseProperty("Quantity"),n.interval=n.getResponseProperty("Interval"),n}return i(t,e),t}(a.BaseResponse);t.BillingSubscriptionItemResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;return n.date=n.getResponseProperty("Date"),n.amount=n.getResponseProperty("Amount"),n}return i(t,e),t}(a.BaseResponse);t.BillingSubscriptionUpcomingInvoiceResponse=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.type=n.getResponseProperty("Type"),n.data=n.getResponseProperty("Data"),n.enabled=n.getResponseProperty("Enabled"),n}return i(t,e),t}(n(24).BaseResponse);t.PolicyResponse=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(512),s=n(513),l=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.accessId=n.getResponseProperty("AccessId"),n.type=n.getResponseProperty("Type"),n.name=n.getResponseProperty("Name"),n.notes=n.getResponseProperty("Notes"),n.key=n.getResponseProperty("Key"),n.maxAccessCount=n.getResponseProperty("MaxAccessCount"),n.accessCount=n.getResponseProperty("AccessCount"),n.revisionDate=n.getResponseProperty("RevisionDate"),n.expirationDate=n.getResponseProperty("ExpirationDate"),n.deletionDate=n.getResponseProperty("DeletionDate"),n.password=n.getResponseProperty("Password"),n.disable=n.getResponseProperty("Disabled")||!1;var r=n.getResponseProperty("Text");null!=r&&(n.text=new s.SendTextApi(r));var i=n.getResponseProperty("File");return null!=i&&(n.file=new o.SendFileApi(i)),n}return i(t,e),t}(a.BaseResponse);t.SendResponse=l},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]5&&(e.passwordHistory=e.passwordHistory.slice(0,5)),o.label=5;case 5:return(p=new m.Cipher).id=e.id,p.folderId=e.folderId,p.favorite=e.favorite,p.organizationId=e.organizationId,p.type=e.type,p.collectionIds=e.collectionIds,p.revisionDate=e.revisionDate,null!=t||null==p.organizationId?[3,7]:[4,this.cryptoService.getOrgKey(p.organizationId)];case 6:if(null==(t=o.sent()))throw new Error("Cannot encrypt cipher for organization. No key.");o.label=7;case 7:return[4,Promise.all([this.encryptObjProperty(e,p,{name:null,notes:null},t),this.encryptCipherData(p,e,t),this.encryptFields(e.fields,t).then(function(e){p.fields=e}),this.encryptPasswordHistories(e.passwordHistory,t).then(function(e){p.passwordHistory=e}),this.encryptAttachments(e.attachments,t).then(function(e){p.attachments=e})])];case 8:return o.sent(),[2,p]}})})},t.prototype.encryptAttachments=function(e,t){return a(this,void 0,void 0,function(){var n,r,i=this;return o(this,function(s){switch(s.label){case 0:return null==e||0===e.length?[2,null]:(n=[],r=[],e.forEach(function(e){return a(i,void 0,void 0,function(){var i,s,l=this;return o(this,function(c){return(i=new u.Attachment).id=e.id,i.size=e.size,i.sizeName=e.sizeName,i.url=e.url,s=this.encryptObjProperty(e,i,{fileName:null},t).then(function(){return a(l,void 0,void 0,function(){var n;return o(this,function(a){switch(a.label){case 0:return null==e.key?[3,2]:(n=i,[4,this.cryptoService.encrypt(e.key.key,t)]);case 1:n.key=a.sent(),a.label=2;case 2:return r.push(i),[2]}})})}),n.push(s),[2]})})}),[4,Promise.all(n)]);case 1:return s.sent(),[2,r]}})})},t.prototype.encryptFields=function(e,t){return a(this,void 0,void 0,function(){var n,r;return o(this,function(i){switch(i.label){case 0:return e&&e.length?(n=this,r=[],[4,e.reduce(function(e,i){return e.then(function(){return n.encryptField(i,t)}).then(function(e){r.push(e)})},Promise.resolve())]):[2,null];case 1:return i.sent(),[2,r]}})})},t.prototype.encryptField=function(e,t){return a(this,void 0,void 0,function(){var n;return o(this,function(r){switch(r.label){case 0:return(n=new h.Field).type=e.type,e.type===l.FieldType.Boolean&&"true"!==e.value&&(e.value="false"),[4,this.encryptObjProperty(e,n,{name:null,value:null},t)];case 1:return r.sent(),[2,n]}})})},t.prototype.encryptPasswordHistories=function(e,t){return a(this,void 0,void 0,function(){var n,r;return o(this,function(i){switch(i.label){case 0:return e&&e.length?(n=this,r=[],[4,e.reduce(function(e,i){return e.then(function(){return n.encryptPasswordHistory(i,t)}).then(function(e){r.push(e)})},Promise.resolve())]):[2,null];case 1:return i.sent(),[2,r]}})})},t.prototype.encryptPasswordHistory=function(e,t){return a(this,void 0,void 0,function(){var n;return o(this,function(r){switch(r.label){case 0:return(n=new g.Password).lastUsedDate=e.lastUsedDate,[4,this.encryptObjProperty(e,n,{password:null},t)];case 1:return r.sent(),[2,n]}})})},t.prototype.get=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(D)];case 2:return n=i.sent(),[4,this.storageService.get(B+t)];case 3:return null!=(r=i.sent())&&r.hasOwnProperty(e)?[2,new m.Cipher(r[e],!1,n?n[e]:null)]:[2,null]}})})},t.prototype.getAll=function(){return a(this,void 0,void 0,function(){var e,t,n,r,i;return o(this,function(a){switch(a.label){case 0:return[4,this.userService.getUserId()];case 1:return e=a.sent(),[4,this.storageService.get(D)];case 2:return t=a.sent(),[4,this.storageService.get(B+e)];case 3:for(i in n=a.sent(),r=[],n)n.hasOwnProperty(i)&&r.push(new m.Cipher(n[i],!1,t?t[i]:null));return[2,r]}})})},t.prototype.getAllDecrypted=function(){return a(this,void 0,void 0,function(){var e,t;return o(this,function(n){switch(n.label){case 0:return null!=this.decryptedCipherCache?[2,this.decryptedCipherCache]:(e=[],[4,this.cryptoService.hasKey()]);case 1:if(!n.sent())throw new Error("No key.");return t=[],[4,this.getAll()];case 2:return n.sent().forEach(function(n){t.push(n.decrypt().then(function(t){return e.push(t)}))}),[4,Promise.all(t)];case 3:return n.sent(),e.sort(this.getLocaleSortingFunction()),this.decryptedCipherCache=e,[2,this.decryptedCipherCache]}})})},t.prototype.getAllDecryptedForGrouping=function(e,t){return void 0===t&&(t=!0),a(this,void 0,void 0,function(){return o(this,function(n){switch(n.label){case 0:return[4,this.getAllDecrypted()];case 1:return[2,n.sent().filter(function(n){return!n.isDeleted&&(!(!t||n.folderId!==e)||!t&&null!=n.collectionIds&&n.collectionIds.indexOf(e)>-1)})]}})})},t.prototype.getAllDecryptedForUrl=function(e,t,n){return void 0===n&&(n=null),a(this,void 0,void 0,function(){var r,i,a,l,p;return o(this,function(o){switch(o.label){case 0:return null==e&&null==t?[2,Promise.resolve([])]:(r=M.Utils.getDomain(e),i=null==r?Promise.resolve([]):this.settingsService.getEquivalentDomains().then(function(e){var t=[];return e.forEach(function(e){e.length&&e.indexOf(r)>=0&&(t=t.concat(e))}),t.length||t.push(r),t}),[4,Promise.all([i,this.getAllDecrypted()])]);case 1:return a=o.sent(),l=a[0],p=a[1],null!=n?[3,3]:[4,this.storageService.get(O.ConstantsService.defaultUriMatch)];case 2:null==(n=o.sent())&&(n=c.UriMatchType.Domain),o.label=3;case 3:return[2,p.filter(function(i){if(null!=i.deletedDate)return!1;if(null!=t&&t.indexOf(i.type)>-1)return!0;if(null!=e&&i.type===s.CipherType.Login&&null!=i.login.uris)for(var a=0;a-1){if(!j.has(p.domain))return!0;var u=M.Utils.getHost(e);if(!j.get(p.domain).has(u))return!0}break;case c.UriMatchType.Host:var d=M.Utils.getHost(e);if(null!=d&&d===M.Utils.getHost(p.uri))return!0;break;case c.UriMatchType.Exact:if(e===p.uri)return!0;break;case c.UriMatchType.StartsWith:if(e.startsWith(p.uri))return!0;break;case c.UriMatchType.RegularExpression:try{if(new RegExp(p.uri,"i").test(e))return!0}catch(o){}break;case c.UriMatchType.Never:}}return!1})]}})})},t.prototype.getAllFromApiForOrganization=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.apiService.getCiphersOrganization(e)];case 1:return null!=(t=i.sent())&&null!=t.data&&t.data.length?(n=[],r=[],t.data.forEach(function(e){var t=new p.CipherData(e),i=new m.Cipher(t);r.push(i.decrypt().then(function(e){return n.push(e)}))}),[4,Promise.all(r)]):[3,3];case 2:return i.sent(),n.sort(this.getLocaleSortingFunction()),[2,n];case 3:return[2,[]]}})})},t.prototype.getLastUsedForUrl=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){return[2,this.getCipherForUrl(e,!0,!1)]})})},t.prototype.getLastLaunchedForUrl=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){return[2,this.getCipherForUrl(e,!1,!0)]})})},t.prototype.getNextCipherForUrl=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){return[2,this.getCipherForUrl(e,!1,!1)]})})},t.prototype.updateLastUsedIndexForUrl=function(e){this.sortedCiphersCache.updateLastUsedIndex(e)},t.prototype.updateLastUsedDate=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.storageService.get(D)];case 1:return(t=i.sent())||(t={}),t[e]?t[e].lastUsedDate=(new Date).getTime():t[e]={lastUsedDate:(new Date).getTime()},[4,this.storageService.save(D,t)];case 2:if(i.sent(),null==this.decryptedCipherCache)return[2];for(n=0;nr?-1:null!=r&&null==n?1:0},t.prototype.sortCiphersByLastUsedThenName=function(e,t){var n=this.sortCiphersByLastUsed(e,t);return 0!==n?n:this.getLocaleSortingFunction()(e,t)},t.prototype.getLocaleSortingFunction=function(){var e=this;return function(t,n){var r=t.name,i=n.name;if(null==r&&null!=i)return-1;if(null!=r&&null==i)return 1;if(null==r&&null==i)return 0;var a=e.i18nService.collator?e.i18nService.collator.compare(r,i):r.localeCompare(i);return 0!==a||t.type!==s.CipherType.Login||n.type!==s.CipherType.Login?a:(null!=t.login.username&&(r+=t.login.username),null!=n.login.username&&(i+=n.login.username),e.i18nService.collator?e.i18nService.collator.compare(r,i):r.localeCompare(i))}},t.prototype.softDelete=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(B+t)];case 2:return null==(n=i.sent())?[2]:(r=function(e){null!=n[e]&&(n[e].deletedDate=(new Date).toISOString())},"string"==typeof e?r(e):e.forEach(r),[4,this.storageService.save(B+t,n)]);case 3:return i.sent(),this.decryptedCipherCache=null,[2]}})})},t.prototype.softDeleteWithServer=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){switch(t.label){case 0:return[4,this.apiService.putDeleteCipher(e)];case 1:return t.sent(),[4,this.softDelete(e)];case 2:return t.sent(),[2]}})})},t.prototype.softDeleteManyWithServer=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){switch(t.label){case 0:return[4,this.apiService.putDeleteManyCiphers(new b.CipherBulkDeleteRequest(e))];case 1:return t.sent(),[4,this.softDelete(e)];case 2:return t.sent(),[2]}})})},t.prototype.restore=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(B+t)];case 2:return null==(n=i.sent())?[2]:(r=function(e){null!=n[e.id]&&(n[e.id].deletedDate=null,n[e.id].revisionDate=e.revisionDate)},"Array"===e.constructor.name?e.forEach(r):r(e),[4,this.storageService.save(B+t,n)]);case 3:return i.sent(),this.decryptedCipherCache=null,[2]}})})},t.prototype.restoreWithServer=function(e){return a(this,void 0,void 0,function(){var t;return o(this,function(n){switch(n.label){case 0:return[4,this.apiService.putRestoreCipher(e)];case 1:return t=n.sent(),[4,this.restore({id:e,revisionDate:t.revisionDate})];case 2:return n.sent(),[2]}})})},t.prototype.restoreManyWithServer=function(e){return a(this,void 0,void 0,function(){var t,n,r,i,a;return o(this,function(o){switch(o.label){case 0:return[4,this.apiService.putRestoreManyCiphers(new w.CipherBulkRestoreRequest(e))];case 1:for(t=o.sent(),n=[],r=0,i=t.data;r0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?[2,this.orgKeys]:[4,this.storageService.get(g)];case 1:if(null==(e=o.sent()))return[2,null];for(i in t=new Map,n=!1,r=[],e)r.push(i);a=0,o.label=2;case 2:return a53)throw new Error("We cannot generate numbers larger than 53 bits.");return a=Math.ceil(i/8),s=Math.pow(2,i)-1,c=Uint8Array.bind,[4,this.cryptoFunctionService.randomBytes(a)];case 1:for(l=new(c.apply(Uint8Array,[void 0,o.sent()])),p=8*(a-1),u=0;u=r?[2,this.randomNumber(e,t)]:[2,e+n]}})})},e.prototype.aesEncrypt=function(e,t){return a(this,void 0,void 0,function(){var n,r,i,a,s,l;return o(this,function(o){switch(o.label){case 0:return n=new u.EncryptedObject,r=n,[4,this.getKeyForEncryption(t)];case 1:return r.key=o.sent(),i=n,[4,this.cryptoFunctionService.randomBytes(16)];case 2:return i.iv=o.sent(),a=n,[4,this.cryptoFunctionService.aesEncrypt(e,n.iv,n.key.encKey)];case 3:return a.data=o.sent(),null==n.key.macKey?[3,5]:((s=new Uint8Array(n.iv.byteLength+n.data.byteLength)).set(new Uint8Array(n.iv),0),s.set(new Uint8Array(n.data),n.iv.byteLength),l=n,[4,this.cryptoFunctionService.hmac(s.buffer,n.key.macKey,"sha256")]);case 4:l.mac=o.sent(),o.label=5;case 5:return[2,n]}})})},e.prototype.aesDecryptToUtf8=function(e,t,n,r,i){return a(this,void 0,void 0,function(){var a,s,l,c;return o(this,function(o){switch(o.label){case 0:return[4,this.getKeyForEncryption(i)];case 1:return a=o.sent(),null!=(s=this.resolveLegacyKey(e,a)).macKey&&null==r?(this.logService.error("mac required."),[2,null]):s.encType!==e?(this.logService.error("encType unavailable."),[2,null]):null==(l=this.cryptoFunctionService.aesDecryptFastParameters(t,n,r,s)).macKey||null==l.mac?[3,4]:[4,this.cryptoFunctionService.hmacFast(l.macData,l.macKey,"sha256")];case 2:return c=o.sent(),[4,this.cryptoFunctionService.compareFast(l.mac,c)];case 3:if(!o.sent())return this.logService.error("mac failed."),[2,null];o.label=4;case 4:return[2,this.cryptoFunctionService.aesDecryptFast(l)]}})})},e.prototype.aesDecryptToBytes=function(e,t,n,r,i){return a(this,void 0,void 0,function(){var a,s,l,c;return o(this,function(o){switch(o.label){case 0:return[4,this.getKeyForEncryption(i)];case 1:return a=o.sent(),null!=(s=this.resolveLegacyKey(e,a)).macKey&&null==r?[2,null]:s.encType!==e?[2,null]:null==s.macKey||null==r?[3,4]:((l=new Uint8Array(n.byteLength+t.byteLength)).set(new Uint8Array(n),0),l.set(new Uint8Array(t),n.byteLength),[4,this.cryptoFunctionService.hmac(l.buffer,s.macKey,"sha256")]);case 2:return null===(c=o.sent())?[2,null]:[4,this.cryptoFunctionService.compare(r,c)];case 3:if(!o.sent())return this.logService.error("mac failed."),[2,null];o.label=4;case 4:return[4,this.cryptoFunctionService.aesDecrypt(t,n,s.encKey)];case 5:return[2,o.sent()]}})})},e.prototype.getKeyForEncryption=function(e){return a(this,void 0,void 0,function(){var t;return o(this,function(n){switch(n.label){case 0:return null!=e?[2,e]:[4,this.getEncKey()];case 1:return null!=(t=n.sent())?[2,t]:[4,this.getKey()];case 2:return[2,n.sent()]}})})},e.prototype.resolveLegacyKey=function(e,t){return e===l.EncryptionType.AesCbc128_HmacSha256_B64&&t.encType===l.EncryptionType.AesCbc256_B64?(null==this.legacyEtmKey&&(this.legacyEtmKey=new d.SymmetricCryptoKey(t.key,l.EncryptionType.AesCbc128_HmacSha256_B64)),this.legacyEtmKey):t},e.prototype.stretchKey=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return t=new Uint8Array(64),[4,this.cryptoFunctionService.hkdfExpand(e.key,"enc",32,"sha256")];case 1:return n=i.sent(),[4,this.cryptoFunctionService.hkdfExpand(e.key,"mac",32,"sha256")];case 2:return r=i.sent(),t.set(new Uint8Array(n)),t.set(new Uint8Array(r),32),[2,new d.SymmetricCryptoKey(t.buffer)]}})})},e.prototype.hashPhrase=function(e,t){return void 0===t&&(t=64),a(this,void 0,void 0,function(){var n,r,i,a,l,c,p;return o(this,function(o){if(n=Math.log(v.EEFLongWordList.length)/Math.log(2),r=Math.ceil(t/n),i=Array.from(new Uint8Array(e)),a=4*i.length,r*n>a)throw new Error("Output entropy of hash function is too small");for(l=[],c=s.fromArray(i,256);r--;)p=c.mod(v.EEFLongWordList.length),c=c.divide(v.EEFLongWordList.length),l.push(v.EEFLongWordList[p]);return[2,l]})})},e.prototype.buildEncKey=function(e,t){return a(this,void 0,void 0,function(){var n,r;return o(this,function(i){switch(i.label){case 0:return n=null,32!==e.key.byteLength?[3,3]:[4,this.stretchKey(e)];case 1:return r=i.sent(),[4,this.encrypt(t,r)];case 2:return n=i.sent(),[3,6];case 3:return 64!==e.key.byteLength?[3,5]:[4,this.encrypt(t,e)];case 4:return n=i.sent(),[3,6];case 5:throw new Error("Invalid key size.");case 6:return[2,[new d.SymmetricCryptoKey(t),n]]}})})},r([h.sequentialize(function(){return"getEncKey"}),i("design:type",Function),i("design:paramtypes",[d.SymmetricCryptoKey]),i("design:returntype",Promise)],e.prototype,"getEncKey",null),r([h.sequentialize(function(){return"getOrgKeys"}),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",Promise)],e.prototype,"getOrgKeys",null),e}();t.CryptoService=w},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EEFLongWordList=["abacus","abdomen","abdominal","abide","abiding","ability","ablaze","able","abnormal","abrasion","abrasive","abreast","abridge","abroad","abruptly","absence","absentee","absently","absinthe","absolute","absolve","abstain","abstract","absurd","accent","acclaim","acclimate","accompany","account","accuracy","accurate","accustom","acetone","achiness","aching","acid","acorn","acquaint","acquire","acre","acrobat","acronym","acting","action","activate","activator","active","activism","activist","activity","actress","acts","acutely","acuteness","aeration","aerobics","aerosol","aerospace","afar","affair","affected","affecting","affection","affidavit","affiliate","affirm","affix","afflicted","affluent","afford","affront","aflame","afloat","aflutter","afoot","afraid","afterglow","afterlife","aftermath","aftermost","afternoon","aged","ageless","agency","agenda","agent","aggregate","aghast","agile","agility","aging","agnostic","agonize","agonizing","agony","agreeable","agreeably","agreed","agreeing","agreement","aground","ahead","ahoy","aide","aids","aim","ajar","alabaster","alarm","albatross","album","alfalfa","algebra","algorithm","alias","alibi","alienable","alienate","aliens","alike","alive","alkaline","alkalize","almanac","almighty","almost","aloe","aloft","aloha","alone","alongside","aloof","alphabet","alright","although","altitude","alto","aluminum","alumni","always","amaretto","amaze","amazingly","amber","ambiance","ambiguity","ambiguous","ambition","ambitious","ambulance","ambush","amendable","amendment","amends","amenity","amiable","amicably","amid","amigo","amino","amiss","ammonia","ammonium","amnesty","amniotic","among","amount","amperage","ample","amplifier","amplify","amply","amuck","amulet","amusable","amused","amusement","amuser","amusing","anaconda","anaerobic","anagram","anatomist","anatomy","anchor","anchovy","ancient","android","anemia","anemic","aneurism","anew","angelfish","angelic","anger","angled","angler","angles","angling","angrily","angriness","anguished","angular","animal","animate","animating","animation","animator","anime","animosity","ankle","annex","annotate","announcer","annoying","annually","annuity","anointer","another","answering","antacid","antarctic","anteater","antelope","antennae","anthem","anthill","anthology","antibody","antics","antidote","antihero","antiquely","antiques","antiquity","antirust","antitoxic","antitrust","antiviral","antivirus","antler","antonym","antsy","anvil","anybody","anyhow","anymore","anyone","anyplace","anything","anytime","anyway","anywhere","aorta","apache","apostle","appealing","appear","appease","appeasing","appendage","appendix","appetite","appetizer","applaud","applause","apple","appliance","applicant","applied","apply","appointee","appraisal","appraiser","apprehend","approach","approval","approve","apricot","april","apron","aptitude","aptly","aqua","aqueduct","arbitrary","arbitrate","ardently","area","arena","arguable","arguably","argue","arise","armadillo","armband","armchair","armed","armful","armhole","arming","armless","armoire","armored","armory","armrest","army","aroma","arose","around","arousal","arrange","array","arrest","arrival","arrive","arrogance","arrogant","arson","art","ascend","ascension","ascent","ascertain","ashamed","ashen","ashes","ashy","aside","askew","asleep","asparagus","aspect","aspirate","aspire","aspirin","astonish","astound","astride","astrology","astronaut","astronomy","astute","atlantic","atlas","atom","atonable","atop","atrium","atrocious","atrophy","attach","attain","attempt","attendant","attendee","attention","attentive","attest","attic","attire","attitude","attractor","attribute","atypical","auction","audacious","audacity","audible","audibly","audience","audio","audition","augmented","august","authentic","author","autism","autistic","autograph","automaker","automated","automatic","autopilot","available","avalanche","avatar","avenge","avenging","avenue","average","aversion","avert","aviation","aviator","avid","avoid","await","awaken","award","aware","awhile","awkward","awning","awoke","awry","axis","babble","babbling","babied","baboon","backache","backboard","backboned","backdrop","backed","backer","backfield","backfire","backhand","backing","backlands","backlash","backless","backlight","backlit","backlog","backpack","backpedal","backrest","backroom","backshift","backside","backslid","backspace","backspin","backstab","backstage","backtalk","backtrack","backup","backward","backwash","backwater","backyard","bacon","bacteria","bacterium","badass","badge","badland","badly","badness","baffle","baffling","bagel","bagful","baggage","bagged","baggie","bagginess","bagging","baggy","bagpipe","baguette","baked","bakery","bakeshop","baking","balance","balancing","balcony","balmy","balsamic","bamboo","banana","banish","banister","banjo","bankable","bankbook","banked","banker","banking","banknote","bankroll","banner","bannister","banshee","banter","barbecue","barbed","barbell","barber","barcode","barge","bargraph","barista","baritone","barley","barmaid","barman","barn","barometer","barrack","barracuda","barrel","barrette","barricade","barrier","barstool","bartender","barterer","bash","basically","basics","basil","basin","basis","basket","batboy","batch","bath","baton","bats","battalion","battered","battering","battery","batting","battle","bauble","bazooka","blabber","bladder","blade","blah","blame","blaming","blanching","blandness","blank","blaspheme","blasphemy","blast","blatancy","blatantly","blazer","blazing","bleach","bleak","bleep","blemish","blend","bless","blighted","blimp","bling","blinked","blinker","blinking","blinks","blip","blissful","blitz","blizzard","bloated","bloating","blob","blog","bloomers","blooming","blooper","blot","blouse","blubber","bluff","bluish","blunderer","blunt","blurb","blurred","blurry","blurt","blush","blustery","boaster","boastful","boasting","boat","bobbed","bobbing","bobble","bobcat","bobsled","bobtail","bodacious","body","bogged","boggle","bogus","boil","bok","bolster","bolt","bonanza","bonded","bonding","bondless","boned","bonehead","boneless","bonelike","boney","bonfire","bonnet","bonsai","bonus","bony","boogeyman","boogieman","book","boondocks","booted","booth","bootie","booting","bootlace","bootleg","boots","boozy","borax","boring","borough","borrower","borrowing","boss","botanical","botanist","botany","botch","both","bottle","bottling","bottom","bounce","bouncing","bouncy","bounding","boundless","bountiful","bovine","boxcar","boxer","boxing","boxlike","boxy","breach","breath","breeches","breeching","breeder","breeding","breeze","breezy","brethren","brewery","brewing","briar","bribe","brick","bride","bridged","brigade","bright","brilliant","brim","bring","brink","brisket","briskly","briskness","bristle","brittle","broadband","broadcast","broaden","broadly","broadness","broadside","broadways","broiler","broiling","broken","broker","bronchial","bronco","bronze","bronzing","brook","broom","brought","browbeat","brownnose","browse","browsing","bruising","brunch","brunette","brunt","brush","brussels","brute","brutishly","bubble","bubbling","bubbly","buccaneer","bucked","bucket","buckle","buckshot","buckskin","bucktooth","buckwheat","buddhism","buddhist","budding","buddy","budget","buffalo","buffed","buffer","buffing","buffoon","buggy","bulb","bulge","bulginess","bulgur","bulk","bulldog","bulldozer","bullfight","bullfrog","bullhorn","bullion","bullish","bullpen","bullring","bullseye","bullwhip","bully","bunch","bundle","bungee","bunion","bunkbed","bunkhouse","bunkmate","bunny","bunt","busboy","bush","busily","busload","bust","busybody","buzz","cabana","cabbage","cabbie","cabdriver","cable","caboose","cache","cackle","cacti","cactus","caddie","caddy","cadet","cadillac","cadmium","cage","cahoots","cake","calamari","calamity","calcium","calculate","calculus","caliber","calibrate","calm","caloric","calorie","calzone","camcorder","cameo","camera","camisole","camper","campfire","camping","campsite","campus","canal","canary","cancel","candied","candle","candy","cane","canine","canister","cannabis","canned","canning","cannon","cannot","canola","canon","canopener","canopy","canteen","canyon","capable","capably","capacity","cape","capillary","capital","capitol","capped","capricorn","capsize","capsule","caption","captivate","captive","captivity","capture","caramel","carat","caravan","carbon","cardboard","carded","cardiac","cardigan","cardinal","cardstock","carefully","caregiver","careless","caress","caretaker","cargo","caring","carless","carload","carmaker","carnage","carnation","carnival","carnivore","carol","carpenter","carpentry","carpool","carport","carried","carrot","carrousel","carry","cartel","cartload","carton","cartoon","cartridge","cartwheel","carve","carving","carwash","cascade","case","cash","casing","casino","casket","cassette","casually","casualty","catacomb","catalog","catalyst","catalyze","catapult","cataract","catatonic","catcall","catchable","catcher","catching","catchy","caterer","catering","catfight","catfish","cathedral","cathouse","catlike","catnap","catnip","catsup","cattail","cattishly","cattle","catty","catwalk","caucasian","caucus","causal","causation","cause","causing","cauterize","caution","cautious","cavalier","cavalry","caviar","cavity","cedar","celery","celestial","celibacy","celibate","celtic","cement","census","ceramics","ceremony","certainly","certainty","certified","certify","cesarean","cesspool","chafe","chaffing","chain","chair","chalice","challenge","chamber","chamomile","champion","chance","change","channel","chant","chaos","chaperone","chaplain","chapped","chaps","chapter","character","charbroil","charcoal","charger","charging","chariot","charity","charm","charred","charter","charting","chase","chasing","chaste","chastise","chastity","chatroom","chatter","chatting","chatty","cheating","cheddar","cheek","cheer","cheese","cheesy","chef","chemicals","chemist","chemo","cherisher","cherub","chess","chest","chevron","chevy","chewable","chewer","chewing","chewy","chief","chihuahua","childcare","childhood","childish","childless","childlike","chili","chill","chimp","chip","chirping","chirpy","chitchat","chivalry","chive","chloride","chlorine","choice","chokehold","choking","chomp","chooser","choosing","choosy","chop","chosen","chowder","chowtime","chrome","chubby","chuck","chug","chummy","chump","chunk","churn","chute","cider","cilantro","cinch","cinema","cinnamon","circle","circling","circular","circulate","circus","citable","citadel","citation","citizen","citric","citrus","city","civic","civil","clad","claim","clambake","clammy","clamor","clamp","clamshell","clang","clanking","clapped","clapper","clapping","clarify","clarinet","clarity","clash","clasp","class","clatter","clause","clavicle","claw","clay","clean","clear","cleat","cleaver","cleft","clench","clergyman","clerical","clerk","clever","clicker","client","climate","climatic","cling","clinic","clinking","clip","clique","cloak","clobber","clock","clone","cloning","closable","closure","clothes","clothing","cloud","clover","clubbed","clubbing","clubhouse","clump","clumsily","clumsy","clunky","clustered","clutch","clutter","coach","coagulant","coastal","coaster","coasting","coastland","coastline","coat","coauthor","cobalt","cobbler","cobweb","cocoa","coconut","cod","coeditor","coerce","coexist","coffee","cofounder","cognition","cognitive","cogwheel","coherence","coherent","cohesive","coil","coke","cola","cold","coleslaw","coliseum","collage","collapse","collar","collected","collector","collide","collie","collision","colonial","colonist","colonize","colony","colossal","colt","coma","come","comfort","comfy","comic","coming","comma","commence","commend","comment","commerce","commode","commodity","commodore","common","commotion","commute","commuting","compacted","compacter","compactly","compactor","companion","company","compare","compel","compile","comply","component","composed","composer","composite","compost","composure","compound","compress","comprised","computer","computing","comrade","concave","conceal","conceded","concept","concerned","concert","conch","concierge","concise","conclude","concrete","concur","condense","condiment","condition","condone","conducive","conductor","conduit","cone","confess","confetti","confidant","confident","confider","confiding","configure","confined","confining","confirm","conflict","conform","confound","confront","confused","confusing","confusion","congenial","congested","congrats","congress","conical","conjoined","conjure","conjuror","connected","connector","consensus","consent","console","consoling","consonant","constable","constant","constrain","constrict","construct","consult","consumer","consuming","contact","container","contempt","contend","contented","contently","contents","contest","context","contort","contour","contrite","control","contusion","convene","convent","copartner","cope","copied","copier","copilot","coping","copious","copper","copy","coral","cork","cornball","cornbread","corncob","cornea","corned","corner","cornfield","cornflake","cornhusk","cornmeal","cornstalk","corny","coronary","coroner","corporal","corporate","corral","correct","corridor","corrode","corroding","corrosive","corsage","corset","cortex","cosigner","cosmetics","cosmic","cosmos","cosponsor","cost","cottage","cotton","couch","cough","could","countable","countdown","counting","countless","country","county","courier","covenant","cover","coveted","coveting","coyness","cozily","coziness","cozy","crabbing","crabgrass","crablike","crabmeat","cradle","cradling","crafter","craftily","craftsman","craftwork","crafty","cramp","cranberry","crane","cranial","cranium","crank","crate","crave","craving","crawfish","crawlers","crawling","crayfish","crayon","crazed","crazily","craziness","crazy","creamed","creamer","creamlike","crease","creasing","creatable","create","creation","creative","creature","credible","credibly","credit","creed","creme","creole","crepe","crept","crescent","crested","cresting","crestless","crevice","crewless","crewman","crewmate","crib","cricket","cried","crier","crimp","crimson","cringe","cringing","crinkle","crinkly","crisped","crisping","crisply","crispness","crispy","criteria","critter","croak","crock","crook","croon","crop","cross","crouch","crouton","crowbar","crowd","crown","crucial","crudely","crudeness","cruelly","cruelness","cruelty","crumb","crummiest","crummy","crumpet","crumpled","cruncher","crunching","crunchy","crusader","crushable","crushed","crusher","crushing","crust","crux","crying","cryptic","crystal","cubbyhole","cube","cubical","cubicle","cucumber","cuddle","cuddly","cufflink","culinary","culminate","culpable","culprit","cultivate","cultural","culture","cupbearer","cupcake","cupid","cupped","cupping","curable","curator","curdle","cure","curfew","curing","curled","curler","curliness","curling","curly","curry","curse","cursive","cursor","curtain","curtly","curtsy","curvature","curve","curvy","cushy","cusp","cussed","custard","custodian","custody","customary","customer","customize","customs","cut","cycle","cyclic","cycling","cyclist","cylinder","cymbal","cytoplasm","cytoplast","dab","dad","daffodil","dagger","daily","daintily","dainty","dairy","daisy","dallying","dance","dancing","dandelion","dander","dandruff","dandy","danger","dangle","dangling","daredevil","dares","daringly","darkened","darkening","darkish","darkness","darkroom","darling","darn","dart","darwinism","dash","dastardly","data","datebook","dating","daughter","daunting","dawdler","dawn","daybed","daybreak","daycare","daydream","daylight","daylong","dayroom","daytime","dazzler","dazzling","deacon","deafening","deafness","dealer","dealing","dealmaker","dealt","dean","debatable","debate","debating","debit","debrief","debtless","debtor","debug","debunk","decade","decaf","decal","decathlon","decay","deceased","deceit","deceiver","deceiving","december","decency","decent","deception","deceptive","decibel","decidable","decimal","decimeter","decipher","deck","declared","decline","decode","decompose","decorated","decorator","decoy","decrease","decree","dedicate","dedicator","deduce","deduct","deed","deem","deepen","deeply","deepness","deface","defacing","defame","default","defeat","defection","defective","defendant","defender","defense","defensive","deferral","deferred","defiance","defiant","defile","defiling","define","definite","deflate","deflation","deflator","deflected","deflector","defog","deforest","defraud","defrost","deftly","defuse","defy","degraded","degrading","degrease","degree","dehydrate","deity","dejected","delay","delegate","delegator","delete","deletion","delicacy","delicate","delicious","delighted","delirious","delirium","deliverer","delivery","delouse","delta","deluge","delusion","deluxe","demanding","demeaning","demeanor","demise","democracy","democrat","demote","demotion","demystify","denatured","deniable","denial","denim","denote","dense","density","dental","dentist","denture","deny","deodorant","deodorize","departed","departure","depict","deplete","depletion","deplored","deploy","deport","depose","depraved","depravity","deprecate","depress","deprive","depth","deputize","deputy","derail","deranged","derby","derived","desecrate","deserve","deserving","designate","designed","designer","designing","deskbound","desktop","deskwork","desolate","despair","despise","despite","destiny","destitute","destruct","detached","detail","detection","detective","detector","detention","detergent","detest","detonate","detonator","detoxify","detract","deuce","devalue","deviancy","deviant","deviate","deviation","deviator","device","devious","devotedly","devotee","devotion","devourer","devouring","devoutly","dexterity","dexterous","diabetes","diabetic","diabolic","diagnoses","diagnosis","diagram","dial","diameter","diaper","diaphragm","diary","dice","dicing","dictate","dictation","dictator","difficult","diffused","diffuser","diffusion","diffusive","dig","dilation","diligence","diligent","dill","dilute","dime","diminish","dimly","dimmed","dimmer","dimness","dimple","diner","dingbat","dinghy","dinginess","dingo","dingy","dining","dinner","diocese","dioxide","diploma","dipped","dipper","dipping","directed","direction","directive","directly","directory","direness","dirtiness","disabled","disagree","disallow","disarm","disarray","disaster","disband","disbelief","disburse","discard","discern","discharge","disclose","discolor","discount","discourse","discover","discuss","disdain","disengage","disfigure","disgrace","dish","disinfect","disjoin","disk","dislike","disliking","dislocate","dislodge","disloyal","dismantle","dismay","dismiss","dismount","disobey","disorder","disown","disparate","disparity","dispatch","dispense","dispersal","dispersed","disperser","displace","display","displease","disposal","dispose","disprove","dispute","disregard","disrupt","dissuade","distance","distant","distaste","distill","distinct","distort","distract","distress","district","distrust","ditch","ditto","ditzy","dividable","divided","dividend","dividers","dividing","divinely","diving","divinity","divisible","divisibly","division","divisive","divorcee","dizziness","dizzy","doable","docile","dock","doctrine","document","dodge","dodgy","doily","doing","dole","dollar","dollhouse","dollop","dolly","dolphin","domain","domelike","domestic","dominion","dominoes","donated","donation","donator","donor","donut","doodle","doorbell","doorframe","doorknob","doorman","doormat","doornail","doorpost","doorstep","doorstop","doorway","doozy","dork","dormitory","dorsal","dosage","dose","dotted","doubling","douche","dove","down","dowry","doze","drab","dragging","dragonfly","dragonish","dragster","drainable","drainage","drained","drainer","drainpipe","dramatic","dramatize","drank","drapery","drastic","draw","dreaded","dreadful","dreadlock","dreamboat","dreamily","dreamland","dreamless","dreamlike","dreamt","dreamy","drearily","dreary","drench","dress","drew","dribble","dried","drier","drift","driller","drilling","drinkable","drinking","dripping","drippy","drivable","driven","driver","driveway","driving","drizzle","drizzly","drone","drool","droop","drop-down","dropbox","dropkick","droplet","dropout","dropper","drove","drown","drowsily","drudge","drum","dry","dubbed","dubiously","duchess","duckbill","ducking","duckling","ducktail","ducky","duct","dude","duffel","dugout","duh","duke","duller","dullness","duly","dumping","dumpling","dumpster","duo","dupe","duplex","duplicate","duplicity","durable","durably","duration","duress","during","dusk","dust","dutiful","duty","duvet","dwarf","dweeb","dwelled","dweller","dwelling","dwindle","dwindling","dynamic","dynamite","dynasty","dyslexia","dyslexic","each","eagle","earache","eardrum","earflap","earful","earlobe","early","earmark","earmuff","earphone","earpiece","earplugs","earring","earshot","earthen","earthlike","earthling","earthly","earthworm","earthy","earwig","easeful","easel","easiest","easily","easiness","easing","eastbound","eastcoast","easter","eastward","eatable","eaten","eatery","eating","eats","ebay","ebony","ebook","ecard","eccentric","echo","eclair","eclipse","ecologist","ecology","economic","economist","economy","ecosphere","ecosystem","edge","edginess","edging","edgy","edition","editor","educated","education","educator","eel","effective","effects","efficient","effort","eggbeater","egging","eggnog","eggplant","eggshell","egomaniac","egotism","egotistic","either","eject","elaborate","elastic","elated","elbow","eldercare","elderly","eldest","electable","election","elective","elephant","elevate","elevating","elevation","elevator","eleven","elf","eligible","eligibly","eliminate","elite","elitism","elixir","elk","ellipse","elliptic","elm","elongated","elope","eloquence","eloquent","elsewhere","elude","elusive","elves","email","embargo","embark","embassy","embattled","embellish","ember","embezzle","emblaze","emblem","embody","embolism","emboss","embroider","emcee","emerald","emergency","emission","emit","emote","emoticon","emotion","empathic","empathy","emperor","emphases","emphasis","emphasize","emphatic","empirical","employed","employee","employer","emporium","empower","emptier","emptiness","empty","emu","enable","enactment","enamel","enchanted","enchilada","encircle","enclose","enclosure","encode","encore","encounter","encourage","encroach","encrust","encrypt","endanger","endeared","endearing","ended","ending","endless","endnote","endocrine","endorphin","endorse","endowment","endpoint","endurable","endurance","enduring","energetic","energize","energy","enforced","enforcer","engaged","engaging","engine","engorge","engraved","engraver","engraving","engross","engulf","enhance","enigmatic","enjoyable","enjoyably","enjoyer","enjoying","enjoyment","enlarged","enlarging","enlighten","enlisted","enquirer","enrage","enrich","enroll","enslave","ensnare","ensure","entail","entangled","entering","entertain","enticing","entire","entitle","entity","entomb","entourage","entrap","entree","entrench","entrust","entryway","entwine","enunciate","envelope","enviable","enviably","envious","envision","envoy","envy","enzyme","epic","epidemic","epidermal","epidermis","epidural","epilepsy","epileptic","epilogue","epiphany","episode","equal","equate","equation","equator","equinox","equipment","equity","equivocal","eradicate","erasable","erased","eraser","erasure","ergonomic","errand","errant","erratic","error","erupt","escalate","escalator","escapable","escapade","escapist","escargot","eskimo","esophagus","espionage","espresso","esquire","essay","essence","essential","establish","estate","esteemed","estimate","estimator","estranged","estrogen","etching","eternal","eternity","ethanol","ether","ethically","ethics","euphemism","evacuate","evacuee","evade","evaluate","evaluator","evaporate","evasion","evasive","even","everglade","evergreen","everybody","everyday","everyone","evict","evidence","evident","evil","evoke","evolution","evolve","exact","exalted","example","excavate","excavator","exceeding","exception","excess","exchange","excitable","exciting","exclaim","exclude","excluding","exclusion","exclusive","excretion","excretory","excursion","excusable","excusably","excuse","exemplary","exemplify","exemption","exerciser","exert","exes","exfoliate","exhale","exhaust","exhume","exile","existing","exit","exodus","exonerate","exorcism","exorcist","expand","expanse","expansion","expansive","expectant","expedited","expediter","expel","expend","expenses","expensive","expert","expire","expiring","explain","expletive","explicit","explode","exploit","explore","exploring","exponent","exporter","exposable","expose","exposure","express","expulsion","exquisite","extended","extending","extent","extenuate","exterior","external","extinct","extortion","extradite","extras","extrovert","extrude","extruding","exuberant","fable","fabric","fabulous","facebook","facecloth","facedown","faceless","facelift","faceplate","faceted","facial","facility","facing","facsimile","faction","factoid","factor","factsheet","factual","faculty","fade","fading","failing","falcon","fall","false","falsify","fame","familiar","family","famine","famished","fanatic","fancied","fanciness","fancy","fanfare","fang","fanning","fantasize","fantastic","fantasy","fascism","fastball","faster","fasting","fastness","faucet","favorable","favorably","favored","favoring","favorite","fax","feast","federal","fedora","feeble","feed","feel","feisty","feline","felt-tip","feminine","feminism","feminist","feminize","femur","fence","fencing","fender","ferment","fernlike","ferocious","ferocity","ferret","ferris","ferry","fervor","fester","festival","festive","festivity","fetal","fetch","fever","fiber","fiction","fiddle","fiddling","fidelity","fidgeting","fidgety","fifteen","fifth","fiftieth","fifty","figment","figure","figurine","filing","filled","filler","filling","film","filter","filth","filtrate","finale","finalist","finalize","finally","finance","financial","finch","fineness","finer","finicky","finished","finisher","finishing","finite","finless","finlike","fiscally","fit","five","flaccid","flagman","flagpole","flagship","flagstick","flagstone","flail","flakily","flaky","flame","flammable","flanked","flanking","flannels","flap","flaring","flashback","flashbulb","flashcard","flashily","flashing","flashy","flask","flatbed","flatfoot","flatly","flatness","flatten","flattered","flatterer","flattery","flattop","flatware","flatworm","flavored","flavorful","flavoring","flaxseed","fled","fleshed","fleshy","flick","flier","flight","flinch","fling","flint","flip","flirt","float","flock","flogging","flop","floral","florist","floss","flounder","flyable","flyaway","flyer","flying","flyover","flypaper","foam","foe","fog","foil","folic","folk","follicle","follow","fondling","fondly","fondness","fondue","font","food","fool","footage","football","footbath","footboard","footer","footgear","foothill","foothold","footing","footless","footman","footnote","footpad","footpath","footprint","footrest","footsie","footsore","footwear","footwork","fossil","foster","founder","founding","fountain","fox","foyer","fraction","fracture","fragile","fragility","fragment","fragrance","fragrant","frail","frame","framing","frantic","fraternal","frayed","fraying","frays","freckled","freckles","freebase","freebee","freebie","freedom","freefall","freehand","freeing","freeload","freely","freemason","freeness","freestyle","freeware","freeway","freewill","freezable","freezing","freight","french","frenzied","frenzy","frequency","frequent","fresh","fretful","fretted","friction","friday","fridge","fried","friend","frighten","frightful","frigidity","frigidly","frill","fringe","frisbee","frisk","fritter","frivolous","frolic","from","front","frostbite","frosted","frostily","frosting","frostlike","frosty","froth","frown","frozen","fructose","frugality","frugally","fruit","frustrate","frying","gab","gaffe","gag","gainfully","gaining","gains","gala","gallantly","galleria","gallery","galley","gallon","gallows","gallstone","galore","galvanize","gambling","game","gaming","gamma","gander","gangly","gangrene","gangway","gap","garage","garbage","garden","gargle","garland","garlic","garment","garnet","garnish","garter","gas","gatherer","gathering","gating","gauging","gauntlet","gauze","gave","gawk","gazing","gear","gecko","geek","geiger","gem","gender","generic","generous","genetics","genre","gentile","gentleman","gently","gents","geography","geologic","geologist","geology","geometric","geometry","geranium","gerbil","geriatric","germicide","germinate","germless","germproof","gestate","gestation","gesture","getaway","getting","getup","giant","gibberish","giblet","giddily","giddiness","giddy","gift","gigabyte","gigahertz","gigantic","giggle","giggling","giggly","gigolo","gilled","gills","gimmick","girdle","giveaway","given","giver","giving","gizmo","gizzard","glacial","glacier","glade","gladiator","gladly","glamorous","glamour","glance","glancing","glandular","glare","glaring","glass","glaucoma","glazing","gleaming","gleeful","glider","gliding","glimmer","glimpse","glisten","glitch","glitter","glitzy","gloater","gloating","gloomily","gloomy","glorified","glorifier","glorify","glorious","glory","gloss","glove","glowing","glowworm","glucose","glue","gluten","glutinous","glutton","gnarly","gnat","goal","goatskin","goes","goggles","going","goldfish","goldmine","goldsmith","golf","goliath","gonad","gondola","gone","gong","good","gooey","goofball","goofiness","goofy","google","goon","gopher","gore","gorged","gorgeous","gory","gosling","gossip","gothic","gotten","gout","gown","grab","graceful","graceless","gracious","gradation","graded","grader","gradient","grading","gradually","graduate","graffiti","grafted","grafting","grain","granddad","grandkid","grandly","grandma","grandpa","grandson","granite","granny","granola","grant","granular","grape","graph","grapple","grappling","grasp","grass","gratified","gratify","grating","gratitude","gratuity","gravel","graveness","graves","graveyard","gravitate","gravity","gravy","gray","grazing","greasily","greedily","greedless","greedy","green","greeter","greeting","grew","greyhound","grid","grief","grievance","grieving","grievous","grill","grimace","grimacing","grime","griminess","grimy","grinch","grinning","grip","gristle","grit","groggily","groggy","groin","groom","groove","grooving","groovy","grope","ground","grouped","grout","grove","grower","growing","growl","grub","grudge","grudging","grueling","gruffly","grumble","grumbling","grumbly","grumpily","grunge","grunt","guacamole","guidable","guidance","guide","guiding","guileless","guise","gulf","gullible","gully","gulp","gumball","gumdrop","gumminess","gumming","gummy","gurgle","gurgling","guru","gush","gusto","gusty","gutless","guts","gutter","guy","guzzler","gyration","habitable","habitant","habitat","habitual","hacked","hacker","hacking","hacksaw","had","haggler","haiku","half","halogen","halt","halved","halves","hamburger","hamlet","hammock","hamper","hamster","hamstring","handbag","handball","handbook","handbrake","handcart","handclap","handclasp","handcraft","handcuff","handed","handful","handgrip","handgun","handheld","handiness","handiwork","handlebar","handled","handler","handling","handmade","handoff","handpick","handprint","handrail","handsaw","handset","handsfree","handshake","handstand","handwash","handwork","handwoven","handwrite","handyman","hangnail","hangout","hangover","hangup","hankering","hankie","hanky","haphazard","happening","happier","happiest","happily","happiness","happy","harbor","hardcopy","hardcore","hardcover","harddisk","hardened","hardener","hardening","hardhat","hardhead","hardiness","hardly","hardness","hardship","hardware","hardwired","hardwood","hardy","harmful","harmless","harmonica","harmonics","harmonize","harmony","harness","harpist","harsh","harvest","hash","hassle","haste","hastily","hastiness","hasty","hatbox","hatchback","hatchery","hatchet","hatching","hatchling","hate","hatless","hatred","haunt","haven","hazard","hazelnut","hazily","haziness","hazing","hazy","headache","headband","headboard","headcount","headdress","headed","header","headfirst","headgear","heading","headlamp","headless","headlock","headphone","headpiece","headrest","headroom","headscarf","headset","headsman","headstand","headstone","headway","headwear","heap","heat","heave","heavily","heaviness","heaving","hedge","hedging","heftiness","hefty","helium","helmet","helper","helpful","helping","helpless","helpline","hemlock","hemstitch","hence","henchman","henna","herald","herbal","herbicide","herbs","heritage","hermit","heroics","heroism","herring","herself","hertz","hesitancy","hesitant","hesitate","hexagon","hexagram","hubcap","huddle","huddling","huff","hug","hula","hulk","hull","human","humble","humbling","humbly","humid","humiliate","humility","humming","hummus","humongous","humorist","humorless","humorous","humpback","humped","humvee","hunchback","hundredth","hunger","hungrily","hungry","hunk","hunter","hunting","huntress","huntsman","hurdle","hurled","hurler","hurling","hurray","hurricane","hurried","hurry","hurt","husband","hush","husked","huskiness","hut","hybrid","hydrant","hydrated","hydration","hydrogen","hydroxide","hyperlink","hypertext","hyphen","hypnoses","hypnosis","hypnotic","hypnotism","hypnotist","hypnotize","hypocrisy","hypocrite","ibuprofen","ice","iciness","icing","icky","icon","icy","idealism","idealist","idealize","ideally","idealness","identical","identify","identity","ideology","idiocy","idiom","idly","igloo","ignition","ignore","iguana","illicitly","illusion","illusive","image","imaginary","imagines","imaging","imbecile","imitate","imitation","immature","immerse","immersion","imminent","immobile","immodest","immorally","immortal","immovable","immovably","immunity","immunize","impaired","impale","impart","impatient","impeach","impeding","impending","imperfect","imperial","impish","implant","implement","implicate","implicit","implode","implosion","implosive","imply","impolite","important","importer","impose","imposing","impotence","impotency","impotent","impound","imprecise","imprint","imprison","impromptu","improper","improve","improving","improvise","imprudent","impulse","impulsive","impure","impurity","iodine","iodize","ion","ipad","iphone","ipod","irate","irk","iron","irregular","irrigate","irritable","irritably","irritant","irritate","islamic","islamist","isolated","isolating","isolation","isotope","issue","issuing","italicize","italics","item","itinerary","itunes","ivory","ivy","jab","jackal","jacket","jackknife","jackpot","jailbird","jailbreak","jailer","jailhouse","jalapeno","jam","janitor","january","jargon","jarring","jasmine","jaundice","jaunt","java","jawed","jawless","jawline","jaws","jaybird","jaywalker","jazz","jeep","jeeringly","jellied","jelly","jersey","jester","jet","jiffy","jigsaw","jimmy","jingle","jingling","jinx","jitters","jittery","job","jockey","jockstrap","jogger","jogging","john","joining","jokester","jokingly","jolliness","jolly","jolt","jot","jovial","joyfully","joylessly","joyous","joyride","joystick","jubilance","jubilant","judge","judgingly","judicial","judiciary","judo","juggle","juggling","jugular","juice","juiciness","juicy","jujitsu","jukebox","july","jumble","jumbo","jump","junction","juncture","june","junior","juniper","junkie","junkman","junkyard","jurist","juror","jury","justice","justifier","justify","justly","justness","juvenile","kabob","kangaroo","karaoke","karate","karma","kebab","keenly","keenness","keep","keg","kelp","kennel","kept","kerchief","kerosene","kettle","kick","kiln","kilobyte","kilogram","kilometer","kilowatt","kilt","kimono","kindle","kindling","kindly","kindness","kindred","kinetic","kinfolk","king","kinship","kinsman","kinswoman","kissable","kisser","kissing","kitchen","kite","kitten","kitty","kiwi","kleenex","knapsack","knee","knelt","knickers","knoll","koala","kooky","kosher","krypton","kudos","kung","labored","laborer","laboring","laborious","labrador","ladder","ladies","ladle","ladybug","ladylike","lagged","lagging","lagoon","lair","lake","lance","landed","landfall","landfill","landing","landlady","landless","landline","landlord","landmark","landmass","landmine","landowner","landscape","landside","landslide","language","lankiness","lanky","lantern","lapdog","lapel","lapped","lapping","laptop","lard","large","lark","lash","lasso","last","latch","late","lather","latitude","latrine","latter","latticed","launch","launder","laundry","laurel","lavender","lavish","laxative","lazily","laziness","lazy","lecturer","left","legacy","legal","legend","legged","leggings","legible","legibly","legislate","lego","legroom","legume","legwarmer","legwork","lemon","lend","length","lens","lent","leotard","lesser","letdown","lethargic","lethargy","letter","lettuce","level","leverage","levers","levitate","levitator","liability","liable","liberty","librarian","library","licking","licorice","lid","life","lifter","lifting","liftoff","ligament","likely","likeness","likewise","liking","lilac","lilly","lily","limb","limeade","limelight","limes","limit","limping","limpness","line","lingo","linguini","linguist","lining","linked","linoleum","linseed","lint","lion","lip","liquefy","liqueur","liquid","lisp","list","litigate","litigator","litmus","litter","little","livable","lived","lively","liver","livestock","lividly","living","lizard","lubricant","lubricate","lucid","luckily","luckiness","luckless","lucrative","ludicrous","lugged","lukewarm","lullaby","lumber","luminance","luminous","lumpiness","lumping","lumpish","lunacy","lunar","lunchbox","luncheon","lunchroom","lunchtime","lung","lurch","lure","luridness","lurk","lushly","lushness","luster","lustfully","lustily","lustiness","lustrous","lusty","luxurious","luxury","lying","lyrically","lyricism","lyricist","lyrics","macarena","macaroni","macaw","mace","machine","machinist","magazine","magenta","maggot","magical","magician","magma","magnesium","magnetic","magnetism","magnetize","magnifier","magnify","magnitude","magnolia","mahogany","maimed","majestic","majesty","majorette","majority","makeover","maker","makeshift","making","malformed","malt","mama","mammal","mammary","mammogram","manager","managing","manatee","mandarin","mandate","mandatory","mandolin","manger","mangle","mango","mangy","manhandle","manhole","manhood","manhunt","manicotti","manicure","manifesto","manila","mankind","manlike","manliness","manly","manmade","manned","mannish","manor","manpower","mantis","mantra","manual","many","map","marathon","marauding","marbled","marbles","marbling","march","mardi","margarine","margarita","margin","marigold","marina","marine","marital","maritime","marlin","marmalade","maroon","married","marrow","marry","marshland","marshy","marsupial","marvelous","marxism","mascot","masculine","mashed","mashing","massager","masses","massive","mastiff","matador","matchbook","matchbox","matcher","matching","matchless","material","maternal","maternity","math","mating","matriarch","matrimony","matrix","matron","matted","matter","maturely","maturing","maturity","mauve","maverick","maximize","maximum","maybe","mayday","mayflower","moaner","moaning","mobile","mobility","mobilize","mobster","mocha","mocker","mockup","modified","modify","modular","modulator","module","moisten","moistness","moisture","molar","molasses","mold","molecular","molecule","molehill","mollusk","mom","monastery","monday","monetary","monetize","moneybags","moneyless","moneywise","mongoose","mongrel","monitor","monkhood","monogamy","monogram","monologue","monopoly","monorail","monotone","monotype","monoxide","monsieur","monsoon","monstrous","monthly","monument","moocher","moodiness","moody","mooing","moonbeam","mooned","moonlight","moonlike","moonlit","moonrise","moonscape","moonshine","moonstone","moonwalk","mop","morale","morality","morally","morbidity","morbidly","morphine","morphing","morse","mortality","mortally","mortician","mortified","mortify","mortuary","mosaic","mossy","most","mothball","mothproof","motion","motivate","motivator","motive","motocross","motor","motto","mountable","mountain","mounted","mounting","mourner","mournful","mouse","mousiness","moustache","mousy","mouth","movable","move","movie","moving","mower","mowing","much","muck","mud","mug","mulberry","mulch","mule","mulled","mullets","multiple","multiply","multitask","multitude","mumble","mumbling","mumbo","mummified","mummify","mummy","mumps","munchkin","mundane","municipal","muppet","mural","murkiness","murky","murmuring","muscular","museum","mushily","mushiness","mushroom","mushy","music","musket","muskiness","musky","mustang","mustard","muster","mustiness","musty","mutable","mutate","mutation","mute","mutilated","mutilator","mutiny","mutt","mutual","muzzle","myself","myspace","mystified","mystify","myth","nacho","nag","nail","name","naming","nanny","nanometer","nape","napkin","napped","napping","nappy","narrow","nastily","nastiness","national","native","nativity","natural","nature","naturist","nautical","navigate","navigator","navy","nearby","nearest","nearly","nearness","neatly","neatness","nebula","nebulizer","nectar","negate","negation","negative","neglector","negligee","negligent","negotiate","nemeses","nemesis","neon","nephew","nerd","nervous","nervy","nest","net","neurology","neuron","neurosis","neurotic","neuter","neutron","never","next","nibble","nickname","nicotine","niece","nifty","nimble","nimbly","nineteen","ninetieth","ninja","nintendo","ninth","nuclear","nuclei","nucleus","nugget","nullify","number","numbing","numbly","numbness","numeral","numerate","numerator","numeric","numerous","nuptials","nursery","nursing","nurture","nutcase","nutlike","nutmeg","nutrient","nutshell","nuttiness","nutty","nuzzle","nylon","oaf","oak","oasis","oat","obedience","obedient","obituary","object","obligate","obliged","oblivion","oblivious","oblong","obnoxious","oboe","obscure","obscurity","observant","observer","observing","obsessed","obsession","obsessive","obsolete","obstacle","obstinate","obstruct","obtain","obtrusive","obtuse","obvious","occultist","occupancy","occupant","occupier","occupy","ocean","ocelot","octagon","octane","october","octopus","ogle","oil","oink","ointment","okay","old","olive","olympics","omega","omen","ominous","omission","omit","omnivore","onboard","oncoming","ongoing","onion","online","onlooker","only","onscreen","onset","onshore","onslaught","onstage","onto","onward","onyx","oops","ooze","oozy","opacity","opal","open","operable","operate","operating","operation","operative","operator","opium","opossum","opponent","oppose","opposing","opposite","oppressed","oppressor","opt","opulently","osmosis","other","otter","ouch","ought","ounce","outage","outback","outbid","outboard","outbound","outbreak","outburst","outcast","outclass","outcome","outdated","outdoors","outer","outfield","outfit","outflank","outgoing","outgrow","outhouse","outing","outlast","outlet","outline","outlook","outlying","outmatch","outmost","outnumber","outplayed","outpost","outpour","output","outrage","outrank","outreach","outright","outscore","outsell","outshine","outshoot","outsider","outskirts","outsmart","outsource","outspoken","outtakes","outthink","outward","outweigh","outwit","oval","ovary","oven","overact","overall","overarch","overbid","overbill","overbite","overblown","overboard","overbook","overbuilt","overcast","overcoat","overcome","overcook","overcrowd","overdraft","overdrawn","overdress","overdrive","overdue","overeager","overeater","overexert","overfed","overfeed","overfill","overflow","overfull","overgrown","overhand","overhang","overhaul","overhead","overhear","overheat","overhung","overjoyed","overkill","overlabor","overlaid","overlap","overlay","overload","overlook","overlord","overlying","overnight","overpass","overpay","overplant","overplay","overpower","overprice","overrate","overreach","overreact","override","overripe","overrule","overrun","overshoot","overshot","oversight","oversized","oversleep","oversold","overspend","overstate","overstay","overstep","overstock","overstuff","oversweet","overtake","overthrow","overtime","overtly","overtone","overture","overturn","overuse","overvalue","overview","overwrite","owl","oxford","oxidant","oxidation","oxidize","oxidizing","oxygen","oxymoron","oyster","ozone","paced","pacemaker","pacific","pacifier","pacifism","pacifist","pacify","padded","padding","paddle","paddling","padlock","pagan","pager","paging","pajamas","palace","palatable","palm","palpable","palpitate","paltry","pampered","pamperer","pampers","pamphlet","panama","pancake","pancreas","panda","pandemic","pang","panhandle","panic","panning","panorama","panoramic","panther","pantomime","pantry","pants","pantyhose","paparazzi","papaya","paper","paprika","papyrus","parabola","parachute","parade","paradox","paragraph","parakeet","paralegal","paralyses","paralysis","paralyze","paramedic","parameter","paramount","parasail","parasite","parasitic","parcel","parched","parchment","pardon","parish","parka","parking","parkway","parlor","parmesan","parole","parrot","parsley","parsnip","partake","parted","parting","partition","partly","partner","partridge","party","passable","passably","passage","passcode","passenger","passerby","passing","passion","passive","passivism","passover","passport","password","pasta","pasted","pastel","pastime","pastor","pastrami","pasture","pasty","patchwork","patchy","paternal","paternity","path","patience","patient","patio","patriarch","patriot","patrol","patronage","patronize","pauper","pavement","paver","pavestone","pavilion","paving","pawing","payable","payback","paycheck","payday","payee","payer","paying","payment","payphone","payroll","pebble","pebbly","pecan","pectin","peculiar","peddling","pediatric","pedicure","pedigree","pedometer","pegboard","pelican","pellet","pelt","pelvis","penalize","penalty","pencil","pendant","pending","penholder","penknife","pennant","penniless","penny","penpal","pension","pentagon","pentagram","pep","perceive","percent","perch","percolate","perennial","perfected","perfectly","perfume","periscope","perish","perjurer","perjury","perkiness","perky","perm","peroxide","perpetual","perplexed","persecute","persevere","persuaded","persuader","pesky","peso","pessimism","pessimist","pester","pesticide","petal","petite","petition","petri","petroleum","petted","petticoat","pettiness","petty","petunia","phantom","phobia","phoenix","phonebook","phoney","phonics","phoniness","phony","phosphate","photo","phrase","phrasing","placard","placate","placidly","plank","planner","plant","plasma","plaster","plastic","plated","platform","plating","platinum","platonic","platter","platypus","plausible","plausibly","playable","playback","player","playful","playgroup","playhouse","playing","playlist","playmaker","playmate","playoff","playpen","playroom","playset","plaything","playtime","plaza","pleading","pleat","pledge","plentiful","plenty","plethora","plexiglas","pliable","plod","plop","plot","plow","ploy","pluck","plug","plunder","plunging","plural","plus","plutonium","plywood","poach","pod","poem","poet","pogo","pointed","pointer","pointing","pointless","pointy","poise","poison","poker","poking","polar","police","policy","polio","polish","politely","polka","polo","polyester","polygon","polygraph","polymer","poncho","pond","pony","popcorn","pope","poplar","popper","poppy","popsicle","populace","popular","populate","porcupine","pork","porous","porridge","portable","portal","portfolio","porthole","portion","portly","portside","poser","posh","posing","possible","possibly","possum","postage","postal","postbox","postcard","posted","poster","posting","postnasal","posture","postwar","pouch","pounce","pouncing","pound","pouring","pout","powdered","powdering","powdery","power","powwow","pox","praising","prance","prancing","pranker","prankish","prankster","prayer","praying","preacher","preaching","preachy","preamble","precinct","precise","precision","precook","precut","predator","predefine","predict","preface","prefix","preflight","preformed","pregame","pregnancy","pregnant","preheated","prelaunch","prelaw","prelude","premiere","premises","premium","prenatal","preoccupy","preorder","prepaid","prepay","preplan","preppy","preschool","prescribe","preseason","preset","preshow","president","presoak","press","presume","presuming","preteen","pretended","pretender","pretense","pretext","pretty","pretzel","prevail","prevalent","prevent","preview","previous","prewar","prewashed","prideful","pried","primal","primarily","primary","primate","primer","primp","princess","print","prior","prism","prison","prissy","pristine","privacy","private","privatize","prize","proactive","probable","probably","probation","probe","probing","probiotic","problem","procedure","process","proclaim","procreate","procurer","prodigal","prodigy","produce","product","profane","profanity","professed","professor","profile","profound","profusely","progeny","prognosis","program","progress","projector","prologue","prolonged","promenade","prominent","promoter","promotion","prompter","promptly","prone","prong","pronounce","pronto","proofing","proofread","proofs","propeller","properly","property","proponent","proposal","propose","props","prorate","protector","protegee","proton","prototype","protozoan","protract","protrude","proud","provable","proved","proven","provided","provider","providing","province","proving","provoke","provoking","provolone","prowess","prowler","prowling","proximity","proxy","prozac","prude","prudishly","prune","pruning","pry","psychic","public","publisher","pucker","pueblo","pug","pull","pulmonary","pulp","pulsate","pulse","pulverize","puma","pumice","pummel","punch","punctual","punctuate","punctured","pungent","punisher","punk","pupil","puppet","puppy","purchase","pureblood","purebred","purely","pureness","purgatory","purge","purging","purifier","purify","purist","puritan","purity","purple","purplish","purposely","purr","purse","pursuable","pursuant","pursuit","purveyor","pushcart","pushchair","pusher","pushiness","pushing","pushover","pushpin","pushup","pushy","putdown","putt","puzzle","puzzling","pyramid","pyromania","python","quack","quadrant","quail","quaintly","quake","quaking","qualified","qualifier","qualify","quality","qualm","quantum","quarrel","quarry","quartered","quarterly","quarters","quartet","quench","query","quicken","quickly","quickness","quicksand","quickstep","quiet","quill","quilt","quintet","quintuple","quirk","quit","quiver","quizzical","quotable","quotation","quote","rabid","race","racing","racism","rack","racoon","radar","radial","radiance","radiantly","radiated","radiation","radiator","radio","radish","raffle","raft","rage","ragged","raging","ragweed","raider","railcar","railing","railroad","railway","raisin","rake","raking","rally","ramble","rambling","ramp","ramrod","ranch","rancidity","random","ranged","ranger","ranging","ranked","ranking","ransack","ranting","rants","rare","rarity","rascal","rash","rasping","ravage","raven","ravine","raving","ravioli","ravishing","reabsorb","reach","reacquire","reaction","reactive","reactor","reaffirm","ream","reanalyze","reappear","reapply","reappoint","reapprove","rearrange","rearview","reason","reassign","reassure","reattach","reawake","rebalance","rebate","rebel","rebirth","reboot","reborn","rebound","rebuff","rebuild","rebuilt","reburial","rebuttal","recall","recant","recapture","recast","recede","recent","recess","recharger","recipient","recital","recite","reckless","reclaim","recliner","reclining","recluse","reclusive","recognize","recoil","recollect","recolor","reconcile","reconfirm","reconvene","recopy","record","recount","recoup","recovery","recreate","rectal","rectangle","rectified","rectify","recycled","recycler","recycling","reemerge","reenact","reenter","reentry","reexamine","referable","referee","reference","refill","refinance","refined","refinery","refining","refinish","reflected","reflector","reflex","reflux","refocus","refold","reforest","reformat","reformed","reformer","reformist","refract","refrain","refreeze","refresh","refried","refueling","refund","refurbish","refurnish","refusal","refuse","refusing","refutable","refute","regain","regalia","regally","reggae","regime","region","register","registrar","registry","regress","regretful","regroup","regular","regulate","regulator","rehab","reheat","rehire","rehydrate","reimburse","reissue","reiterate","rejoice","rejoicing","rejoin","rekindle","relapse","relapsing","relatable","related","relation","relative","relax","relay","relearn","release","relenting","reliable","reliably","reliance","reliant","relic","relieve","relieving","relight","relish","relive","reload","relocate","relock","reluctant","rely","remake","remark","remarry","rematch","remedial","remedy","remember","reminder","remindful","remission","remix","remnant","remodeler","remold","remorse","remote","removable","removal","removed","remover","removing","rename","renderer","rendering","rendition","renegade","renewable","renewably","renewal","renewed","renounce","renovate","renovator","rentable","rental","rented","renter","reoccupy","reoccur","reopen","reorder","repackage","repacking","repaint","repair","repave","repaying","repayment","repeal","repeated","repeater","repent","rephrase","replace","replay","replica","reply","reporter","repose","repossess","repost","repressed","reprimand","reprint","reprise","reproach","reprocess","reproduce","reprogram","reps","reptile","reptilian","repugnant","repulsion","repulsive","repurpose","reputable","reputably","request","require","requisite","reroute","rerun","resale","resample","rescuer","reseal","research","reselect","reseller","resemble","resend","resent","reset","reshape","reshoot","reshuffle","residence","residency","resident","residual","residue","resigned","resilient","resistant","resisting","resize","resolute","resolved","resonant","resonate","resort","resource","respect","resubmit","result","resume","resupply","resurface","resurrect","retail","retainer","retaining","retake","retaliate","retention","rethink","retinal","retired","retiree","retiring","retold","retool","retorted","retouch","retrace","retract","retrain","retread","retreat","retrial","retrieval","retriever","retry","return","retying","retype","reunion","reunite","reusable","reuse","reveal","reveler","revenge","revenue","reverb","revered","reverence","reverend","reversal","reverse","reversing","reversion","revert","revisable","revise","revision","revisit","revivable","revival","reviver","reviving","revocable","revoke","revolt","revolver","revolving","reward","rewash","rewind","rewire","reword","rework","rewrap","rewrite","rhyme","ribbon","ribcage","rice","riches","richly","richness","rickety","ricotta","riddance","ridden","ride","riding","rifling","rift","rigging","rigid","rigor","rimless","rimmed","rind","rink","rinse","rinsing","riot","ripcord","ripeness","ripening","ripping","ripple","rippling","riptide","rise","rising","risk","risotto","ritalin","ritzy","rival","riverbank","riverbed","riverboat","riverside","riveter","riveting","roamer","roaming","roast","robbing","robe","robin","robotics","robust","rockband","rocker","rocket","rockfish","rockiness","rocking","rocklike","rockslide","rockstar","rocky","rogue","roman","romp","rope","roping","roster","rosy","rotten","rotting","rotunda","roulette","rounding","roundish","roundness","roundup","roundworm","routine","routing","rover","roving","royal","rubbed","rubber","rubbing","rubble","rubdown","ruby","ruckus","rudder","rug","ruined","rule","rumble","rumbling","rummage","rumor","runaround","rundown","runner","running","runny","runt","runway","rupture","rural","ruse","rush","rust","rut","sabbath","sabotage","sacrament","sacred","sacrifice","sadden","saddlebag","saddled","saddling","sadly","sadness","safari","safeguard","safehouse","safely","safeness","saffron","saga","sage","sagging","saggy","said","saint","sake","salad","salami","salaried","salary","saline","salon","saloon","salsa","salt","salutary","salute","salvage","salvaging","salvation","same","sample","sampling","sanction","sanctity","sanctuary","sandal","sandbag","sandbank","sandbar","sandblast","sandbox","sanded","sandfish","sanding","sandlot","sandpaper","sandpit","sandstone","sandstorm","sandworm","sandy","sanitary","sanitizer","sank","santa","sapling","sappiness","sappy","sarcasm","sarcastic","sardine","sash","sasquatch","sassy","satchel","satiable","satin","satirical","satisfied","satisfy","saturate","saturday","sauciness","saucy","sauna","savage","savanna","saved","savings","savior","savor","saxophone","say","scabbed","scabby","scalded","scalding","scale","scaling","scallion","scallop","scalping","scam","scandal","scanner","scanning","scant","scapegoat","scarce","scarcity","scarecrow","scared","scarf","scarily","scariness","scarring","scary","scavenger","scenic","schedule","schematic","scheme","scheming","schilling","schnapps","scholar","science","scientist","scion","scoff","scolding","scone","scoop","scooter","scope","scorch","scorebook","scorecard","scored","scoreless","scorer","scoring","scorn","scorpion","scotch","scoundrel","scoured","scouring","scouting","scouts","scowling","scrabble","scraggly","scrambled","scrambler","scrap","scratch","scrawny","screen","scribble","scribe","scribing","scrimmage","script","scroll","scrooge","scrounger","scrubbed","scrubber","scruffy","scrunch","scrutiny","scuba","scuff","sculptor","sculpture","scurvy","scuttle","secluded","secluding","seclusion","second","secrecy","secret","sectional","sector","secular","securely","security","sedan","sedate","sedation","sedative","sediment","seduce","seducing","segment","seismic","seizing","seldom","selected","selection","selective","selector","self","seltzer","semantic","semester","semicolon","semifinal","seminar","semisoft","semisweet","senate","senator","send","senior","senorita","sensation","sensitive","sensitize","sensually","sensuous","sepia","september","septic","septum","sequel","sequence","sequester","series","sermon","serotonin","serpent","serrated","serve","service","serving","sesame","sessions","setback","setting","settle","settling","setup","sevenfold","seventeen","seventh","seventy","severity","shabby","shack","shaded","shadily","shadiness","shading","shadow","shady","shaft","shakable","shakily","shakiness","shaking","shaky","shale","shallot","shallow","shame","shampoo","shamrock","shank","shanty","shape","shaping","share","sharpener","sharper","sharpie","sharply","sharpness","shawl","sheath","shed","sheep","sheet","shelf","shell","shelter","shelve","shelving","sherry","shield","shifter","shifting","shiftless","shifty","shimmer","shimmy","shindig","shine","shingle","shininess","shining","shiny","ship","shirt","shivering","shock","shone","shoplift","shopper","shopping","shoptalk","shore","shortage","shortcake","shortcut","shorten","shorter","shorthand","shortlist","shortly","shortness","shorts","shortwave","shorty","shout","shove","showbiz","showcase","showdown","shower","showgirl","showing","showman","shown","showoff","showpiece","showplace","showroom","showy","shrank","shrapnel","shredder","shredding","shrewdly","shriek","shrill","shrimp","shrine","shrink","shrivel","shrouded","shrubbery","shrubs","shrug","shrunk","shucking","shudder","shuffle","shuffling","shun","shush","shut","shy","siamese","siberian","sibling","siding","sierra","siesta","sift","sighing","silenced","silencer","silent","silica","silicon","silk","silliness","silly","silo","silt","silver","similarly","simile","simmering","simple","simplify","simply","sincere","sincerity","singer","singing","single","singular","sinister","sinless","sinner","sinuous","sip","siren","sister","sitcom","sitter","sitting","situated","situation","sixfold","sixteen","sixth","sixties","sixtieth","sixtyfold","sizable","sizably","size","sizing","sizzle","sizzling","skater","skating","skedaddle","skeletal","skeleton","skeptic","sketch","skewed","skewer","skid","skied","skier","skies","skiing","skilled","skillet","skillful","skimmed","skimmer","skimming","skimpily","skincare","skinhead","skinless","skinning","skinny","skintight","skipper","skipping","skirmish","skirt","skittle","skydiver","skylight","skyline","skype","skyrocket","skyward","slab","slacked","slacker","slacking","slackness","slacks","slain","slam","slander","slang","slapping","slapstick","slashed","slashing","slate","slather","slaw","sled","sleek","sleep","sleet","sleeve","slept","sliceable","sliced","slicer","slicing","slick","slider","slideshow","sliding","slighted","slighting","slightly","slimness","slimy","slinging","slingshot","slinky","slip","slit","sliver","slobbery","slogan","sloped","sloping","sloppily","sloppy","slot","slouching","slouchy","sludge","slug","slum","slurp","slush","sly","small","smartly","smartness","smasher","smashing","smashup","smell","smelting","smile","smilingly","smirk","smite","smith","smitten","smock","smog","smoked","smokeless","smokiness","smoking","smoky","smolder","smooth","smother","smudge","smudgy","smuggler","smuggling","smugly","smugness","snack","snagged","snaking","snap","snare","snarl","snazzy","sneak","sneer","sneeze","sneezing","snide","sniff","snippet","snipping","snitch","snooper","snooze","snore","snoring","snorkel","snort","snout","snowbird","snowboard","snowbound","snowcap","snowdrift","snowdrop","snowfall","snowfield","snowflake","snowiness","snowless","snowman","snowplow","snowshoe","snowstorm","snowsuit","snowy","snub","snuff","snuggle","snugly","snugness","speak","spearfish","spearhead","spearman","spearmint","species","specimen","specked","speckled","specks","spectacle","spectator","spectrum","speculate","speech","speed","spellbind","speller","spelling","spendable","spender","spending","spent","spew","sphere","spherical","sphinx","spider","spied","spiffy","spill","spilt","spinach","spinal","spindle","spinner","spinning","spinout","spinster","spiny","spiral","spirited","spiritism","spirits","spiritual","splashed","splashing","splashy","splatter","spleen","splendid","splendor","splice","splicing","splinter","splotchy","splurge","spoilage","spoiled","spoiler","spoiling","spoils","spoken","spokesman","sponge","spongy","sponsor","spoof","spookily","spooky","spool","spoon","spore","sporting","sports","sporty","spotless","spotlight","spotted","spotter","spotting","spotty","spousal","spouse","spout","sprain","sprang","sprawl","spray","spree","sprig","spring","sprinkled","sprinkler","sprint","sprite","sprout","spruce","sprung","spry","spud","spur","sputter","spyglass","squabble","squad","squall","squander","squash","squatted","squatter","squatting","squeak","squealer","squealing","squeamish","squeegee","squeeze","squeezing","squid","squiggle","squiggly","squint","squire","squirt","squishier","squishy","stability","stabilize","stable","stack","stadium","staff","stage","staging","stagnant","stagnate","stainable","stained","staining","stainless","stalemate","staleness","stalling","stallion","stamina","stammer","stamp","stand","stank","staple","stapling","starboard","starch","stardom","stardust","starfish","stargazer","staring","stark","starless","starlet","starlight","starlit","starring","starry","starship","starter","starting","startle","startling","startup","starved","starving","stash","state","static","statistic","statue","stature","status","statute","statutory","staunch","stays","steadfast","steadier","steadily","steadying","steam","steed","steep","steerable","steering","steersman","stegosaur","stellar","stem","stench","stencil","step","stereo","sterile","sterility","sterilize","sterling","sternness","sternum","stew","stick","stiffen","stiffly","stiffness","stifle","stifling","stillness","stilt","stimulant","stimulate","stimuli","stimulus","stinger","stingily","stinging","stingray","stingy","stinking","stinky","stipend","stipulate","stir","stitch","stock","stoic","stoke","stole","stomp","stonewall","stoneware","stonework","stoning","stony","stood","stooge","stool","stoop","stoplight","stoppable","stoppage","stopped","stopper","stopping","stopwatch","storable","storage","storeroom","storewide","storm","stout","stove","stowaway","stowing","straddle","straggler","strained","strainer","straining","strangely","stranger","strangle","strategic","strategy","stratus","straw","stray","streak","stream","street","strength","strenuous","strep","stress","stretch","strewn","stricken","strict","stride","strife","strike","striking","strive","striving","strobe","strode","stroller","strongbox","strongly","strongman","struck","structure","strudel","struggle","strum","strung","strut","stubbed","stubble","stubbly","stubborn","stucco","stuck","student","studied","studio","study","stuffed","stuffing","stuffy","stumble","stumbling","stump","stung","stunned","stunner","stunning","stunt","stupor","sturdily","sturdy","styling","stylishly","stylist","stylized","stylus","suave","subarctic","subatomic","subdivide","subdued","subduing","subfloor","subgroup","subheader","subject","sublease","sublet","sublevel","sublime","submarine","submerge","submersed","submitter","subpanel","subpar","subplot","subprime","subscribe","subscript","subsector","subside","subsiding","subsidize","subsidy","subsoil","subsonic","substance","subsystem","subtext","subtitle","subtly","subtotal","subtract","subtype","suburb","subway","subwoofer","subzero","succulent","such","suction","sudden","sudoku","suds","sufferer","suffering","suffice","suffix","suffocate","suffrage","sugar","suggest","suing","suitable","suitably","suitcase","suitor","sulfate","sulfide","sulfite","sulfur","sulk","sullen","sulphate","sulphuric","sultry","superbowl","superglue","superhero","superior","superjet","superman","supermom","supernova","supervise","supper","supplier","supply","support","supremacy","supreme","surcharge","surely","sureness","surface","surfacing","surfboard","surfer","surgery","surgical","surging","surname","surpass","surplus","surprise","surreal","surrender","surrogate","surround","survey","survival","survive","surviving","survivor","sushi","suspect","suspend","suspense","sustained","sustainer","swab","swaddling","swagger","swampland","swan","swapping","swarm","sway","swear","sweat","sweep","swell","swept","swerve","swifter","swiftly","swiftness","swimmable","swimmer","swimming","swimsuit","swimwear","swinger","swinging","swipe","swirl","switch","swivel","swizzle","swooned","swoop","swoosh","swore","sworn","swung","sycamore","sympathy","symphonic","symphony","symptom","synapse","syndrome","synergy","synopses","synopsis","synthesis","synthetic","syrup","system","t-shirt","tabasco","tabby","tableful","tables","tablet","tableware","tabloid","tackiness","tacking","tackle","tackling","tacky","taco","tactful","tactical","tactics","tactile","tactless","tadpole","taekwondo","tag","tainted","take","taking","talcum","talisman","tall","talon","tamale","tameness","tamer","tamper","tank","tanned","tannery","tanning","tantrum","tapeless","tapered","tapering","tapestry","tapioca","tapping","taps","tarantula","target","tarmac","tarnish","tarot","tartar","tartly","tartness","task","tassel","taste","tastiness","tasting","tasty","tattered","tattle","tattling","tattoo","taunt","tavern","thank","that","thaw","theater","theatrics","thee","theft","theme","theology","theorize","thermal","thermos","thesaurus","these","thesis","thespian","thicken","thicket","thickness","thieving","thievish","thigh","thimble","thing","think","thinly","thinner","thinness","thinning","thirstily","thirsting","thirsty","thirteen","thirty","thong","thorn","those","thousand","thrash","thread","threaten","threefold","thrift","thrill","thrive","thriving","throat","throbbing","throng","throttle","throwaway","throwback","thrower","throwing","thud","thumb","thumping","thursday","thus","thwarting","thyself","tiara","tibia","tidal","tidbit","tidiness","tidings","tidy","tiger","tighten","tightly","tightness","tightrope","tightwad","tigress","tile","tiling","till","tilt","timid","timing","timothy","tinderbox","tinfoil","tingle","tingling","tingly","tinker","tinkling","tinsel","tinsmith","tint","tinwork","tiny","tipoff","tipped","tipper","tipping","tiptoeing","tiptop","tiring","tissue","trace","tracing","track","traction","tractor","trade","trading","tradition","traffic","tragedy","trailing","trailside","train","traitor","trance","tranquil","transfer","transform","translate","transpire","transport","transpose","trapdoor","trapeze","trapezoid","trapped","trapper","trapping","traps","trash","travel","traverse","travesty","tray","treachery","treading","treadmill","treason","treat","treble","tree","trekker","tremble","trembling","tremor","trench","trend","trespass","triage","trial","triangle","tribesman","tribunal","tribune","tributary","tribute","triceps","trickery","trickily","tricking","trickle","trickster","tricky","tricolor","tricycle","trident","tried","trifle","trifocals","trillion","trilogy","trimester","trimmer","trimming","trimness","trinity","trio","tripod","tripping","triumph","trivial","trodden","trolling","trombone","trophy","tropical","tropics","trouble","troubling","trough","trousers","trout","trowel","truce","truck","truffle","trump","trunks","trustable","trustee","trustful","trusting","trustless","truth","try","tubby","tubeless","tubular","tucking","tuesday","tug","tuition","tulip","tumble","tumbling","tummy","turban","turbine","turbofan","turbojet","turbulent","turf","turkey","turmoil","turret","turtle","tusk","tutor","tutu","tux","tweak","tweed","tweet","tweezers","twelve","twentieth","twenty","twerp","twice","twiddle","twiddling","twig","twilight","twine","twins","twirl","twistable","twisted","twister","twisting","twisty","twitch","twitter","tycoon","tying","tyke","udder","ultimate","ultimatum","ultra","umbilical","umbrella","umpire","unabashed","unable","unadorned","unadvised","unafraid","unaired","unaligned","unaltered","unarmored","unashamed","unaudited","unawake","unaware","unbaked","unbalance","unbeaten","unbend","unbent","unbiased","unbitten","unblended","unblessed","unblock","unbolted","unbounded","unboxed","unbraided","unbridle","unbroken","unbuckled","unbundle","unburned","unbutton","uncanny","uncapped","uncaring","uncertain","unchain","unchanged","uncharted","uncheck","uncivil","unclad","unclaimed","unclamped","unclasp","uncle","unclip","uncloak","unclog","unclothed","uncoated","uncoiled","uncolored","uncombed","uncommon","uncooked","uncork","uncorrupt","uncounted","uncouple","uncouth","uncover","uncross","uncrown","uncrushed","uncured","uncurious","uncurled","uncut","undamaged","undated","undaunted","undead","undecided","undefined","underage","underarm","undercoat","undercook","undercut","underdog","underdone","underfed","underfeed","underfoot","undergo","undergrad","underhand","underline","underling","undermine","undermost","underpaid","underpass","underpay","underrate","undertake","undertone","undertook","undertow","underuse","underwear","underwent","underwire","undesired","undiluted","undivided","undocked","undoing","undone","undrafted","undress","undrilled","undusted","undying","unearned","unearth","unease","uneasily","uneasy","uneatable","uneaten","unedited","unelected","unending","unengaged","unenvied","unequal","unethical","uneven","unexpired","unexposed","unfailing","unfair","unfasten","unfazed","unfeeling","unfiled","unfilled","unfitted","unfitting","unfixable","unfixed","unflawed","unfocused","unfold","unfounded","unframed","unfreeze","unfrosted","unfrozen","unfunded","unglazed","ungloved","unglue","ungodly","ungraded","ungreased","unguarded","unguided","unhappily","unhappy","unharmed","unhealthy","unheard","unhearing","unheated","unhelpful","unhidden","unhinge","unhitched","unholy","unhook","unicorn","unicycle","unified","unifier","uniformed","uniformly","unify","unimpeded","uninjured","uninstall","uninsured","uninvited","union","uniquely","unisexual","unison","unissued","unit","universal","universe","unjustly","unkempt","unkind","unknotted","unknowing","unknown","unlaced","unlatch","unlawful","unleaded","unlearned","unleash","unless","unleveled","unlighted","unlikable","unlimited","unlined","unlinked","unlisted","unlit","unlivable","unloaded","unloader","unlocked","unlocking","unlovable","unloved","unlovely","unloving","unluckily","unlucky","unmade","unmanaged","unmanned","unmapped","unmarked","unmasked","unmasking","unmatched","unmindful","unmixable","unmixed","unmolded","unmoral","unmovable","unmoved","unmoving","unnamable","unnamed","unnatural","unneeded","unnerve","unnerving","unnoticed","unopened","unopposed","unpack","unpadded","unpaid","unpainted","unpaired","unpaved","unpeeled","unpicked","unpiloted","unpinned","unplanned","unplanted","unpleased","unpledged","unplowed","unplug","unpopular","unproven","unquote","unranked","unrated","unraveled","unreached","unread","unreal","unreeling","unrefined","unrelated","unrented","unrest","unretired","unrevised","unrigged","unripe","unrivaled","unroasted","unrobed","unroll","unruffled","unruly","unrushed","unsaddle","unsafe","unsaid","unsalted","unsaved","unsavory","unscathed","unscented","unscrew","unsealed","unseated","unsecured","unseeing","unseemly","unseen","unselect","unselfish","unsent","unsettled","unshackle","unshaken","unshaved","unshaven","unsheathe","unshipped","unsightly","unsigned","unskilled","unsliced","unsmooth","unsnap","unsocial","unsoiled","unsold","unsolved","unsorted","unspoiled","unspoken","unstable","unstaffed","unstamped","unsteady","unsterile","unstirred","unstitch","unstopped","unstuck","unstuffed","unstylish","unsubtle","unsubtly","unsuited","unsure","unsworn","untagged","untainted","untaken","untamed","untangled","untapped","untaxed","unthawed","unthread","untidy","untie","until","untimed","untimely","untitled","untoasted","untold","untouched","untracked","untrained","untreated","untried","untrimmed","untrue","untruth","unturned","untwist","untying","unusable","unused","unusual","unvalued","unvaried","unvarying","unveiled","unveiling","unvented","unviable","unvisited","unvocal","unwanted","unwarlike","unwary","unwashed","unwatched","unweave","unwed","unwelcome","unwell","unwieldy","unwilling","unwind","unwired","unwitting","unwomanly","unworldly","unworn","unworried","unworthy","unwound","unwoven","unwrapped","unwritten","unzip","upbeat","upchuck","upcoming","upcountry","update","upfront","upgrade","upheaval","upheld","uphill","uphold","uplifted","uplifting","upload","upon","upper","upright","uprising","upriver","uproar","uproot","upscale","upside","upstage","upstairs","upstart","upstate","upstream","upstroke","upswing","uptake","uptight","uptown","upturned","upward","upwind","uranium","urban","urchin","urethane","urgency","urgent","urging","urologist","urology","usable","usage","useable","used","uselessly","user","usher","usual","utensil","utility","utilize","utmost","utopia","utter","vacancy","vacant","vacate","vacation","vagabond","vagrancy","vagrantly","vaguely","vagueness","valiant","valid","valium","valley","valuables","value","vanilla","vanish","vanity","vanquish","vantage","vaporizer","variable","variably","varied","variety","various","varmint","varnish","varsity","varying","vascular","vaseline","vastly","vastness","veal","vegan","veggie","vehicular","velcro","velocity","velvet","vendetta","vending","vendor","veneering","vengeful","venomous","ventricle","venture","venue","venus","verbalize","verbally","verbose","verdict","verify","verse","version","versus","vertebrae","vertical","vertigo","very","vessel","vest","veteran","veto","vexingly","viability","viable","vibes","vice","vicinity","victory","video","viewable","viewer","viewing","viewless","viewpoint","vigorous","village","villain","vindicate","vineyard","vintage","violate","violation","violator","violet","violin","viper","viral","virtual","virtuous","virus","visa","viscosity","viscous","viselike","visible","visibly","vision","visiting","visitor","visor","vista","vitality","vitalize","vitally","vitamins","vivacious","vividly","vividness","vixen","vocalist","vocalize","vocally","vocation","voice","voicing","void","volatile","volley","voltage","volumes","voter","voting","voucher","vowed","vowel","voyage","wackiness","wad","wafer","waffle","waged","wager","wages","waggle","wagon","wake","waking","walk","walmart","walnut","walrus","waltz","wand","wannabe","wanted","wanting","wasabi","washable","washbasin","washboard","washbowl","washcloth","washday","washed","washer","washhouse","washing","washout","washroom","washstand","washtub","wasp","wasting","watch","water","waviness","waving","wavy","whacking","whacky","wham","wharf","wheat","whenever","whiff","whimsical","whinny","whiny","whisking","whoever","whole","whomever","whoopee","whooping","whoops","why","wick","widely","widen","widget","widow","width","wieldable","wielder","wife","wifi","wikipedia","wildcard","wildcat","wilder","wildfire","wildfowl","wildland","wildlife","wildly","wildness","willed","willfully","willing","willow","willpower","wilt","wimp","wince","wincing","wind","wing","winking","winner","winnings","winter","wipe","wired","wireless","wiring","wiry","wisdom","wise","wish","wisplike","wispy","wistful","wizard","wobble","wobbling","wobbly","wok","wolf","wolverine","womanhood","womankind","womanless","womanlike","womanly","womb","woof","wooing","wool","woozy","word","work","worried","worrier","worrisome","worry","worsening","worshiper","worst","wound","woven","wow","wrangle","wrath","wreath","wreckage","wrecker","wrecking","wrench","wriggle","wriggly","wrinkle","wrinkly","wrist","writing","written","wrongdoer","wronged","wrongful","wrongly","wrongness","wrought","xbox","xerox","yahoo","yam","yanking","yapping","yard","yarn","yeah","yearbook","yearling","yearly","yearning","yeast","yelling","yelp","yen","yesterday","yiddish","yield","yin","yippee","yo-yo","yodel","yoga","yogurt","yonder","yoyo","yummy","zap","zealous","zebra","zen","zeppelin","zero","zestfully","zesty","zigzagged","zipfile","zipping","zippy","zips","zit","zodiac","zombie","zone","zoning","zookeeper","zoologist","zoology","zoom"]},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&this.cipherService.upsert(a)}return[2]}})})},e.prototype.deleteWithServer=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.apiService.deleteFolder(e)];case 1:return t.sent(),[4,this.delete(e)];case 2:return t.sent(),[2]}})})},e}();t.FolderService=m},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0)for(d=0;d0)for(d=0;d0)for(d=0;d0)for(d=0;d1)&&(t.wordSeparator=" "),null==t.capitalize&&(t.capitalize=!1),null==t.includeNumber&&(t.includeNumber=!1),n=c.EEFLongWordList.length-1,r=new Array(t.numWords),a=0,i.label=1;case 1:return ae.length&&(e.minSpecial=e.length-e.minNumber),e.numWordsn.minLength&&(n.minLength=e.data.minLength),e.data.useUpper&&(n.useUppercase=!0),e.data.useLower&&(n.useLowercase=!0),e.data.useNumbers&&(n.useNumbers=!0),null!=e.data.minNumbers&&e.data.minNumbers>n.numberCount&&(n.numberCount=e.data.minNumbers),e.data.useSpecial&&(n.useSpecial=!0),null!=e.data.minSpecial&&e.data.minSpecial>n.specialCount&&(n.specialCount=e.data.minSpecial),null!=e.data.minNumberWords&&e.data.minNumberWords>n.minNumberWords&&(n.minNumberWords=e.data.minNumberWords),e.data.capitalize&&(n.capitalize=!0),e.data.includeNumber&&(n.includeNumber=!0))}),[2,n])}})})},e.prototype.saveOptions=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.storageService.save(d,e)];case 1:return t.sent(),this.optionsCache=e,[2]}})})},e.prototype.getHistory=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:return[4,this.cryptoService.hasKey()];case 1:return n.sent()?this.history?[3,4]:[4,this.storageService.get(m)]:[2,new Array];case 2:return e=n.sent(),t=this,[4,this.decryptHistory(e)];case 3:t.history=n.sent(),n.label=4;case 4:return[2,this.history||new Array]}})})},e.prototype.addHistory=function(e){return r(this,void 0,void 0,function(){var t,n;return i(this,function(r){switch(r.label){case 0:return[4,this.cryptoService.hasKey()];case 1:return r.sent()?[4,this.getHistory()]:[2];case 2:return t=r.sent(),this.matchesPrevious(e,t)?[2]:(t.unshift(new s.GeneratedPasswordHistory(e,Date.now())),t.length>100&&t.pop(),[4,this.encryptHistory(t)]);case 3:return n=r.sent(),[4,this.storageService.save(m,n)];case 4:return[2,r.sent()]}})})},e.prototype.clear=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.history=[],[4,this.storageService.remove(m)];case 1:return[2,e.sent()]}})})},e.prototype.passwordStrength=function(e,t){if(void 0===t&&(t=null),null==e||0===e.length)return null;var n=["bitwarden","bit","warden"];null!=t&&t.length>0&&(n=n.concat(t));var r=Array.from(new Set(n));return a(e,r)},e.prototype.normalizeOptions=function(e,t){e.minLowercase=0,e.minUppercase=0,!e.length||e.length<5?e.length=5:e.length>128&&(e.length=128),e.lengthe.length?e.minNumber=e.length:e.minNumber>9&&(e.minNumber=9):e.minNumber=0,e.minNumbere.length?e.minSpecial=e.length:e.minSpecial>9&&(e.minSpecial=9):e.minSpecial=0,e.minSpeciale.length&&(e.minSpecial=e.length-e.minNumber),null==e.numWords||e.length<3?e.numWords=3:e.numWords>20&&(e.numWords=20),e.numWords1&&(e.wordSeparator=e.wordSeparator[0]),this.sanitizePasswordLength(e,!1)},e.prototype.capitalize=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e.prototype.appendRandomNumberToRandomWord=function(e){return r(this,void 0,void 0,function(){var t,n;return i(this,function(r){switch(r.label){case 0:return null==e||e.length<=0?[2]:[4,this.cryptoService.randomNumber(0,e.length-1)];case 1:return t=r.sent(),[4,this.cryptoService.randomNumber(0,9)];case 2:return n=r.sent(),e[t]=e[t]+n,[2]}})})},e.prototype.encryptHistory=function(e){return r(this,void 0,void 0,function(){var t,n=this;return i(this,function(a){switch(a.label){case 0:return null==e||0===e.length?[2,Promise.resolve([])]:(t=e.map(function(e){return r(n,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return[4,this.cryptoService.encrypt(e.password)];case 1:return t=n.sent(),[2,new s.GeneratedPasswordHistory(t.encryptedString,e.date)]}})})}),[4,Promise.all(t)]);case 1:return[2,a.sent()]}})})},e.prototype.decryptHistory=function(e){return r(this,void 0,void 0,function(){var t,n=this;return i(this,function(a){switch(a.label){case 0:return null==e||0===e.length?[2,Promise.resolve([])]:(t=e.map(function(e){return r(n,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return[4,this.cryptoService.decryptToUtf8(new o.CipherString(e.password))];case 1:return t=n.sent(),[2,new s.GeneratedPasswordHistory(t,e.date)]}})})}),[4,Promise.all(t)]);case 1:return[2,a.sent()]}})})},e.prototype.matchesPrevious=function(e,t){return null!=t&&0!==t.length&&t[t.length-1].password===e},e.prototype.shuffleArray=function(e){return r(this,void 0,void 0,function(){var t,n,r;return i(this,function(i){switch(i.label){case 0:t=e.length-1,i.label=1;case 1:return t>0?[4,this.cryptoService.randomNumber(0,t)]:[3,4];case 2:n=i.sent(),r=[e[n],e[t]],e[t]=r[0],e[n]=r[1],i.label=3;case 3:return t--,[3,1];case 4:return[2]}})})},e.prototype.sanitizePasswordLength=function(e,t){var n=0,r=0,i=e.minNumber,a=e.minSpecial;e.uppercase&&e.minUppercase<=0?n=1:e.uppercase||(n=0),e.lowercase&&e.minLowercase<=0?r=1:e.lowercase||(r=0),e.number&&e.minNumber<=0?i=1:e.number||(i=0),e.special&&e.minSpecial<=0?a=1:e.special||(a=0),(!e.length||e.length<1)&&(e.length=10);var o=n+r+i+a;e.length0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e.revisionDate&&(n=!1),o=!1,n&&(t?(n=null!=r,o=!0):null==e.collectionIds||null==e.organizationId?n=null==r:(n=!1,o=!0)),!n&&o&&null!=e.organizationId&&null!=e.collectionIds&&e.collectionIds.length>0?[4,this.collectionService.getAll()]:[3,5];case 4:if(null!=(s=i.sent()))for(l=0;l-1){n=!0;break}i.label=5;case 5:return n?[4,this.apiService.getCipher(e.id)]:[3,9];case 6:return null==(c=i.sent())?[3,9]:[4,this.userService.getUserId()];case 7:return p=i.sent(),[4,this.cipherService.upsert(new a.CipherData(c,p))];case 8:return i.sent(),this.messagingService.send("syncedUpsertedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 9:return[3,13];case 10:return null!=(u=i.sent())&&404===u.statusCode&&t?[4,this.cipherService.delete(e.id)]:[3,12];case 11:return i.sent(),this.messagingService.send("syncedDeletedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 12:return[3,13];case 13:return[2,this.syncCompleted(!1)]}})})},e.prototype.syncDeleteCipher=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return this.syncStarted(),[4,this.userService.isAuthenticated()];case 1:return t.sent()?[4,this.cipherService.delete(e.id)]:[3,3];case 2:return t.sent(),this.messagingService.send("syncedDeletedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 3:return[2,this.syncCompleted(!1)]}})})},e.prototype.syncUpsertSend=function(e,t){return r(this,void 0,void 0,function(){var n,r,a;return i(this,function(i){switch(i.label){case 0:return this.syncStarted(),[4,this.userService.isAuthenticated()];case 1:if(!i.sent())return[3,9];i.label=2;case 2:return i.trys.push([2,8,,9]),[4,this.sendService.get(e.id)];case 3:return n=i.sent(),!t&&null==n||t&&null!=n&&n.revisionDate0&&e.push(t.domains)}),[2,this.settingsService.setEquivalentDomains(e)]})})},e.prototype.syncPolicies=function(e){return r(this,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return t={},null!=e&&e.forEach(function(e){t[e.id]=new c.PolicyData(e)}),[4,this.policyService.replace(t)];case 1:return[2,n.sent()]}})})},e}();t.SyncService=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(162),i=n(942),a=n(943),o=function(){return function(e,t){if(null!=e)switch(this.id=e.id,this.accessId=e.accessId,this.userId=t,this.type=e.type,this.name=e.name,this.notes=e.notes,this.key=e.key,this.maxAccessCount=e.maxAccessCount,this.accessCount=e.accessCount,this.revisionDate=e.revisionDate,this.expirationDate=e.expirationDate,this.deletionDate=e.deletionDate,this.password=e.password,this.disabled=e.disable,this.type){case r.SendType.Text:this.text=new a.SendTextData(e.text);break;case r.SendType.File:this.file=new i.SendFileData(e.file)}}}();t.SendData=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]10?r=10:u>0&&(r=u)}catch(I){}if(p.has("period")&&null!=p.get("period"))try{(d=parseInt(p.get("period").trim(),null))>0&&(t=d)}catch(E){}p.has("secret")&&null!=p.get("secret")&&(a=p.get("secret")),p.has("algorithm")&&null!=p.get("algorithm")&&("sha1"!==(m=p.get("algorithm").toLowerCase())&&"sha256"!==m&&"sha512"!==m||(n=m))}else c&&(a=e.substr("steam://".length),r=5);return h=Math.round((new Date).getTime()/1e3),f=this.leftPad(this.decToHex(Math.floor(h/t)),16,"0"),v=o.Utils.fromHexToArray(f),(y=this.b32ToBytes(a)).length&&v.length?[4,this.sign(y,v,n)]:[2,null];case 1:if(0===(g=i.sent()).length)return[2,null];if(x=15&g[g.length-1],b=(127&g[x])<<24|(255&g[x+1])<<16|(255&g[x+2])<<8|255&g[x+3],S="",c)for(w=2147483647&b,C=0;C=e.length&&(e=Array(t+1-e.length).join(n)+e),e},e.prototype.decToHex=function(e){return(e<15.5?"0":"")+Math.round(e).toString(16)},e.prototype.b32ToHex=function(e){e=e.toUpperCase();for(var t="",n=0;n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=n?[4,this.storageService.get(a.ConstantsService.vaultTimeoutActionKey)]:[3,12]);case 7:return"logOut"!==r.sent()?[3,9]:[4,this.logOut()];case 8:return r.sent(),[3,11];case 9:return[4,this.lock(!0)];case 10:r.sent(),r.label=11;case 11:r.label=12;case 12:return[2]}})})},e.prototype.lock=function(e){return void 0===e&&(e=!1),r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.userService.isAuthenticated()];case 1:return t.sent()?(this.biometricLocked=!0,e?[4,this.isBiometricLockSet()]:[3,5]):[2];case 2:return t.sent()&&this.platformUtilsService.supportsSecureStorage()?(this.messagingService.send("locked"),null==this.lockedCallback?[3,4]:[4,this.lockedCallback()]):[3,5];case 3:t.sent(),t.label=4;case 4:return[2];case 5:return[4,Promise.all([this.cryptoService.clearKey(),this.cryptoService.clearOrgKeys(!0),this.cryptoService.clearKeyPair(!0),this.cryptoService.clearEncKey(!0)])];case 6:return t.sent(),this.folderService.clearCache(),this.cipherService.clearCache(),this.collectionService.clearCache(),this.searchService.clearIndex(),this.messagingService.send("locked"),null==this.lockedCallback?[3,8]:[4,this.lockedCallback()];case 7:t.sent(),t.label=8;case 8:return[2]}})})},e.prototype.logOut=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return null==this.loggedOutCallback?[3,2]:[4,this.loggedOutCallback()];case 1:e.sent(),e.label=2;case 2:return[2]}})})},e.prototype.setVaultTimeoutOptions=function(e,t){return r(this,void 0,void 0,function(){return i(this,function(n){switch(n.label){case 0:return[4,this.storageService.save(a.ConstantsService.vaultTimeoutKey,e)];case 1:return n.sent(),[4,this.storageService.save(a.ConstantsService.vaultTimeoutActionKey,t)];case 2:return n.sent(),[4,this.cryptoService.toggleKey()];case 3:return n.sent(),[4,this.tokenService.toggleTokens()];case 4:return n.sent(),[2]}})})},e.prototype.isPinLockSet=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:return[4,this.storageService.get(a.ConstantsService.protectedPin)];case 1:return e=n.sent(),[4,this.storageService.get(a.ConstantsService.pinProtectedKey)];case 2:return t=n.sent(),[2,[null!=e,null!=t]]}})})},e.prototype.isBiometricLockSet=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.storageService.get(a.ConstantsService.biometricUnlockKey)];case 1:return[2,e.sent()]}})})},e.prototype.clear=function(){return this.pinProtectedKey=null,this.storageService.remove(a.ConstantsService.protectedPin)},e}();t.VaultTimeoutService=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(948),i=n(949),a=function(){function e(e,t){void 0===t&&(t=null),this.isDev=e,this.filter=t,this.timersMap=new Map}return e.prototype.debug=function(e){this.isDev&&this.write(r.LogLevelType.Debug,e)},e.prototype.info=function(e){this.write(r.LogLevelType.Info,e)},e.prototype.warning=function(e){this.write(r.LogLevelType.Warning,e)},e.prototype.error=function(e){this.write(r.LogLevelType.Error,e)},e.prototype.write=function(e,t){if(null==this.filter||!this.filter(e))switch(e){case r.LogLevelType.Debug:case r.LogLevelType.Info:console.log(t);break;case r.LogLevelType.Warning:console.warn(t);break;case r.LogLevelType.Error:console.error(t)}},e.prototype.time=function(e){void 0===e&&(e="default"),this.timersMap.has(e)||this.timersMap.set(e,i())},e.prototype.timeEnd=function(e){void 0===e&&(e="default");var t=i(this.timersMap.get(e));return this.timersMap.delete(e),this.write(r.LogLevelType.Info,e+": "+(1e3*t[0]+t[1]/1e7)+"ms"),t},e}();t.ConsoleLogService=a},,,,,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t),this.collectionIds=t.collectionIds},t}(n(965).Cipher);t.CipherWithIds=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t)},t}(n(972).Collection);t.CollectionWithId=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t)},t}(n(973).Folder);t.FolderWithId=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(28),o=n(27),s=n(40),l=n(128),c=n(1008);t.IgnoredProperties=["ainfo","autosubmit","notesplain","ps","scope","tags","title","uuid","notes"];var p=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.loginPropertyParsers=[t.setLoginUsername,t.setLoginPassword,t.setLoginUris],t.creditCardPropertyParsers=[t.setCreditCardNumber,t.setCreditCardVerification,t.setCreditCardCardholderName,t.setCreditCardExpiry],t.identityPropertyParsers=[t.setIdentityFirstName,t.setIdentityInitial,t.setIdentityLastName,t.setIdentityUserName,t.setIdentityEmail,t.setIdentityPhone,t.setIdentityCompany],t}return i(n,e),n.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0,{quoteChar:'"',escapeChar:"\\"});return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!t.isNullOrWhitespace(t.getProp(e,"title"))){var r=t.initLoginCipher();r.name=t.getValueOrDefault(t.getProp(e,"title"),"--"),t.setNotes(e,r),t.setCipherType(e,r);var i=null;for(var a in e)if(e.hasOwnProperty(a)&&!t.isNullOrWhitespace(e[a])){var o=new c.CipherImportContext(e,a,r);r.type===s.CipherType.Login&&t.setKnownLoginValue(o)||r.type===s.CipherType.Card&&t.setKnownCreditCardValue(o)||r.type===s.CipherType.Identity&&t.setKnownIdentityValue(o)||(i=t.setUnknownValue(o,i))}r.type===s.CipherType.Login&&!t.isNullOrWhitespace(i)&&t.isNullOrWhitespace(r.login.username)&&-1===i.indexOf("://")&&(r.login.username=i),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},n.prototype.getProp=function(e,t){return Object.entries(e).reduce(function(e,t){return e[t[0].toLowerCase()]=t[1],e},{})[t.toLowerCase()]},n.prototype.getPropByRegexp=function(e,t){var n=Object.keys(e).reduce(function(e,n){return n.match(t)&&e.push(n),e},[]);return 0===n.length?null:e[n[0]]},n.prototype.getPropIncluding=function(e,t){var n=Object.keys(e).reduce(function(e,n){return n.toLowerCase().includes(t.toLowerCase())&&e.push(n),e},[]);return 0===n.length?null:e[n[0]]},n.prototype.setNotes=function(e,t){t.notes=this.getValueOrDefault(this.getProp(e,"notesPlain"),"")+"\n"+this.getValueOrDefault(this.getProp(e,"notes"),"")+"\n",t.notes.trim()},n.prototype.setKnownLoginValue=function(e){var t=this;return this.loginPropertyParsers.reduce(function(n,r){return n||(n=r.bind(t)(e)),n},!1)},n.prototype.setKnownCreditCardValue=function(e){var t=this;return this.creditCardPropertyParsers.reduce(function(n,r){return n||(n=r.bind(t)(e)),n},!1)},n.prototype.setKnownIdentityValue=function(e){var t=this;return this.identityPropertyParsers.reduce(function(n,r){return n||(n=r.bind(t)(e)),n},!1)},n.prototype.setUnknownValue=function(e,n){if(-1===t.IgnoredProperties.indexOf(e.lowerProperty)&&!e.lowerProperty.startsWith("section:")&&!e.lowerProperty.startsWith("section ")){if(null==n&&"email"===e.lowerProperty)return e.importRecord[e.property];if("created date"===e.lowerProperty||"modified date"===e.lowerProperty){var r=new Date(1e3*parseInt(e.importRecord[e.property],10)).toUTCString();return this.processKvp(e.cipher,"1Password "+e.property,r),null}e.lowerProperty.includes("password")||e.lowerProperty.includes("key")||e.lowerProperty.includes("secret")?this.processKvp(e.cipher,e.property,e.importRecord[e.property],l.FieldType.Hidden):this.processKvp(e.cipher,e.property,e.importRecord[e.property])}return null},n.prototype.setIdentityFirstName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.firstName)||!e.lowerProperty.includes("first name"))&&(e.cipher.identity.firstName=e.importRecord[e.property],!0)},n.prototype.setIdentityInitial=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.middleName)||!e.lowerProperty.includes("initial"))&&(e.cipher.identity.middleName=e.importRecord[e.property],!0)},n.prototype.setIdentityLastName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.lastName)||!e.lowerProperty.includes("last name"))&&(e.cipher.identity.lastName=e.importRecord[e.property],!0)},n.prototype.setIdentityUserName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.username)||!e.lowerProperty.includes("username"))&&(e.cipher.identity.username=e.importRecord[e.property],!0)},n.prototype.setIdentityCompany=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.company)||!e.lowerProperty.includes("company"))&&(e.cipher.identity.company=e.importRecord[e.property],!0)},n.prototype.setIdentityPhone=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.phone)||!e.lowerProperty.includes("default phone"))&&(e.cipher.identity.phone=e.importRecord[e.property],!0)},n.prototype.setIdentityEmail=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.email)||!e.lowerProperty.includes("email"))&&(e.cipher.identity.email=e.importRecord[e.property],!0)},n.prototype.setCreditCardNumber=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.number)||!e.lowerProperty.includes("number"))&&(e.cipher.card.number=e.importRecord[e.property],e.cipher.card.brand=this.getCardBrand(e.cipher.card.number),!0)},n.prototype.setCreditCardVerification=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.code)||!e.lowerProperty.includes("verification number"))&&(e.cipher.card.code=e.importRecord[e.property],!0)},n.prototype.setCreditCardCardholderName=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.cardholderName)||!e.lowerProperty.includes("cardholder name"))&&(e.cipher.card.cardholderName=e.importRecord[e.property],!0)},n.prototype.setCreditCardExpiry=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.expiration)||!e.lowerProperty.includes("expiry date")||7!==e.importRecord[e.property].length)&&(e.cipher.card.expMonth=e.importRecord[e.property].substr(0,2),"0"===e.cipher.card.expMonth[0]&&(e.cipher.card.expMonth=e.cipher.card.expMonth.substr(1,1)),e.cipher.card.expYear=e.importRecord[e.property].substr(3,4),!0)},n.prototype.setLoginPassword=function(e){return!(!this.isNullOrWhitespace(e.cipher.login.password)||"password"!==e.lowerProperty)&&(e.cipher.login.password=e.importRecord[e.property],!0)},n.prototype.setLoginUsername=function(e){return!(!this.isNullOrWhitespace(e.cipher.login.username)||"username"!==e.lowerProperty)&&(e.cipher.login.username=e.importRecord[e.property],!0)},n.prototype.setLoginUris=function(e){if((null==e.cipher.login.uris||0===e.cipher.login.uris.length)&&"urls"===e.lowerProperty){var t=e.importRecord[e.property].split(this.newLineRegex);return e.cipher.login.uris=this.makeUriArray(t),!0}return"url"===e.lowerProperty&&(null==e.cipher.login.uris&&(e.cipher.login.uris=[]),e.cipher.login.uris.concat(this.makeUriArray(e.importRecord[e.property])),!0)},n}(o.BaseImporter);t.OnePasswordCsvImporter=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(593);t.AttachmentView=r.AttachmentView;var i=n(89);t.CardView=i.CardView;var a=n(144);t.CipherView=a.CipherView;var o=n(211);t.FieldView=o.FieldView;var s=n(145);t.IdentityView=s.IdentityView;var l=n(257);t.LoginUriView=l.LoginUriView;var c=n(161);t.LoginView=c.LoginView;var p=n(94);t.SecureNoteView=p.SecureNoteView;var u=n(1009);t.View=u.View},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.SyncCipherUpdate=0]="SyncCipherUpdate",e[e.SyncCipherCreate=1]="SyncCipherCreate",e[e.SyncLoginDelete=2]="SyncLoginDelete",e[e.SyncFolderDelete=3]="SyncFolderDelete",e[e.SyncCiphers=4]="SyncCiphers",e[e.SyncVault=5]="SyncVault",e[e.SyncOrgKeys=6]="SyncOrgKeys",e[e.SyncFolderCreate=7]="SyncFolderCreate",e[e.SyncFolderUpdate=8]="SyncFolderUpdate",e[e.SyncCipherDelete=9]="SyncCipherDelete",e[e.SyncSettings=10]="SyncSettings",e[e.LogOut=11]="LogOut",e[e.SyncSendCreate=12]="SyncSendCreate",e[e.SyncSendUpdate=13]="SyncSendUpdate",e[e.SyncSendDelete=14]="SyncSendDelete"}(t.NotificationType||(t.NotificationType={}))},,,,,function(e,t){},,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n(745),n(271),n(526),n(746);var i=n(747),a=n(73);r.enableProdMode(),a.platformBrowser().bootstrapModule(i.AppModule,{preserveWhitespaces:!0})},,function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(748);var r=n(9),i=n(12),a=n(214),o=n(813),s=n(265),l=(n(0),n(14)),c=n(73),p=n(895),u=n(896),d=n(1057),m=n(85),h=n(140),f=n(249),v=n(457),y=n(536),g=n(456),x=n(537),b=n(540),S=n(541),w=n(542),C=n(543),I=n(544),E=n(545),P=n(546),k=n(547),_=n(548),A=n(549),O=n(550),T=n(553),M=n(552),B=n(556),D=n(557),V=n(559),j=n(558),R=n(466),F=n(465),U=n(561),N=n(563),z=n(562),L=n(564),G=n(565),K=n(570),q=n(572),W=n(567),H=n(568),$=n(569),Y=n(573),Q=n(582),J=n(580),X=n(576),Z=n(581),ee=n(577),te=n(579),ne=n(583),re=n(584),ie=n(590),ae=n(591),oe=n(603),se=n(604),le=n(605),ce=n(606),pe=n(607),ue=n(608),de=n(480),me=n(610),he=n(497),fe=n(612),ve=n(499),ye=n(609),ge=n(619),xe=n(621),be=n(620),Se=n(623),we=n(471),Ce=n(472),Ie=n(475),Ee=n(468),Pe=n(627),ke=n(635),_e=n(629),Ae=n(636),Oe=n(624),Te=n(625),Me=n(637),Be=n(667),De=n(662),Ve=n(668),je=n(669),Re=n(658),Fe=n(664),Ue=n(663),Ne=n(639),ze=n(638),Le=n(280),Ge=n(294),Ke=n(118),qe=n(640),We=n(626),He=n(469),$e=n(641),Ye=n(143),Qe=n(585),Je=n(476),Xe=n(586),Ze=n(587),et=n(477),tt=n(588),nt=n(191),rt=n(589),it=n(648),at=n(473),ot=n(470),st=n(642),lt=n(652),ct=n(643),pt=n(478),ut=n(479),dt=n(490),mt=n(492),ht=n(645),ft=n(644),vt=n(493),yt=n(646),gt=n(494),xt=n(495),bt=n(258),St=n(496),wt=n(500),Ct=n(614),It=n(616),Et=n(617),Pt=n(618),kt=n(260),_t=n(498),At=n(649),Ot=n(290),Tt=n(651),Mt=n(650),Bt=n(647),Dt=n(26),Vt=n(104),jt=n(18),Rt=n(17),Ft=n(66),Ut=n(1058),Nt=n(1059),zt=n(602),Lt=n(46),Gt=n(506),Kt=n(37),qt=n(57),Wt=n(289),Ht=n(507),$t=n(10),Yt=n(1060),Qt=n(251),Jt=n(4),Xt=n(1061),Zt=n(1062),en=n(1063),tn=n(1064),nn=n(1065),rn=n(1066),an=n(1067),on=n(1068),sn=n(1069),ln=n(1070),cn=n(1071),pn=n(1072),un=n(1073),dn=n(1074),mn=n(1075),hn=n(1076),fn=n(1077),vn=n(1078),yn=n(1079),gn=n(1080),xn=n(1081),bn=n(1082),Sn=n(1083),wn=n(1084),Cn=n(1085),In=n(1086),En=n(0),Pn=n(12),kn=n(9);Jt.registerLocaleData(Xt.default,"ca"),Jt.registerLocaleData(Zt.default,"cs"),Jt.registerLocaleData(en.default,"da"),Jt.registerLocaleData(tn.default,"de"),Jt.registerLocaleData(nn.default,"el"),Jt.registerLocaleData(rn.default,"en-GB"),Jt.registerLocaleData(an.default,"es"),Jt.registerLocaleData(on.default,"et"),Jt.registerLocaleData(sn.default,"fr"),Jt.registerLocaleData(ln.default,"he"),Jt.registerLocaleData(cn.default,"it"),Jt.registerLocaleData(pn.default,"ja"),Jt.registerLocaleData(un.default,"ko"),Jt.registerLocaleData(dn.default,"lv"),Jt.registerLocaleData(mn.default,"ml"),Jt.registerLocaleData(hn.default,"nb"),Jt.registerLocaleData(fn.default,"nl"),Jt.registerLocaleData(vn.default,"pl"),Jt.registerLocaleData(yn.default,"pt-BR"),Jt.registerLocaleData(gn.default,"pt-PT"),Jt.registerLocaleData(xn.default,"ru"),Jt.registerLocaleData(bn.default,"sk"),Jt.registerLocaleData(Sn.default,"sv"),Jt.registerLocaleData(wn.default,"uk"),Jt.registerLocaleData(Cn.default,"zh-CN"),Jt.registerLocaleData(In.default,"zh-TW");var _n=function(){function e(){}return e.ɵmod=En.ɵɵdefineNgModule({type:e,bootstrap:[d.AppComponent]}),e.ɵinj=En.ɵɵdefineInjector({factory:function(t){return new(t||e)},providers:[Jt.DatePipe],imports:[[c.BrowserModule,p.BrowserAnimationsModule,l.FormsModule,o.AppRoutingModule,u.ServicesModule,i.Angulartics2Module.forRoot({pageTracking:{clearQueryParams:!0}}),r.ToasterModule.forRoot(),a.InfiniteScrollModule,s.DragDropModule]]}),e}();t.AppModule=_n,("undefined"==typeof ngJitMode||ngJitMode)&&En.ɵɵsetNgModuleScope(_n,{declarations:[jt.A11yTitleDirective,S.AcceptEmergencyComponent,ge.AccessComponent,w.AcceptOrganizationComponent,Se.AccountComponent,A.SetPasswordComponent,we.AddCreditComponent,bt.AddEditComponent,Ce.AdjustPaymentComponent,Q.AdjustSeatsComponent,Ie.AdjustStorageComponent,Rt.ApiActionDirective,Ee.ApiKeyComponent,d.AppComponent,St.AttachmentsComponent,Ft.AutofocusDirective,h.AvatarComponent,Ut.BlurClickDirective,Nt.BoxRowDirective,ct.BreachReportComponent,wt.BulkActionsComponent,Ct.BulkDeleteComponent,It.BulkMoveComponent,Et.BulkRestoreComponent,Pt.BulkShareComponent,Dt.CalloutComponent,Pe.ChangeEmailComponent,ke.ChangeKdfComponent,_e.ChangePasswordComponent,J.ChangePlanComponent,kt.CiphersComponent,_t.CollectionsComponent,Ht.ColorPasswordPipe,Ae.CreateOrganizationComponent,Oe.DeauthorizeSessionsComponent,Te.DeleteAccountComponent,X.DeleteOrganizationComponent,Me.DomainRulesComponent,Z.DownloadLicenseComponent,Be.EmergencyAccessAddEditComponent,De.EmergencyAccessAttachmentsComponent,Fe.EmergencyAccessComponent,Ve.EmergencyAccessConfirmComponent,je.EmergencyAccessTakeoverComponent,Re.EmergencyAccessViewComponent,Ue.EmergencyAddEditComponent,pt.ExportComponent,ut.ExposedPasswordsReportComponent,zt.FallbackSrcDirective,At.FolderAddEditComponent,v.FooterComponent,y.FrontendLayoutComponent,Ot.GroupingsComponent,C.HintComponent,$t.I18nPipe,Vt.IconComponent,dt.ImportComponent,mt.InactiveTwoFactorReportComponent,Lt.InputVerbatimDirective,Ne.LinkSsoComponent,I.LockComponent,E.LoginComponent,m.ModalComponent,g.NavbarComponent,ze.OptionsComponent,Y.AccountComponent,de.AddEditComponent,ee.OrganizationBillingComponent,Le.OrganizationPlansComponent,te.OrganizationSubscriptionComponent,me.AttachmentsComponent,he.CiphersComponent,V.CollectionAddEditComponent,fe.CollectionsComponent,R.EntityEventsComponent,F.EntityUsersComponent,U.EventsComponent,ie.ExportComponent,ae.ExposedPasswordsReportComponent,oe.ImportComponent,se.InactiveTwoFactorReportComponent,N.GroupAddEditComponent,ve.GroupingsComponent,z.GroupsComponent,j.CollectionsComponent,L.ManageComponent,G.PeopleComponent,q.PolicyEditComponent,K.PoliciesComponent,le.ReusedPasswordsReportComponent,ne.SettingsComponent,ce.ToolsComponent,re.TwoFactorSetupComponent,W.UserAddEditComponent,H.UserConfirmComponent,$.UserGroupsComponent,Ge.OrganizationsComponent,x.OrganizationLayoutComponent,pe.UnsecuredWebsitesReportComponent,ye.VaultComponent,ue.WeakPasswordsReportComponent,ft.PasswordGeneratorComponent,ht.PasswordGeneratorHistoryComponent,f.PasswordStrengthComponent,Ke.PaymentComponent,qe.PremiumComponent,We.ProfileComponent,He.PurgeVaultComponent,P.RecoverDeleteComponent,k.RecoverTwoFactorComponent,_.RegisterComponent,vt.ReusedPasswordsReportComponent,Yt.SearchCiphersPipe,Qt.SearchPipe,Gt.SelectCopyDirective,xe.AddEditComponent,be.SendComponent,Tt.SendInfoComponent,$e.SettingsComponent,Mt.ShareComponent,O.SsoComponent,Kt.StopClickDirective,qt.StopPropDirective,Ye.TaxInfoComponent,yt.ToolsComponent,Wt.TrueFalseValueDirective,Qe.TwoFactorAuthenticatorComponent,M.TwoFactorComponent,Je.TwoFactorDuoComponent,Xe.TwoFactorEmailComponent,T.TwoFactorOptionsComponent,Ze.TwoFactorRecoveryComponent,et.TwoFactorSetupComponent,tt.TwoFactorU2fComponent,nt.TwoFactorVerifyComponent,rt.TwoFactorYubiKeyComponent,gt.UnsecuredWebsitesReportComponent,it.UpdateKeyComponent,at.UpdateLicenseComponent,ot.UserBillingComponent,b.UserLayoutComponent,st.UserSubscriptionComponent,Bt.VaultComponent,lt.VerifyEmailComponent,B.VerifyEmailTokenComponent,D.VerifyRecoverDeleteComponent,xt.WeakPasswordsReportComponent],imports:[c.BrowserModule,p.BrowserAnimationsModule,l.FormsModule,o.AppRoutingModule,u.ServicesModule,Pn.Angulartics2Module,kn.ToasterModule,a.InfiniteScrollModule,s.DragDropModule]})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(8),i=n(536),a=n(537),o=n(540),s=n(541),l=n(542),c=n(543),p=n(544),u=n(545),d=n(546),m=n(547),h=n(548),f=n(549),v=n(550),y=n(552),g=n(556),x=n(557),b=n(558),S=n(561),w=n(562),C=n(564),I=n(565),E=n(570),P=n(573),k=n(577),_=n(579),A=n(583),O=n(584),T=n(590),M=n(591),B=n(603),D=n(604),V=n(605),j=n(606),R=n(607),F=n(608),U=n(609),N=n(619),z=n(620),L=n(623),G=n(636),K=n(637),q=n(638),W=n(294),H=n(640),$=n(641),Y=n(477),Q=n(470),J=n(642),X=n(643),Z=n(478),ee=n(479),te=n(490),ne=n(492),re=n(644),ie=n(493),ae=n(646),oe=n(494),se=n(495),le=n(647),ce=n(653),pe=n(654),ue=n(656),de=n(657),me=n(655),he=n(658),fe=n(664),ve=n(0),ye=n(8),ge=[{path:"",component:i.FrontendLayoutComponent,children:[{path:"",pathMatch:"full",component:u.LoginComponent,canActivate:[ue.UnauthGuardService]},{path:"2fa",component:y.TwoFactorComponent,canActivate:[ue.UnauthGuardService]},{path:"register",component:h.RegisterComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"createAccount"}},{path:"sso",component:v.SsoComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"enterpriseSingleSignOn"}},{path:"set-password",component:f.SetPasswordComponent,data:{titleId:"setMasterPassword"}},{path:"hint",component:c.HintComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"passwordHint"}},{path:"lock",component:p.LockComponent},{path:"verify-email",component:g.VerifyEmailTokenComponent},{path:"accept-organization",component:l.AcceptOrganizationComponent,data:{titleId:"joinOrganization"}},{path:"accept-emergency",component:s.AcceptEmergencyComponent,data:{titleId:"acceptEmergency"}},{path:"recover",pathMatch:"full",redirectTo:"recover-2fa"},{path:"recover-2fa",component:m.RecoverTwoFactorComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"recoverAccountTwoStep"}},{path:"recover-delete",component:d.RecoverDeleteComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"deleteAccount"}},{path:"verify-recover-delete",component:x.VerifyRecoverDeleteComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"deleteAccount"}},{path:"send/:sendId/:key",component:N.AccessComponent,data:{title:"Bitwarden Send"}}]},{path:"",component:o.UserLayoutComponent,canActivate:[de.AuthGuardService],children:[{path:"vault",component:le.VaultComponent,data:{titleId:"myVault"}},{path:"sends",component:z.SendComponent,data:{title:"Send"}},{path:"settings",component:$.SettingsComponent,children:[{path:"",pathMatch:"full",redirectTo:"account"},{path:"account",component:L.AccountComponent,data:{titleId:"myAccount"}},{path:"options",component:q.OptionsComponent,data:{titleId:"options"}},{path:"domain-rules",component:K.DomainRulesComponent,data:{titleId:"domainRules"}},{path:"two-factor",component:Y.TwoFactorSetupComponent,data:{titleId:"twoStepLogin"}},{path:"premium",component:H.PremiumComponent,data:{titleId:"goPremium"}},{path:"billing",component:Q.UserBillingComponent,data:{titleId:"billing"}},{path:"subscription",component:J.UserSubscriptionComponent,data:{titleId:"premiumMembership"}},{path:"organizations",component:W.OrganizationsComponent,data:{titleId:"organizations"}},{path:"create-organization",component:G.CreateOrganizationComponent,data:{titleId:"newOrganization"}},{path:"emergency-access",children:[{path:"",component:fe.EmergencyAccessComponent,data:{titleId:"emergencyAccess"}},{path:":id",component:he.EmergencyAccessViewComponent,data:{titleId:"emergencyAccess"}}]}]},{path:"tools",component:ae.ToolsComponent,canActivate:[de.AuthGuardService],children:[{path:"",pathMatch:"full",redirectTo:"generator"},{path:"import",component:te.ImportComponent,data:{titleId:"importData"}},{path:"export",component:Z.ExportComponent,data:{titleId:"exportVault"}},{path:"generator",component:re.PasswordGeneratorComponent,data:{titleId:"passwordGenerator"}},{path:"breach-report",component:X.BreachReportComponent,data:{titleId:"dataBreachReport"}},{path:"reused-passwords-report",component:ie.ReusedPasswordsReportComponent,data:{titleId:"reusedPasswordsReport"}},{path:"unsecured-websites-report",component:oe.UnsecuredWebsitesReportComponent,data:{titleId:"unsecuredWebsitesReport"}},{path:"weak-passwords-report",component:se.WeakPasswordsReportComponent,data:{titleId:"weakPasswordsReport"}},{path:"exposed-passwords-report",component:ee.ExposedPasswordsReportComponent,data:{titleId:"exposedPasswordsReport"}},{path:"inactive-two-factor-report",component:ne.InactiveTwoFactorReportComponent,data:{titleId:"inactive2faReport"}}]}]},{path:"organizations/:organizationId",component:a.OrganizationLayoutComponent,canActivate:[de.AuthGuardService,ce.OrganizationGuardService],children:[{path:"",pathMatch:"full",redirectTo:"vault"},{path:"vault",component:U.VaultComponent,data:{titleId:"vault"}},{path:"tools",component:j.ToolsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[me.Permissions.AccessImportExport,me.Permissions.AccessReports]},children:[{path:"",pathMatch:"full",redirectTo:"import"},{path:"import",component:B.ImportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"importData",permissions:[me.Permissions.AccessImportExport]}},{path:"export",component:T.ExportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"exportVault",permissions:[me.Permissions.AccessImportExport]}},{path:"exposed-passwords-report",component:M.ExposedPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"exposedPasswordsReport",permissions:[me.Permissions.AccessReports]}},{path:"inactive-two-factor-report",component:D.InactiveTwoFactorReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"inactive2faReport",permissions:[me.Permissions.AccessReports]}},{path:"reused-passwords-report",component:V.ReusedPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"reusedPasswordsReport",permissions:[me.Permissions.AccessReports]}},{path:"unsecured-websites-report",component:R.UnsecuredWebsitesReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"unsecuredWebsitesReport",permissions:[me.Permissions.AccessReports]}},{path:"weak-passwords-report",component:F.WeakPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"weakPasswordsReport",permissions:[me.Permissions.AccessReports]}}]},{path:"manage",component:C.ManageComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[me.Permissions.ManageAssignedCollections,me.Permissions.ManageAllCollections,me.Permissions.AccessEventLogs,me.Permissions.ManageGroups,me.Permissions.ManageUsers,me.Permissions.ManagePolicies]},children:[{path:"",pathMatch:"full",redirectTo:"people"},{path:"collections",component:b.CollectionsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"collections",permissions:[me.Permissions.ManageAssignedCollections,me.Permissions.ManageAllCollections]}},{path:"events",component:S.EventsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"eventLogs",permissions:[me.Permissions.AccessEventLogs]}},{path:"groups",component:w.GroupsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"groups",permissions:[me.Permissions.ManageGroups]}},{path:"people",component:I.PeopleComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"people",permissions:[me.Permissions.ManageUsers]}},{path:"policies",component:E.PoliciesComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"policies",permissions:[me.Permissions.ManagePolicies]}}]},{path:"settings",component:A.SettingsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[me.Permissions.ManageOrganization]},children:[{path:"",pathMatch:"full",redirectTo:"account"},{path:"account",component:P.AccountComponent,data:{titleId:"myOrganization"}},{path:"two-factor",component:O.TwoFactorSetupComponent,data:{titleId:"twoStepLogin"}},{path:"billing",component:k.OrganizationBillingComponent,data:{titleId:"billing"}},{path:"subscription",component:_.OrganizationSubscriptionComponent,data:{titleId:"subscription"}}]}]},{path:"**",redirectTo:""}],xe=function(){function e(){}return e.ɵmod=ve.ɵɵdefineNgModule({type:e}),e.ɵinj=ve.ɵɵdefineInjector({factory:function(t){return new(t||e)},imports:[[r.RouterModule.forRoot(ge,{useHash:!0,paramsInheritanceStrategy:"always"})],r.RouterModule]}),e}();t.AppRoutingModule=xe,("undefined"==typeof ngJitMode||ngJitMode)&&ve.ɵɵsetNgModuleScope(xe,{imports:[ye.RouterModule],exports:[r.RouterModule]})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.subscribers=new Map}return e.prototype.send=function(e,t){null==t?this.subscribers.forEach(function(t){t(e)}):this.subscribers.has(t)&&this.subscribers.get(t)(e)},e.prototype.subscribe=function(e,t){this.subscribers.set(e,t)},e.prototype.unsubscribe=function(e){this.subscribers.has(e)&&this.subscribers.delete(e)},e}();t.BroadcasterService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDomain=function(e){return null}},,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.EmergencyAccessAcceptRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationUserAcceptRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=5)return this.messagingService.send("logout"),[2];this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("invalidPin"))}return[3,33];case 16:return[4,this.cryptoService.makeKey(this.masterPassword,this.email,e,t)];case 17:return r=i.sent(),[4,this.cryptoService.hashPassword(this.masterPassword,r)];case 18:return l=i.sent(),c=!1,null==l?[3,25]:[4,this.cryptoService.getKeyHash()];case 19:return null==(p=i.sent())?[3,20]:(c=p===l,[3,25]);case 20:(u=new s.PasswordVerificationRequest).masterPasswordHash=l,i.label=21;case 21:return i.trys.push([21,24,,25]),this.formPromise=this.apiService.postAccountVerifyPassword(u),[4,this.formPromise];case 22:return i.sent(),c=!0,[4,this.cryptoService.setKeyHash(l)];case 23:return i.sent(),[3,25];case 24:return i.sent(),[3,25];case 25:return c?this.pinSet[0]?[4,this.storageService.get(a.ConstantsService.protectedPin)]:[3,31]:[3,32];case 26:return d=i.sent(),[4,this.cryptoService.getEncKey(r)];case 27:return m=i.sent(),[4,this.cryptoService.decryptToUtf8(new o.CipherString(d),m)];case 28:return h=i.sent(),[4,this.cryptoService.makePinKey(h,this.email,e,t)];case 29:return f=i.sent(),v=this.vaultTimeoutService,[4,this.cryptoService.encrypt(r.key,f)];case 30:v.pinProtectedKey=i.sent(),i.label=31;case 31:return this.setKeyAndContinue(r),[3,33];case 32:this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("invalidMasterPassword")),i.label=33;case 33:return[2]}})})},e.prototype.logOut=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("logOutConfirmation"),this.i18nService.t("logOut"),this.i18nService.t("logOut"),this.i18nService.t("cancel"))];case 1:return e.sent()&&this.messagingService.send("logout"),[2]}})})},e.prototype.unlockBiometric=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.biometricLock?[4,this.platformUtilsService.authenticateBiometric()]:[2];case 1:return e.sent()?[4,this.doContinue()]:[3,3];case 2:e.sent(),e.label=3;case 3:return[2]}})})},e.prototype.togglePassword=function(){this.platformUtilsService.eventTrack("Toggled Master Password on Unlock"),this.showPassword=!this.showPassword,document.getElementById(this.pinLock?"pin":"masterPassword").focus()},e.prototype.setKeyAndContinue=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.cryptoService.setKey(e)];case 1:return t.sent(),this.doContinue(),[2]}})})},e.prototype.doContinue=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return this.vaultTimeoutService.biometricLocked=!1,[4,this.storageService.get(a.ConstantsService.disableFaviconKey)];case 1:return e=t.sent(),[4,this.stateService.save(a.ConstantsService.disableFaviconKey,!!e)];case 2:return t.sent(),this.messagingService.send("unlocked"),null!=this.onSuccessfulSubmit?this.onSuccessfulSubmit():null!=this.router&&this.router.navigate([this.successRoute]),[2]}})})},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.Router),c.ɵɵdirectiveInject(u.I18nService),c.ɵɵdirectiveInject(d.PlatformUtilsService),c.ɵɵdirectiveInject(m.MessagingService),c.ɵɵdirectiveInject(h.UserService),c.ɵɵdirectiveInject(f.CryptoService),c.ɵɵdirectiveInject(v.StorageService),c.ɵɵdirectiveInject(y.VaultTimeoutService),c.ɵɵdirectiveInject(g.EnvironmentService),c.ɵɵdirectiveInject(x.StateService),c.ɵɵdirectiveInject(b.ApiService))},e.ɵdir=c.ɵɵdefineDirective({type:e}),e}();t.LockComponent=S},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&(e=e.concat(this.email.substr(0,t).trim().toLowerCase().split(/[^A-Za-z0-9]/))),null!=this.name&&""!==this.name&&(e=e.concat(this.name.trim().toLowerCase().split(" "))),e},e}();t.RegisterComponent=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n,r,i,a,o,s){this.name=t,this.email=e,this.masterPasswordHash=n,this.masterPasswordHint=r||null,this.key=i,this.kdf=a,this.kdfIterations=o,this.referenceData=s}}();t.RegisterRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.ReferenceEventRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&this.u2f.init({appId:t[0].appId,challenge:t[0].challenge,keys:t.map(function(e){return{version:e.version,keyHandle:e.keyHandle}})}),[3,7]):[3,7];case 2:return setTimeout(function(){c.init({iframe:void 0,host:e.Host,sig_request:e.Signature,submit_callback:function(e){return r(n,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return null==(t=e.querySelector('input[name="sig_response"]'))?[3,2]:(this.token=t.value,[4,this.submit()]);case 1:n.sent(),n.label=2;case 2:return[2]}})})}})},0),[3,7];case 3:return this.twoFactorEmail=e.Email,this.authService.twoFactorProvidersData.size>1?[4,this.sendEmail(!1)]:[3,5];case 4:o.sent(),o.label=5;case 5:case 6:return[3,7];case 7:return[2]}})})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:if(null==this.token||""===this.token)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("verificationCodeRequired")),[2];if(this.selectedProviderType===a.TwoFactorProviderType.U2f){if(null==this.u2f)return[2];this.u2f.stop()}else this.selectedProviderType!==a.TwoFactorProviderType.Email&&this.selectedProviderType!==a.TwoFactorProviderType.Authenticator||(this.token=this.token.replace(" ","").trim());n.label=1;case 1:return n.trys.push([1,5,,6]),this.formPromise=this.authService.logInTwoFactor(this.selectedProviderType,this.token,this.remember),[4,this.formPromise];case 2:return e=n.sent(),[4,this.storageService.get(l.ConstantsService.disableFaviconKey)];case 3:return t=n.sent(),[4,this.stateService.save(l.ConstantsService.disableFaviconKey,!!t)];case 4:return n.sent(),null!=this.onSuccessfulLogin&&this.onSuccessfulLogin(),this.platformUtilsService.eventTrack("Logged In From Two-step"),e.resetMasterPassword&&(this.successRoute="set-password"),null!=this.onSuccessfulLoginNavigate?this.onSuccessfulLoginNavigate():this.router.navigate([this.successRoute],{queryParams:{identifier:this.identifier}}),[3,6];case 5:return n.sent(),this.selectedProviderType===a.TwoFactorProviderType.U2f&&null!=this.u2f&&this.u2f.start(),[3,6];case 6:return[2]}})})},e.prototype.sendEmail=function(e){return r(this,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:if(this.selectedProviderType!==a.TwoFactorProviderType.Email)return[2];if(null!=this.emailPromise)return[2];n.label=1;case 1:return n.trys.push([1,3,,4]),t=new o.TwoFactorEmailRequest(this.authService.email,this.authService.masterPasswordHash),this.emailPromise=this.apiService.postTwoFactorEmail(t),[4,this.emailPromise];case 2:return n.sent(),e&&this.platformUtilsService.showToast("success",null,this.i18nService.t("verificationCodeEmailSent",this.twoFactorEmail)),[3,4];case 3:return n.sent(),[3,4];case 4:return this.emailPromise=null,[2]}})})},e.prototype.cleanupU2f=function(){null!=this.u2f&&(this.u2f.stop(),this.u2f.cleanup())},Object.defineProperty(e.prototype,"authing",{get:function(){return this.authService.authingWithPassword()||this.authService.authingWithSso()||this.authService.authingWithApiKey()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsLock",{get:function(){return this.authService.authingWithSso()||this.authService.authingWithApiKey()},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.AuthService),u.ɵɵdirectiveInject(m.Router),u.ɵɵdirectiveInject(h.I18nService),u.ɵɵdirectiveInject(f.ApiService),u.ɵɵdirectiveInject(v.PlatformUtilsService),u.ɵɵdirectiveInject(Window),u.ɵɵdirectiveInject(y.EnvironmentService),u.ɵɵdirectiveInject(g.StateService),u.ɵɵdirectiveInject(x.StorageService),u.ɵɵdirectiveInject(m.ActivatedRoute))},e.ɵdir=u.ɵɵdefineDirective({type:e}),e}();t.TwoFactorComponent=b},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.type=t.getDevice(),this.name=t.getDeviceString(),this.identifier=e,this.pushToken=null}}();t.DeviceRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.email=e}}();t.PreloginRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r,i,a,o){null!=e&&e.length>1?(this.email=e[0],this.masterPasswordHash=e[1]):null!=t&&t.length>2?(this.code=t[0],this.codeVerifier=t[1],this.redirectUri=t[2]):null!=n&&n.length>1&&(this.clientId=n[0],this.clientSecret=n[1]),this.token=i,this.provider=r,this.remember=a,this.device=null!=o?o:null}return e.prototype.toIdentityToken=function(e){var t={scope:"api offline_access",client_id:e};if(null!=this.clientSecret)t.scope="api",t.grant_type="client_credentials",t.client_secret=this.clientSecret;else if(null!=this.masterPasswordHash&&null!=this.email)t.grant_type="password",t.username=this.email,t.password=this.masterPasswordHash;else{if(null==this.code||null==this.codeVerifier||null==this.redirectUri)throw new Error("must provide credentials or codes");t.grant_type="authorization_code",t.code=this.code,t.code_verifier=this.codeVerifier,t.redirect_uri=this.redirectUri}return this.device&&(t.deviceType=this.device.type,t.deviceIdentifier=this.device.identifier,t.deviceName=this.device.name),this.token&&null!=this.provider&&(t.twoFactorToken=this.token,t.twoFactorProvider=this.provider,t.twoFactorRemember=this.remember?"1":"0"),t},e}();t.TokenRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r,i){this.win=e,this.webVaultUrl=t,this.successCallback=n,this.errorCallback=r,this.infoCallback=i,this.iframe=null,this.parseFunction=this.parseMessage.bind(this),this.connectorLink=e.document.createElement("a"),this.webVaultUrl=null!=t&&""!==t?t:"https://vault.bitwarden.com"}return e.prototype.init=function(e){this.connectorLink.href=this.webVaultUrl+"/u2f-connector.html?data="+this.base64Encode(JSON.stringify(e))+"&parent="+encodeURIComponent(this.win.document.location.href)+"&v=1",this.iframe=this.win.document.getElementById("u2f_iframe"),this.iframe.src=this.connectorLink.href,this.win.addEventListener("message",this.parseFunction,!1)},e.prototype.stop=function(){this.sendMessage("stop")},e.prototype.start=function(){this.sendMessage("start")},e.prototype.sendMessage=function(e){this.iframe&&this.iframe.src&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage(e,this.iframe.src)},e.prototype.base64Encode=function(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode("0x"+t)}))},e.prototype.cleanup=function(){this.win.removeEventListener("message",this.parseFunction,!1)},e.prototype.parseMessage=function(e){if(this.validMessage(e)){var t=e.data.split("|");"success"===t[0]&&this.successCallback?this.successCallback(t[1]):"error"===t[0]&&this.errorCallback?this.errorCallback(t[1]):"info"===t[0]&&this.infoCallback&&this.infoCallback(t[1])}},e.prototype.validMessage=function(e){return null!=e.origin&&""!==e.origin&&e.origin===this.connectorLink.origin&&null!=e.data&&"string"==typeof e.data&&(0===e.data.indexOf("success|")||0===e.data.indexOf("error|")||0===e.data.indexOf("info|"))},e}();t.U2f=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.userId=e,this.token=t}}();t.VerifyEmailRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.userId=e,this.token=t}}();t.VerifyDeleteRecoverRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.collections=[]}}();t.GroupRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.emails=[],this.collections=[]}}();t.OrganizationUserInviteRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.collections=[]}}();t.OrganizationUserUpdateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.groupIds=[]}}();t.OrganizationUserUpdateGroupsRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.AppIdService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.LogService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.PolicyRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationUpdateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Charge=0]="Charge",e[e.Credit=1]="Credit",e[e.PromotionalCredit=2]="PromotionalCredit",e[e.ReferralCredit=3]="ReferralCredit",e[e.Refund=4]="Refund"}(t.TransactionType||(t.TransactionType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.VerifyBankRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.BitPayInvoiceRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(574).OrganizationTaxInfoUpdateRequest);t.PaymentRequest=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationCreateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationUpgradeRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SeatRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.StorageRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorDuoRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.TwoFactorProviderRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorAuthenticatorRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorEmailRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorU2fDeleteRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorU2fRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorYubioOtpRequest=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]"+this.i18nService.t("encExportKeyWarningDesc")+"

"+this.i18nService.t("encExportAccountWarningDesc"),this.i18nService.t("confirmVaultExport"),this.i18nService.t("exportVault"),this.i18nService.t("cancel"),"warning",!0)]:[3,2];case 1:return[2,e.sent()];case 2:return[4,this.platformUtilsService.showDialog(this.i18nService.t("exportWarningDesc"),this.i18nService.t("confirmVaultExport"),this.i18nService.t("exportVault"),this.i18nService.t("cancel"),"warning")];case 3:return[2,e.sent()]}})})},e.prototype.togglePassword=function(){this.platformUtilsService.eventTrack("Toggled Master Password on Export"),this.showPassword=!this.showPassword,document.getElementById("masterPassword").focus()},e.prototype.saved=function(){this.onSaved.emit()},e.prototype.getExportData=function(){return this.exportService.getExport(this.format)},e.prototype.getFileName=function(e){var t=this.format;return"encrypted_json"===this.format&&(e=null==e?"encrypted":"encrypted_"+e,t="json"),this.exportService.getFileName(e,t)},e.prototype.collectEvent=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.eventService.collect(o.EventType.User_ClientExportedVault)];case 1:return e.sent(),[2]}})})},e.prototype.downloadFile=function(e){var t=this.getFileName();this.platformUtilsService.saveFile(this.win,e,{type:"text/plain"},t)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.CryptoService),s.ɵɵdirectiveInject(c.I18nService),s.ɵɵdirectiveInject(p.PlatformUtilsService),s.ɵɵdirectiveInject(u.ExportService),s.ɵɵdirectiveInject(d.EventService),s.ɵɵdirectiveInject(Window))},e.ɵdir=s.ɵɵdefineDirective({type:e,outputs:{onSaved:"onSaved"}}),e}();t.ExportComponent=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.AttachmentRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&this.collections.length>0&&this.collections.forEach(function(e){a.collectionIds.indexOf(e.id)>-1&&(e.checked=!0)}),i.label=8;case 8:return r=this,[4,this.folderService.getAllDecrypted()];case 9:return r.folders=i.sent(),this.editMode&&this.previousCipherId!==this.cipherId&&this.eventService.collect(l.EventType.Cipher_ClientViewed,this.cipherId),this.previousCipherId=this.cipherId,[2]}})})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return this.cipher.isDeleted?[2,this.restore()]:null==this.cipher.name||""===this.cipher.name?(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("nameRequired")),[2,!1]):this.editMode&&!this.cloneMode||this.allowPersonal||null!=this.cipher.organizationId?(this.editMode&&!this.cloneMode||this.cipher.type!==s.CipherType.Login||null==this.cipher.login.uris||1!==this.cipher.login.uris.length||null!=this.cipher.login.uris[0].uri&&""!==this.cipher.login.uris[0].uri||(this.cipher.login.uris=null),this.editMode&&!this.cloneMode||null==this.cipher.organizationId||(this.cipher.collectionIds=null==this.collections?[]:this.collections.filter(function(e){return e.checked}).map(function(e){return e.id})),this.cloneMode&&(this.cipher.id=null),[4,this.encryptCipher()]):(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("personalOwnershipSubmitError")),[2,!1]);case 1:e=t.sent(),t.label=2;case 2:return t.trys.push([2,4,,5]),this.formPromise=this.saveCipher(e),[4,this.formPromise];case 3:return t.sent(),this.cipher.id=e.id,this.platformUtilsService.eventTrack(this.editMode&&!this.cloneMode?"Edited Cipher":"Added Cipher"),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.editMode&&!this.cloneMode?"editedItem":"addedItem")),this.onSavedCipher.emit(this.cipher),this.messagingService.send(this.editMode&&!this.cloneMode?"editedCipher":"addedCipher"),[2,!0];case 4:return t.sent(),[3,5];case 5:return[2,!1]}})})},e.prototype.addUri=function(){this.cipher.type===s.CipherType.Login&&(null==this.cipher.login.uris&&(this.cipher.login.uris=[]),this.cipher.login.uris.push(new g.LoginUriView))},e.prototype.removeUri=function(e){if(this.cipher.type===s.CipherType.Login&&null!=this.cipher.login.uris){var t=this.cipher.login.uris.indexOf(e);t>-1&&this.cipher.login.uris.splice(t,1)}},e.prototype.addField=function(){null==this.cipher.fields&&(this.cipher.fields=[]);var e=new v.FieldView;e.type=this.addFieldType,e.newField=!0,this.cipher.fields.push(e)},e.prototype.removeField=function(e){var t=this.cipher.fields.indexOf(e);t>-1&&this.cipher.fields.splice(t,1)},e.prototype.trackByFunction=function(e,t){return e},e.prototype.cancel=function(){this.onCancelled.emit(this.cipher)},e.prototype.attachments=function(){this.onEditAttachments.emit(this.cipher)},e.prototype.share=function(){this.onShareCipher.emit(this.cipher)},e.prototype.editCollections=function(){this.onEditCollections.emit(this.cipher)},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t(this.cipher.isDeleted?"permanentlyDeleteItemConfirmation":"deleteItemConfirmation"),this.i18nService.t("deleteItem"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.deleteCipher(),[4,this.deletePromise];case 3:return e.sent(),this.platformUtilsService.eventTrack((this.cipher.isDeleted?"Permanently ":"")+"Deleted Cipher"),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.cipher.isDeleted?"permanentlyDeletedItem":"deletedItem")),this.onDeletedCipher.emit(this.cipher),this.messagingService.send(this.cipher.isDeleted?"permanentlyDeletedCipher":"deletedCipher"),[3,5];case 4:return e.sent(),[3,5];case 5:return[2,!0]}})})},e.prototype.restore=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.cipher.isDeleted?[4,this.platformUtilsService.showDialog(this.i18nService.t("restoreItemConfirmation"),this.i18nService.t("restoreItem"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2,!1];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.restorePromise=this.restoreCipher(),[4,this.restorePromise];case 3:return e.sent(),this.platformUtilsService.eventTrack("Restored Cipher"),this.platformUtilsService.showToast("success",null,this.i18nService.t("restoredItem")),this.onRestoredCipher.emit(this.cipher),this.messagingService.send("restoredCipher"),[3,5];case 4:return e.sent(),[3,5];case 5:return[2,!0]}})})},e.prototype.generatePassword=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return null!=this.cipher.login&&null!=this.cipher.login.password&&this.cipher.login.password.length?[4,this.platformUtilsService.showDialog(this.i18nService.t("overwritePasswordConfirmation"),this.i18nService.t("overwritePassword"),this.i18nService.t("yes"),this.i18nService.t("no"))]:[3,2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return this.onGeneratePassword.emit(),[2,!0]}})})},e.prototype.togglePassword=function(){this.platformUtilsService.eventTrack("Toggled Password on Edit"),this.showPassword=!this.showPassword,document.getElementById("loginPassword").focus(),this.editMode&&this.showPassword&&this.eventService.collect(l.EventType.Cipher_ClientToggledPasswordVisible,this.cipherId)},e.prototype.toggleCardCode=function(){this.platformUtilsService.eventTrack("Toggled CardCode on Edit"),this.showCardCode=!this.showCardCode,document.getElementById("cardCode").focus(),this.editMode&&this.showCardCode&&this.eventService.collect(l.EventType.Cipher_ClientToggledCardCodeVisible,this.cipherId)},e.prototype.toggleFieldValue=function(e){var t=e;t.showValue=!t.showValue,this.editMode&&t.showValue&&this.eventService.collect(l.EventType.Cipher_ClientToggledHiddenFieldVisible,this.cipherId)},e.prototype.toggleUriOptions=function(e){var t=e;t.showOptions=(null!=t.showOptions||null==e.match)&&!t.showOptions},e.prototype.loginUriMatchChanged=function(e){var t=e;t.showOptions=null==t.showOptions||t.showOptions},e.prototype.drop=function(e){a.moveItemInArray(this.cipher.fields,e.previousIndex,e.currentIndex)},e.prototype.organizationChanged=function(){return r(this,void 0,void 0,function(){var e,t=this;return i(this,function(n){switch(n.label){case 0:return null!=this.writeableCollections&&this.writeableCollections.forEach(function(e){return e.checked=!1}),null==this.cipher.organizationId?[3,2]:(this.collections=this.writeableCollections.filter(function(e){return e.organizationId===t.cipher.organizationId}),[4,this.userService.getOrganization(this.cipher.organizationId)]);case 1:return null!=(e=n.sent())&&(this.cipher.organizationUseTotp=e.useTotp),[3,3];case 2:this.collections=[],n.label=3;case 3:return[2]}})})},e.prototype.checkPassword=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return null!=this.checkPasswordPromise?[2]:null==this.cipher.login||null==this.cipher.login.password||""===this.cipher.login.password?[2]:(this.platformUtilsService.eventTrack("Check Password"),this.checkPasswordPromise=this.auditService.passwordLeaked(this.cipher.login.password),[4,this.checkPasswordPromise]);case 1:return e=t.sent(),this.checkPasswordPromise=null,e>0?this.platformUtilsService.showToast("warning",null,this.i18nService.t("passwordExposed",e.toString())):this.platformUtilsService.showToast("success",null,this.i18nService.t("passwordSafe")),[2]}})})},e.prototype.loadCollections=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.collectionService.getAllDecrypted()];case 1:return[2,e.sent().filter(function(e){return!e.readOnly})]}})})},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.encryptCipher=function(){return this.cipherService.encrypt(this.cipher)},e.prototype.saveCipher=function(e){return this.cipherService.saveWithServer(e)},e.prototype.deleteCipher=function(){return this.cipher.isDeleted?this.cipherService.deleteWithServer(this.cipher.id):this.cipherService.softDeleteWithServer(this.cipher.id)},e.prototype.restoreCipher=function(){return this.cipherService.restoreWithServer(this.cipher.id)},e.ɵfac=function(t){return new(t||e)(w.ɵɵdirectiveInject(C.CipherService),w.ɵɵdirectiveInject(I.FolderService),w.ɵɵdirectiveInject(E.I18nService),w.ɵɵdirectiveInject(P.PlatformUtilsService),w.ɵɵdirectiveInject(k.AuditService),w.ɵɵdirectiveInject(_.StateService),w.ɵɵdirectiveInject(A.UserService),w.ɵɵdirectiveInject(O.CollectionService),w.ɵɵdirectiveInject(T.MessagingService),w.ɵɵdirectiveInject(M.EventService),w.ɵɵdirectiveInject(B.PolicyService))},e.ɵdir=w.ɵɵdefineDirective({type:e,inputs:{cloneMode:"cloneMode",folderId:"folderId",cipherId:"cipherId",type:"type",collectionIds:"collectionIds",organizationId:"organizationId"},outputs:{onSavedCipher:"onSavedCipher",onDeletedCipher:"onDeletedCipher",onRestoredCipher:"onRestoredCipher",onCancelled:"onCancelled",onEditAttachments:"onEditAttachments",onShareCipher:"onShareCipher",onEditCollections:"onEditCollections",onGeneratePassword:"onGeneratePassword"}}),e}();t.AddEditComponent=D},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]this.pageSize&&(t=this.pagedCiphersCount),this.ciphers.length>e&&(this.pagedCiphers=this.pagedCiphers.concat(this.ciphers.slice(e,e+t))),this.pagedCiphersCount=this.pagedCiphers.length,this.didScroll=this.pagedCiphers.length>this.pageSize}},e.prototype.reload=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),r(this,void 0,void 0,function(){return i(this,function(n){switch(n.label){case 0:return this.loaded=!1,this.ciphers=[],[4,this.load(e,t)];case 1:return n.sent(),[2]}})})},e.prototype.refresh=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return e.trys.push([0,,2,3]),this.refreshing=!0,[4,this.reload(this.filter,this.deleted)];case 1:return e.sent(),[3,3];case 2:return this.refreshing=!1,[7];case 3:return[2]}})})},e.prototype.applyFilter=function(e){return void 0===e&&(e=null),r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return this.filter=e,[4,this.search(null)];case 1:return t.sent(),[2]}})})},e.prototype.search=function(e){return void 0===e&&(e=null),r(this,void 0,void 0,function(){var t,n,a=this;return i(this,function(o){switch(o.label){case 0:return this.searchPending=!1,null!=this.searchTimeout&&clearTimeout(this.searchTimeout),t=function(e){return e.isDeleted===a.deleted},null!=e?[3,3]:(n=this,[4,this.searchService.searchCiphers(this.searchText,[this.filter,t],null)]);case 1:return n.ciphers=o.sent(),[4,this.resetPaging()];case 2:return o.sent(),[2];case 3:return this.searchPending=!0,this.searchTimeout=setTimeout(function(){return r(a,void 0,void 0,function(){var e;return i(this,function(n){switch(n.label){case 0:return e=this,[4,this.searchService.searchCiphers(this.searchText,[this.filter,t],null)];case 1:return e.ciphers=n.sent(),[4,this.resetPaging()];case 2:return n.sent(),this.searchPending=!1,[2]}})})},e),[2]}})})},e.prototype.selectCipher=function(e){this.onCipherClicked.emit(e)},e.prototype.rightClickCipher=function(e){this.onCipherRightClicked.emit(e)},e.prototype.addCipher=function(){this.onAddCipher.emit()},e.prototype.addCipherOptions=function(){this.onAddCipherOptions.emit()},e.prototype.isSearching=function(){return!this.searchPending&&this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.ciphers.length>this.pageSize},e.prototype.resetPaging=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return this.pagedCiphers=[],this.loadMore(),[2]})})},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(s.SearchService))},e.ɵdir=o.ɵɵdefineDirective({type:e,inputs:{activeCipherId:"activeCipherId"},outputs:{onCipherClicked:"onCipherClicked",onCipherRightClicked:"onCipherRightClicked",onAddCipher:"onAddCipher",onAddCipherOptions:"onAddCipherOptions"}}),e}();t.CiphersComponent=l},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1}),[2]}})})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:if(e=this.collections.filter(function(e){return!!e.checked}).map(function(e){return e.id}),!this.allowSelectNone&&0===e.length)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectOneCollection")),[2];this.cipherDomain.collectionIds=e,t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.saveCollections(),[4,this.formPromise];case 2:return t.sent(),this.onSavedCollections.emit(),this.platformUtilsService.eventTrack("Edited Cipher Collections"),this.platformUtilsService.showToast("success",null,this.i18nService.t("editedItem")),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.loadCipherCollections=function(){return this.cipherDomain.collectionIds},e.prototype.loadCollections=function(){return r(this,void 0,void 0,function(){var e=this;return i(this,function(t){switch(t.label){case 0:return[4,this.collectionService.getAllDecrypted()];case 1:return[2,t.sent().filter(function(t){return!t.readOnly&&t.organizationId===e.cipher.organizationId})]}})})},e.prototype.saveCollections=function(){return this.cipherService.saveCollectionsWithServer(this.cipherDomain)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(s.CollectionService),o.ɵɵdirectiveInject(l.PlatformUtilsService),o.ɵɵdirectiveInject(c.I18nService),o.ɵɵdirectiveInject(p.CipherService))},e.ɵdir=o.ɵɵdefineDirective({type:e,inputs:{cipherId:"cipherId",allowSelectNone:"allowSelectNone"},outputs:{onSavedCollections:"onSavedCollections"}}),e}();t.CollectionsComponent=u},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?null:this.formatDateFallbacks(this.expirationDateFallback)+"T"+this.expirationTimeFallback},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"deletionDateTimeFallback",{get:function(){return this.nullOrWhiteSpaceCount([this.deletionDateFallback,this.deletionTimeFallback])>0?null:this.formatDateFallbacks(this.deletionDateFallback)+"T"+this.deletionTimeFallback},enumerable:!0,configurable:!0}),e.prototype.load=function(){return r(this,void 0,void 0,function(){var e,t,n,r,a,s,h;return i(this,function(i){switch(i.label){case 0:return[4,this.policyService.getAll(c.PolicyType.DisableSend)];case 1:return e=i.sent(),[4,this.userService.getAllOrganizations()];case 2:return t=i.sent(),this.disableSend=t.some(function(t){return t.enabled&&t.status===l.OrganizationUserStatusType.Confirmed&&t.usePolicies&&!t.canManagePolicies&&e.some(function(e){return e.organizationId===t.id&&e.enabled})}),n=this,[4,this.userService.canAccessPremium()];case 3:return n.canAccessPremium=i.sent(),this.canAccessPremium||(this.type=p.SendType.Text),null!=this.send?[3,7]:this.editMode?[4,this.loadSend()]:[3,6];case 4:return r=i.sent(),a=this,[4,r.decrypt()];case 5:return a.send=i.sent(),[3,7];case 6:this.send=new m.SendView,this.send.type=null==this.type?p.SendType.File:this.type,this.send.file=new u.SendFileView,this.send.text=new d.SendTextView,this.send.deletionDate=new Date,this.send.deletionDate.setDate(this.send.deletionDate.getDate()+7),i.label=7;case 7:return this.hasPassword=null!=this.send.password&&""!==this.send.password.trim(),this.isDateTimeLocalSupported?(this.deletionDate=this.dateToString(this.send.deletionDate),this.expirationDate=this.dateToString(this.send.expirationDate)):(void 0!==(s=this.dateToSplitString(this.send.deletionDate))&&s.length>0&&(this.deletionDateFallback=s[0],this.deletionTimeFallback=s[1],this.isSafari&&(this.safariDeletionTime=this.deletionTimeFallback)),void 0!==(h=this.dateToSplitString(this.send.expirationDate))&&h.length>0&&(this.expirationDateFallback=h[0],this.expirationTimeFallback=h[1],this.isSafari&&(this.safariExpirationTime=this.expirationTimeFallback))),this.isSafari&&(this.safariDeletionTimeOptions=this.safariTimeOptions(o.DeletionDate),this.safariExpirationTimeOptions=this.safariTimeOptions(o.ExpriationDate)),[2]}})})},e.prototype.submit=function(){var e,t;return r(this,void 0,void 0,function(){var n,r,a,o,s,l;return i(this,function(i){switch(i.label){case 0:if(!this.isDateTimeLocalSupported){if(this.isSafari&&(this.expirationTimeFallback=null!==(e=this.safariExpirationTime)&&void 0!==e?e:this.expirationTimeFallback,this.deletionTimeFallback=null!==(t=this.safariDeletionTime)&&void 0!==t?t:this.deletionTimeFallback),this.deletionDate=this.deletionDateTimeFallback,null!=this.expirationDateTimeFallback&&isNaN(Date.parse(this.expirationDateTimeFallback)))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("expirationDateIsInvalid")),[2];if(isNaN(Date.parse(this.deletionDateTimeFallback)))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("deletionDateIsInvalid")),[2];if(1===this.nullOrWhiteSpaceCount([this.expirationDateFallback,this.expirationTimeFallback]))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("expirationDateAndTimeRequired")),[2];(this.editMode||0===this.expirationDateSelect)&&(this.expirationDate=this.expirationDateTimeFallback)}if(this.disableSend)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("sendDisabledWarning")),[2,!1];if(null==this.send.name||""===this.send.name)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("nameRequired")),[2,!1];if(n=null,this.send.type===p.SendType.File&&!this.editMode){if(r=document.getElementById("file"),null==(a=r.files)||0===a.length)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectFile")),[2];if((n=a[0]).size>104857600)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("maxFileSize")),[2]}return this.editMode||(o=new Date,this.deletionDateSelect>0&&((s=new Date).setHours(o.getHours()+this.deletionDateSelect),this.deletionDate=this.dateToString(s)),null!=this.expirationDateSelect&&this.expirationDateSelect>0&&((s=new Date).setHours(o.getHours()+this.expirationDateSelect),this.expirationDate=this.dateToString(s))),null!=this.password&&""===this.password.trim()&&(this.password=null),[4,this.encryptSend(n)];case 1:l=i.sent(),i.label=2;case 2:return i.trys.push([2,4,,5]),this.formPromise=this.sendService.saveWithServer(l),[4,this.formPromise];case 3:return i.sent(),null==this.send.id&&(this.send.id=l[0].id),null==this.send.accessId&&(this.send.accessId=l[0].accessId),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.editMode?"editedSend":"createdSend")),this.onSavedSend.emit(this.send),this.copyLink&&this.copyLinkToClipboard(this.link),[2,!0];case 4:return i.sent(),[3,5];case 5:return[2,!1]}})})},e.prototype.clearExpiration=function(){this.expirationDate=null,this.expirationDateFallback=null,this.expirationTimeFallback=null,this.safariExpirationTime=null},e.prototype.copyLinkToClipboard=function(e){null!=e&&this.platformUtilsService.copyToClipboard(e)},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return null!=this.deletePromise?[2,!1]:[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteSendConfirmation"),this.i18nService.t("deleteSend"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,5,,6]),this.deletePromise=this.sendService.deleteWithServer(this.send.id),[4,this.deletePromise];case 3:return e.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("deletedSend")),[4,this.load()];case 4:return e.sent(),this.onDeletedSend.emit(this.send),[2,!0];case 5:return e.sent(),[3,6];case 6:return[2,!1]}})})},e.prototype.typeChanged=function(){this.canAccessPremium||this.send.type!==p.SendType.File||this.premiumRequiredAlertShown||(this.premiumRequiredAlertShown=!0,this.messagingService.send("premiumRequired"))},e.prototype.toggleOptions=function(){this.showOptions=!this.showOptions},e.prototype.expirationDateFallbackChanged=function(){var e,t;this.isSafari?this.safariExpirationTime=null!==(e=this.safariExpirationTime)&&void 0!==e?e:"00:00":this.expirationTimeFallback=null!==(t=this.expirationTimeFallback)&&void 0!==t?t:this.datePipe.transform(new Date,"HH:mm")},e.prototype.loadSend=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return[2,this.sendService.get(this.sendId)]})})},e.prototype.encryptSend=function(e){return r(this,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return[4,this.sendService.encrypt(this.send,e,this.password,null)];case 1:t=n.sent();try{t[0].deletionDate=null==this.deletionDate?null:new Date(this.deletionDate)}catch(r){t[0].deletionDate=null}try{t[0].expirationDate=null==this.expirationDate?null:new Date(this.expirationDate)}catch(i){t[0].expirationDate=null}return[2,t]}})})},e.prototype.dateToString=function(e){return null==e?null:this.datePipe.transform(e,"yyyy-MM-ddTHH:mm")},e.prototype.formatDateFallbacks=function(e){try{return this.isSafari||(e+=" 00:00"),this.datePipe.transform(new Date(e),"yyyy-MM-dd")}catch(t){this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("dateParsingError"))}},e.prototype.dateToSplitString=function(e){if(null!=e)return[this.isSafari?this.datePipe.transform(e,"MM/dd/yyyy"):this.datePipe.transform(e,"yyyy-MM-dd"),this.datePipe.transform(e,"HH:mm")]},e.prototype.togglePasswordVisible=function(){this.showPassword=!this.showPassword,document.getElementById("password").focus()},e.prototype.nullOrWhiteSpaceCount=function(e){return e.filter(function(e){return null==e||""===e.trim()}).length},e.prototype.safariTimeOptions=function(e){for(var t=[],n=[],r=[],i=[],s=1;s<=12;s++)for(var l=0;l<60;l+=15){var c=s.toString(),p=l.toString();if(s<10&&(c="0"+c),l<10&&(p="0"+p),12===s){var u={standard:c+":"+p+" AM",military:"00:"+p};n.push(u);var d={standard:c+":"+p+" PM",military:c+":"+p};t.push(d)}else{var m={standard:c+":"+p+" AM",military:c+":"+p};r.push(m);var h={standard:c+":"+p+" PM",military:s+12+":"+p};i.push(h)}}var f=a(n,r,t,i);if(e===o.ExpriationDate&&null!=this.expirationDateTimeFallback&&this.editMode){var v={standard:this.datePipe.transform(this.expirationDateTimeFallback,"hh:mm a"),military:this.datePipe.transform(this.expirationDateTimeFallback,"HH:mm")};return a([v,{standard:null,military:null}],f)}if(e===o.DeletionDate&&null!=this.deletionDateTimeFallback&&this.editMode){v={standard:this.datePipe.transform(this.deletionDateTimeFallback,"hh:mm a"),military:this.datePipe.transform(this.deletionDateTimeFallback,"HH:mm")};return a([v],f)}return a([{standard:null,military:null}],f)},e.ɵfac=function(t){return new(t||e)(h.ɵɵdirectiveInject(f.I18nService),h.ɵɵdirectiveInject(v.PlatformUtilsService),h.ɵɵdirectiveInject(y.EnvironmentService),h.ɵɵdirectiveInject(g.DatePipe),h.ɵɵdirectiveInject(x.SendService),h.ɵɵdirectiveInject(b.UserService),h.ɵɵdirectiveInject(S.MessagingService),h.ɵɵdirectiveInject(w.PolicyService))},e.ɵdir=h.ɵɵdefineDirective({type:e,inputs:{sendId:"sendId",type:"type"},outputs:{onSavedSend:"onSavedSend",onDeletedSend:"onDeletedSend",onCancelled:"onCancelled"}}),e}();t.AddEditComponent=C},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.culture="en-US",this.name=e,this.masterPasswordHint=t||null}}();t.UpdateProfileRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(628).EmailTokenRequest);t.EmailRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(633).PasswordRequest);t.KdfRequest=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.UpdateDomainsRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(this.organizationId=this.organizations[0].id),this.filterCollections(),[2]}})})},e.prototype.filterCollections=function(){var e=this;this.writeableCollections.forEach(function(e){return e.checked=!1}),null==this.organizationId||0===this.writeableCollections.length?this.collections=[]:this.collections=this.writeableCollections.filter(function(t){return t.organizationId===e.organizationId})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e,t,n=this;return i(this,function(a){switch(a.label){case 0:return 0===(e=this.collections.filter(function(e){return!!e.checked}).map(function(e){return e.id})).length?(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectOneCollection")),[2]):[4,this.cipherService.get(this.cipherId)];case 1:return[4,a.sent().decrypt()];case 2:t=a.sent(),a.label=3;case 3:return a.trys.push([3,5,,6]),this.formPromise=this.cipherService.shareWithServer(t,this.organizationId,e).then(function(){return r(n,void 0,void 0,function(){return i(this,function(e){return this.onSharedCipher.emit(),this.platformUtilsService.eventTrack("Shared Cipher"),this.platformUtilsService.showToast("success",null,this.i18nService.t("sharedItem")),[2]})})}),[4,this.formPromise];case 4:return a.sent(),[2,!0];case 5:return a.sent(),[3,6];case 6:return[2,!1]}})})},Object.defineProperty(e.prototype,"canSave",{get:function(){if(null!=this.collections)for(var e=0;e0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e?c[e-1]():0===c.length&&(s.delete(l),0===s.size&&o.delete(n))};a.apply(n,r).then(function(e){return u(),e}).catch(function(e){throw u(),e}).then(t,i)};c.push(p),c.length<=e&&p()})}}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.ids=null==e?[]:e,this.folderId=t}}();t.CipherBulkMoveRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.ids=null==e?[]:e}}();t.CipherBulkRestoreRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(504),i=function(){return function(e,t){var n=this;null!=e&&(this.ciphers=[],e.forEach(function(e){n.ciphers.push(new r.CipherWithIdRequest(e))})),this.collectionIds=t}}();t.CipherBulkShareRequest=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(212),i=function(){return function(e){this.cipher=new r.CipherRequest(e),this.collectionIds=e.collectionIds}}();t.CipherShareRequest=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.comparator=e,this.sortedCiphersByUrl=new Map,this.timeouts=new Map}return e.prototype.isCached=function(e){return this.sortedCiphersByUrl.has(e)},e.prototype.addCiphers=function(e,t){t.sort(this.comparator),this.sortedCiphersByUrl.set(e,new i(t)),this.resetTimer(e)},e.prototype.getLastUsed=function(e){return this.resetTimer(e),this.isCached(e)?this.sortedCiphersByUrl.get(e).getLastUsed():null},e.prototype.getLastLaunched=function(e){return this.isCached(e)?this.sortedCiphersByUrl.get(e).getLastLaunched():null},e.prototype.getNext=function(e){return this.resetTimer(e),this.isCached(e)?this.sortedCiphersByUrl.get(e).getNext():null},e.prototype.updateLastUsedIndex=function(e){this.isCached(e)&&this.sortedCiphersByUrl.get(e).updateLastUsedIndex()},e.prototype.clear=function(){this.sortedCiphersByUrl.clear(),this.timeouts.clear()},e.prototype.resetTimer=function(e){var t=this;clearTimeout(this.timeouts.get(e)),this.timeouts.set(e,setTimeout(function(){t.sortedCiphersByUrl.delete(e),t.timeouts.delete(e)},3e3))},e}();t.SortedCiphersCache=r;var i=function(){function e(e){this.ciphers=e,this.lastUsedIndex=-1}return e.prototype.getLastUsed=function(){return this.lastUsedIndex=Math.max(this.lastUsedIndex,0),this.ciphers[this.lastUsedIndex]},e.prototype.getLastLaunched=function(){return this.ciphers.filter(function(e){var t;return null===(t=e.localData)||void 0===t?void 0:t.lastLaunched}).sort(function(e,t){return t.localData.lastLaunched.valueOf()-e.localData.lastLaunched.valueOf()})[0]},e.prototype.getNextIndex=function(){return(this.lastUsedIndex+1)%this.ciphers.length},e.prototype.getNext=function(){return this.ciphers[this.getNextIndex()]},e.prototype.updateLastUsedIndex=function(){this.lastUsedIndex=this.getNextIndex()},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n){this.children=[],this.parent=n,this.node=e,this.node.name=t}}();t.TreeNode=r},,,,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.defaultType="",t.minLength=0,t.useUppercase=!1,t.useLowercase=!1,t.useNumbers=!1,t.numberCount=0,t.useSpecial=!1,t.specialCount=0,t.minNumberWords=0,t.capitalize=!1,t.includeNumber=!1,t}return i(t,e),t.prototype.inEffect=function(){return""!==this.defaultType||this.minLength>0||this.numberCount>0||this.specialCount>0||this.useUppercase||this.useLowercase||this.useNumbers||this.useSpecial||this.minNumberWords>0||this.capitalize||this.includeNumber},t}(n(82).default);t.PasswordGeneratorPolicyOptions=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.id=e.id,this.name=e.name,this.status=e.status,this.type=e.type,this.enabled=e.enabled,this.usePolicies=e.usePolicies,this.useGroups=e.useGroups,this.useDirectory=e.useDirectory,this.useEvents=e.useEvents,this.useTotp=e.useTotp,this.use2fa=e.use2fa,this.useApi=e.useApi,this.useBusinessPortal=e.useBusinessPortal,this.useSso=e.useSso,this.selfHost=e.selfHost,this.usersGetPremium=e.usersGetPremium,this.seats=e.seats,this.maxCollections=e.maxCollections,this.maxStorageGb=e.maxStorageGb,this.ssoBound=e.ssoBound,this.identifier=e.identifier,this.permissions=e.permissions}}();t.OrganizationData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.id=e.id,this.fileName=e.fileName,this.key=e.key,this.size=e.size,this.sizeName=e.sizeName)}}();t.SendFileData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.text=e.text,this.hidden=e.hidden)}}();t.SendTextData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0?this.browserCache=o.DeviceType.OperaBrowser:-1!==navigator.userAgent.indexOf(" Edg/")?this.browserCache=o.DeviceType.EdgeBrowser:-1!==navigator.userAgent.indexOf(" Vivaldi/")?this.browserCache=o.DeviceType.VivaldiBrowser:-1!==navigator.userAgent.indexOf(" Safari/")&&-1===navigator.userAgent.indexOf("Chrome")?this.browserCache=o.DeviceType.SafariBrowser:window.chrome&&-1!==navigator.userAgent.indexOf(" Chrome/")?this.browserCache=o.DeviceType.ChromeBrowser:-1!==navigator.userAgent.indexOf(" Trident/")?this.browserCache=o.DeviceType.IEBrowser:this.browserCache=o.DeviceType.UnknownBrowser,this.browserCache)},e.prototype.getDeviceString=function(){return o.DeviceType[this.getDevice()].toLowerCase().replace("browser","")},e.prototype.isFirefox=function(){return this.getDevice()===o.DeviceType.FirefoxBrowser},e.prototype.isChrome=function(){return this.getDevice()===o.DeviceType.ChromeBrowser},e.prototype.isEdge=function(){return this.getDevice()===o.DeviceType.EdgeBrowser},e.prototype.isOpera=function(){return this.getDevice()===o.DeviceType.OperaBrowser},e.prototype.isVivaldi=function(){return this.getDevice()===o.DeviceType.VivaldiBrowser},e.prototype.isSafari=function(){return this.getDevice()===o.DeviceType.SafariBrowser},e.prototype.isIE=function(){return this.getDevice()===o.DeviceType.IEBrowser},e.prototype.isMacAppStore=function(){return!1},e.prototype.analyticsId=function(){return"UA-81915606-3"},e.prototype.isViewOpen=function(){return Promise.resolve(!1)},e.prototype.lockTimeout=function(){return null},e.prototype.launchUri=function(e,t){var n=document.createElement("a");n.href=e,null!=t&&t.sameWindow||(n.target="_blank",n.rel="noreferrer noopener"),n.classList.add("d-none"),document.body.appendChild(n),n.click(),document.body.removeChild(n)},e.prototype.saveFile=function(e,t,n,r){var i=null,a=null,o=r.toLowerCase(),s=!0;if(o.endsWith(".pdf")?(a="application/pdf",s=!1):o.endsWith(".xlsx")?a="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":o.endsWith(".docx")?a="application/vnd.openxmlformats-officedocument.wordprocessingml.document":o.endsWith(".pptx")?a="application/vnd.openxmlformats-officedocument.presentationml.presentation":o.endsWith(".csv")?a="text/csv":o.endsWith(".png")?a="image/png":o.endsWith(".jpg")||o.endsWith(".jpeg")?a="image/jpeg":o.endsWith(".gif")&&(a="image/gif"),null!=a&&null==(n=n||{}).type&&(n.type=a),i=null==n||this.isIE()?new Blob([t]):new Blob([t],n),navigator.msSaveOrOpenBlob)navigator.msSaveBlob(i,r);else{var l=e.document.createElement("a");s?l.download=r:l.target="_blank",l.href=URL.createObjectURL(i),l.style.position="fixed",e.document.body.appendChild(l),l.click(),e.document.body.removeChild(l)}},e.prototype.getApplicationVersion=function(){return"2.19.0"},e.prototype.supportsU2f=function(e){return null!=e&&null!=e.u2f||(this.isChrome()||(this.isEdge()||this.isOpera()||this.isVivaldi())&&!s.Utils.isMobileBrowser)},e.prototype.supportsDuo=function(){return!0},e.prototype.showToast=function(e,t,n,r){this.messagingService.send("showToast",{text:n,title:t,type:e,options:r})},e.prototype.showDialog=function(e,t,n,o,s,l){return void 0===l&&(l=!1),r(this,void 0,void 0,function(){var r,c;return i(this,function(i){switch(i.label){case 0:if(r=null,null!=s)switch(s){case"success":r="fa-check text-success";break;case"warning":r="fa-warning text-warning";break;case"error":r="fa-bolt text-danger";break;case"info":r="fa-info-circle text-info"}return c=null!=r?'':void 0,[4,a.default.fire({heightAuto:!1,buttonsStyling:!1,icon:s,iconHtml:c,text:l?null:e,html:l?e:null,title:t,showCancelButton:null!=o,cancelButtonText:o,showConfirmButton:!0,confirmButtonText:null==n?this.i18nService.t("ok"):n})];case 1:return[2,i.sent().value]}})})},e.prototype.eventTrack=function(e,t,n){this.messagingService.send("analyticsEventTrack",{action:e,label:t,options:n})},e.prototype.isDev=function(){return!1},e.prototype.isSelfHost=function(){return"true"===(!1).toString()},e.prototype.copyToClipboard=function(e,t){var n=window,r=window.document;if(t&&(t.window||t.win)?r=(n=t.window||t.win).document:t&&t.doc&&(r=t.doc),n.clipboardData&&n.clipboardData.setData)n.clipboardData.setData("Text",e);else if(r.queryCommandSupported&&r.queryCommandSupported("copy")){var i=r.createElement("textarea");i.textContent=e,i.style.position="fixed";var a=r.body;r.body.classList.contains("modal-open")&&(a=r.body.querySelector(".modal")),a.appendChild(i),i.select();try{r.execCommand("copy")}catch(o){console.warn("Copy to clipboard failed.",o)}finally{a.removeChild(i)}}},e.prototype.readFromClipboard=function(e){throw new Error("Cannot read from clipboard on web.")},e.prototype.supportsBiometric=function(){return Promise.resolve(!1)},e.prototype.authenticateBiometric=function(){return Promise.resolve(!1)},e.prototype.supportsSecureStorage=function(){return!1},e.prototype.getDefaultSystemTheme=function(){return null},e.prototype.onDefaultSystemThemeChange=function(){},e}();t.WebPlatformUtilsService=l},function(e,t,n){"use strict";var r,i=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},a=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&(e=e.substring(0,t)),0!==e.indexOf("!/")&&0!==e.indexOf("#/")||(e=e.substring(1));var n=e.split("/"),r=[];return n.forEach(function(e){e.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)?r.push("__guid__"):r.push(e)}),encodeURIComponent(r.join("/"))},e}();t.Analytics=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(t.LogLevelType||(t.LogLevelType={}))},,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&e.data.forEach(function(e){var r=new l.Collection(new p.CollectionData(e));t.push(r.decrypt().then(function(e){n.push(e)}))}),Promise.all(t)})),m.push(this.apiService.getCiphersOrganization(e).then(function(e){var t=[];return null!=e&&null!=e.data&&e.data.length>0&&e.data.filter(function(e){return null===e.deletedDate}).forEach(function(e){var n=new s.Cipher(new c.CipherData(e));t.push(n.decrypt().then(function(e){r.push(e)}))}),Promise.all(t)})),[4,Promise.all(m)];case 1:return i.sent(),"csv"===t?(h=new Map,n.forEach(function(e){h.set(e.id,e)}),f=[],r.forEach(function(e){if(e.type===o.CipherType.Login||e.type===o.CipherType.SecureNote){var t={collections:[]};null!=e.collectionIds&&(t.collections=e.collectionIds.filter(function(e){return h.has(e)}).map(function(e){return h.get(e).name})),y.buildCommonCipher(t,e),f.push(t)}}),[2,a.unparse(f)]):(v={encrypted:!1,collections:[],items:[]},n.forEach(function(e){var t=new d.CollectionWithId;t.build(e),v.collections.push(t)}),r.forEach(function(e){var t=new u.CipherWithIds;t.build(e),v.items.push(t)}),[2,JSON.stringify(v,null," ")])}})})},e.prototype.getOrganizationEncryptedExport=function(e){return r(this,void 0,void 0,function(){var t,n,r,a;return i(this,function(i){switch(i.label){case 0:return t=[],n=[],(r=[]).push(this.apiService.getCollections(e).then(function(e){return null!=e&&null!=e.data&&e.data.length>0&&e.data.forEach(function(e){var n=new l.Collection(new p.CollectionData(e));t.push(n)}),Promise.all([])})),r.push(this.apiService.getCiphersOrganization(e).then(function(e){return null!=e&&null!=e.data&&e.data.length>0&&e.data.filter(function(e){return null===e.deletedDate}).forEach(function(e){var t=new s.Cipher(new c.CipherData(e));n.push(t)}),Promise.all([])})),[4,Promise.all(r)];case 1:return i.sent(),a={encrypted:!0,collections:[],items:[]},t.forEach(function(e){var t=new d.CollectionWithId;t.build(e),a.collections.push(t)}),n.forEach(function(e){var t=new u.CipherWithIds;t.build(e),a.items.push(t)}),[2,JSON.stringify(a,null," ")]}})})},e.prototype.padNumber=function(e,t,n){void 0===n&&(n="0");var r=e.toString();return r.length>=t?r:new Array(t-r.length+1).join(n)+r},e.prototype.buildCommonCipher=function(e,t){switch(e.type=null,e.name=t.name,e.notes=t.notes,e.fields=null,e.login_uri=null,e.login_username=null,e.login_password=null,e.login_totp=null,t.fields&&t.fields.forEach(function(t){e.fields?e.fields+="\n":e.fields="",e.fields+=(t.name||"")+": "+t.value}),t.type){case o.CipherType.Login:e.type="login",e.login_username=t.login.username,e.login_password=t.login.password,e.login_totp=t.login.totp,t.login.uris&&(e.login_uri=[],t.login.uris.forEach(function(t){e.login_uri.push(t.uri)}));break;case o.CipherType.SecureNote:e.type="note";break;default:return}return e},e}();t.ExportService=h},,function(e,t){},,function(e,t){},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(40),i=n(144),a=n(193),o=n(103),s=n(966),l=n(967),c=n(968),p=n(969),u=n(971),d=function(){function e(){}return e.template=function(){var t=new e;return t.organizationId=null,t.folderId=null,t.type=r.CipherType.Login,t.name="Item name",t.notes="Some notes about this item.",t.favorite=!1,t.fields=[],t.login=null,t.secureNote=null,t.card=null,t.identity=null,t},e.toView=function(e,t){switch(void 0===t&&(t=new i.CipherView),t.type=e.type,t.folderId=e.folderId,null==t.organizationId&&(t.organizationId=e.organizationId),t.name=e.name,t.notes=e.notes,t.favorite=e.favorite,null!=e.fields&&(t.fields=e.fields.map(function(e){return l.Field.toView(e)})),e.type){case r.CipherType.Login:t.login=p.Login.toView(e.login);break;case r.CipherType.SecureNote:t.secureNote=u.SecureNote.toView(e.secureNote);break;case r.CipherType.Card:t.card=s.Card.toView(e.card);break;case r.CipherType.Identity:t.identity=c.Identity.toView(e.identity)}return t},e.toDomain=function(e,t){switch(void 0===t&&(t=new a.Cipher),t.type=e.type,t.folderId=e.folderId,null==t.organizationId&&(t.organizationId=e.organizationId),t.name=null!=e.name?new o.CipherString(e.name):null,t.notes=null!=e.notes?new o.CipherString(e.notes):null,t.favorite=e.favorite,null!=e.fields&&(t.fields=e.fields.map(function(e){return l.Field.toDomain(e)})),e.type){case r.CipherType.Login:t.login=p.Login.toDomain(e.login);break;case r.CipherType.SecureNote:t.secureNote=u.SecureNote.toDomain(e.secureNote);break;case r.CipherType.Card:t.card=s.Card.toDomain(e.card);break;case r.CipherType.Identity:t.identity=c.Identity.toDomain(e.identity)}return t},e.prototype.build=function(e){var t,n;switch(this.organizationId=e.organizationId,this.folderId=e.folderId,this.type=e.type,e instanceof i.CipherView?(this.name=e.name,this.notes=e.notes):(this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.notes=null===(n=e.notes)||void 0===n?void 0:n.encryptedString),this.favorite=e.favorite,null!=e.fields&&(i.CipherView,this.fields=e.fields.map(function(e){return new l.Field(e)})),e.type){case r.CipherType.Login:this.login=new p.Login(e.login);break;case r.CipherType.SecureNote:this.secureNote=new u.SecureNote(e.secureNote);break;case r.CipherType.Card:this.card=new s.Card(e.card);break;case r.CipherType.Identity:this.identity=new c.Identity(e.identity)}},e}();t.Cipher=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(89),i=n(282),a=n(103),o=function(){function e(e){var t,n,i,a,o,s;null!=e&&(e instanceof r.CardView?(this.cardholderName=e.cardholderName,this.brand=e.brand,this.number=e.number,this.expMonth=e.expMonth,this.expYear=e.expYear,this.code=e.code):(this.cardholderName=null===(t=e.cardholderName)||void 0===t?void 0:t.encryptedString,this.brand=null===(n=e.brand)||void 0===n?void 0:n.encryptedString,this.number=null===(i=e.number)||void 0===i?void 0:i.encryptedString,this.expMonth=null===(a=e.expMonth)||void 0===a?void 0:a.encryptedString,this.expYear=null===(o=e.expYear)||void 0===o?void 0:o.encryptedString,this.code=null===(s=e.code)||void 0===s?void 0:s.encryptedString))}return e.template=function(){var t=new e;return t.cardholderName="John Doe",t.brand="visa",t.number="4242424242424242",t.expMonth="04",t.expYear="2023",t.code="123",t},e.toView=function(e,t){return void 0===t&&(t=new r.CardView),t.cardholderName=e.cardholderName,t.brand=e.brand,t.number=e.number,t.expMonth=e.expMonth,t.expYear=e.expYear,t.code=e.code,t},e.toDomain=function(e,t){return void 0===t&&(t=new i.Card),t.cardholderName=null!=e.cardholderName?new a.CipherString(e.cardholderName):null,t.brand=null!=e.brand?new a.CipherString(e.brand):null,t.number=null!=e.number?new a.CipherString(e.number):null,t.expMonth=null!=e.expMonth?new a.CipherString(e.expMonth):null,t.expYear=null!=e.expYear?new a.CipherString(e.expYear):null,t.code=null!=e.code?new a.CipherString(e.code):null,t},e}();t.Card=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(128),i=n(211),a=n(103),o=n(283),s=function(){function e(e){var t,n;null!=e&&(e instanceof i.FieldView?(this.name=e.name,this.value=e.value):(this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.value=null===(n=e.value)||void 0===n?void 0:n.encryptedString),this.type=e.type)}return e.template=function(){var t=new e;return t.name="Field name",t.value="Some value",t.type=r.FieldType.Text,t},e.toView=function(e,t){return void 0===t&&(t=new i.FieldView),t.type=e.type,t.value=e.value,t.name=e.name,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.Field),t.type=e.type,t.value=null!=e.value?new a.CipherString(e.value):null,t.name=null!=e.name?new a.CipherString(e.name):null,t},e}();t.Field=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(145),i=n(103),a=n(284),o=function(){function e(e){var t,n,i,a,o,s,l,c,p,u,d,m,h,f,v,y,g,x;null!=e&&(e instanceof r.IdentityView?(this.title=e.title,this.firstName=e.firstName,this.middleName=e.middleName,this.lastName=e.lastName,this.address1=e.address1,this.address2=e.address2,this.address3=e.address3,this.city=e.city,this.state=e.state,this.postalCode=e.postalCode,this.country=e.country,this.company=e.company,this.email=e.email,this.phone=e.phone,this.ssn=e.ssn,this.username=e.username,this.passportNumber=e.passportNumber,this.licenseNumber=e.licenseNumber):(this.title=null===(t=e.title)||void 0===t?void 0:t.encryptedString,this.firstName=null===(n=e.firstName)||void 0===n?void 0:n.encryptedString,this.middleName=null===(i=e.middleName)||void 0===i?void 0:i.encryptedString,this.lastName=null===(a=e.lastName)||void 0===a?void 0:a.encryptedString,this.address1=null===(o=e.address1)||void 0===o?void 0:o.encryptedString,this.address2=null===(s=e.address2)||void 0===s?void 0:s.encryptedString,this.address3=null===(l=e.address3)||void 0===l?void 0:l.encryptedString,this.city=null===(c=e.city)||void 0===c?void 0:c.encryptedString,this.state=null===(p=e.state)||void 0===p?void 0:p.encryptedString,this.postalCode=null===(u=e.postalCode)||void 0===u?void 0:u.encryptedString,this.country=null===(d=e.country)||void 0===d?void 0:d.encryptedString,this.company=null===(m=e.company)||void 0===m?void 0:m.encryptedString,this.email=null===(h=e.email)||void 0===h?void 0:h.encryptedString,this.phone=null===(f=e.phone)||void 0===f?void 0:f.encryptedString,this.ssn=null===(v=e.ssn)||void 0===v?void 0:v.encryptedString,this.username=null===(y=e.username)||void 0===y?void 0:y.encryptedString,this.passportNumber=null===(g=e.passportNumber)||void 0===g?void 0:g.encryptedString,this.licenseNumber=null===(x=e.licenseNumber)||void 0===x?void 0:x.encryptedString))}return e.template=function(){var t=new e;return t.title="Mr",t.firstName="John",t.middleName="William",t.lastName="Doe",t.address1="123 Any St",t.address2="Apt #123",t.address3=null,t.city="New York",t.state="NY",t.postalCode="10001",t.country="US",t.company="Acme Inc.",t.email="john@company.com",t.phone="5555551234",t.ssn="000-123-4567",t.username="jdoe",t.passportNumber="US-123456789",t.licenseNumber="D123-12-123-12333",t},e.toView=function(e,t){return void 0===t&&(t=new r.IdentityView),t.title=e.title,t.firstName=e.firstName,t.middleName=e.middleName,t.lastName=e.lastName,t.address1=e.address1,t.address2=e.address2,t.address3=e.address3,t.city=e.city,t.state=e.state,t.postalCode=e.postalCode,t.country=e.country,t.company=e.company,t.email=e.email,t.phone=e.phone,t.ssn=e.ssn,t.username=e.username,t.passportNumber=e.passportNumber,t.licenseNumber=e.licenseNumber,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Identity),t.title=null!=e.title?new i.CipherString(e.title):null,t.firstName=null!=e.firstName?new i.CipherString(e.firstName):null,t.middleName=null!=e.middleName?new i.CipherString(e.middleName):null,t.lastName=null!=e.lastName?new i.CipherString(e.lastName):null,t.address1=null!=e.address1?new i.CipherString(e.address1):null,t.address2=null!=e.address2?new i.CipherString(e.address2):null,t.address3=null!=e.address3?new i.CipherString(e.address3):null,t.city=null!=e.city?new i.CipherString(e.city):null,t.state=null!=e.state?new i.CipherString(e.state):null,t.postalCode=null!=e.postalCode?new i.CipherString(e.postalCode):null,t.country=null!=e.country?new i.CipherString(e.country):null,t.company=null!=e.company?new i.CipherString(e.company):null,t.email=null!=e.email?new i.CipherString(e.email):null,t.phone=null!=e.phone?new i.CipherString(e.phone):null,t.ssn=null!=e.ssn?new i.CipherString(e.ssn):null,t.username=null!=e.username?new i.CipherString(e.username):null,t.passportNumber=null!=e.passportNumber?new i.CipherString(e.passportNumber):null,t.licenseNumber=null!=e.licenseNumber?new i.CipherString(e.licenseNumber):null,t},e}();t.Identity=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(970),i=n(161),a=n(103),o=n(285),s=function(){function e(e){var t,n,a;null!=e&&(null!=e.uris&&(i.LoginView,this.uris=e.uris.map(function(e){return new r.LoginUri(e)})),e instanceof i.LoginView?(this.username=e.username,this.password=e.password,this.totp=e.totp):(this.username=null===(t=e.username)||void 0===t?void 0:t.encryptedString,this.password=null===(n=e.password)||void 0===n?void 0:n.encryptedString,this.totp=null===(a=e.totp)||void 0===a?void 0:a.encryptedString))}return e.template=function(){var t=new e;return t.uris=[],t.username="jdoe",t.password="myp@ssword123",t.totp="JBSWY3DPEHPK3PXP",t},e.toView=function(e,t){return void 0===t&&(t=new i.LoginView),null!=e.uris&&(t.uris=e.uris.map(function(e){return r.LoginUri.toView(e)})),t.username=e.username,t.password=e.password,t.totp=e.totp,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.Login),null!=e.uris&&(t.uris=e.uris.map(function(e){return r.LoginUri.toDomain(e)})),t.username=null!=e.username?new a.CipherString(e.username):null,t.password=null!=e.password?new a.CipherString(e.password):null,t.totp=null!=e.totp?new a.CipherString(e.totp):null,t},e}();t.Login=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(257),i=n(103),a=n(286),o=function(){function e(e){var t;this.match=null,null!=e&&(e instanceof r.LoginUriView?this.uri=e.uri:this.uri=null===(t=e.uri)||void 0===t?void 0:t.encryptedString,this.match=e.match)}return e.template=function(){var t=new e;return t.uri="https://google.com",t.match=null,t},e.toView=function(e,t){return void 0===t&&(t=new r.LoginUriView),t.uri=e.uri,t.match=e.match,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.LoginUri),t.uri=null!=e.uri?new i.CipherString(e.uri):null,t.match=e.match,t},e}();t.LoginUri=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(113),i=n(94),a=n(288),o=function(){function e(e){null!=e&&(this.type=e.type)}return e.template=function(){var t=new e;return t.type=r.SecureNoteType.Generic,t},e.toView=function(e,t){return void 0===t&&(t=new i.SecureNoteView),t.type=e.type,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.SecureNote),t.type=e.type,t},e}();t.SecureNote=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(158),i=n(103),a=n(141),o=function(){function e(){}return e.template=function(){var t=new e;return t.organizationId="00000000-0000-0000-0000-000000000000",t.name="Collection name",t.externalId=null,t},e.toView=function(e,t){return void 0===t&&(t=new r.CollectionView),t.name=e.name,t.externalId=e.externalId,null==t.organizationId&&(t.organizationId=e.organizationId),t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Collection),t.name=null!=e.name?new i.CipherString(e.name):null,t.externalId=e.externalId,null==t.organizationId&&(t.organizationId=e.organizationId),t},e.prototype.build=function(e){var t;this.organizationId=e.organizationId,e instanceof r.CollectionView?this.name=e.name:this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.externalId=e.externalId},e}();t.Collection=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(129),i=n(103),a=n(509),o=function(){function e(){}return e.template=function(){var t=new e;return t.name="Folder name",t},e.toView=function(e,t){return void 0===t&&(t=new r.FolderView),t.name=e.name,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Folder),t.name=null!=e.name?new i.CipherString(e.name):null,t},e.prototype.build=function(e){var t;e instanceof r.FolderView?this.name=e.name:this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString},e}();t.Folder=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(a=Math.floor(r.ciphers.length/2),o=r.ciphers.length-1,this.badData(r.ciphers[0])&&this.badData(r.ciphers[a])&&this.badData(r.ciphers[o])))return[2,new Error(this.i18nService.t("importFormatError"))];i.label=2;case 2:return i.trys.push([2,4,,5]),[4,this.postImport(r,n)];case 3:return i.sent(),[3,5];case 4:return s=i.sent(),l=new m.ErrorResponse(s,400),[2,this.handleServerError(l,r)];case 5:return[2,null];case 6:return[2,new Error(this.i18nService.t("importFormatError"))]}})})},e.prototype.getImporter=function(e,t){void 0===t&&(t=null);var n=this.getImporterInstance(e);return null==n?null:(n.organizationId=t,n)},e.prototype.getImporterInstance=function(e){if(null==e||""===e)return null;switch(e){case"bitwardencsv":return new g.BitwardenCsvImporter;case"bitwardenjson":return new x.BitwardenJsonImporter;case"lastpasscsv":case"passboltcsv":return new R.LastPassCsvImporter;case"keepassxcsv":return new V.KeePassXCsvImporter;case"aviracsv":return new y.AviraCsvImporter;case"blurcsv":return new S.BlurCsvImporter;case"safeincloudxml":return new ne.SafeInCloudXmlImporter;case"padlockcsv":return new q.PadlockCsvImporter;case"keepass2xml":return new D.KeePass2XmlImporter;case"chromecsv":case"operacsv":case"vivaldicsv":return new C.ChromeCsvImporter;case"firefoxcsv":return new O.FirefoxCsvImporter;case"upmcsv":return new le.UpmCsvImporter;case"saferpasscsv":return new re.SaferPassCsvImporter;case"meldiumcsv":return new U.MeldiumCsvImporter;case"1password1pif":return new L.OnePassword1PifImporter;case"1passwordwincsv":return new K.OnePasswordWinCsvImporter;case"1passwordmaccsv":return new G.OnePasswordMacCsvImporter;case"keepercsv":return new j.KeeperCsvImporter;case"passworddragonxml":return new J.PasswordDragonXmlImporter;case"enpasscsv":return new _.EnpassCsvImporter;case"enpassjson":return new A.EnpassJsonImporter;case"pwsafexml":return new X.PasswordSafeXmlImporter;case"dashlanejson":return new P.DashlaneJsonImporter;case"msecurecsv":return new N.MSecureCsvImporter;case"stickypasswordxml":return new oe.StickyPasswordXmlImporter;case"truekeycsv":return new se.TrueKeyCsvImporter;case"clipperzhtml":return new I.ClipperzHtmlImporter;case"roboformcsv":return new te.RoboFormCsvImporter;case"ascendocsv":return new h.AscendoCsvImporter;case"passwordbossjson":return new Q.PasswordBossJsonImporter;case"zohovaultcsv":return new pe.ZohoVaultCsvImporter;case"splashidcsv":return new ae.SplashIdCsvImporter;case"passkeepcsv":return new W.PassKeepCsvImporter;case"gnomejson":return new M.GnomeJsonImporter;case"passwordagentcsv":return new Y.PasswordAgentCsvImporter;case"passpackcsv":return new $.PasspackCsvImporter;case"passmanjson":return new H.PassmanJsonImporter;case"avastcsv":return new f.AvastCsvImporter;case"avastjson":return new v.AvastJsonImporter;case"fsecurefsk":return new T.FSecureFskImporter;case"kasperskytxt":return new B.KasperskyTxtImporter;case"remembearcsv":return new ee.RememBearCsvImporter;case"passwordwallettxt":return new Z.PasswordWalletTxtImporter;case"mykicsv":return new z.MykiCsvImporter;case"securesafecsv":return new ie.SecureSafeCsvImporter;case"logmeoncecsv":return new F.LogMeOnceCsvImporter;case"blackberrycsv":return new b.BlackBerryCsvImporter;case"buttercupcsv":return new w.ButtercupCsvImporter;case"codebookcsv":return new E.CodebookCsvImporter;case"encryptrcsv":return new k.EncryptrCsvImporter;case"yoticsv":return new ce.YotiCsvImporter;default:return null}},e.prototype.postImport=function(e,t){return void 0===t&&(t=null),r(this,void 0,void 0,function(){var n,r,a,o,m;return i(this,function(i){switch(i.label){case 0:if(null!=t)return[3,10];n=new p.ImportCiphersRequest,o=0,i.label=1;case 1:return o0&&(n+="\n\n"),"Folder"!==o&&"Collection"!==o&&(n+="["+(c+1)+"] "),n+="["+o+'] "'+i.name+'": '+l}),new Error(n)},e}();t.ImportService=ue},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.ciphers=[],this.folders=[],this.folderRelationships=[]}}();t.ImportCiphersRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.ciphers=[],this.collections=[],this.collectionRelationships=[]}}();t.ImportOrganizationCiphersRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.key=e,this.value=t}}();t.KvpRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<2)){var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[e.length-1]),r.name=t.getValueOrDefault(e[0],"--"),e.length>2&&e.length%2==0)for(var i=0;i-1?r.login.password=t.getValueOrDefault(a):null==r.login.username&&t.usernameFieldNames.indexOf(s)>-1?r.login.username=t.getValueOrDefault(a):(null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(s)>-1?r.login.uris=t.makeUriArray(a):t.processKvp(r,o,a)}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.AscendoCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name),r.login.uris=t.makeUriArray(e.web),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.login),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.AvastCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(40),l=n(113),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);return null==r?(n.success=!1,Promise.resolve(n)):(null!=r.logins&&r.logins.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.custName),r.notes=t.getValueOrDefault(e.note),r.login.uris=t.makeUriArray(e.url),r.login.password=t.getValueOrDefault(e.pwd),r.login.username=t.getValueOrDefault(e.loginName),t.cleanupCipher(r),n.ciphers.push(r)}),null!=r.notes&&r.notes.forEach(function(e){var r=t.initLoginCipher();r.type=s.CipherType.SecureNote,r.secureNote.type=l.SecureNoteType.Generic,r.name=t.getValueOrDefault(e.label),r.notes=t.getValueOrDefault(e.text),t.cleanupCipher(r),n.ciphers.push(r)}),null!=r.cards&&r.cards.forEach(function(e){var r=t.initLoginCipher();r.type=s.CipherType.Card,r.name=t.getValueOrDefault(e.custName),r.notes=t.getValueOrDefault(e.note),r.card.cardholderName=t.getValueOrDefault(e.holderName),r.card.number=t.getValueOrDefault(e.cardNumber),r.card.code=t.getValueOrDefault(e.cvv),r.card.brand=t.getCardBrand(r.card.number),null!=e.expirationDate&&(null!=e.expirationDate.month&&(r.card.expMonth=e.expirationDate.month+""),null!=e.expirationDate.year&&(r.card.expYear=e.expirationDate.year+"")),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.AvastJsonImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name,t.getValueOrDefault(t.nameFromUrl(e.website),"--")),r.login.uris=t.makeUriArray(e.website),r.login.password=t.getValueOrDefault(e.password),t.isNullOrWhitespace(e.username)&&!t.isNullOrWhitespace(e.secondary_username)?r.login.username=e.secondary_username:(r.login.username=t.getValueOrDefault(e.username),r.notes=t.getValueOrDefault(e.secondary_username)),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.AviraCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(144),l=n(158),c=n(211),p=n(161),u=n(94),d=n(40),m=n(128),h=n(113),f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){t.organization&&!t.isNullOrWhitespace(e.collections)?e.collections.split(",").forEach(function(e){for(var t=!0,r=n.collections.length,i=0;io+2&&(f.value=i[a].substr(o+2)),r.fields.push(f)}}switch(null!=e.type?e.type.toLowerCase():null){case"note":r.type=d.CipherType.SecureNote,r.secureNote=new u.SecureNoteView,r.secureNote.type=h.SecureNoteType.Generic;break;default:r.type=d.CipherType.Login,r.login=new p.LoginView,r.login.totp=t.getValueOrDefault(e.login_totp||e.totp),r.login.username=t.getValueOrDefault(e.login_username||e.username),r.login.password=t.getValueOrDefault(e.login_password||e.password);var v=t.parseSingleRowCsv(e.login_uri||e.uri);r.login.uris=t.makeUriArray(v)}n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.BitwardenCsvImporter=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]5&&(f.passwordHistory=f.passwordHistory.slice(0,5)),!this.organization&&null!=h.folderId&&e.has(h.folderId)?this.result.folderRelationships.push([this.result.ciphers.length,e.get(h.folderId)]):this.organization&&null!=h.collectionIds&&h.collectionIds.forEach(function(t){e.has(t)&&y.result.collectionRelationships.push([y.result.ciphers.length,e.get(t)])}),[4,f.decrypt()]):[3,13];case 11:v=o.sent(),this.cleanupCipher(v),this.result.ciphers.push(v),o.label=12;case 12:return d++,[3,10];case 13:return[2]}})})},t.prototype.parseDecrypted=function(){var e=this,t=new Map;this.organization&&null!=this.results.collections?this.results.collections.forEach(function(n){var r=p.CollectionWithId.toView(n);null!=r&&(r.id=null,r.organizationId=null,t.set(n.id,e.result.collections.length),e.result.collections.push(r))}):this.organization||null==this.results.folders||this.results.folders.forEach(function(n){var r=u.FolderWithId.toView(n);null!=r&&(r.id=null,t.set(n.id,e.result.folders.length),e.result.folders.push(r))}),this.results.items.forEach(function(n){var r=c.CipherWithIds.toView(n);r.id=null,r.folderId=null,r.organizationId=null,r.collectionIds=null,null!=r.passwordHistory&&r.passwordHistory.length>5&&(r.passwordHistory=r.passwordHistory.slice(0,5)),!e.organization&&null!=n.folderId&&t.has(n.folderId)?e.result.folderRelationships.push([e.result.ciphers.length,t.get(n.folderId)]):e.organization&&null!=n.collectionIds&&n.collectionIds.forEach(function(n){t.has(n)&&e.result.collectionRelationships.push([e.result.ciphers.length,t.get(n)])}),e.cleanupCipher(r),e.result.ciphers.push(r)})},t}(s.BaseImporter);t.BitwardenJsonImporter=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if("list"!==e.grouping){var r=t.initLoginCipher();r.favorite="1"===e.fav,r.name=t.getValueOrDefault(e.name),r.notes=t.getValueOrDefault(e.extra),"note"!==e.grouping&&(r.login.uris=t.makeUriArray(e.url),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.username)),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.BlackBerryCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){"null"===e.label&&(e.label=null);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.label,t.getValueOrDefault(t.nameFromUrl(e.domain),"--")),r.login.uris=t.makeUriArray(e.domain),r.login.password=t.getValueOrDefault(e.password),t.isNullOrWhitespace(e.email)&&!t.isNullOrWhitespace(e.username)?r.login.username=e.username:(r.login.username=t.getValueOrDefault(e.email),r.notes=t.getValueOrDefault(e.username)),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.BlurCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=["!group_id","!group_name","title","username","password","URL","id"],l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){t.processFolder(n,t.getValueOrDefault(e["!group_name"]));var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.title,"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.URL);var i=!1;for(var a in e)e.hasOwnProperty(a)&&(i||-1!==s.indexOf(a)||(i=!0),i&&t.processKvp(r,a,e[a]));t.cleanupCipher(r),n.ciphers.push(r)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.ButtercupCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name,"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.ChromeCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelector("textarea");return null==i||this.isNullOrWhitespace(i.textContent)?(n.errorMessage="Missing textarea.",n.success=!1,Promise.resolve(n)):(JSON.parse(i.textContent).forEach(function(e){var r=t.initLoginCipher();if(t.isNullOrWhitespace(e.label)||(r.name=e.label.split(" ")[0]),null==e.data||t.isNullOrWhitespace(e.data.notes)||(r.notes=e.data.notes.split("\\n").join("\n")),null!=e.currentVersion&&null!=e.currentVersion.fields)for(var i in e.currentVersion.fields)if(e.currentVersion.fields.hasOwnProperty(i)){var a=e.currentVersion.fields[i];switch(null!=a.actionType?a.actionType.toLowerCase():null){case"password":r.login.password=t.getValueOrDefault(a.value);break;case"email":case"username":case"user":case"name":r.login.username=t.getValueOrDefault(a.value);break;case"url":r.login.uris=t.makeUriArray(a.value);break;default:var o=null!=a.label?a.label.toLowerCase():null;null==r.login.password&&t.passwordFieldNames.indexOf(o)>-1?r.login.password=t.getValueOrDefault(a.value):null==r.login.username&&t.usernameFieldNames.indexOf(o)>-1?r.login.username=t.getValueOrDefault(a.value):(null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(o)>-1?r.login.uris=t.makeUriArray(a.value):t.processKvp(r,a.label,a.value)}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.ClipperzHtmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){t.processFolder(n,t.getValueOrDefault(e.Category));var r=t.initLoginCipher();r.favorite="True"===t.getValueOrDefault(e.Favorite),r.name=t.getValueOrDefault(e.Entry,"--"),r.notes=t.getValueOrDefault(e.Note),r.login.username=t.getValueOrDefault(e.Username,e.Email),r.login.password=t.getValueOrDefault(e.Password),r.login.totp=t.getValueOrDefault(e.TOTP),r.login.uris=t.makeUriArray(e.Website),t.isNullOrWhitespace(e.Username)||t.processKvp(r,"Email",e.Email),t.processKvp(r,"Phone",e.Phone),t.processKvp(r,"PIN",e.PIN),t.processKvp(r,"Account",e.Account),t.processKvp(r,"Date",e.Date),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.CodebookCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(144),c=n(145),p=n(94),u=n(40),d=n(113),m=new Set(["ADDRESS","AUTHENTIFIANT","BANKSTATEMENT","IDCARD","IDENTITY","PAYMENTMEANS_CREDITCARD","PAYMENTMEAN_PAYPAL","EMAIL"]),h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){this.result=new o.ImportResult;var t=JSON.parse(e);if(null==t||0===t.length)return this.result.success=!1,Promise.resolve(this.result);for(var n in null!=t.ADDRESS&&this.processAddress(t.ADDRESS),null!=t.AUTHENTIFIANT&&this.processAuth(t.AUTHENTIFIANT),null!=t.BANKSTATEMENT&&this.processNote(t.BANKSTATEMENT,"BankAccountName"),null!=t.IDCARD&&this.processNote(t.IDCARD,"Fullname"),null!=t.PAYMENTMEANS_CREDITCARD&&this.processCard(t.PAYMENTMEANS_CREDITCARD),null!=t.IDENTITY&&this.processIdentity(t.IDENTITY),t)t.hasOwnProperty(n)&&!m.has(n)&&this.processNote(t[n],null,"Generic Note");return this.result.success=!0,Promise.resolve(this.result)},t.prototype.processAuth=function(e){var t=this;e.forEach(function(e){var n=t.initLoginCipher();n.name=t.getValueOrDefault(e.title),n.login.username=t.getValueOrDefault(e.login,t.getValueOrDefault(e.secondaryLogin)),t.isNullOrWhitespace(n.login.username)?n.login.username=t.getValueOrDefault(e.email):t.isNullOrWhitespace(e.email)||(n.notes="Email: "+e.email+"\n"),n.login.password=t.getValueOrDefault(e.password),n.login.uris=t.makeUriArray(e.domain),n.notes+=t.getValueOrDefault(e.note,""),t.convertToNoteIfNeeded(n),t.cleanupCipher(n),t.result.ciphers.push(n)})},t.prototype.processIdentity=function(e){var t=this;e.forEach(function(e){var n=new l.CipherView;n.identity=new c.IdentityView,n.type=u.CipherType.Identity,n.name=t.getValueOrDefault(e.fullName,"");var r=n.name.split(" ");r.length>0&&(n.identity.firstName=t.getValueOrDefault(r[0])),2===r.length?n.identity.lastName=t.getValueOrDefault(r[1]):3===r.length&&(n.identity.middleName=t.getValueOrDefault(r[1]),n.identity.lastName=t.getValueOrDefault(r[2])),n.identity.username=t.getValueOrDefault(e.pseudo),t.cleanupCipher(n),t.result.ciphers.push(n)})},t.prototype.processAddress=function(e){var t=this;e.forEach(function(e){var n=new l.CipherView;n.identity=new c.IdentityView,n.type=u.CipherType.Identity,n.name=t.getValueOrDefault(e.addressName),n.identity.address1=t.getValueOrDefault(e.addressFull),n.identity.city=t.getValueOrDefault(e.city),n.identity.state=t.getValueOrDefault(e.state),n.identity.postalCode=t.getValueOrDefault(e.zipcode),n.identity.country=t.getValueOrDefault(e.country),null!=n.identity.country&&(n.identity.country=n.identity.country.toUpperCase()),t.cleanupCipher(n),t.result.ciphers.push(n)})},t.prototype.processCard=function(e){var t=this;e.forEach(function(e){var n=new l.CipherView;n.card=new s.CardView,n.type=u.CipherType.Card,n.name=t.getValueOrDefault(e.bank),n.card.number=t.getValueOrDefault(e.cardNumber),n.card.brand=t.getCardBrand(n.card.number),n.card.cardholderName=t.getValueOrDefault(e.owner),t.isNullOrWhitespace(n.card.brand)||(t.isNullOrWhitespace(n.name)?n.name=n.card.brand:n.name+=" - "+n.card.brand),t.cleanupCipher(n),t.result.ciphers.push(n)})},t.prototype.processNote=function(e,t,n){var r=this;void 0===n&&(n=null),e.forEach(function(e){var i=new l.CipherView;for(var a in i.secureNote=new p.SecureNoteView,i.type=u.CipherType.SecureNote,i.secureNote.type=d.SecureNoteType.Generic,i.name=null!=n?n:r.getValueOrDefault(e[t]),e)e.hasOwnProperty(a)&&a!==t&&r.processKvp(i,a,e[a].toString());r.cleanupCipher(i),r.result.ciphers.push(i)})},t}(a.BaseImporter);t.DashlaneJsonImporter=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(40),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Label,"--"),r.notes=t.getValueOrDefault(e.Notes);var i=t.getValueOrDefault(e.Text);t.isNullOrWhitespace(i)||(t.isNullOrWhitespace(r.notes)?r.notes=i:r.notes+="\n\n"+i);var a=e["Entry Type"];if("Password"===a)r.login.username=t.getValueOrDefault(e.Username),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e["Site URL"]);else if("Credit Card"===a){r.type=l.CipherType.Card,r.card=new s.CardView,r.card.cardholderName=t.getValueOrDefault(e["Name on card"]),r.card.number=t.getValueOrDefault(e["Card Number"]),r.card.brand=t.getCardBrand(r.card.number),r.card.code=t.getValueOrDefault(e.CVV);var o=t.getValueOrDefault(e.Expiry);if(!t.isNullOrWhitespace(o)){var c=o.split("/");c.length>1&&(r.card.expMonth=parseInt(c[0],null).toString(),r.card.expYear=(2e3+parseInt(c[1],null)).toString())}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.EncryptrCsvImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(40),l=n(113),c=n(89),p=n(94),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=!0;return r.forEach(function(e){if(e.length<2||i&&("Title"===e[0]||"title"===e[0]))i=!1;else{var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[e.length-1]),r.name=t.getValueOrDefault(e[0],"--"),2!==e.length&&(t.containsField(e,"username")||t.containsField(e,"password")||t.containsField(e,"email")||t.containsField(e,"url"))||(r.type=s.CipherType.SecureNote,r.secureNote=new p.SecureNoteView,r.secureNote.type=l.SecureNoteType.Generic),t.containsField(e,"cardholder")&&t.containsField(e,"number")&&t.containsField(e,"expiry date")&&(r.type=s.CipherType.Card,r.card=new c.CardView),e.length>2&&e.length%2==0)for(var a=0;a0},t}(a.BaseImporter);t.EnpassCsvImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(129),c=n(40),p=n(128),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);if(null==r||null==r.items||0===r.items.length)return n.success=!1,Promise.resolve(n);var i=new Map,a=new Map,s=this.buildFolderTree(r.folders);return this.flattenFolderTree(null,s,i),i.forEach(function(e,t){a.set(t,n.folders.length);var r=new l.FolderView;r.name=e,n.folders.push(r)}),r.items.forEach(function(e){null!=e.folders&&e.folders.length>0&&a.has(e.folders[0])&&n.folderRelationships.push([n.ciphers.length,a.get(e.folders[0])]);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.title),r.favorite=e.favorite>0,null!=e.template_type&&null!=e.fields&&e.fields.length>0&&(0===e.template_type.indexOf("login.")||0===e.template_type.indexOf("password.")?t.processLogin(r,e.fields):0===e.template_type.indexOf("creditcard.")?t.processCard(r,e.fields):e.template_type.indexOf("identity.")<0&&e.fields.some(function(e){return"password"===e.type&&!t.isNullOrWhitespace(e.value)})?t.processLogin(r,e.fields):t.processNote(r,e.fields)),r.notes+="\n"+t.getValueOrDefault(e.note,""),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n)},t.prototype.processLogin=function(e,t){var n=this,r=[];t.forEach(function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||("username"!==t.type&&"email"!==t.type||!n.isNullOrWhitespace(e.login.username)?"password"===t.type&&n.isNullOrWhitespace(e.login.password)?e.login.password=t.value:"totp"===t.type&&n.isNullOrWhitespace(e.login.totp)?e.login.totp=t.value:"url"===t.type?r.push(t.value):n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text):e.login.username=t.value)}),e.login.uris=this.makeUriArray(r)},t.prototype.processCard=function(e,t){var n=this;e.card=new s.CardView,e.type=c.CipherType.Card,t.forEach(function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||"ccType"===t.type||("ccName"===t.type&&n.isNullOrWhitespace(e.card.cardholderName)?e.card.cardholderName=t.value:"ccNumber"===t.type&&n.isNullOrWhitespace(e.card.number)?(e.card.number=t.value,e.card.brand=n.getCardBrand(e.card.number)):"ccCvc"===t.type&&n.isNullOrWhitespace(e.card.code)?e.card.code=t.value:"ccExpiry"===t.type&&n.isNullOrWhitespace(e.card.expYear)&&n.setCardExpiration(e,t.value)||n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text))})},t.prototype.processNote=function(e,t){var n=this;t.forEach(function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text)})},t.prototype.buildFolderTree=function(e){if(null==e)return[];var t=[],n=new Map([]);return e.forEach(function(e){n.set(e.uuid,e),e.children=[]}),e.forEach(function(e){null!=e.parent_uuid&&""!==e.parent_uuid&&n.has(e.parent_uuid)?n.get(e.parent_uuid).children.push(e):t.push(e)}),t},t.prototype.flattenFolderTree=function(e,t,n){var r=this;null!=t&&t.forEach(function(t){if(null!=t.title&&""!==t.title.trim()){var i=t.title.trim();null!=e&&""!==e.trim()&&(i=e+"/"+i),n.set(t.uuid,i),null!=t.children&&0!==t.children.length&&r.flattenFolderTree(i,t.children,n)}})},t}(a.BaseImporter);t.EnpassJsonImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher(),i=t.getValueOrDefault(e.url,t.getValueOrDefault(e.hostname));r.name=t.getValueOrDefault(t.nameFromUrl(i),"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(i),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.FirefoxCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(40),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=new o.ImportResult,n=JSON.parse(e);if(null==n||null==n.data)return t.success=!1,Promise.resolve(t);for(var r in n.data)if(n.data.hasOwnProperty(r)){var i=n.data[r],a=this.initLoginCipher();if(a.name=this.getValueOrDefault(i.service),a.notes=this.getValueOrDefault(i.notes),"website"===i.style)a.login.username=this.getValueOrDefault(i.username),a.login.password=this.getValueOrDefault(i.password),a.login.uris=this.makeUriArray(i.url);else{if("creditcard"!==i.style)continue;a.type=l.CipherType.Card,a.card=new s.CardView,a.card.cardholderName=this.getValueOrDefault(i.username),a.card.number=this.getValueOrDefault(i.creditNumber),a.card.brand=this.getCardBrand(a.card.number),a.card.code=this.getValueOrDefault(i.creditCvv),this.isNullOrWhitespace(i.creditExpiry)||this.setCardExpiration(a,i.creditExpiry)||this.processKvp(a,"Expiration",i.creditExpiry),this.isNullOrWhitespace(i.password)||this.processKvp(a,"PIN",i.password)}this.convertToNoteIfNeeded(a),this.cleanupCipher(a),t.ciphers.push(a)}return t.success=!0,Promise.resolve(t)},t}(a.BaseImporter);t.FSecureFskImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);if(null==r||0===Object.keys(r).length)return n.success=!1,Promise.resolve(n);var i=function(e){if(!r.hasOwnProperty(e)||a.isNullOrWhitespace(e)||0===r[e].length)return"continue";r[e].forEach(function(r){if(!t.isNullOrWhitespace(r.display_name)&&0===r.display_name.indexOf("http")){t.processFolder(n,e);var i=t.initLoginCipher();if(i.name=r.display_name.replace("http://","").replace("https://",""),i.name.length>30&&(i.name=i.name.substring(0,30)),i.login.password=t.getValueOrDefault(r.secret),i.login.uris=t.makeUriArray(r.display_name),null!=r.attributes)for(var a in i.login.username=null!=r.attributes?t.getValueOrDefault(r.attributes.username_value):null,r.attributes)r.attributes.hasOwnProperty(a)&&"username_value"!==a&&"xdg:schema"!==a&&t.processKvp(i,a,r.attributes[a]);t.convertToNoteIfNeeded(i),t.cleanupCipher(i),n.ciphers.push(i)}})},a=this;for(var s in r)i(s);return this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.GnomeJsonImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t,n,r,i,a=this,s=new o.ImportResult,l=this.splitNewLine(e).join("\n");-1!==l.indexOf("Notes\n\n")&&((i=l.split("Notes\n\n")).length>1&&(l=i[0],t=i[1]));-1!==l.indexOf("Applications\n\n")&&((i=l.split("Applications\n\n")).length>1&&(l=i[0],n=i[1]));0===l.indexOf("Websites\n\n")&&((i=l.split("Websites\n\n")).length>1&&(l=i[0],r=i[1]));var c=this.parseDataCategory(t),p=this.parseDataCategory(n),u=this.parseDataCategory(r);return c.forEach(function(e){var t=a.initLoginCipher();t.name=a.getValueOrDefault(e.get("Name")),t.notes=a.getValueOrDefault(e.get("Text")),a.cleanupCipher(t),s.ciphers.push(t)}),u.concat(p).forEach(function(e){var t=a.initLoginCipher(),n=e.has("Website name")?"Website name":"Application";t.name=a.getValueOrDefault(e.get(n),""),a.isNullOrWhitespace(e.get("Login name"))||(a.isNullOrWhitespace(t.name)||(t.name+=": "),t.name+=e.get("Login name")),t.notes=a.getValueOrDefault(e.get("Comment")),e.has("Website URL")&&(t.login.uris=a.makeUriArray(e.get("Website URL"))),t.login.username=a.getValueOrDefault(e.get("Login")),t.login.password=a.getValueOrDefault(e.get("Password")),a.cleanupCipher(t),s.ciphers.push(t)}),s.success=!0,Promise.resolve(s)},t.prototype.parseDataCategory=function(e){if(this.isNullOrWhitespace(e)||-1===e.indexOf("\n---\n"))return[];var t=[];return e.split("\n---\n").forEach(function(e){if(-1!==e.indexOf("\n")){var n,r,i=new Map;e.split("\n").forEach(function(e){if(null==n){var t,a,o=e.indexOf(":");-1!==o&&(t=e.substring(0,o),e.length>o+1&&(a=e.substring(o+2)),null!=t&&i.set(t,a),"Comment"!==t&&"Text"!==t||(n=a,r=t))}else n+="\n"+e}),null!=n&&null!=r&&i.set(r,n),0!==i.size&&t.push(i)}}),t},t}(a.BaseImporter);t.KasperskyTxtImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(128),s=n(28),l=n(129),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.result=new s.ImportResult,t}return i(t,e),t.prototype.parse=function(e){var t=this.parseXml(e);if(null==t)return this.result.success=!1,Promise.resolve(this.result);var n=t.querySelector("KeePassFile > Root > Group");return null==n?(this.result.errorMessage="Missing `KeePassFile > Root > Group` node.",this.result.success=!1,Promise.resolve(this.result)):(this.traverse(n,!0,""),this.organization&&this.moveFoldersToCollections(this.result),this.result.success=!0,Promise.resolve(this.result))},t.prototype.traverse=function(e,t,n){var r=this,i=this.result.folders.length,a=n;if(!t){""!==a&&(a+="/");var s=this.querySelectorDirectChild(e,"Name");a+=null==s?"-":s.textContent;var c=new l.FolderView;c.name=a,this.result.folders.push(c)}this.querySelectorAllDirectChild(e,"Entry").forEach(function(e){var n=r.result.ciphers.length,a=r.initLoginCipher();r.querySelectorAllDirectChild(e,"String").forEach(function(e){var t=r.querySelectorDirectChild(e,"Value"),n=null!=t?t.textContent:null;if(!r.isNullOrWhitespace(n)){var i=r.querySelectorDirectChild(e,"Key"),s=null!=i?i.textContent:null;if("URL"===s)a.login.uris=r.makeUriArray(n);else if("UserName"===s)a.login.username=n;else if("Password"===s)a.login.password=n;else if("otp"===s)a.login.totp=n.replace("key=","");else if("Title"===s)a.name=n;else if("Notes"===s)a.notes+=n+"\n";else{var l=o.FieldType.Text,c=t.attributes;c.length>0&&null!=c.ProtectInMemory&&"True"===c.ProtectInMemory.value&&(l=o.FieldType.Hidden),r.processKvp(a,s,n,l)}}}),r.cleanupCipher(a),r.result.ciphers.push(a),t||r.result.folderRelationships.push([n,i])}),this.querySelectorAllDirectChild(e,"Group").forEach(function(e){r.traverse(e,!1,a)})},t}(a.BaseImporter);t.KeePass2XmlImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!t.isNullOrWhitespace(e.Title)){e.Group=!t.isNullOrWhitespace(e.Group)&&e.Group.startsWith("Root/")?e.Group.replace("Root/",""):e.Group;var r=t.isNullOrWhitespace(e.Group)?null:e.Group;t.processFolder(n,r);var i=t.initLoginCipher();i.notes=t.getValueOrDefault(e.Notes),i.name=t.getValueOrDefault(e.Title,"--"),i.login.username=t.getValueOrDefault(e.Username),i.login.password=t.getValueOrDefault(e.Password),i.login.uris=t.makeUriArray(e.URL),t.cleanupCipher(i),n.ciphers.push(i)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.KeePassXCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<6)){t.processFolder(n,e[0]);var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[5])+"\n",r.name=t.getValueOrDefault(e[1],"--"),r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[4]),e.length>7)for(var i=7;i-1){var n=e.ccexp.split("-");n.length>1&&(t.expYear=n[0],t.expMonth=n[1],2===t.expMonth.length&&"0"===t.expMonth[0]&&(t.expMonth=t.expMonth[1]))}return t},t.prototype.parseIdentity=function(e){var t=new p.IdentityView;return t.title=this.getValueOrDefault(e.title),t.firstName=this.getValueOrDefault(e.firstname),t.middleName=this.getValueOrDefault(e.middlename),t.lastName=this.getValueOrDefault(e.lastname),t.username=this.getValueOrDefault(e.username),t.company=this.getValueOrDefault(e.company),t.ssn=this.getValueOrDefault(e.ssn),t.address1=this.getValueOrDefault(e.address1),t.address2=this.getValueOrDefault(e.address2),t.address3=this.getValueOrDefault(e.address3),t.city=this.getValueOrDefault(e.city),t.state=this.getValueOrDefault(e.state),t.postalCode=this.getValueOrDefault(e.zip),t.country=this.getValueOrDefault(e.country),t.email=this.getValueOrDefault(e.email),t.phone=this.getValueOrDefault(e.phone),this.isNullOrWhitespace(t.title)||(t.title=t.title.charAt(0).toUpperCase()+t.title.slice(1)),t},t.prototype.parseSecureNote=function(e,t){var n=this.splitNewLine(e.extra),r=!1;if(n.length){var i=n[0].split(":");if(i.length>1&&"NoteType"===i[0]&&("Credit Card"===i[1]||"Address"===i[1])){if("Credit Card"===i[1]){var a=this.parseSecureNoteMapping(t,n,{Number:"number","Name on Card":"cardholderName","Security Code":"code","Expiration Date":"expMonth"});if(this.isNullOrWhitespace(a.expMonth)||","===a.expMonth)a.expMonth=void 0;else{var o=a.expMonth.split(","),s=o[0],l=o[1];if(this.isNullOrWhitespace(s))a.expMonth=void 0;else{var c=new Date(Date.parse(s.trim()+" 1, 2012")).getMonth()+1;isNaN(c)?a.expMonth=void 0:a.expMonth=c.toString()}this.isNullOrWhitespace(l)||(a.expYear=l)}t.type=m.CipherType.Card,t.card=a}else if("Address"===i[1]){a=this.parseSecureNoteMapping(t,n,{Title:"title","First Name":"firstName","Last Name":"lastName","Middle Name":"middleName",Company:"company","Address 1":"address1","Address 2":"address2","Address 3":"address3","City / Town":"city",State:"state","Zip / Postal Code":"postalCode",Country:"country","Email Address":"email",Username:"username"});t.type=m.CipherType.Identity,t.identity=a}r=!0}}r||(t.secureNote=new d.SecureNoteView,t.secureNote.type=h.SecureNoteType.Generic,t.notes=this.getValueOrDefault(e.extra))},t.prototype.parseSecureNoteMapping=function(e,t,n){var r=this,i={},a=!1;return t.forEach(function(t){var o=null,s=null;if(!a){if(r.isNullOrWhitespace(t))return;var l=t.indexOf(":");if(-1===l?o=t:(o=t.substring(0,l),t.length>l&&(s=t.substring(l+1))),r.isNullOrWhitespace(o)||r.isNullOrWhitespace(s)||"NoteType"===o)return}a?e.notes+="\n"+t:"Notes"===o?(r.isNullOrWhitespace(e.notes)?e.notes=s:e.notes+="\n"+s,a=!0):n.hasOwnProperty(o)?i[n[o]]=s:r.processKvp(e,o,s)}),i},t}(a.BaseImporter);t.LastPassCsvImporter=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<4)){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[1]),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.LogMeOnceCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.DisplayName,"--"),r.notes=t.getValueOrDefault(e.Notes),r.login.username=t.getValueOrDefault(e.UserName),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e.Url),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.MeldiumCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(40),l=n(113),c=n(94),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<3)){var r="Unassigned"!==t.getValueOrDefault(e[0],"Unassigned")?e[0]:null;t.processFolder(n,r);var i=t.initLoginCipher();if(i.name=t.getValueOrDefault(e[2],"--"),"Web Logins"===e[1]||"Login"===e[1])i.login.uris=t.makeUriArray(e[4]),i.login.username=t.getValueOrDefault(e[5]),i.login.password=t.getValueOrDefault(e[6]),i.notes=t.isNullOrWhitespace(e[3])?null:e[3].split("\\n").join("\n");else if(e.length>3){i.type=s.CipherType.SecureNote,i.secureNote=new c.SecureNoteView,i.secureNote.type=l.SecureNoteType.Generic;for(var a=3;a0&&(t.login.uris=this.makeUriArray(r))}null!=e.secureContents.fields&&this.parseFields(e.secureContents.fields,t,"designation","value","name"),null!=e.secureContents.sections&&e.secureContents.sections.forEach(function(e){null!=e.fields&&n.parseFields(e.fields,t,"n","v","t")})}},t.prototype.parsePasswordHistory=function(e,t){var n=this,r=e.length>5?5:e.length;t.passwordHistory=e.filter(function(e){return!n.isNullOrWhitespace(e.value)&&null!=e.time}).sort(function(e,t){return t.time-e.time}).slice(0,r).map(function(e){var t=new c.PasswordHistoryView;return t.password=e.value,t.lastUsedDate=new Date((""+e.time).length>=13?e.time:1e3*e.time),t})},t.prototype.parseFields=function(e,t,n,r,i){var a=this;e.forEach(function(e){if(null!=e[r]&&""!==e[r].toString().trim()){var o=e[r].toString(),s=null!=e[n]?e[n].toString():null;if(t.type===u.CipherType.Login){if(a.isNullOrWhitespace(t.login.username)&&"username"===s)return void(t.login.username=o);if(a.isNullOrWhitespace(t.login.password)&&"password"===s)return void(t.login.password=o);if(a.isNullOrWhitespace(t.login.totp)&&null!=s&&s.startsWith("TOTP_"))return void(t.login.totp=o)}else if(t.type===u.CipherType.Card){if(a.isNullOrWhitespace(t.card.number)&&"ccnum"===s)return t.card.number=o,void(t.card.brand=a.getCardBrand(o));if(a.isNullOrWhitespace(t.card.code)&&"cvv"===s)return void(t.card.code=o);if(a.isNullOrWhitespace(t.card.cardholderName)&&"cardholder"===s)return void(t.card.cardholderName=o);if(a.isNullOrWhitespace(t.card.expiration)&&"expiry"===s&&6===o.length)return t.card.expMonth=o.substr(4,2),"0"===t.card.expMonth[0]&&(t.card.expMonth=t.card.expMonth.substr(1,1)),void(t.card.expYear=o.substr(0,4));if("type"===s)return}else if(t.type===u.CipherType.Identity){var l=t.identity;if(a.isNullOrWhitespace(l.firstName)&&"firstname"===s)return void(l.firstName=o);if(a.isNullOrWhitespace(l.lastName)&&"lastname"===s)return void(l.lastName=o);if(a.isNullOrWhitespace(l.middleName)&&"initial"===s)return void(l.middleName=o);if(a.isNullOrWhitespace(l.phone)&&"defphone"===s)return void(l.phone=o);if(a.isNullOrWhitespace(l.company)&&"company"===s)return void(l.company=o);if(a.isNullOrWhitespace(l.email)&&"email"===s)return void(l.email=o);if(a.isNullOrWhitespace(l.username)&&"username"===s)return void(l.username=o);if("address"===s){var c=e[r],p=c.street,m=c.city,h=c.country,f=c.zip;return l.address1=a.getValueOrDefault(p),l.city=a.getValueOrDefault(m),a.isNullOrWhitespace(h)||(l.country=h.toUpperCase()),void(l.postalCode=a.getValueOrDefault(f))}}var v=a.isNullOrWhitespace(e[i])?"no_name":e[i];if("password"!==v||null==t.passwordHistory||!t.passwordHistory.some(function(e){return e.password===o})){var y="concealed"===e.k?d.FieldType.Hidden:d.FieldType.Text;a.processKvp(t,v,o,y)}}})},t}(a.BaseImporter);t.OnePassword1PifImporter=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(712),o=n(40),s=n(713),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.setCipherType=function(e,t){switch(this.getValueOrDefault(this.getProp(e,"type"),"Login")){case"Credit Card":t.type=o.CipherType.Card,t.card=new s.CardView,a.IgnoredProperties.push("type");break;case"Identity":t.type=o.CipherType.Identity,t.identity=new s.IdentityView,a.IgnoredProperties.push("type");break;case"Login":case"Secure Note":a.IgnoredProperties.push("type")}},t}(a.OnePasswordCsvImporter);t.OnePasswordMacCsvImporter=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n){this.importRecord=e,this.property=t,this.cipher=n,this.lowerProperty=t.toLowerCase()}}();t.CipherImportContext=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.View=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(712),o=n(40),s=n(713),l=function(e){function t(){var t=e.call(this)||this;return t.identityPropertyParsers.push(t.setIdentityAddress),t}return i(t,e),t.prototype.setCipherType=function(e,t){t.type=o.CipherType.Login,t.login=new s.LoginView,this.isNullOrWhitespace(this.getPropByRegexp(e,/\d+: number/i))||this.isNullOrWhitespace(this.getPropByRegexp(e,/\d+: expiry date/i))||(t.type=o.CipherType.Card,t.card=new s.CardView),this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: first name/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: initial/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: last name/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/internet \d+: email/i))||(t.type=o.CipherType.Identity,t.identity=new s.IdentityView)},t.prototype.setIdentityAddress=function(e){return!!e.lowerProperty.match(/address \d+: address/i)&&(this.processKvp(e.cipher,"address",e.importRecord[e.property]),!0)},t.prototype.setCreditCardExpiry=function(e){if(this.isNullOrWhitespace(e.cipher.card.expiration)&&e.lowerProperty.includes("expiry date")){var t=e.importRecord[e.property].split("/");return e.cipher.card.expMonth=t[0],"0"===e.cipher.card.expMonth[0]&&2===e.cipher.card.expMonth.length&&(e.cipher.card.expMonth=e.cipher.card.expMonth.substr(1,1)),e.cipher.card.expYear=t[2].length>4?t[2].substr(0,4):t[2],!0}return!1},t}(a.OnePasswordCsvImporter);t.OnePasswordWinCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(158),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=null;return r.forEach(function(e){if(null!=i){if(!(e.length<2||e.length!==i.length)){if(!t.isNullOrWhitespace(e[1]))if(t.organization){(r=e[1].split(",")).forEach(function(e){e=e.trim();for(var t=!0,r=n.collections.length,i=0;i0?r[0].trim():null;t.processFolder(n,a)}var o=t.initLoginCipher();o.name=t.getValueOrDefault(e[0],"--");for(var l=2;l-1?o.login.username=e[l]:t.passwordFieldNames.indexOf(c)>-1?o.login.password=e[l]:t.uriFieldNames.indexOf(c)>-1?o.login.uris=t.makeUriArray(e[l]):t.processKvp(o,i[l],e[l]))}t.cleanupCipher(o),n.ciphers.push(o)}}else i=e.map(function(e){return e})}),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PadlockCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){t.processFolder(n,t.getValue("category",e));var r=t.initLoginCipher();r.notes=t.getValue("description",e),r.name=t.getValueOrDefault(t.getValue("title",e),"--"),r.login.username=t.getValue("username",e),r.login.password=t.getValue("password",e),r.login.uris=t.makeUriArray(t.getValue("site",e)),t.processKvp(r,"Password 2",t.getValue("password2",e)),t.cleanupCipher(r),n.ciphers.push(r)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.getValue=function(e,t){return this.getValueOrDefault(t[e],this.getValueOrDefault(t[" "+e]))},t}(a.BaseImporter);t.PassKeepCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);return null==r||0===r.length?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(null!=e.tags&&e.tags.length>0){var r=e.tags[0].text;t.processFolder(n,r)}var i=t.initLoginCipher();i.name=e.label,i.login.username=t.getValueOrDefault(e.username),t.isNullOrWhitespace(i.login.username)?i.login.username=t.getValueOrDefault(e.email):t.isNullOrWhitespace(e.email)||(i.notes="Email: "+e.email+"\n"),i.login.password=t.getValueOrDefault(e.password),i.login.uris=t.makeUriArray(e.url),i.notes+=t.getValueOrDefault(e.description,""),null!=e.otp&&(i.login.totp=t.getValueOrDefault(e.otp.secret)),null!=e.custom_fields&&e.custom_fields.forEach(function(e){switch(e.field_type){case"text":case"password":t.processKvp(i,e.label,e.value)}}),t.convertToNoteIfNeeded(i),t.cleanupCipher(i),n.ciphers.push(i)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.PassmanJsonImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(158),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.isNullOrWhitespace(e.Tags)?null:JSON.parse(e.Tags),i=null!=r&&null!=r.tags&&r.tags.length>0?r.tags.map(function(e){try{var n=JSON.parse(e);return t.getValueOrDefault(n.tag)}catch(r){}return null}).filter(function(e){return!t.isNullOrWhitespace(e)}):null;t.organization&&null!=i&&i.length>0?i.forEach(function(e){for(var t=!0,r=n.collections.length,i=0;i0&&t.processFolder(n,i[0]);var a=t.initLoginCipher();a.notes=t.getValueOrDefault(e.Notes,""),a.notes+="\n\n"+t.getValueOrDefault(e["Shared Notes"],"")+"\n",a.name=t.getValueOrDefault(e["Entry Name"],"--"),a.login.username=t.getValueOrDefault(e["User ID"]),a.login.password=t.getValueOrDefault(e.Password),a.login.uris=t.makeUriArray(e.URL),null!=e.__parsed_extra&&e.__parsed_extra.length>0&&e.__parsed_extra.forEach(function(e){t.isNullOrWhitespace(e)||(a.notes+="\n"+e)});var o=t.isNullOrWhitespace(e["Extra Fields"])?null:JSON.parse(e["Extra Fields"]),l=null!=o&&null!=o.extraFields&&o.extraFields.length>0?o.extraFields.map(function(e){try{return JSON.parse(e)}catch(t){}return null}):null;null!=l&&l.forEach(function(e){null!=e&&t.processKvp(a,e.name,e.data)}),t.cleanupCipher(a),n.ciphers.push(a)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.PasspackCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=!0;return r.forEach(function(e){if(!(5!==e.length&&e.length<9)){var r=10===e.length&&"0"===e[0],a=t.initLoginCipher();if(a.name=t.getValueOrDefault(e[r?1:0],"--"),a.login.username=t.getValueOrDefault(e[r?2:1]),a.login.password=t.getValueOrDefault(e[r?3:2]),5===e.length)i=!1,a.notes=t.getValueOrDefault(e[4]),a.login.uris=t.makeUriArray(e[3]);else{var o=t.getValueOrDefault(e[r?9:8],"(None)"),s="(None)"!==o?o.split("\\").join("/"):null;null!=s&&(s=o.split(" > ").join("/"),s=o.split(">").join("/")),t.processFolder(n,s),a.notes=t.getValueOrDefault(e[r?5:3]),a.login.uris=t.makeUriArray(e[4])}t.convertToNoteIfNeeded(a),t.cleanupCipher(a),n.ciphers.push(a)}}),i&&this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PasswordAgentCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(129),c=n(40),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);if(null==r||null==r.items)return n.success=!1,Promise.resolve(n);var i=new Map;r.folders.forEach(function(e){i.set(e.id,e.name)});var a=new Map;return i.forEach(function(e,t){a.set(t,n.folders.length);var r=new l.FolderView;r.name=e,n.folders.push(r)}),r.items.forEach(function(e){var r=t.initLoginCipher();if(r.name=t.getValueOrDefault(e.name,"--"),r.login.uris=t.makeUriArray(e.login_url),null!=e.folder&&a.has(e.folder)&&n.folderRelationships.push([n.ciphers.length,a.get(e.folder)]),null!=e.identifiers){for(var i in t.isNullOrWhitespace(e.identifiers.notes)||(r.notes=e.identifiers.notes.split("\\r\\n").join("\n").split("\\n").join("\n")),"CreditCard"===e.type&&(r.card=new s.CardView,r.type=c.CipherType.Card),e.identifiers)if(e.identifiers.hasOwnProperty(i)){var o=e.identifiers[i],l=null!=o?o.toString():null;if(!t.isNullOrWhitespace(l)&&"notes"!==i&&"ignoreItemInSecurityScore"!==i)if("custom_fields"!==i){if(r.type===c.CipherType.Card){if("cardNumber"===i){r.card.number=l,r.card.brand=t.getCardBrand(l);continue}if("nameOnCard"===i){r.card.cardholderName=l;continue}if("security_code"===i){r.card.code=l;continue}if("expires"===i){try{var p=new Date(l);r.card.expYear=p.getFullYear().toString(),r.card.expMonth=(p.getMonth()+1).toString()}catch(u){}continue}if("cardType"===i)continue}else{if(("username"===i||"email"===i)&&t.isNullOrWhitespace(r.login.username)){r.login.username=l;continue}if("password"===i){r.login.password=l;continue}if("totp"===i){r.login.totp=l;continue}if((null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(i)>-1){r.login.uris=t.makeUriArray(l);continue}}t.processKvp(r,i,l)}else o.forEach(function(e){t.processKvp(r,e.name,e.value)})}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PasswordBossJsonImporter=p},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelectorAll("PasswordManager > record");return Array.from(i).forEach(function(e){var r=t.querySelectorDirectChild(e,"Category"),i=null==r||t.isNullOrWhitespace(r.textContent)||"Unfiled"===r.textContent?null:r.textContent;t.processFolder(n,i);var a=t.querySelectorDirectChild(e,"Account-Name"),o=t.querySelectorDirectChild(e,"User-Id"),s=t.querySelectorDirectChild(e,"Password"),l=t.querySelectorDirectChild(e,"URL"),c=t.querySelectorDirectChild(e,"Notes"),p=t.initLoginCipher();p.name=null!=a?t.getValueOrDefault(a.textContent,"--"):"--",p.notes=null!=c?t.getValueOrDefault(c.textContent):"",p.login.username=null!=o?t.getValueOrDefault(o.textContent):null,p.login.password=null!=s?t.getValueOrDefault(s.textContent):null,p.login.uris=null!=l?t.makeUriArray(l.textContent):null;for(var u=[],d=1;d<=10;d++)u.push("Attribute-"+d);t.querySelectorAllDirectChild(e,u.join(",")).forEach(function(e){t.isNullOrWhitespace(e.textContent)||"null"===e.textContent||t.processKvp(p,e.tagName,e.textContent)}),t.cleanupCipher(p),n.ciphers.push(p)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PasswordDragonXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelector("passwordsafe");if(null==i)return n.errorMessage="Missing `passwordsafe` node.",n.success=!1,Promise.resolve(n);var a=i.getAttribute("delimiter"),s=r.querySelectorAll("passwordsafe > entry");return Array.from(s).forEach(function(e){var r=t.querySelectorDirectChild(e,"group"),i=null==r||t.isNullOrWhitespace(r.textContent)?null:r.textContent.split(".").join("/");t.processFolder(n,i);var o=t.querySelectorDirectChild(e,"title"),s=t.querySelectorDirectChild(e,"username"),l=t.querySelectorDirectChild(e,"email"),c=t.querySelectorDirectChild(e,"password"),p=t.querySelectorDirectChild(e,"url"),u=t.querySelectorDirectChild(e,"notes"),d=t.initLoginCipher();d.name=null!=o?t.getValueOrDefault(o.textContent,"--"):"--",d.notes=null!=u?t.getValueOrDefault(u.textContent,"").split(a).join("\n"):null,d.login.username=null!=s?t.getValueOrDefault(s.textContent):null,d.login.password=null!=c?t.getValueOrDefault(c.textContent):null,d.login.uris=null!=p?t.makeUriArray(p.textContent):null,t.isNullOrWhitespace(d.login.username)&&null!=l?d.login.username=t.getValueOrDefault(l.textContent):null==l||t.isNullOrWhitespace(l.textContent)||(d.notes=t.isNullOrWhitespace(d.notes)?"Email: "+l.textContent:d.notes+"\nEmail: "+l.textContent),t.cleanupCipher(d),n.ciphers.push(d)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PasswordSafeXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<1)){e.length>5&&t.processFolder(n,e[5]);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),e.length>4&&(r.notes=t.getValueOrDefault(e[4],"").split("¬").join("\n")),e.length>2&&(r.login.username=t.getValueOrDefault(e[2])),e.length>3&&(r.login.password=t.getValueOrDefault(e[3])),e.length>1&&(r.login.uris=t.makeUriArray(e[1])),t.cleanupCipher(r),n.ciphers.push(r)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.PasswordWalletTxtImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(40),s=n(28),l=n(89),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new s.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if("true"!==e.trash){var r=t.initLoginCipher();if(r.name=t.getValueOrDefault(e.name),r.notes=t.getValueOrDefault(e.notes),"LoginItem"===e.type)r.login.uris=t.makeUriArray(e.website),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.username);else if("CreditCardItem"===e.type){r.type=o.CipherType.Card,r.card=new l.CardView,r.card.cardholderName=t.getValueOrDefault(e.cardholder),r.card.number=t.getValueOrDefault(e.number),r.card.brand=t.getCardBrand(r.card.number),r.card.code=t.getValueOrDefault(e.verification);try{var i=t.getValueOrDefault(e.expiryMonth);if(null!=i){var a=parseInt(i,null);null!=a&&a>=1&&a<=12&&(r.card.expMonth=a.toString())}}catch(d){}try{var s=t.getValueOrDefault(e.expiryYear);if(null!=s){var c=parseInt(s,null);null!=c&&(r.card.expYear=c.toString())}}catch(m){}var p=t.getValueOrDefault(e.pin);null!=p&&t.processKvp(r,"PIN",p);var u=t.getValueOrDefault(e.zipCode);null!=u&&t.processKvp(r,"Zip Code",u)}t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.RememBearCsvImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);if(null==r)return n.success=!1,Promise.resolve(n);var i=1;return r.forEach(function(e){var a=!t.isNullOrWhitespace(e.Folder)&&e.Folder.startsWith("/")?e.Folder.replace("/",""):e.Folder,o=t.isNullOrWhitespace(a)?null:a;t.processFolder(n,o);var s=t.initLoginCipher();if(s.notes=t.getValueOrDefault(e.Note),s.name=t.getValueOrDefault(e.Name,"--"),s.login.username=t.getValueOrDefault(e.Login),s.login.password=t.getValueOrDefault(e.Pwd),s.login.uris=t.makeUriArray(e.Url),!t.isNullOrWhitespace(e.Rf_fields)){var l=[e.Rf_fields];null!=e.__parsed_extra&&e.__parsed_extra.length>0&&(l=l.concat(e.__parsed_extra)),l.forEach(function(e){var n=e.split(":");if(!(n.length<3)){var r="-no-name-"===n[0]?null:n[0],i=4===n.length&&"rck"===n[2]?n[1]:n[2];t.processKvp(s,r,i)}})}t.convertToNoteIfNeeded(s),t.cleanupCipher(s),i===r.length&&"--"===s.name&&t.isNullOrWhitespace(s.login.password)||(n.ciphers.push(s),i++)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.RoboFormCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(129),l=n(94),c=n(40),p=n(113),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);if(null==r.querySelector("database"))return n.errorMessage="Missing `database` node.",n.success=!1,Promise.resolve(n);var i=new Map;return Array.from(r.querySelectorAll("database > label")).forEach(function(e){var r=e.getAttribute("name"),a=e.getAttribute("id");if(!t.isNullOrWhitespace(r)&&!t.isNullOrWhitespace(a)){i.set(a,n.folders.length);var o=new s.FolderView;o.name=r,n.folders.push(o)}}),Array.from(r.querySelectorAll("database > card")).forEach(function(e){if("true"!==e.getAttribute("template")){var r=t.querySelectorDirectChild(e,"label_id");if(null!=r){var a=r.textContent;!t.isNullOrWhitespace(a)&&i.has(a)&&n.folderRelationships.push([n.ciphers.length,i.get(a)])}var o=t.initLoginCipher();o.name=t.getValueOrDefault(e.getAttribute("title"),"--"),"note"===e.getAttribute("type")?(o.type=c.CipherType.SecureNote,o.secureNote=new l.SecureNoteView,o.secureNote.type=p.SecureNoteType.Generic):Array.from(t.querySelectorAllDirectChild(e,"field")).forEach(function(e){var n=e.textContent;if(!t.isNullOrWhitespace(n)){var r=e.getAttribute("name"),i=t.getValueOrDefault(e.getAttribute("type"),"").toLowerCase();"login"===i?o.login.username=n:"password"===i?o.login.password=n:"one_time_password"===i?o.login.totp=n:"notes"===i?o.notes+=n+"\n":"weblogin"===i||"website"===i?o.login.uris=t.makeUriArray(n):t.processKvp(o,r,n)}}),Array.from(t.querySelectorAllDirectChild(e,"notes")).forEach(function(e){o.notes+=e.textContent+"\n"}),t.cleanupCipher(o),n.ciphers.push(o)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.SafeInCloudXmlImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(t.nameFromUrl(e.url),"--"),r.notes=t.getValueOrDefault(e.notes),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.SaferPassCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Title),r.notes=t.getValueOrDefault(e.Comment),r.login.uris=t.makeUriArray(e.Url),r.login.password=t.getValueOrDefault(e.Password),r.login.username=t.getValueOrDefault(e.Username),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.SecureSafeCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<3)){t.processFolder(n,t.getValueOrDefault(e[e.length-1]));var r=t.initLoginCipher();r.notes=t.getValueOrDefault(e[e.length-2],""),r.name=t.getValueOrDefault(e[1],"--"),"Web Logins"===e[0]||"Servers"===e[0]||"Email Accounts"===e[0]?(r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[4]),t.parseFieldsToNotes(r,5,e)):t.parseFieldsToNotes(r,2,e),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.parseFieldsToNotes=function(e,t,n){for(var r=t;r Database > Logins > Login");return Array.from(i).forEach(function(e){var i=e.getAttribute("ID");if(!t.isNullOrWhitespace(i)){var a=e.getAttribute("Name"),o=e.getAttribute("Password"),s=null,l=null,c=null,p=null,u=null,d=r.querySelector('root > Database > Accounts > Account > LoginLinks > Login[SourceLoginID="'+i+'"]');if(null!=d){var m=d.parentElement.parentElement;null!=m&&(s=m.getAttribute("Name"),l=m.getAttribute("Link"),p=m.getAttribute("ParentID"),c=m.getAttribute("Comments"),t.isNullOrWhitespace(c)||(c=c.split("/n").join("\n")))}t.isNullOrWhitespace(p)||(u=t.buildGroupText(r,p,""),t.processFolder(n,u));var h=t.initLoginCipher();h.name=t.getValueOrDefault(s,"--"),h.notes=t.getValueOrDefault(c),h.login.username=t.getValueOrDefault(a),h.login.password=t.getValueOrDefault(o),h.login.uris=t.makeUriArray(l),t.cleanupCipher(h),n.ciphers.push(h)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t.prototype.buildGroupText=function(e,t,n){var r=e.querySelector('root > Database > Groups > Group[ID="'+t+'"]');return null==r?n:(this.isNullOrWhitespace(n)||(n="/"+n),n=r.getAttribute("Name")+n,this.buildGroupText(e,r.getAttribute("ParentID"),n))},t}(a.BaseImporter);t.StickyPasswordXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(94),c=n(40),p=n(113),u=["kind","autologin","favorite","hexcolor","protectedwithpassword","subdomainonly","type","tk_export_version","note","title","document_content"],d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();if(r.favorite="true"===t.getValueOrDefault(e.favorite,"").toLowerCase(),r.name=t.getValueOrDefault(e.name,"--"),r.notes=t.getValueOrDefault(e.memo,""),r.login.username=t.getValueOrDefault(e.login),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),"login"!==e.kind&&(r.name=t.getValueOrDefault(e.title,"--"),r.notes=t.getValueOrDefault(e.note,"")),"cc"===e.kind){if(r.type=c.CipherType.Card,r.card=new s.CardView,r.card.cardholderName=t.getValueOrDefault(e.cardholder),r.card.number=t.getValueOrDefault(e.number),r.card.brand=t.getCardBrand(r.card.number),!t.isNullOrWhitespace(e.expiryDate))try{var i=new Date(e.expiryDate);r.card.expYear=i.getFullYear().toString(),r.card.expMonth=(i.getMonth()+1).toString()}catch(o){}}else if("login"!==e.kind)for(var a in r.type=c.CipherType.SecureNote,r.secureNote=new l.SecureNoteView,r.secureNote.type=p.SecureNoteType.Generic,t.isNullOrWhitespace(r.notes)||(r.notes=t.getValueOrDefault(e.document_content,"")),e)e.hasOwnProperty(a)&&u.indexOf(a.toLowerCase())<0&&!t.isNullOrWhitespace(e[a])&&t.processKvp(r,a,e[a]);t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.TrueKeyCsvImporter=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(5===e.length){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),r.notes=t.getValueOrDefault(e[4]),r.login.username=t.getValueOrDefault(e[1]),r.login.password=t.getValueOrDefault(e[2]),r.login.uris=t.makeUriArray(e[3]),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.UpmCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Name,"--"),r.login.username=t.getValueOrDefault(e["User name"]),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e.URL),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.YotiCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!t.isNullOrWhitespace(e["Password Name"])||!t.isNullOrWhitespace(e["Secret Name"])){t.processFolder(n,t.getValueOrDefault(e.ChamberName));var r=t.initLoginCipher();r.favorite="1"===t.getValueOrDefault(e.Favorite,"0"),r.notes=t.getValueOrDefault(e.Notes),r.name=t.getValueOrDefault(e["Password Name"],t.getValueOrDefault(e["Secret Name"],"--")),r.login.uris=t.makeUriArray(t.getValueOrDefault(e["Password URL"],t.getValueOrDefault(e["Secret URL"]))),t.parseData(r,e.SecretData),t.parseData(r,e.CustomData),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.parseData=function(e,t){var n=this;this.isNullOrWhitespace(t)||this.splitNewLine(t).forEach(function(t){var r=t.indexOf(":");if(!(r<0)){var i=t.substring(0,r),a=t.length>r?t.substring(r+1):null;if(!n.isNullOrWhitespace(i)&&!n.isNullOrWhitespace(a)&&"SecretType"!==i){var o=i.toLowerCase();null==e.login.username&&n.usernameFieldNames.indexOf(o)>-1?e.login.username=a:null==e.login.password&&n.passwordFieldNames.indexOf(o)>-1?e.login.password=a:n.processKvp(e,i,a)}}})},t}(a.BaseImporter);t.ZohoVaultCsvImporter=s},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]t.minComplexity&&(t.minComplexity=e.data.minComplexity),null!=e.data.minLength&&e.data.minLength>t.minLength&&(t.minLength=e.data.minLength),e.data.requireUpper&&(t.requireUpper=!0),e.data.requireLower&&(t.requireLower=!0),e.data.requireNumbers&&(t.requireNumbers=!0),e.data.requireSpecial&&(t.requireSpecial=!0))}),[2,t])}})})},e.prototype.evaluateMasterPassword=function(e,t,n){return null==n||!(n.minComplexity>0&&n.minComplexity>e)&&(!(n.minLength>0&&n.minLength>t.length)&&((!n.requireUpper||t.toLocaleLowerCase()!==t)&&((!n.requireLower||t.toLocaleUpperCase()!==t)&&(!(n.requireNumbers&&!/[0-9]/.test(t))&&!(n.requireSpecial&&!/[!@#$%\^&*]/g.test(t))))))},e}();t.PolicyService=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.minComplexity=0,t.minLength=0,t.requireUpper=!1,t.requireLower=!1,t.requireNumbers=!1,t.requireSpecial=!1,t}return i(t,e),t}(n(82).default);t.MasterPasswordPolicyOptions=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]"))},e.prototype.indexCiphers=function(){return r(this,void 0,void 0,function(){var e,t=this;return i(this,function(n){switch(n.label){case 0:return this.indexing?[2]:(this.logService.time("search indexing"),this.indexing=!0,this.index=null,(e=new a.Builder).ref("id"),e.field("shortid",{boost:100,extractor:function(e){return e.id.substr(0,8)}}),e.field("name",{boost:10}),e.field("subtitle",{boost:5,extractor:function(e){return null!=e.subTitle&&e.type===o.CipherType.Card?e.subTitle.replace(/\*/g,""):e.subTitle}}),e.field("notes"),e.field("login.username",{extractor:function(e){return e.type===o.CipherType.Login&&null!=e.login?e.login.username:null}}),e.field("login.uris",{boost:2,extractor:function(e){return t.uriExtractor(e)}}),e.field("fields",{extractor:function(e){return t.fieldExtractor(e,!1)}}),e.field("fields_joined",{extractor:function(e){return t.fieldExtractor(e,!0)}}),e.field("attachments",{extractor:function(e){return t.attachmentExtractor(e,!1)}}),e.field("attachments_joined",{extractor:function(e){return t.attachmentExtractor(e,!0)}}),e.field("organizationid",{extractor:function(e){return e.organizationId}}),[4,this.cipherService.getAllDecrypted()]);case 1:return n.sent().forEach(function(t){return e.add(t)}),this.index=e.build(),this.indexing=!1,this.logService.timeEnd("search indexing"),[2]}})})},e.prototype.searchCiphers=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=null),r(this,void 0,void 0,function(){var r,o,s,l,c;return i(this,function(i){switch(i.label){case 0:return r=[],null!=e&&(e=e.trim().toLowerCase()),""===e&&(e=null),null!=n?[3,2]:[4,this.cipherService.getAllDecrypted()];case 1:n=i.sent(),i.label=2;case 2:return null!=t&&Array.isArray(t)&&t.length>0?n=n.filter(function(e){return t.every(function(t){return null==t||t(e)})}):null!=t&&(n=n.filter(t)),this.isSearchable(e)?this.indexing?[4,new Promise(function(e){return setTimeout(e,250)})]:[3,5]:[2,n];case 3:return i.sent(),this.indexing?[4,new Promise(function(e){return setTimeout(e,500)})]:[3,5];case 4:i.sent(),i.label=5;case 5:if(null==(o=this.getIndexForSearch()))return[2,this.searchCiphersBasic(n,e)];if(s=new Map,n.forEach(function(e){return s.set(e.id,e)}),l=null,null!=e&&e.length>1&&0===e.indexOf(">"))try{l=o.search(e.substr(1).trim())}catch(p){}else c=a.Query.wildcard.LEADING|a.Query.wildcard.TRAILING,l=o.query(function(t){a.tokenizer(e).forEach(function(e){var n=e.toString();t.term(n,{fields:["name"],wildcard:c}),t.term(n,{fields:["subtitle"],wildcard:c}),t.term(n,{fields:["login.uris"],wildcard:c}),t.term(n,{})})});return null!=l&&l.forEach(function(e){s.has(e.ref)&&r.push(s.get(e.ref))}),[2,r]}})})},e.prototype.searchCiphersBasic=function(e,t,n){return void 0===n&&(n=!1),t=t.trim().toLowerCase(),e.filter(function(e){return n===e.isDeleted&&(null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&e.id.startsWith(t))||(null!=e.subTitle&&e.subTitle.toLowerCase().indexOf(t)>-1||!!(e.login&&null!=e.login.uri&&e.login.uri.toLowerCase().indexOf(t)>-1))))})},e.prototype.searchSends=function(e,t){return t=t.trim().toLocaleLowerCase(),e.filter(function(e){var n,r,i;return null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&(e.id.startsWith(t)||e.accessId.toLocaleLowerCase().startsWith(t)||null!=(null===(n=e.file)||void 0===n?void 0:n.id)&&e.file.id.startsWith(t)))||(null!=e.notes&&e.notes.toLowerCase().indexOf(t)>-1||(null!=(null===(r=e.text)||void 0===r?void 0:r.text)&&e.text.text.toLowerCase().indexOf(t)>-1||(null!=(null===(i=e.file)||void 0===i?void 0:i.fileName)&&e.file.fileName.toLowerCase().indexOf(t)>-1||void 0))))})},e.prototype.getIndexForSearch=function(){return this.index},e.prototype.fieldExtractor=function(e,t){if(!e.hasFields)return null;var n=[];return e.fields.forEach(function(e){null!=e.name&&n.push(e.name),e.type===s.FieldType.Text&&null!=e.value&&n.push(e.value)}),0===(n=n.filter(function(e){return""!==e.trim()})).length?null:t?n.join(" "):n},e.prototype.attachmentExtractor=function(e,t){if(!e.hasAttachments)return null;var n=[];return e.attachments.forEach(function(e){null!=e&&null!=e.fileName&&(t&&e.fileName.indexOf(".")>-1?n.push(e.fileName.substr(0,e.fileName.lastIndexOf("."))):n.push(e.fileName))}),0===(n=n.filter(function(e){return""!==e.trim()})).length?null:t?n.join(" "):n},e.prototype.uriExtractor=function(e){if(e.type!==o.CipherType.Login||null==e.login||!e.login.hasUris)return null;var t=[];return e.login.uris.forEach(function(e){if(null!=e.uri&&""!==e.uri)if(null==e.hostname){var n=e.uri;if(e.match!==l.UriMatchType.RegularExpression){var r=n.indexOf("://");r>-1&&(n=n.substr(r+3));var i=n.search(/\?|&|#/);i>-1&&(n=n.substring(0,i))}t.push(n)}else t.push(e.hostname)}),t.length>0?t:null},e}();t.SearchService=c},,function(e,t,n){"use strict";(function(e){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1||n.indexOf(" Version/9.")>-1)}return e.prototype.pbkdf2=function(e,t,n,s){return r(this,void 0,void 0,function(){var r,l,c,p,u,d,m,h,f;return i(this,function(i){switch(i.label){case 0:return this.isIE||this.isOldSafari?(r="sha256"===n?32:64,l=this.toByteString(e),c=this.toByteString(t),p=a.pbkdf2(l,c,s,r,n),[2,o.Utils.fromByteStringToArray(p).buffer]):(u="sha256"===n?256:512,d=this.toBuf(e),m=this.toBuf(t),h={name:"PBKDF2",salt:m,iterations:s,hash:{name:this.toWebCryptoAlgorithm(n)}},[4,this.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveBits"])]);case 1:return f=i.sent(),[4,this.subtle.deriveBits(h,f,u)];case 2:return[2,i.sent()]}})})},e.prototype.hkdf=function(e,t,n,a,o){return r(this,void 0,void 0,function(){var r,s,l,c;return i(this,function(i){switch(i.label){case 0:return r=this.toBuf(t),s=this.toBuf(n),l={name:"HKDF",salt:r,info:s,hash:{name:this.toWebCryptoAlgorithm(o)}},[4,this.subtle.importKey("raw",e,{name:"HKDF"},!1,["deriveBits"])];case 1:return c=i.sent(),[4,this.subtle.deriveBits(l,c,8*a)];case 2:return[2,i.sent()]}})})},e.prototype.hkdfExpand=function(e,t,n,a){return r(this,void 0,void 0,function(){var r,o,s,l,c,p,u,d,m,h;return i(this,function(i){switch(i.label){case 0:if(n>255*(r="sha256"===a?32:64))throw new Error("outputByteSize is too large.");if(new Uint8Array(e).length=n)return[3,4];i.label=3;case 3:return d++,[3,1];case 4:return[2,u.slice(0,n).buffer]}})})},e.prototype.hash=function(e,t){return r(this,void 0,void 0,function(){var n,r,s;return i(this,function(i){switch(i.label){case 0:return this.isIE&&"sha1"===t||"md5"===t?(n="md5"===t?a.md.md5.create():a.md.sha1.create(),r=this.toByteString(e),n.update(r,"raw"),[2,o.Utils.fromByteStringToArray(n.digest().data).buffer]):(s=this.toBuf(e),[4,this.subtle.digest({name:this.toWebCryptoAlgorithm(t)},s)]);case 1:return[2,i.sent()]}})})},e.prototype.hmac=function(e,t,n){return r(this,void 0,void 0,function(){var r,s,l,c,p;return i(this,function(i){switch(i.label){case 0:return this.isIE&&"sha512"===n?(r=a.hmac.create(),s=this.toByteString(t),l=this.toByteString(e),r.start(n,s),r.update(l,"raw"),[2,o.Utils.fromByteStringToArray(r.digest().data).buffer]):(c={name:"HMAC",hash:{name:this.toWebCryptoAlgorithm(n)}},[4,this.subtle.importKey("raw",t,c,!1,["sign"])]);case 1:return p=i.sent(),[4,this.subtle.sign(c,p,e)];case 2:return[2,i.sent()]}})})},e.prototype.compare=function(e,t){return r(this,void 0,void 0,function(){var n,r,a,o,s,l,c,p;return i(this,function(i){switch(i.label){case 0:return[4,this.randomBytes(32)];case 1:return n=i.sent(),r={name:"HMAC",hash:{name:"SHA-256"}},[4,this.subtle.importKey("raw",n,r,!1,["sign"])];case 2:return a=i.sent(),[4,this.subtle.sign(r,a,e)];case 3:return o=i.sent(),[4,this.subtle.sign(r,a,t)];case 4:if(s=i.sent(),o.byteLength!==s.byteLength)return[2,!1];for(l=new Uint8Array(o),c=new Uint8Array(s),p=0;p0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]"}),n.body=r,n.bodyOutputType=s.BodyOutputType.TrustedHtml}null!=e.options&&(!0===e.options.trustedHtml&&(n.bodyOutputType=s.BodyOutputType.TrustedHtml),null!=e.options.timeout&&e.options.timeout>0&&(n.timeout=e.options.timeout)),this.toasterService.popAsync(n)},e.prototype.idleStateChanged=function(){this.isIdle?this.notificationsService.disconnectFromInactivity():this.notificationsService.reconnectFromActivity()},e.prototype.setFullWidth=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.storageService.get("enableFullWidth")];case 1:return e.sent()?document.body.classList.add("full-width"):document.body.classList.remove("full-width"),[2]}})})},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.Angulartics2GoogleAnalytics),u.ɵɵdirectiveInject(m.BroadcasterService),u.ɵɵdirectiveInject(h.UserService),u.ɵɵdirectiveInject(f.TokenService),u.ɵɵdirectiveInject(v.FolderService),u.ɵɵdirectiveInject(y.SettingsService),u.ɵɵdirectiveInject(g.SyncService),u.ɵɵdirectiveInject(x.PasswordGenerationService),u.ɵɵdirectiveInject(b.CipherService),u.ɵɵdirectiveInject(S.AuthService),u.ɵɵdirectiveInject(w.Router),u.ɵɵdirectiveInject(C.Angulartics2),u.ɵɵdirectiveInject(I.ToasterService),u.ɵɵdirectiveInject(E.I18nService),u.ɵɵdirectiveInject(P.PlatformUtilsService),u.ɵɵdirectiveInject(u.NgZone),u.ɵɵdirectiveInject(k.VaultTimeoutService),u.ɵɵdirectiveInject(_.StorageService),u.ɵɵdirectiveInject(A.CryptoService),u.ɵɵdirectiveInject(O.CollectionService),u.ɵɵdirectiveInject(T.DomSanitizer),u.ɵɵdirectiveInject(M.SearchService),u.ɵɵdirectiveInject(B.NotificationsService),u.ɵɵdirectiveInject(D.RouterService),u.ɵɵdirectiveInject(V.StateService),u.ɵɵdirectiveInject(j.EventService),u.ɵɵdirectiveInject(R.PolicyService))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["app-root"]],decls:4,vars:1,consts:[["aria-live","polite",3,"toasterconfig"]],template:function(e,t){1&e&&(u.ɵɵelement(0,"toaster-container",0),u.ɵɵtext(1,"\n"),u.ɵɵelement(2,"router-outlet"),u.ɵɵtext(3,"\n")),2&e&&u.ɵɵproperty("toasterconfig",t.toasterConfig)},directives:[I.ToasterContainerComponent,w.RouterOutlet],encapsulation:2}),e}();t.AppComponent=F},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e){this.el=e}return e.prototype.onClick=function(){this.el.nativeElement.blur()},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appBlurClick",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",function(){return t.onClick()})}}),e}();t.BlurClickDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e){this.elRef=e,this.el=null,this.el=e.nativeElement}return e.prototype.ngOnInit=function(){var e=this;this.formEls=Array.from(this.el.querySelectorAll('input:not([type="hidden"]), select, textarea')),this.formEls.forEach(function(t){t.addEventListener("focus",function(t){e.el.classList.add("active")},!1),t.addEventListener("blur",function(t){e.el.classList.remove("active")},!1)})},e.prototype.onClick=function(e){var t=e.target;if((t===this.el||t.classList.contains("progress")||t.classList.contains("progress-bar"))&&this.formEls.length>0){var n=this.formEls[0];if("input"===n.tagName.toLowerCase()){var r=n;if(null!=r.type&&"checkbox"===r.type.toLowerCase())return void r.click()}n.focus()}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appBoxRow",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",function(e){return t.onClick(e)})}}),e}();t.BoxRowDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t,n){return void 0===n&&(n=!1),null==e||0===e.length?[]:null==t||t.length<2?e.filter(function(e){return n!==e.isDeleted}):(t=t.trim().toLowerCase(),e.filter(function(e){return n===e.isDeleted&&(null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&e.id.startsWith(t))||(null!=e.subTitle&&e.subTitle.toLowerCase().indexOf(t)>-1||!!(e.login&&null!=e.login.uri&&e.login.uri.toLowerCase().indexOf(t)>-1))))}))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"searchCiphers",type:e,pure:!0}),e}();t.SearchCiphersPipe=i}]); -//# sourceMappingURL=main.d8139e017ad9a069b29d.js.map \ No newline at end of file diff --git a/app/main.d8139e017ad9a069b29d.js.map b/app/main.d8139e017ad9a069b29d.js.map deleted file mode 100644 index 2adcc2b6..00000000 --- a/app/main.d8139e017ad9a069b29d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./jslib/src/abstractions/i18n.service.ts","webpack:///./jslib/src/abstractions/platformUtils.service.ts","webpack:///./jslib/src/abstractions/api.service.ts","webpack:///./jslib/src/abstractions/user.service.ts","webpack:///./jslib/src/angular/pipes/i18n.pipe.ts","webpack:///./jslib/src/abstractions/messaging.service.ts","webpack:///./jslib/src/angular/directives/api-action.directive.ts","webpack:///./jslib/src/angular/directives/a11y-title.directive.ts","webpack:///./jslib/src/abstractions/crypto.service.ts","webpack:///./jslib/src/abstractions/cipher.service.ts","webpack:///./jslib/src/models/response/baseResponse.ts","webpack:///./jslib/src/angular/components/callout.component.ts","webpack:///./jslib/src/angular/components/callout.component.html","webpack:///./jslib/src/importers/baseImporter.ts","webpack:///./jslib/src/models/domain/importResult.ts","webpack:///./jslib/src/misc/utils.ts","webpack:///./jslib/src/abstractions/passwordGeneration.service.ts","webpack:///./jslib/src/angular/directives/stop-click.directive.ts","webpack:///./jslib/src/abstractions/state.service.ts","webpack:///./jslib/src/enums/cipherType.ts","webpack:///./jslib/src/abstractions/collection.service.ts","webpack:///./jslib/src/abstractions/storage.service.ts","webpack:///./jslib/src/abstractions/policy.service.ts","webpack:///./jslib/src/angular/directives/input-verbatim.directive.ts","webpack:///./jslib/src/abstractions/folder.service.ts","webpack:///./jslib/src/angular/directives/stop-prop.directive.ts","webpack:///./jslib/src/abstractions/auth.service.ts","webpack:///./jslib/src/abstractions/sync.service.ts","webpack:///./jslib/src/abstractions/environment.service.ts","webpack:///./jslib/src/angular/directives/autofocus.directive.ts","webpack:///./jslib/src/services/constants.service.ts","webpack:///./jslib/src/abstractions/event.service.ts","webpack:///./jslib/src/models/request/passwordVerificationRequest.ts","webpack:///./jslib/src/abstractions/search.service.ts","webpack:///./jslib/src/models/domain/domainBase.ts","webpack:///./src/app/modal.component.ts","webpack:///./jslib/src/abstractions/audit.service.ts","webpack:///./jslib/src/models/view/cardView.ts","webpack:///./jslib/src/models/view/secureNoteView.ts","webpack:///./jslib/src/abstractions/token.service.ts","webpack:///./jslib/src/abstractions/cryptoFunction.service.ts","webpack:///./jslib/src/models/domain/cipherString.ts","webpack:///./jslib/src/angular/components/icon.component.ts","webpack:///./jslib/src/angular/components/icon.component.html","webpack:///./jslib/src/angular/services/broadcaster.service.ts","webpack:///./jslib/src/abstractions/vaultTimeout.service.ts","webpack:///./jslib/src/enums/secureNoteType.ts","webpack:///./jslib/src/enums/twoFactorProviderType.ts","webpack:///./jslib/src/abstractions/totp.service.ts","webpack:///./src/app/settings/payment.component.ts","webpack:///./src/app/settings/payment.component.html","webpack:///./jslib/src/enums/fieldType.ts","webpack:///./jslib/src/models/view/folderView.ts","webpack:///./src/app/components/avatar.component.ts","webpack:///./jslib/src/models/domain/collection.ts","webpack:///./jslib/src/enums/policyType.ts","webpack:///./src/app/settings/tax-info.component.ts","webpack:///./src/app/settings/tax-info.component.html","webpack:///./jslib/src/models/view/cipherView.ts","webpack:///./jslib/src/models/view/identityView.ts","webpack:///./jslib/src/models/data/collectionData.ts","webpack:///./jslib/src/models/view/collectionView.ts","webpack:///./jslib/src/enums/organizationUserStatusType.ts","webpack:///./jslib/src/models/data/cipherData.ts","webpack:///./jslib/src/models/view/loginView.ts","webpack:///./jslib/src/enums/sendType.ts","webpack:///./src/app/settings/two-factor-verify.component.ts","webpack:///./src/app/settings/two-factor-verify.component.html","webpack:///./jslib/src/abstractions/export.service.ts","webpack:///./jslib/src/models/domain/cipher.ts","webpack:///./jslib/src/abstractions/send.service.ts","webpack:///./jslib/src/models/view/fieldView.ts","webpack:///./jslib/src/models/request/cipherRequest.ts","webpack:///./src/app/services/router.service.ts","webpack:///./jslib/src/enums/kdfType.ts","webpack:///./src/app/components/password-strength.component.ts","webpack:///./src/app/components/password-strength.component.html","webpack:///./jslib/src/enums/organizationUserType.ts","webpack:///./jslib/src/angular/pipes/search.pipe.ts","webpack:///./src/app/services/event.service.ts","webpack:///./jslib/src/enums/eventType.ts","webpack:///./jslib/src/enums/paymentMethodType.ts","webpack:///./src/app/settings/two-factor-base.component.ts","webpack:///./src/app/tools/cipher-report.component.ts","webpack:///./jslib/src/models/view/loginUriView.ts","webpack:///./src/app/vault/add-edit.component.ts","webpack:///./src/app/vault/add-edit.component.html","webpack:///./jslib/src/abstractions/import.service.ts","webpack:///./src/app/vault/ciphers.component.ts","webpack:///./src/app/vault/ciphers.component.html","webpack:///./jslib/src/services/auth.service.ts","webpack:///./jslib/src/models/request/selectionReadOnlyRequest.ts","webpack:///./jslib/src/enums/deviceType.ts","webpack:///./jslib/src/abstractions/settings.service.ts","webpack:///./jslib/src/enums/planType.ts","webpack:///./src/app/settings/organization-plans.component.ts","webpack:///./src/app/settings/organization-plans.component.html","webpack:///./jslib/src/models/domain/symmetricCryptoKey.ts","webpack:///./jslib/src/models/domain/card.ts","webpack:///./jslib/src/models/domain/field.ts","webpack:///./jslib/src/models/domain/identity.ts","webpack:///./jslib/src/models/domain/login.ts","webpack:///./jslib/src/models/domain/loginUri.ts","webpack:///./jslib/src/enums/uriMatchType.ts","webpack:///./jslib/src/models/domain/secureNote.ts","webpack:///./jslib/src/angular/directives/true-false-value.directive.ts","webpack:///./src/app/vault/groupings.component.ts","webpack:///./src/app/vault/groupings.component.html","webpack:///./jslib/src/models/domain/organization.ts","webpack:///./jslib/src/models/view/sendFileView.ts","webpack:///./jslib/src/models/view/sendTextView.ts","webpack:///./src/app/settings/organizations.component.ts","webpack:///./src/app/settings/organizations.component.html","webpack:///./jslib/src/models/response/selectionReadOnlyResponse.ts","webpack:///./src/app/layouts/navbar.component.ts","webpack:///./src/app/layouts/navbar.component.html","webpack:///./src/app/layouts/footer.component.ts","webpack:///./src/app/layouts/footer.component.html","webpack:///./jslib/src/angular/services/validation.service.ts","webpack:///./jslib/src/enums/encryptionType.ts","webpack:///./jslib/src/models/request/keysRequest.ts","webpack:///./jslib/src/models/domain/policy.ts","webpack:///./jslib/src/models/data/policyData.ts","webpack:///./jslib/src/angular/components/change-password.component.ts","webpack:///./src/app/organizations/manage/entity-users.component.ts","webpack:///./src/app/organizations/manage/entity-users.component.html","webpack:///./src/app/organizations/manage/entity-events.component.ts","webpack:///./src/app/organizations/manage/entity-events.component.html","webpack:///./jslib/src/models/api/permissionsApi.ts","webpack:///./src/app/settings/api-key.component.ts","webpack:///./src/app/settings/api-key.component.html","webpack:///./src/app/settings/purge-vault.component.ts","webpack:///./src/app/settings/purge-vault.component.html","webpack:///./src/app/settings/user-billing.component.ts","webpack:///./src/app/settings/user-billing.component.html","webpack:///./src/app/settings/add-credit.component.ts","webpack:///./src/app/settings/add-credit.component.html","webpack:///./src/app/settings/adjust-payment.component.ts","webpack:///./src/app/settings/adjust-payment.component.html","webpack:///./src/app/settings/update-license.component.ts","webpack:///./src/app/settings/update-license.component.html","webpack:///./jslib/src/enums/productType.ts","webpack:///./src/app/settings/adjust-storage.component.ts","webpack:///./src/app/settings/adjust-storage.component.html","webpack:///./src/app/settings/two-factor-duo.component.ts","webpack:///./src/app/settings/two-factor-duo.component.html","webpack:///./src/app/settings/two-factor-setup.component.ts","webpack:///./src/app/settings/two-factor-setup.component.html","webpack:///./src/app/tools/export.component.ts","webpack:///./src/app/tools/export.component.html","webpack:///./src/app/tools/exposed-passwords-report.component.ts","webpack:///./src/app/tools/exposed-passwords-report.component.html","webpack:///./src/app/organizations/vault/add-edit.component.ts","webpack:///./jslib/src/models/data/attachmentData.ts","webpack:///./jslib/src/models/data/cardData.ts","webpack:///./jslib/src/models/data/fieldData.ts","webpack:///./jslib/src/models/data/identityData.ts","webpack:///./jslib/src/models/data/loginData.ts","webpack:///./jslib/src/models/data/loginUriData.ts","webpack:///./jslib/src/models/data/secureNoteData.ts","webpack:///./jslib/src/models/domain/attachment.ts","webpack:///./jslib/src/models/view/passwordHistoryView.ts","webpack:///./src/app/tools/import.component.ts","webpack:///./src/app/tools/import.component.html","webpack:///./src/app/tools/inactive-two-factor-report.component.ts","webpack:///./src/app/tools/inactive-two-factor-report.component.html","webpack:///./src/app/tools/reused-passwords-report.component.ts","webpack:///./src/app/tools/reused-passwords-report.component.html","webpack:///./src/app/tools/unsecured-websites-report.component.ts","webpack:///./src/app/tools/unsecured-websites-report.component.html","webpack:///./src/app/tools/weak-passwords-report.component.ts","webpack:///./src/app/tools/weak-passwords-report.component.html","webpack:///./src/app/vault/attachments.component.ts","webpack:///./src/app/vault/attachments.component.html","webpack:///./src/app/organizations/vault/ciphers.component.ts","webpack:///./src/app/vault/collections.component.ts","webpack:///./src/app/vault/collections.component.html","webpack:///./src/app/organizations/vault/groupings.component.ts","webpack:///./src/app/vault/bulk-actions.component.ts","webpack:///./src/app/vault/bulk-actions.component.html","webpack:///./jslib/src/models/domain/sendFile.ts","webpack:///./jslib/src/models/domain/sendText.ts","webpack:///./jslib/src/models/response/errorResponse.ts","webpack:///./jslib/src/models/request/cipherWithIdRequest.ts","webpack:///./jslib/src/models/request/folderRequest.ts","webpack:///./jslib/src/angular/directives/select-copy.directive.ts","webpack:///./jslib/src/angular/pipes/color-password.pipe.ts","webpack:///./jslib/src/models/data/folderData.ts","webpack:///./jslib/src/models/domain/folder.ts","webpack:///./jslib/src/models/response/cipherResponse.ts","webpack:///./jslib/src/models/response/profileResponse.ts","webpack:///./jslib/src/models/api/sendFileApi.ts","webpack:///./jslib/src/models/api/sendTextApi.ts","webpack:///./jslib/src/abstractions/notifications.service.ts","webpack:///./$_lazy_route_resource lazy namespace object","webpack:///./src/app/layouts/frontend-layout.component.ts","webpack:///./src/app/layouts/frontend-layout.component.html","webpack:///./src/app/layouts/organization-layout.component.ts","webpack:///./src/app/layouts/organization-layout.component.html","webpack:///./src/app/layouts/user-layout.component.ts","webpack:///./src/app/layouts/user-layout.component.html","webpack:///./src/app/accounts/accept-emergency.component.ts","webpack:///./src/app/accounts/accept-emergency.component.html","webpack:///./src/app/accounts/accept-organization.component.ts","webpack:///./src/app/accounts/accept-organization.component.html","webpack:///./src/app/accounts/hint.component.ts","webpack:///./src/app/accounts/hint.component.html","webpack:///./src/app/accounts/lock.component.ts","webpack:///./src/app/accounts/lock.component.html","webpack:///./src/app/accounts/login.component.ts","webpack:///./src/app/accounts/login.component.html","webpack:///./src/app/accounts/recover-delete.component.ts","webpack:///./src/app/accounts/recover-delete.component.html","webpack:///./src/app/accounts/recover-two-factor.component.ts","webpack:///./src/app/accounts/recover-two-factor.component.html","webpack:///./src/app/accounts/register.component.ts","webpack:///./src/app/accounts/register.component.html","webpack:///./src/app/accounts/set-password.component.ts","webpack:///./src/app/accounts/set-password.component.html","webpack:///./src/app/accounts/sso.component.ts","webpack:///./src/app/accounts/sso.component.html","webpack:///./jslib/src/angular/components/sso.component.ts","webpack:///./src/app/accounts/two-factor.component.ts","webpack:///./src/app/accounts/two-factor.component.html","webpack:///./src/app/accounts/two-factor-options.component.ts","webpack:///./src/app/accounts/two-factor-options.component.html","webpack:///./jslib/src/models/request/twoFactorEmailRequest.ts","webpack:///./jslib/src/models/domain/authResult.ts","webpack:///./src/app/accounts/verify-email-token.component.ts","webpack:///./src/app/accounts/verify-email-token.component.html","webpack:///./src/app/accounts/verify-recover-delete.component.ts","webpack:///./src/app/accounts/verify-recover-delete.component.html","webpack:///./src/app/organizations/manage/collections.component.ts","webpack:///./src/app/organizations/manage/collections.component.html","webpack:///./src/app/organizations/manage/collection-add-edit.component.ts","webpack:///./src/app/organizations/manage/collection-add-edit.component.html","webpack:///./jslib/src/models/request/collectionRequest.ts","webpack:///./src/app/organizations/manage/events.component.ts","webpack:///./src/app/organizations/manage/events.component.html","webpack:///./src/app/organizations/manage/groups.component.ts","webpack:///./src/app/organizations/manage/groups.component.html","webpack:///./src/app/organizations/manage/group-add-edit.component.ts","webpack:///./src/app/organizations/manage/group-add-edit.component.html","webpack:///./src/app/organizations/manage/manage.component.ts","webpack:///./src/app/organizations/manage/manage.component.html","webpack:///./src/app/organizations/manage/people.component.ts","webpack:///./src/app/organizations/manage/people.component.html","webpack:///./jslib/src/models/request/organizationUserConfirmRequest.ts","webpack:///./src/app/organizations/manage/user-add-edit.component.ts","webpack:///./src/app/organizations/manage/user-add-edit.component.html","webpack:///./src/app/organizations/manage/user-confirm.component.ts","webpack:///./src/app/organizations/manage/user-confirm.component.html","webpack:///./src/app/organizations/manage/user-groups.component.ts","webpack:///./src/app/organizations/manage/user-groups.component.html","webpack:///./src/app/organizations/manage/policies.component.ts","webpack:///./src/app/organizations/manage/policies.component.html","webpack:///./jslib/src/abstractions/index.ts","webpack:///./src/app/organizations/manage/policy-edit.component.ts","webpack:///./src/app/organizations/manage/policy-edit.component.html","webpack:///./src/app/organizations/settings/account.component.ts","webpack:///./src/app/organizations/settings/account.component.html","webpack:///./jslib/src/models/request/organizationTaxInfoUpdateRequest.ts","webpack:///./jslib/src/models/request/taxInfoUpdateRequest.ts","webpack:///./src/app/organizations/settings/delete-organization.component.ts","webpack:///./src/app/organizations/settings/delete-organization.component.html","webpack:///./src/app/organizations/settings/organization-billing.component.ts","webpack:///./src/services/webConstants.ts","webpack:///./src/app/organizations/settings/organization-subscription.component.ts","webpack:///./src/app/organizations/settings/organization-subscription.component.html","webpack:///./src/app/organizations/settings/change-plan.component.ts","webpack:///./src/app/organizations/settings/change-plan.component.html","webpack:///./src/app/organizations/settings/download-license.component.ts","webpack:///./src/app/organizations/settings/download-license.component.html","webpack:///./src/app/organizations/settings/adjust-seats.component.ts","webpack:///./src/app/organizations/settings/adjust-seats.component.html","webpack:///./src/app/organizations/settings/settings.component.ts","webpack:///./src/app/organizations/settings/settings.component.html","webpack:///./src/app/organizations/settings/two-factor-setup.component.ts","webpack:///./src/app/settings/two-factor-authenticator.component.ts","webpack:///./src/app/settings/two-factor-authenticator.component.html","webpack:///./src/app/settings/two-factor-email.component.ts","webpack:///./src/app/settings/two-factor-email.component.html","webpack:///./src/app/settings/two-factor-recovery.component.ts","webpack:///./src/app/settings/two-factor-recovery.component.html","webpack:///./src/app/settings/two-factor-u2f.component.ts","webpack:///./src/app/settings/two-factor-u2f.component.html","webpack:///./src/app/settings/two-factor-yubikey.component.ts","webpack:///./src/app/settings/two-factor-yubikey.component.html","webpack:///./src/app/organizations/tools/export.component.ts","webpack:///./src/app/organizations/tools/exposed-passwords-report.component.ts","webpack:///./jslib/src/models/data/passwordHistoryData.ts","webpack:///./jslib/src/models/view/attachmentView.ts","webpack:///./jslib/src/models/domain/password.ts","webpack:///./jslib/src/models/request/cipherCreateRequest.ts","webpack:///./jslib/src/models/api/cardApi.ts","webpack:///./jslib/src/models/api/fieldApi.ts","webpack:///./jslib/src/models/api/identityApi.ts","webpack:///./jslib/src/models/api/loginApi.ts","webpack:///./jslib/src/models/api/loginUriApi.ts","webpack:///./jslib/src/models/api/secureNoteApi.ts","webpack:///./jslib/src/angular/directives/fallback-src.directive.ts","webpack:///./src/app/organizations/tools/import.component.ts","webpack:///./src/app/organizations/tools/inactive-two-factor-report.component.ts","webpack:///./src/app/organizations/tools/reused-passwords-report.component.ts","webpack:///./src/app/organizations/tools/tools.component.ts","webpack:///./src/app/organizations/tools/tools.component.html","webpack:///./src/app/organizations/tools/unsecured-websites-report.component.ts","webpack:///./src/app/organizations/tools/weak-passwords-report.component.ts","webpack:///./src/app/organizations/vault/vault.component.ts","webpack:///./src/app/organizations/vault/vault.component.html","webpack:///./src/app/organizations/vault/attachments.component.ts","webpack:///./jslib/src/angular/components/attachments.component.ts","webpack:///./src/app/organizations/vault/collections.component.ts","webpack:///./jslib/src/models/request/cipherCollectionsRequest.ts","webpack:///./src/app/vault/bulk-delete.component.ts","webpack:///./src/app/vault/bulk-delete.component.html","webpack:///./jslib/src/models/request/cipherBulkDeleteRequest.ts","webpack:///./src/app/vault/bulk-move.component.ts","webpack:///./src/app/vault/bulk-move.component.html","webpack:///./src/app/vault/bulk-restore.component.ts","webpack:///./src/app/vault/bulk-restore.component.html","webpack:///./src/app/vault/bulk-share.component.ts","webpack:///./src/app/vault/bulk-share.component.html","webpack:///./src/app/send/access.component.ts","webpack:///./src/app/send/access.component.html","webpack:///./src/app/send/send.component.ts","webpack:///./src/app/send/send.component.html","webpack:///./src/app/send/add-edit.component.ts","webpack:///./src/app/send/add-edit.component.html","webpack:///./jslib/src/models/view/sendView.ts","webpack:///./src/app/settings/account.component.ts","webpack:///./src/app/settings/account.component.html","webpack:///./src/app/settings/deauthorize-sessions.component.ts","webpack:///./src/app/settings/deauthorize-sessions.component.html","webpack:///./src/app/settings/delete-account.component.ts","webpack:///./src/app/settings/delete-account.component.html","webpack:///./src/app/settings/profile.component.ts","webpack:///./src/app/settings/profile.component.html","webpack:///./src/app/settings/change-email.component.ts","webpack:///./src/app/settings/change-email.component.html","webpack:///./jslib/src/models/request/emailTokenRequest.ts","webpack:///./src/app/settings/change-password.component.ts","webpack:///./src/app/settings/change-password.component.html","webpack:///./jslib/src/enums/emergencyAccessStatusType.ts","webpack:///./jslib/src/models/request/emergencyAccessUpdateRequest.ts","webpack:///./jslib/src/models/request/folderWithIdRequest.ts","webpack:///./jslib/src/models/request/passwordRequest.ts","webpack:///./jslib/src/models/request/updateKeyRequest.ts","webpack:///./src/app/settings/change-kdf.component.ts","webpack:///./src/app/settings/change-kdf.component.html","webpack:///./src/app/settings/create-organization.component.ts","webpack:///./src/app/settings/create-organization.component.html","webpack:///./src/app/settings/domain-rules.component.ts","webpack:///./src/app/settings/domain-rules.component.html","webpack:///./src/app/settings/options.component.ts","webpack:///./src/app/settings/options.component.html","webpack:///./src/app/settings/link-sso.component.ts","webpack:///./src/app/settings/link-sso.component.html","webpack:///./src/app/settings/premium.component.ts","webpack:///./src/app/settings/premium.component.html","webpack:///./src/app/settings/settings.component.ts","webpack:///./src/app/settings/settings.component.html","webpack:///./src/app/settings/user-subscription.component.ts","webpack:///./src/app/settings/user-subscription.component.html","webpack:///./src/app/tools/breach-report.component.ts","webpack:///./src/app/tools/breach-report.component.html","webpack:///./src/app/tools/password-generator.component.ts","webpack:///./src/app/tools/password-generator.component.html","webpack:///./src/app/tools/password-generator-history.component.ts","webpack:///./src/app/tools/password-generator-history.component.html","webpack:///./src/app/tools/tools.component.ts","webpack:///./src/app/tools/tools.component.html","webpack:///./src/app/vault/vault.component.ts","webpack:///./src/app/vault/vault.component.html","webpack:///./src/app/settings/update-key.component.ts","webpack:///./src/app/settings/update-key.component.html","webpack:///./src/app/vault/folder-add-edit.component.ts","webpack:///./src/app/vault/folder-add-edit.component.html","webpack:///./src/app/vault/share.component.ts","webpack:///./src/app/vault/share.component.html","webpack:///./src/app/vault/send-info.component.ts","webpack:///./src/app/vault/send-info.component.html","webpack:///./src/app/settings/verify-email.component.ts","webpack:///./src/app/settings/verify-email.component.html","webpack:///./src/app/services/organization-guard.service.ts","webpack:///./src/app/services/organization-type-guard.service.ts","webpack:///./jslib/src/enums/permissions.ts","webpack:///./src/app/services/unauth-guard.service.ts","webpack:///./jslib/src/angular/services/auth-guard.service.ts","webpack:///./src/app/settings/emergency-access-view.component.ts","webpack:///./src/app/settings/emergency-access-view.component.html","webpack:///./jslib/src/models/domain/encryptedObject.ts","webpack:///./jslib/src/models/domain/environmentUrls.ts","webpack:///./jslib/src/models/domain/generatedPasswordHistory.ts","webpack:///./src/app/settings/emergency-access-attachments.component.ts","webpack:///./src/app/settings/emergency-add-edit.component.ts","webpack:///./src/app/settings/emergency-access.component.ts","webpack:///./src/app/settings/emergency-access.component.html","webpack:///./jslib/src/enums/emergencyAccessType.ts","webpack:///./jslib/src/models/response/emergencyAccessResponse.ts","webpack:///./src/app/settings/emergency-access-add-edit.component.ts","webpack:///./src/app/settings/emergency-access-add-edit.component.html","webpack:///./src/app/settings/emergency-access-confirm.component.ts","webpack:///./src/app/settings/emergency-access-confirm.component.html","webpack:///./src/app/settings/emergency-access-takeover.component.ts","webpack:///./src/app/settings/emergency-access-takeover.component.html","webpack:///./jslib/src/services/api.service.ts","webpack:///./jslib/src/models/response/collectionResponse.ts","webpack:///./jslib/src/models/response/domainsResponse.ts","webpack:///./jslib/src/models/response/folderResponse.ts","webpack:///./jslib/src/models/response/organizationResponse.ts","webpack:///./jslib/src/models/response/planResponse.ts","webpack:///./jslib/src/models/response/subscriptionResponse.ts","webpack:///./jslib/src/models/response/policyResponse.ts","webpack:///./jslib/src/models/response/sendResponse.ts","webpack:///./jslib/src/services/appId.service.ts","webpack:///./jslib/src/services/audit.service.ts","webpack:///./jslib/src/services/cipher.service.ts","webpack:///./jslib/src/misc/sequentialize.ts","webpack:///./jslib/src/services/collection.service.ts","webpack:///./jslib/src/misc/serviceUtils.ts","webpack:///./jslib/src/services/container.service.ts","webpack:///./jslib/src/services/crypto.service.ts","webpack:///./jslib/src/misc/wordlist.ts","webpack:///./jslib/src/services/environment.service.ts","webpack:///./jslib/src/services/folder.service.ts","webpack:///./jslib/src/services/i18n.service.ts","webpack:///./jslib/src/services/passwordGeneration.service.ts","webpack:///./jslib/src/services/settings.service.ts","webpack:///./jslib/src/services/state.service.ts","webpack:///./jslib/src/services/sync.service.ts","webpack:///./jslib/src/models/data/sendData.ts","webpack:///./jslib/src/services/token.service.ts","webpack:///./jslib/src/services/totp.service.ts","webpack:///./jslib/src/services/user.service.ts","webpack:///./jslib/src/services/vaultTimeout.service.ts","webpack:///./jslib/src/services/consoleLog.service.ts","webpack:///./jslib/src/models/export/cipherWithIds.ts","webpack:///./jslib/src/models/export/collectionWithId.ts","webpack:///./jslib/src/models/export/folderWithId.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordCsvImporter.ts","webpack:///./jslib/src/models/view/index.ts","webpack:///./jslib/src/enums/notificationType.ts","webpack:///./src/app/main.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./jslib/src/services/broadcaster.service.ts","webpack:///./jslib/src/misc/tldjs.noop.ts","webpack:///./jslib/src/models/request/emergencyAccessAcceptRequest.ts","webpack:///./jslib/src/models/request/organizationUserAcceptRequest.ts","webpack:///./jslib/src/angular/components/hint.component.ts","webpack:///./jslib/src/models/request/passwordHintRequest.ts","webpack:///./jslib/src/angular/components/lock.component.ts","webpack:///./jslib/src/angular/components/login.component.ts","webpack:///./jslib/src/models/request/deleteRecoverRequest.ts","webpack:///./jslib/src/models/request/twoFactorRecoveryRequest.ts","webpack:///./jslib/src/angular/components/register.component.ts","webpack:///./jslib/src/models/request/registerRequest.ts","webpack:///./jslib/src/models/request/referenceEventRequest.ts","webpack:///./jslib/src/angular/components/set-password.component.ts","webpack:///./jslib/src/models/request/setPasswordRequest.ts","webpack:///./jslib/src/angular/components/two-factor-options.component.ts","webpack:///./jslib/src/angular/components/modal.component.ts","webpack:///./jslib/src/angular/components/two-factor.component.ts","webpack:///./jslib/src/models/request/deviceRequest.ts","webpack:///./jslib/src/models/request/preloginRequest.ts","webpack:///./jslib/src/models/request/tokenRequest.ts","webpack:///./jslib/src/misc/u2f.ts","webpack:///./jslib/src/models/request/verifyEmailRequest.ts","webpack:///./jslib/src/models/request/verifyDeleteRecoverRequest.ts","webpack:///./jslib/src/models/request/groupRequest.ts","webpack:///./jslib/src/models/request/organizationUserInviteRequest.ts","webpack:///./jslib/src/models/request/organizationUserUpdateRequest.ts","webpack:///./jslib/src/models/request/organizationUserUpdateGroupsRequest.ts","webpack:///./jslib/src/abstractions/appId.service.ts","webpack:///./jslib/src/abstractions/log.service.ts","webpack:///./jslib/src/models/request/policyRequest.ts","webpack:///./jslib/src/models/request/organizationUpdateRequest.ts","webpack:///./jslib/src/enums/transactionType.ts","webpack:///./jslib/src/models/request/verifyBankRequest.ts","webpack:///./jslib/src/models/request/bitPayInvoiceRequest.ts","webpack:///./jslib/src/models/request/paymentRequest.ts","webpack:///./jslib/src/models/request/organizationCreateRequest.ts","webpack:///./jslib/src/models/request/organizationUpgradeRequest.ts","webpack:///./jslib/src/models/request/seatRequest.ts","webpack:///./jslib/src/models/request/storageRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorDuoRequest.ts","webpack:///./jslib/src/models/request/twoFactorProviderRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorAuthenticatorRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorEmailRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorU2fDeleteRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorU2fRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorYubioOtpRequest.ts","webpack:///./jslib/src/angular/components/export.component.ts","webpack:///./jslib/src/models/request/attachmentRequest.ts","webpack:///./jslib/src/angular/components/add-edit.component.ts","webpack:///./jslib/src/angular/components/ciphers.component.ts","webpack:///./jslib/src/angular/components/collections.component.ts","webpack:///./jslib/src/angular/components/groupings.component.ts","webpack:///./jslib/src/models/domain/sendAccess.ts","webpack:///./jslib/src/models/view/sendAccessView.ts","webpack:///./jslib/src/models/request/sendAccessRequest.ts","webpack:///./jslib/src/angular/components/send/send.component.ts","webpack:///./jslib/src/angular/components/send/add-edit.component.ts","webpack:///./jslib/src/models/request/updateProfileRequest.ts","webpack:///./jslib/src/models/request/emailRequest.ts","webpack:///./jslib/src/models/request/kdfRequest.ts","webpack:///./jslib/src/models/request/updateDomainsRequest.ts","webpack:///./jslib/src/angular/components/password-generator.component.ts","webpack:///./jslib/src/angular/components/password-generator-history.component.ts","webpack:///./jslib/src/angular/components/folder-add-edit.component.ts","webpack:///./jslib/src/angular/components/share.component.ts","webpack:///./jslib/src/models/data/index.ts","webpack:///./jslib/src/models/domain/index.ts","webpack:///./jslib/src/models/request/emergencyAccessConfirmRequest.ts","webpack:///./jslib/src/models/response/attachmentResponse.ts","webpack:///./jslib/src/models/response/passwordHistoryResponse.ts","webpack:///./jslib/src/models/request/emergencyAccessInviteRequest.ts","webpack:///./jslib/src/models/request/emergencyAccessPasswordRequest.ts","webpack:///./src/app/services/services.module.ts","webpack:///./src/services/broadcasterMessaging.service.ts","webpack:///./src/services/htmlStorage.service.ts","webpack:///./jslib/src/services/index.ts","webpack:///./jslib/src/models/response/apiKeyResponse.ts","webpack:///./jslib/src/models/response/billingResponse.ts","webpack:///./jslib/src/models/response/breachAccountResponse.ts","webpack:///./jslib/src/models/response/globalDomainResponse.ts","webpack:///./jslib/src/models/response/eventResponse.ts","webpack:///./jslib/src/models/response/groupResponse.ts","webpack:///./jslib/src/models/response/identityTokenResponse.ts","webpack:///./jslib/src/models/response/identityTwoFactorResponse.ts","webpack:///./jslib/src/models/response/listResponse.ts","webpack:///./jslib/src/models/response/organizationSubscriptionResponse.ts","webpack:///./jslib/src/models/response/organizationUserResponse.ts","webpack:///./jslib/src/models/response/paymentResponse.ts","webpack:///./jslib/src/models/response/profileOrganizationResponse.ts","webpack:///./jslib/src/models/response/preloginResponse.ts","webpack:///./jslib/src/models/response/sendAccessResponse.ts","webpack:///./jslib/src/models/response/sendFileDownloadDataResponse.ts","webpack:///./jslib/src/models/response/syncResponse.ts","webpack:///./jslib/src/models/response/taxInfoResponse.ts","webpack:///./jslib/src/models/response/taxRateResponse.ts","webpack:///./jslib/src/models/response/twoFactorAuthenticatorResponse.ts","webpack:///./jslib/src/models/response/twoFactorDuoResponse.ts","webpack:///./jslib/src/models/response/twoFactorEmailResponse.ts","webpack:///./jslib/src/models/response/twoFactorProviderResponse.ts","webpack:///./jslib/src/models/response/twoFactorRescoverResponse.ts","webpack:///./jslib/src/models/response/twoFactorU2fResponse.ts","webpack:///./jslib/src/models/response/twoFactorYubiKeyResponse.ts","webpack:///./jslib/src/models/response/userKeyResponse.ts","webpack:///./jslib/src/misc/throttle.ts","webpack:///./jslib/src/models/request/cipherBulkMoveRequest.ts","webpack:///./jslib/src/models/request/cipherBulkRestoreRequest.ts","webpack:///./jslib/src/models/request/cipherBulkShareRequest.ts","webpack:///./jslib/src/models/request/cipherShareRequest.ts","webpack:///./jslib/src/models/domain/sortedCiphersCache.ts","webpack:///./jslib/src/models/domain/treeNode.ts","webpack:///./jslib/src/models/domain/passwordGeneratorPolicyOptions.ts","webpack:///./jslib/src/models/data/organizationData.ts","webpack:///./jslib/src/models/data/sendFileData.ts","webpack:///./jslib/src/models/data/sendTextData.ts","webpack:///./src/services/i18n.service.ts","webpack:///./src/services/memoryStorage.service.ts","webpack:///./src/services/webPlatformUtils.service.ts","webpack:///./jslib/src/misc/analytics.ts","webpack:///./jslib/src/enums/logLevelType.ts","webpack:///./jslib/src/services/event.service.ts","webpack:///./jslib/src/models/data/eventData.ts","webpack:///./jslib/src/models/request/eventRequest.ts","webpack:///./jslib/src/services/export.service.ts","webpack:///./jslib/src/models/export/cipher.ts","webpack:///./jslib/src/models/export/card.ts","webpack:///./jslib/src/models/export/field.ts","webpack:///./jslib/src/models/export/identity.ts","webpack:///./jslib/src/models/export/login.ts","webpack:///./jslib/src/models/export/loginUri.ts","webpack:///./jslib/src/models/export/secureNote.ts","webpack:///./jslib/src/models/export/collection.ts","webpack:///./jslib/src/models/export/folder.ts","webpack:///./jslib/src/services/import.service.ts","webpack:///./jslib/src/models/request/importCiphersRequest.ts","webpack:///./jslib/src/models/request/importOrganizationCiphersRequest.ts","webpack:///./jslib/src/models/request/kvpRequest.ts","webpack:///./jslib/src/importers/ascendoCsvImporter.ts","webpack:///./jslib/src/importers/avastCsvImporter.ts","webpack:///./jslib/src/importers/avastJsonImporter.ts","webpack:///./jslib/src/importers/aviraCsvImporter.ts","webpack:///./jslib/src/importers/bitwardenCsvImporter.ts","webpack:///./jslib/src/importers/bitwardenJsonImporter.ts","webpack:///./jslib/src/importers/blackBerryCsvImporter.ts","webpack:///./jslib/src/importers/blurCsvImporter.ts","webpack:///./jslib/src/importers/buttercupCsvImporter.ts","webpack:///./jslib/src/importers/chromeCsvImporter.ts","webpack:///./jslib/src/importers/clipperzHtmlImporter.ts","webpack:///./jslib/src/importers/codebookCsvImporter.ts","webpack:///./jslib/src/importers/dashlaneJsonImporter.ts","webpack:///./jslib/src/importers/encryptrCsvImporter.ts","webpack:///./jslib/src/importers/enpassCsvImporter.ts","webpack:///./jslib/src/importers/enpassJsonImporter.ts","webpack:///./jslib/src/importers/firefoxCsvImporter.ts","webpack:///./jslib/src/importers/fsecureFskImporter.ts","webpack:///./jslib/src/importers/gnomeJsonImporter.ts","webpack:///./jslib/src/importers/kasperskyTxtImporter.ts","webpack:///./jslib/src/importers/keepass2XmlImporter.ts","webpack:///./jslib/src/importers/keepassxCsvImporter.ts","webpack:///./jslib/src/importers/keeperCsvImporter.ts","webpack:///./jslib/src/importers/lastpassCsvImporter.ts","webpack:///./jslib/src/importers/logMeOnceCsvImporter.ts","webpack:///./jslib/src/importers/meldiumCsvImporter.ts","webpack:///./jslib/src/importers/msecureCsvImporter.ts","webpack:///./jslib/src/importers/mykiCsvImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepassword1PifImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordMacCsvImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/cipherImportContext.ts","webpack:///./jslib/src/models/view/view.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordWinCsvImporter.ts","webpack:///./jslib/src/importers/padlockCsvImporter.ts","webpack:///./jslib/src/importers/passkeepCsvImporter.ts","webpack:///./jslib/src/importers/passmanJsonImporter.ts","webpack:///./jslib/src/importers/passpackCsvImporter.ts","webpack:///./jslib/src/importers/passwordAgentCsvImporter.ts","webpack:///./jslib/src/importers/passwordBossJsonImporter.ts","webpack:///./jslib/src/importers/passwordDragonXmlImporter.ts","webpack:///./jslib/src/importers/passwordSafeXmlImporter.ts","webpack:///./jslib/src/importers/passwordWalletTxtImporter.ts","webpack:///./jslib/src/importers/rememBearCsvImporter.ts","webpack:///./jslib/src/importers/roboformCsvImporter.ts","webpack:///./jslib/src/importers/safeInCloudXmlImporter.ts","webpack:///./jslib/src/importers/saferpassCsvImport.ts","webpack:///./jslib/src/importers/secureSafeCsvImporter.ts","webpack:///./jslib/src/importers/splashIdCsvImporter.ts","webpack:///./jslib/src/importers/stickyPasswordXmlImporter.ts","webpack:///./jslib/src/importers/truekeyCsvImporter.ts","webpack:///./jslib/src/importers/upmCsvImporter.ts","webpack:///./jslib/src/importers/yotiCsvImporter.ts","webpack:///./jslib/src/importers/zohoVaultCsvImporter.ts","webpack:///./jslib/src/services/notifications.service.ts","webpack:///./jslib/src/models/response/notificationResponse.ts","webpack:///./jslib/src/services/policy.service.ts","webpack:///./jslib/src/models/domain/masterPasswordPolicyOptions.ts","webpack:///./jslib/src/services/search.service.ts","webpack:///./jslib/src/services/send.service.ts","webpack:///./jslib/src/models/request/sendRequest.ts","webpack:///./jslib/src/models/domain/send.ts","webpack:///./jslib/src/services/webCryptoFunction.service.ts","webpack:///./jslib/src/models/domain/decryptParameters.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.component.html","webpack:///./jslib/src/angular/directives/blur-click.directive.ts","webpack:///./jslib/src/angular/directives/box-row.directive.ts","webpack:///./jslib/src/angular/pipes/search-ciphers.pipe.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","I18nService","PlatformUtilsService","ApiService","UserService","I18nPipe","i18nService","this","transform","id","p1","p2","p3","i0","ɵɵdirectiveInject","i1","pure","MessagingService","ApiActionDirective","el","validationService","ngOnChanges","changes","_this","appApiAction","then","nativeElement","loading","response","e","showError","ElementRef","ValidationService","selectors","inputs","features","ɵɵNgOnChangesFeature","A11yTitleDirective","renderer","title","ngOnInit","hasAttribute","setAttribute","Renderer2","appA11yTitle","CryptoService","CipherService","BaseResponse","getResponseProperty","propertyName","exactName","Error","undefined","otherCasePropertyName","charAt","toUpperCase","toLowerCase","ɵɵelement","ɵɵclassMapInterpolate1","ctx_r1","icon","ɵɵelementStart","ɵɵtext","ɵɵtemplate","CalloutComponent_h3_2_i_2_Template","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","ɵɵtextInterpolate1","CalloutComponent","type","calloutStyle","clickable","ngContentSelectors","_c1","decls","vars","consts","template","rf","ctx","CalloutComponent_h3_2_Template","ɵɵprojection","ɵɵpureFunction1","_c0","papa","cipherView_1","collectionView_1","loginUriView_1","utils_1","fieldView_1","folderView_1","loginView_1","secureNoteView_1","cipherType_1","fieldType_1","secureNoteType_1","consoleLog_service_1","BaseImporter","organizationId","logService","ConsoleLogService","newLineRegex","passwordFieldNames","usernameFieldNames","notesFieldNames","uriFieldNames","parseCsvOptions","encoding","skipEmptyLines","parseXml","doc","DOMParser","parseFromString","querySelector","parseCsv","header","options","parseOptions","assign","splitNewLine","join","trim","parse","errors","forEach","row","warning","message","parseSingleRowCsv","rowData","isNullOrWhitespace","parsedRow","makeUriArray","uri","loginUri","LoginUriView","fixUri","match","returnArr_1","u","indexOf","substring","nameFromUrl","url","hostname","Utils","getHostname","startsWith","replace","str","getValueOrDefault","defaultValue","split","getCardBrand","cardNum","re","RegExp","test","setCardExpiration","cipher","expiration","parts","month","year","substr","card","expMonth","expYear","moveFoldersToCollections","folderRelationships","collectionRelationships","collections","folders","map","f","collection","CollectionView","querySelectorDirectChild","parentEl","query","els","querySelectorAllDirectChild","Array","from","querySelectorAll","filter","parentNode","initLoginCipher","CipherView","favorite","notes","fields","login","LoginView","CipherType","Login","cleanupCipher","processKvp","FieldType","Text","search","field","FieldView","processFolder","folderName","folderIndex","hasFolder","addFolder","FolderView","ciphers","convertToNoteIfNeeded","username","password","uris","SecureNote","secureNote","SecureNoteView","SecureNoteType","Generic","ImportResult","success","tldjs","nodeURL","init","inited","isNode","process","release","isBrowser","isNativeScript","isMobileBrowser","isMobile","isAppleMobileBrowser","isAppleMobile","global","fromB64ToArray","Uint8Array","Buffer","binaryString","atob","bytes","charCodeAt","fromUrlB64ToArray","fromUrlB64ToB64","fromHexToArray","parseInt","fromUtf8ToArray","strUtf8","unescape","encodeURIComponent","arr","fromByteStringToArray","fromBufferToB64","buffer","toString","binary","byteLength","String","fromCharCode","btoa","fromBufferToUrlB64","fromB64toUrlB64","b64Str","fromBufferToUtf8","encodedString","decodeURIComponent","escape","fromBufferToByteString","fromBufferToHex","x","urlB64Str","output","fromUrlB64ToUtf8","fromB64ToUtf8","newGuid","Math","random","isGuid","uriString","getUrl","_a","getHost","host","getDomain","httpUrl","tldEndingRegex","getUrlObject","validIpAddress","urlDomain","domain","getQueryParams","Map","pair","set","getSortFunction","prop","a","b","collator","compare","localeCompare","nameOf","target","source","ipString","win","mobile","navigator","userAgent","vendor","opera","URL","hasProtocol","anchor","document","createElement","href","PasswordGenerationService","StopClickDirective","onClick","$event","preventDefault","hostBindings","StateService","CollectionService","StorageService","PolicyService","InputVerbatimDirective","condition","disableComplete","appInputVerbatim","FolderService","StopPropDirective","stopPropagation","AuthService","SyncService","EnvironmentService","AutofocusDirective","autofocus","focus","appAutofocus","ConstantsService","environmentUrlsKey","disableGaKey","disableAddLoginNotificationKey","disableContextMenuItemKey","disableFaviconKey","disableBadgeCounterKey","disableAutoTotpCopyKey","enableAutoFillOnPageLoadKey","vaultTimeoutKey","vaultTimeoutActionKey","lastActiveKey","neverDomainsKey","installedVersionKey","localeKey","themeKey","collapsedGroupingsKey","autoConfirmFingerprints","dontShowCardsCurrentTab","dontShowIdentitiesCurrentTab","defaultUriMatch","pinProtectedKey","protectedPin","clearClipboardKey","eventCollectionKey","ssoCodeVerifierKey","ssoStateKey","biometricUnlockKey","biometricText","biometricAwaitingAcceptance","biometricFingerprintValidated","disableChangedPasswordNotificationKey","EventService","PasswordVerificationRequest","SearchService","cipherString_1","Domain","buildDomainModel","dataObj","alreadyEncrypted","notEncList","objProp","CipherString","buildDataModel","notCipherStringList","encryptedString","decryptObj","viewModel","orgId","promises","self","theProp","Promise","resolve","mapProp","decrypt","val","all","sent","jq","modal_component_1","ModalComponent","_super","componentFactoryResolver","messagingService","__extends","ngOnDestroy","show","parentContainer","fade","setComponentParameters","factory","resolveComponentFactory","componentRef","container","createComponent","instance","modals","modal","on","onShow","emit","send","onShown","find","onClose","onClosed","clear","close","ComponentFactoryResolver","ɵɵInheritDefinitionFeature","ModalComponent_ng_template_0_Template","ɵɵtemplateRefExtractor","AuditService","CardView","cardholderName","code","_brand","_number","_subTitle","repeat","brand","number","count","exp","formatYear","TokenService","CryptoFunctionService","encryptionType_1","encryptedStringOrType","iv","mac","encType","encryptionType","headerPieces","encPieces","EncryptionType","AesCbc128_HmacSha256_B64","AesCbc256_B64","AesCbc256_HmacSha256_B64","Rsa2048_OaepSha256_B64","Rsa2048_OaepSha1_B64","decryptedValue","containerService","bitwardenContainerService","cryptoService","getCryptoService","getOrgKey","_b","decryptToUtf8","constants_service_1","ɵɵpropertyInterpolate","fallbackImage","image","ɵɵsanitizeUrl","IconMap","fa-globe","fa-sticky-note-o","fa-id-card-o","fa-credit-card","fa-android","fa-apple","IconComponent","environmentService","stateService","iconsUrl","baseUrl","imageEnabled","load","setLoginIcon","Card","Identity","hostnameUri","isWebsite","i2","IconComponent_img_2_Template","IconComponent_i_4_Template","broadcaster_service_1","BroadcasterService","ɵfac","VaultTimeoutService","TwoFactorProviderType","TotpService","paymentMethodType_1","webConstants_1","ɵɵlistener","ɵɵrestoreView","_r9","ɵɵnextContext","method","changeMethod","ctx_r5","paymentMethodType","BankAccount","ɵɵpipeBind1","_r12","ctx_r6","PayPal","_r15","ctx_r7","Credit","_r18","PaymentComponent_div_0_div_13_Template","PaymentComponent_div_0_div_15_Template","PaymentComponent_div_0_div_17_Template","hideBank","hidePaypal","hideCredit","ɵɵelementContainerStart","ɵɵelementContainerEnd","ɵɵtextInterpolate","_r21","bank","routing_number","account_number","account_holder_name","account_holder_type","ɵɵtextInterpolate2","ctx_r2","StripeElementStyle","base","color","fontFamily","fontSize","fontSmoothing","invalid","StripeElementClasses","empty","PaymentComponent","platformUtilsService","apiService","showMethods","showOptions","PaymentMethodType","currency","country","btInstance","stripe","stripeElements","stripeCardNumberElement","stripeCardExpiryElement","stripeCardCvcElement","stripeScript","src","async","onload","Stripe","isDev","WebConstants","stripeTestKey","stripeLiveKey","elements","setStripeElement","btScript","head","appendChild","removeChild","setTimeout","body","btStylesheet","braintree","dropin","authorization","btSandboxKey","btProductionKey","paymentOptionPriority","paypal","flow","buttonStyle","label","size","shape","createErr","console","error","createPaymentToken","reject","requestPaymentMethod","payload","nonce","catch","err","postSetupPayment","clientSecret","handleCardSetup","setupIntent","status","payment_method","createToken","token","handleStripeCardPayment","successCallback","__awaiter","paymentIntent","style","classes","placeholder","mount","PaymentComponent_div_0_Template","PaymentComponent_ng_container_2_Template","PaymentComponent_ng_container_4_Template","PaymentComponent_ng_container_6_Template","PaymentComponent_ng_container_8_Template","revisionDate","AvatarComponent","sanitizer","cryptoFunctionService","charCount","textColor","fontWeight","dynamic","circle","generate","email","hash","hashBytes","chars","upperData","getFirstLetters","charObj","getCharText","stringToColor","svg","getSvg","html","outerHTML","svgHtml","text","svgTag","backgroundColor","width","height","character","textTag","textContent","DomSanitizer","i3","Collection","obj","externalId","readOnly","hidePasswords","default","PolicyType","core_1","organizationTaxInfoUpdateRequest_1","taxInfoUpdateRequest_1","_r4","taxInfo","includeTaxId","_r6","taxId","_r8","line1","line2","city","state","TaxInfoComponent","route","onCountryChanged","EventEmitter","postalCode","pristine","parent","params","subscribe","getOrganizationTaxInfo","getTaxInfo","getTaxRates","taxRates","localTaxRate","rate","getTaxInfoRequest","request","OrganizationTaxInfoUpdateRequest","TaxInfoUpdateRequest","submitTaxInfo","hasChanged","putOrganizationTaxInfo","putTaxInfo","changeCountry","ActivatedRoute","outputs","TaxInfoComponent_div_779_Template","TaxInfoComponent_div_782_Template","TaxInfoComponent_div_784_Template","cardView_1","identityView_1","folderId","organizationUseTotp","edit","viewPassword","identity","IdentityView","attachments","passwordHistory","collectionIds","deletedDate","localData","subTitle","hasAttachments","passwordRevisionDate","middleName","address1","address2","address3","company","phone","ssn","passportNumber","licenseNumber","_firstName","_lastName","firstName","lastName","name_1","address","addressPart2","CollectionData","collection_1","OrganizationUserStatusType","attachmentData_1","cardData_1","fieldData_1","identityData_1","loginData_1","passwordHistoryData_1","secureNoteData_1","CipherData","userId","LoginData","SecureNoteData","CardData","IdentityData","FieldData","AttachmentData","ph","PasswordHistoryData","totp","hasUris","some","canLaunch","launchUri","SendType","twoFactorProviderType_1","passwordVerificationRequest_1","TwoFactorVerifyComponent","toasterService","onAuthed","submit","masterPassword","popAsync","hashPassword","masterPasswordHash","_d","formPromise","getTwoFactorRecover","Duo","OrganizationDuo","getTwoFactorOrganizationDuo","getTwoFactorDuo","Email","getTwoFactorEmail","U2f","getTwoFactorU2f","Authenticator","getTwoFactorAuthenticator","Yubikey","getTwoFactorYubiKey","ToasterService","i4","_r0","ExportService","cipherData_1","attachment_1","card_1","domainBase_1","field_1","identity_1","login_1","password_1","secureNote_1","Cipher","Date","Attachment","Field","Password","encKey","model","_f","_c","_e","attachments_1","reduce","promise","attachment","decAttachment","fields_1","decField","passwordHistory_1","decPh","toCipherData","toISOString","toLoginData","toSecureNoteData","toCardData","toIdentityData","toFieldData","toAttachmentData","toPasswordHistoryData","SendService","newField","showValue","cardApi_1","fieldApi_1","identityApi_1","loginApi_1","loginUriApi_1","secureNoteApi_1","attachmentRequest_1","CipherRequest","lastKnownRevisionDate","LoginApi","LoginUriApi","SecureNoteApi","CardApi","IdentityApi","FieldApi","lastUsedDate","attachments2","fileName","attachmentRequest","AttachmentRequest","router_1","RouterService","router","activatedRoute","titleService","previousUrl","currentUrl","events","event","NavigationEnd","titleId","rawTitle","child","firstChild","snapshot","newTitle","setTitle","getPreviousUrl","setPreviousUrl","ɵɵinject","Router","Title","KdfType","PasswordStrengthComponent","showText","scoreWidth","score","PasswordStrengthComponent_ng_container_4_Template","ɵɵattribute","OrganizationUserType","SearchPipe","items","searchText","prop1","prop2","prop3","deviceType_1","eventType_1","getDefaultDateFilters","end","getFullYear","getMonth","getDate","setDate","start","toDateTimeLocalString","formatDateFilters","filterStart","filterEnd","isNaN","getTime","getEventInfo","ev","EventOptions","appInfo","getAppInfo","deviceType","getEventMessage","appIcon","appName","msg","EventType","User_LoggedIn","User_ChangedPassword","User_Updated2fa","User_Disabled2fa","User_Recovered2fa","User_FailedLogIn","User_FailedLogIn2fa","User_ClientExportedVault","Cipher_Created","formatCipherId","Cipher_Updated","Cipher_Deleted","Cipher_SoftDeleted","Cipher_Restored","Cipher_AttachmentCreated","Cipher_AttachmentDeleted","Cipher_Shared","Cipher_ClientViewed","Cipher_ClientToggledPasswordVisible","Cipher_ClientToggledHiddenFieldVisible","Cipher_ClientToggledCardCodeVisible","Cipher_ClientCopiedHiddenField","Cipher_ClientCopiedPassword","Cipher_ClientCopiedCardCode","Cipher_ClientAutofilled","Cipher_UpdatedCollections","Collection_Created","formatCollectionId","Collection_Updated","Collection_Deleted","Group_Created","formatGroupId","Group_Updated","Group_Deleted","OrganizationUser_Invited","formatOrgUserId","OrganizationUser_Confirmed","OrganizationUser_Updated","OrganizationUser_Removed","OrganizationUser_UpdatedGroups","OrganizationUser_UnlinkedSso","Organization_Updated","Organization_PurgedVault","Policy_Updated","formatPolicyId","DeviceType","Android","iOS","UWP","ChromeExtension","FirefoxExtension","OperaExtension","EdgeExtension","VivaldiExtension","SafariExtension","WindowsDesktop","MacOsDesktop","LinuxDesktop","ChromeBrowser","FirefoxBrowser","OperaBrowser","SafariBrowser","VivaldiBrowser","EdgeBrowser","IEBrowser","UnknownBrowser","shortId","getShortId","cipherId","cipherInfo","makeAnchor","groupId","collectionId","organizationUserId","policyId","innerHTML","date","pad","getHours","getMinutes","num","norm","floor","abs","EventInfo","twoFactorProviderRequest_1","TwoFactorBaseComponent","analytics","onUpdated","twoFactorProviderType","enabled","authed","auth","authResponse","enable","enableFunction","eventTrack","next","action","disable","showDialog","TwoFactorProviderRequest","putTwoFactorOrganizationDisable","putTwoFactorDisable","Angulartics2","i5","add_edit_component_1","add_edit_component_2","CipherReportComponent","userService","requiresPaid","hasLoaded","setCiphers","selectCipher","childComponent","cipherAddEditModalRef","organization","AddEditComponent","onSavedCipher","onDeletedCipher","onRestoredCipher","checkAccess","useTotp","canAccessPremium","accessPremium","viewQuery","ViewContainerRef","uriMatchType_1","CanLaunchWhitelist","_uri","_domain","_hostname","_host","_canLaunch","UriMatchType","RegularExpression","o_r17","_r19","AddEditComponent_div_20_div_4_option_10_Template","isDeleted","typeOptions","f_r21","_r23","AddEditComponent_div_20_div_17_option_8_Template","viewOnly","_r31","ctx_r30","copy","_r35","generatePassword","AddEditComponent_div_20_ng_container_21_div_26_a_2_Template","_r37","checkPassword","ctx_r25","checkPasswordPromise","_r33","_r41","premiumRequired","_r43","upgradeOrganization","AddEditComponent_div_20_ng_container_21_div_64_a_5_Template","AddEditComponent_div_20_ng_container_21_div_64_a_7_Template","ctx_r26","ɵɵnamespaceSVG","ɵɵnamespaceHTML","_r45","ctx_r44","totpCode","ctx_r27","totpSec","totpDash","totpCodeFormatted","o_r51","_r54","u_r47","$implicit","removeUri","_r56","launch","loginUriMatchChanged","AddEditComponent_div_20_ng_container_21_ng_container_70_div_2_option_49_Template","AddEditComponent_div_20_ng_container_21_ng_container_70_div_2_button_52_Template","ɵɵpropertyInterpolate1","i_r48","ɵɵpipeBind2","ctx_r46","uriMatchOptions","AddEditComponent_div_20_ng_container_21_ng_container_70_div_2_Template","ctx_r28","trackByFunction","_r62","addUri","_r64","AddEditComponent_div_20_ng_container_21_div_14_Template","AddEditComponent_div_20_ng_container_21_div_26_Template","togglePassword","ctx_r67","AddEditComponent_div_20_ng_container_21_div_64_Template","AddEditComponent_div_20_ng_container_21_div_66_Template","AddEditComponent_div_20_ng_container_21_ng_container_70_Template","AddEditComponent_div_20_ng_container_21_a_72_Template","showPassword","ɵɵpureFunction2","_c2","totpLow","o_r71","o_r72","_r74","AddEditComponent_div_20_ng_container_24_option_21_Template","ctx_r77","AddEditComponent_div_20_ng_container_24_option_57_Template","toggleCardCode","ctx_r82","ctx_r8","cardBrandOptions","cardExpMonthOptions","showCardCode","o_r84","_r86","AddEditComponent_div_20_ng_container_27_option_12_Template","ctx_r9","identityTitleOptions","_r114","f_r105","i_r106","ctx_r107","_r120","toggleFieldValue","ctx_r123","fieldType","Hidden","ctx_r108","_r128","ctx_r109","_r132","removeField","_r134","AddEditComponent_div_20_div_42_div_2_div_28_Template","AddEditComponent_div_20_div_42_div_2_div_30_Template","AddEditComponent_div_20_div_42_div_2_input_34_Template","AddEditComponent_div_20_div_42_div_2_button_37_Template","AddEditComponent_div_20_div_42_div_2_button_39_Template","ctx_r104","Boolean","_r136","drop","AddEditComponent_div_20_div_42_div_2_Template","ctx_r10","_r138","addField","o_r140","_r142","addFieldType","AddEditComponent_div_20_div_46_option_10_Template","ctx_r12","addFieldTypeOptions","o_r144","_r146","organizationChanged","AddEditComponent_div_20_ng_container_48_option_16_Template","ctx_r13","ownershipOptions","_r154","checked","i_r152","c_r151","ctx_r150","AddEditComponent_div_20_ng_container_50_ng_container_8_div_2_Template","ctx_r149","AddEditComponent_div_20_ng_container_50_div_6_Template","AddEditComponent_div_20_ng_container_50_ng_container_8_Template","ctx_r14","ctx_r155","passwordRevisionDisplayDate","_r159","viewHistory","ctx_r156","ph_r161","AddEditComponent_div_20_ng_container_52_div_16_div_2_Template","ctx_r157","AddEditComponent_div_20_ng_container_52_div_12_Template","AddEditComponent_div_20_ng_container_52_div_14_Template","AddEditComponent_div_20_ng_container_52_div_16_Template","ctx_r15","showRevisionDate","hasPasswordHistory","viewingPasswordHistory","AddEditComponent_div_20_app_callout_2_Template","AddEditComponent_div_20_div_4_Template","_r163","AddEditComponent_div_20_div_17_Template","AddEditComponent_div_20_ng_container_21_Template","AddEditComponent_div_20_ng_container_24_Template","AddEditComponent_div_20_ng_container_27_Template","AddEditComponent_div_20_div_42_Template","AddEditComponent_div_20_a_44_Template","AddEditComponent_div_20_div_46_Template","AddEditComponent_div_20_ng_container_48_Template","AddEditComponent_div_20_ng_container_50_Template","AddEditComponent_div_20_ng_container_52_Template","allowOwnershipAssignment","allowPersonal","editMode","cipherType","hasFields","cloneMode","_r168","toggleFavorite","ctx_r165","_c3","_r171","delete","ctx_r166","_r169","deletePromise","AddEditComponent_div_30_button_2_Template","AddEditComponent_div_30_button_4_Template","ctx_r3","cipherService","folderService","auditService","collectionService","totpService","passwordGenerationService","eventService","policyService","cleanUp","totpUpdateCode","interval_1","getTimeInterval","totpTick","totpInterval","setInterval","typeI18nKey","aType","copyToClipboard","showToast","collect","confirmed","getOptions","clearInterval","getCode","half","intervalSeconds","epoch","round","mod","i6","i7","i8","i9","i10","i11","i12","i13","AddEditComponent_div_20_Template","AddEditComponent_button_24_Template","AddEditComponent_div_30_Template","ImportService","ciphers_component_1","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_20_ng_container_9_Template","showFixOldAttachments","c_r5","_r24","_r27","_r30","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_40_a_8_Template","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_40_a_10_Template","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_40_a_12_Template","displayTotpCopyButton","_r34","clone","share","_r40","_r46","restore","_r48","checkCipher","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_18_Template","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_20_Template","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_40_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_48_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_50_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_52_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_54_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_56_Template","ctx_r4","accessEvents","loadMore","CiphersComponent_ng_container_0_table_2_tr_4_Template","isPaging","filteredCiphers_r1","addCipher","CiphersComponent_ng_container_0_div_4_ng_container_4_button_6_Template","ctx_r59","showAddNew","CiphersComponent_ng_container_0_div_4_ng_container_2_Template","CiphersComponent_ng_container_0_div_4_ng_container_4_Template","loaded","CiphersComponent_ng_container_0_table_2_Template","CiphersComponent_ng_container_0_div_4_Template","CiphersComponent","searchService","onAttachmentsClicked","onShareClicked","onCollectionsClicked","onCloneClicked","userHasPremiumAccess","pageSize","selectAll","actionPromise","permanent","deleteCipher","refresh","restoreWithServer","select","selectCount","getSelected","getSelectedIds","hasTotp","deleteWithServer","softDeleteWithServer","hasOldAttachments","CiphersComponent_ng_container_0_Template","pagedCiphers","authResult_1","deviceRequest_1","keysRequest_1","preloginRequest_1","tokenRequest_1","TwoFactorProviders","description","priority","sort","premium","tokenService","appIdService","vaultTimeoutService","setCryptoKeys","selectedTwoFactorProviderType","logIn","makePreloginKey","hashedPassword","logInHelper","logInSso","codeVerifier","redirectUrl","logInApiKey","clientId","logInTwoFactor","twoFactorProvider","twoFactorToken","remember","ssoRedirectUrl","logInComplete","logInSsoComplete","logInApiKeyComplete","logOut","callback","getSupportedTwoFactorProviders","providers","twoFactorProvidersData","has","supportsDuo","supportsU2f","getDefaultTwoFactorProvider","u2fSupported","providerType","providerPriority","provider","kdf","kdfIterations","postPrelogin","PreloginRequest","preloginResponse","e_1","statusCode","makeKey","authingWithApiKey","authingWithSso","authingWithPassword","getTwoFactorToken","storedTwoFactorToken","getAppId","appId","deviceRequest","DeviceRequest","emailPassword","codeCodeVerifier","clientIdClientSecret","TokenRequest","Remember","postIdentityToken","clearState","AuthResult","twoFactor","accessToken","twoFactorResponse","twoFactorProviders2","twoFactorProviders","tokenResponse","resetMasterPassword","setTwoFactorToken","setTokens","refreshToken","setInformation","getUserId","getEmail","setKey","setKeyHash","setEncKey","privateKey","makeKeyPair","keyPair","postAccountKeys","KeysRequest","e_2","setEncPrivateKey","biometricLocked","SelectionReadOnlyRequest","SettingsService","PlanType","payment_component_1","tax_info_component_1","organizationUserStatusType_1","organizationUserType_1","planType_1","policyType_1","productType_1","organizationCreateRequest_1","organizationUpgradeRequest_1","_r5","_r3","_r14","billingEmail","_r17","businessName","selectableProduct_r18","trialPeriodDays","OrganizationPlansComponent_form_4_div_24_ng_container_11_small_6_Template","OrganizationPlansComponent_form_4_div_24_ng_container_11_small_8_Template","OrganizationPlansComponent_form_4_div_24_ng_container_11_small_10_Template","OrganizationPlansComponent_form_4_div_24_ng_container_11_small_12_Template","hasSelfHost","hasSso","hasPolicies","maxUsers","maxCollections","maxAdditionalSeats","baseStorageGb","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_1_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_3_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_5_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_7_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_9_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_11_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_13_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_15_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_17_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_19_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_21_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_23_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_25_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_27_Template","product","ctx_r21","productTypes","Free","hasGroups","hasApi","hasDirectory","usersGetPremium","ɵɵtextInterpolate3","seatPrice","OrganizationPlansComponent_form_4_div_24_span_16_ng_container_2_ng_container_5_Template","basePrice","baseSeats","hasAdditionalSeatsOption","OrganizationPlansComponent_form_4_div_24_span_16_ng_container_2_Template","_r59","changedProduct","OrganizationPlansComponent_form_4_div_24_ng_container_11_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_Template","OrganizationPlansComponent_form_4_div_24_span_16_Template","OrganizationPlansComponent_form_4_div_24_span_18_Template","OrganizationPlansComponent_form_4_div_24_span_20_Template","nameLocalizationKey","descriptionLocalizationKey","Enterprise","_r20","_r69","additionalSeats","ctx_r61","_r71","ctx_r62","ɵɵpipeBind3","selectedPlan","seatPriceMonthly","_r73","premiumAccessAddon","ctx_r63","ɵɵtextInterpolate5","selectablePlan_r74","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_5_span_2_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_5_span_4_Template","ctx_r78","seatTotal","ɵɵtextInterpolate6","ctx_r79","additionalStorage","additionalStoragePricePerGb","additionalStorageTotal","premiumAccessOptionCost","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_3_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_5_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_7_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_9_Template","hasAdditionalStorageOption","hasPremiumAccessOption","ctx_r75","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_5_span_2_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_5_span_4_Template","ctx_r89","ctx_r90","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_3_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_5_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_7_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_9_Template","ctx_r76","_r100","plan","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_Template","ctx_r64","isAnnual","selectedPlanInterval","OrganizationPlansComponent_form_4_div_26_ng_container_2_Template","OrganizationPlansComponent_form_4_div_26_div_8_Template","_r102","OrganizationPlansComponent_form_4_div_26_div_31_Template","OrganizationPlansComponent_form_4_div_26_div_38_Template","OrganizationPlansComponent_form_4_div_26_app_payment_46_Template","changedCountry","OrganizationPlansComponent_form_4_div_26_ng_container_80_Template","OrganizationPlansComponent_form_4_div_26_small_82_Template","ɵɵpipeBind4","additionalStoragePriceMonthly","selectablePlans","createOrganization","subtotal","taxCharges","total","_r105","cancel","_r107","OrganizationPlansComponent_form_4_div_7_Template","ownedBusiness","changedOwnedBusiness","OrganizationPlansComponent_form_4_div_18_Template","OrganizationPlansComponent_form_4_div_24_Template","OrganizationPlansComponent_form_4_div_26_Template","OrganizationPlansComponent_form_4_div_28_Template","OrganizationPlansComponent_form_4_button_42_Template","selectableProducts","singleOrgPolicyBlock","showCancel","OrganizationPlansComponent","syncService","showFree","ProductType","onSuccess","onCanceled","selfHosted","isSelfHost","getPlans","plans","Teams","validPlans","Custom","canBeUsedByBusiness","legacyYear","disabled","subTotal","premiumAccessOptionPrice","taxComponent","taxRate","TeamsAnnually","paymentComponent","getAll","SingleOrg","policies","getAllOrganizations","orgs","orgsWithSingleOrgPolicy_1","org","Owner","Admin","Invited","includes","files","fileEl","getElementById","doSubmit","tokenResult","makeShareKey","shareKey","encrypt","collectionCt","fd","FormData","append","postOrganizationLicense","OrganizationCreateRequest","collectionName","planType","paymentToken","additionalStorageGb","billingAddressPostalCode","billingAddressCountry","taxIdNumber","billingAddressLine1","billingAddressLine2","billingAddressCity","billingAddressState","postOrganization","OrganizationUpgradeRequest","postOrganizationUpgrade","paymentIntentClientSecret","refreshIdentityToken","fullSync","navigate","OrganizationPlansComponent_ng_container_0_Template","OrganizationPlansComponent_ng_container_2_Template","OrganizationPlansComponent_form_4_Template","SymmetricCryptoKey","macKey","keyB64","encKeyB64","macKeyB64","loginUri_1","LoginUri","view","toLoginUriData","loginUriData_1","LoginUriData","forms_1","TrueFalseValueDirective","elementRef","trueValue","falseValue","propagateChange","_","onHostChange","writeValue","setProperty","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","groupings_component_1","selectFavorites","selectedFavorites","_r7","selectTrash","selectedTrash","_r22","f_r15","collapse","node","ctx_r16","isCollapsed","_r26","editFolder","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_ul_14_ng_container_2_Template","_r10","children","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_i_4_Template","selectFolder","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_i_8_Template","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_a_11_Template","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_ul_14_Template","selectedFolder","selectedFolderId","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_Template","folders_r13","_r32","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_Template","GroupingsComponent_ng_container_78_ng_container_2_ng_container_17_Template","nestedFolders","_r44","c_r38","ctx_r39","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_ul_9_ng_container_2_Template","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_i_2_Template","_r49","selectCollection","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_i_6_Template","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_ul_9_Template","ctx_r37","selectedCollectionId","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_Template","collections_r36","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_Template","GroupingsComponent_ng_container_78_ng_container_4_ng_container_11_Template","nestedCollections","GroupingsComponent_ng_container_78_ng_container_2_Template","GroupingsComponent_ng_container_78_ng_container_4_Template","showFolders","showCollections","GroupingsComponent","storageService","onSearchTextChanged","searchPlaceholder","searchTextChanged","GroupingsComponent_li_28_Template","GroupingsComponent_li_30_Template","selectType","GroupingsComponent_p_76_Template","GroupingsComponent_ng_container_78_Template","selectedAll","showFavorites","showTrash","selectedType","Organization","usePolicies","useGroups","useDirectory","useEvents","use2fa","useApi","useBusinessPortal","useSso","selfHost","seats","maxStorageGb","ssoBound","identifier","permissions","Confirmed","Manager","isAdmin","accessBusinessPortal","accessEventLogs","accessImportExport","accessReports","manageAllCollections","isManager","manageAssignedCollections","manageGroups","manageSso","managePolicies","manageUsers","SendFileView","sizeName","SendTextView","hidden","OrganizationsComponent_ng_container_0_ng_container_4_ul_2_li_2_ng_container_6_Template","o_r7","OrganizationsComponent_ng_container_0_ng_container_4_ul_2_li_2_Template","organizations","OrganizationsComponent_ng_container_0_ng_container_4_ul_2_Template","OrganizationsComponent_ng_container_0_ng_container_4_p_4_Template","OrganizationsComponent_ng_container_0_p_2_Template","OrganizationsComponent_ng_container_0_ng_container_4_Template","_r25","unlinkSso","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_ng_container_27_a_2_Template","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_ng_container_27_ng_template_4_Template","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_ng_container_12_Template","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_ng_container_27_Template","_r29","leave","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_Template","OrganizationsComponent_ng_container_2_ng_container_19_ng_container_2_Template","OrganizationsComponent_ng_container_2_ng_container_19_table_4_Template","OrganizationsComponent_ng_container_2_ng_container_10_Template","OrganizationsComponent_ng_container_2_a_14_Template","OrganizationsComponent_ng_container_2_ng_container_17_Template","OrganizationsComponent_ng_container_2_ng_container_19_Template","OrganizationsComponent","vault","deleteSsoUser","postLeaveOrganization","OrganizationsComponent_ng_container_0_Template","OrganizationsComponent_ng_container_2_Template","SelectionReadOnlyResponse","NavbarComponent","getName","lock","NavbarComponent_div_55_Template","FooterComponent","version","getApplicationVersion","defaultErrorMessage","validationErrors","concat","getAllMessages","timeout","publicKey","encryptedPrivateKey","Policy","PolicyData","ChangePasswordComponent","getMasterPasswordPolicyOptions","enforcedPolicyOptions","getPasswordScoreAlertDisplay","minComplexity","strongPassword","setupSubmitActions","getKdf","getKdfIterations","getEncKey","makeEncKey","remakeEncKey","performSubmitActions","masterPasswordRetype","strengthResult","passwordStrength","getPasswordStrengthUserInput","evaluateMasterPassword","updatePasswordStrength","masterPasswordStrengthTimeout","clearTimeout","masterPasswordScore","userInput","atPosition","selectionReadOnlyRequest_1","selectedCount","u_r11","EntityUsersComponent_div_26_ng_container_30_tr_32_td_21_ng_container_2_Template","accessAll","_r28","check","selectedChanged","EntityUsersComponent_div_26_ng_container_30_tr_32_span_14_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_16_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_small_18_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_td_21_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_25_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_27_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_29_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_31_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_33_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_td_36_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_td_38_Template","entity","organizationUserStatusType","Accepted","organizationUserType","User","EntityUsersComponent_div_26_ng_container_30_th_18_Template","EntityUsersComponent_div_26_ng_container_30_th_24_Template","EntityUsersComponent_div_26_ng_container_30_th_26_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_Template","searchedUsers_r3","filterSelected","EntityUsersComponent_div_26_span_23_Template","EntityUsersComponent_div_26_ng_container_28_Template","EntityUsersComponent_div_26_ng_container_30_Template","showSelected","EntityUsersComponent","onEditedUsers","allUsers","loadUsers","getOrganizationUsers","users","getGroupUsers","entityId","user","getCollectionUsers","selections","putGroupUsers","putCollectionUsers","entityName","EntityUsersComponent_div_24_Template","EntityUsersComponent_div_26_Template","ɵɵpipeBindV","e_r9","userEmail","userName","EntityEventsComponent_div_24_table_36_tr_27_td_14_Template","ɵɵpropertyInterpolate2","ip","showUser","ɵɵsanitizeHtml","EntityEventsComponent_div_24_table_36_th_17_Template","EntityEventsComponent_div_24_table_36_tr_27_Template","loadEvents","morePromise","_r16","EntityEventsComponent_div_24_div_34_Template","EntityEventsComponent_div_24_table_36_Template","EntityEventsComponent_div_24_button_38_Template","refreshPromise","continuationToken","EntityEventsComponent","orgUsersUserIdMap","orgUsersIdMap","defaultDates","clearExisting","dates","getEventsOrganizationUser","getEventsCipher","actingUserId","eventInfo","ipAddress","EntityEventsComponent_small_11_Template","EntityEventsComponent_div_22_Template","EntityEventsComponent_div_24_Template","PermissionsApi","manageCiphers","apiKeyWarning","scope","grantType","isRotation","ApiKeyComponent","postKey","apiKey","keyType","ApiKeyComponent_ng_container_27_Template","ApiKeyComponent_app_callout_29_Template","ApiKeyComponent_app_callout_31_Template","ApiKeyComponent_button_36_Template","apiKeyTitle","apiKeyDescription","PurgeVaultComponent","postPurgeCiphers","transactionType_1","verifyBankRequest_1","addCredit","closeAddCredit","verifyBank","verifyAmount1","verifyAmount2","ctx_r20","verifyBankPromise","UserBillingComponent_ng_container_11_ng_container_25_app_callout_2_Template","UserBillingComponent_ng_container_11_ng_container_25_span_8_Template","paymentSource","needsVerification","ɵɵpureFunction6","Check","AppleInApp","GoogleInApp","paymentSourceInApp","changePayment","closePayment","UserBillingComponent_ng_container_11_table_37_tr_4_span_25_Template","UserBillingComponent_ng_container_11_table_37_tr_4_span_27_Template","i_r33","pdfUrl","amount","paid","UserBillingComponent_ng_container_11_table_37_tr_4_Template","invoices","ɵɵpureFunction4","t_r37","ctx_r40","WireTransfer","BitPay","UserBillingComponent_ng_container_11_table_45_tr_4_span_8_Template","UserBillingComponent_ng_container_11_table_45_tr_4_span_10_Template","UserBillingComponent_ng_container_11_table_45_tr_4_i_15_Template","createdDate","ctx_r36","transactionType","Charge","Refund","details","refunded","UserBillingComponent_ng_container_11_table_45_tr_4_Template","transactions","UserBillingComponent_ng_container_11_button_15_Template","UserBillingComponent_ng_container_11_app_add_credit_17_Template","UserBillingComponent_ng_container_11_p_23_Template","UserBillingComponent_ng_container_11_ng_container_25_Template","UserBillingComponent_ng_container_11_button_27_Template","UserBillingComponent_ng_container_11_app_adjust_payment_29_Template","UserBillingComponent_ng_container_11_p_35_Template","UserBillingComponent_ng_container_11_table_37_Template","UserBillingComponent_ng_container_11_p_43_Template","UserBillingComponent_ng_container_11_table_45_Template","isCreditBalance","creditOrBalance","showAddCredit","showAdjustPayment","UserBillingComponent","firstLoaded","TransactionType","getOrganizationBilling","billing","getUserBilling","VerifyBankRequest","amount1","amount2","postOrganizationVerifyBank","balance","UserBillingComponent_button_6_Template","UserBillingComponent_ng_container_9_Template","UserBillingComponent_ng_container_11_Template","bitPayInvoiceRequest_1","AddCreditComponent","onAdded","ppButtonFormAction","buttonActionProduction","ppButtonBusinessId","businessIdProduction","ppLoading","buttonActionSandbox","businessIdSandbox","creditAmount","ppButtonCustomField","getOrganization","subject","returnUrl","location","ppButtonFormRef","req","BitPayInvoiceRequest","credit","creditAmountNumber","postBitPayInvoice","bitPayUrl","formatAmount","floatAmount","parseFloat","toFixed","AddCreditComponent_div_14_Template","paymentRequest_1","AdjustPaymentComponent","onAdjusted","request_1","PaymentRequest","taxInfoComponent","postAccountPayment","postOrganizationPayment","currentType","UpdateLicenseComponent","updatePromise","postAccountLicense","postOrganizationLicenseUpdate","storageRequest_1","ɵɵtextInterpolate4","storageAdjustment","storageGbPrice","adjustedStorageTotal","interval","AdjustStorageComponent","add","StorageRequest","storageGbAdjustment","paymentFailed_1","postAccountStorage","postOrganizationStorage","relativeTo","AdjustStorageComponent_div_26_Template","updateTwoFactorDuoRequest_1","two_factor_base_component_1","ikey","skey","TwoFactorDuoComponent_form_25_ng_container_5_Template","TwoFactorDuoComponent_form_25_ng_container_7_Template","TwoFactorDuoComponent_form_25_span_17_Template","TwoFactorDuoComponent_form_25_span_19_Template","TwoFactorDuoComponent","processResponse","UpdateTwoFactorDuoRequest","integrationKey","secretKey","putTwoFactorOrganizationDuo","putTwoFactorDuo","TwoFactorDuoComponent_app_two_factor_verify_23_Template","TwoFactorDuoComponent_form_25_Template","auth_service_1","two_factor_authenticator_component_1","two_factor_duo_component_1","two_factor_email_component_1","two_factor_recovery_component_1","two_factor_u2f_component_1","two_factor_yubikey_component_1","recoveryCode","TwoFactorSetupComponent_li_23_ng_container_11_Template","TwoFactorSetupComponent_li_23_a_13_Template","p_r20","manage","TwoFactorSetupComponent","showPolicyWarning","filterProvider","getTwoFactorProviders","evaluatePolicies","openModal","authenticatorModalRef","TwoFactorAuthenticatorComponent","updateStatus","yubikeyModalRef","TwoFactorYubiKeyComponent","duoModalRef","emailModalRef","TwoFactorEmailComponent","u2fModalRef","TwoFactorU2fComponent","recoveryModalRef","TwoFactorRecoveryComponent","ref","TwoFactorAuthentication","TwoFactorSetupComponent_p_7_Template","TwoFactorSetupComponent_p_9_Template","TwoFactorSetupComponent_app_callout_11_Template","TwoFactorSetupComponent_small_16_Template","TwoFactorSetupComponent_app_callout_19_Template","TwoFactorSetupComponent_li_23_Template","TwoFactorSetupComponent_ng_template_26_Template","TwoFactorSetupComponent_ng_template_29_Template","TwoFactorSetupComponent_ng_template_32_Template","TwoFactorSetupComponent_ng_template_35_Template","TwoFactorSetupComponent_ng_template_38_Template","TwoFactorSetupComponent_ng_template_41_Template","_c6","export_component_1","ExportComponent","exportService","saved","format","cipher_report_component_1","c_r6","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_ng_container_9_Template","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_ng_template_11_Template","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_ng_container_14_Template","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_ng_container_16_Template","canManageCipher","exposedPasswordMap","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_Template","ExposedPasswordsReportComponent_div_21_app_callout_2_Template","ExposedPasswordsReportComponent_div_21_ng_container_4_Template","ExposedPasswordsReportComponent","getAllCiphers","allCiphers","exposedPasswordCiphers","passwordLeaked","exposedCount","getAllDecrypted","ExposedPasswordsReportComponent_div_21_Template","ExposedPasswordsReportComponent_ng_template_23_Template","cipher_1","cipherCreateRequest_1","cipherRequest_1","originalCipher","canManageAllCollections","loadCollections","loadCipher","getCipherAdmin","encryptCipher","saveCipher","putCipherAdmin","CipherCreateRequest","postCipherAdmin","deleteCipherAdmin","putDeleteCipherAdmin","i14","attachmentView_1","symmetricCryptoKey_1","AttachmentView","orgKey","decryptToBytes","decValue","PasswordHistoryView","sweetalert2_js_1","o_r4","o_r6","ImportComponent_ng_container_24_option_4_Template","importOptions","ImportComponent_app_callout_30_ng_container_26_span_2_Template","ctx_r19","ImportComponent_app_callout_30_ng_container_2_Template","ImportComponent_app_callout_30_ng_container_4_Template","ImportComponent_app_callout_30_ng_container_6_Template","ImportComponent_app_callout_30_ng_container_8_Template","ImportComponent_app_callout_30_ng_container_10_Template","ImportComponent_app_callout_30_ng_container_12_Template","ImportComponent_app_callout_30_ng_container_14_Template","ImportComponent_app_callout_30_ng_container_16_Template","ImportComponent_app_callout_30_ng_container_18_Template","ImportComponent_app_callout_30_ng_container_20_Template","ImportComponent_app_callout_30_ng_container_22_Template","ImportComponent_app_callout_30_ng_container_24_Template","ImportComponent_app_callout_30_ng_container_26_Template","ImportComponent_app_callout_30_ng_container_28_Template","ImportComponent_app_callout_30_ng_container_30_Template","ImportComponent_app_callout_30_ng_container_32_Template","ImportComponent_app_callout_30_ng_container_34_Template","ImportComponent_app_callout_30_ng_container_36_Template","ImportComponent_app_callout_30_ng_container_38_Template","ImportComponent_app_callout_30_ng_container_40_Template","ImportComponent_app_callout_30_ng_container_42_Template","ImportComponent_app_callout_30_ng_container_44_Template","ImportComponent_app_callout_30_ng_container_46_Template","ImportComponent_app_callout_30_ng_container_48_Template","ImportComponent_app_callout_30_ng_container_50_Template","ImportComponent_app_callout_30_ng_container_52_Template","ImportComponent_app_callout_30_ng_container_54_Template","ImportComponent_app_callout_30_ng_container_56_Template","ImportComponent_app_callout_30_ng_container_58_Template","ImportComponent_app_callout_30_ng_container_60_Template","ImportComponent_app_callout_30_ng_container_62_Template","ImportComponent_app_callout_30_ng_container_64_Template","ImportComponent_app_callout_30_ng_container_66_Template","ImportComponent_app_callout_30_ng_container_68_Template","ImportComponent_app_callout_30_ng_container_70_Template","ImportComponent_app_callout_30_ng_container_72_Template","ImportComponent_app_callout_30_ng_container_74_Template","ImportComponent_app_callout_30_ng_container_76_Template","ImportComponent_app_callout_30_ng_container_78_Template","ImportComponent_app_callout_30_ng_container_80_Template","ImportComponent_app_callout_30_ng_container_82_Template","ImportComponent_app_callout_30_ng_container_84_Template","ImportComponent_app_callout_30_ng_container_86_Template","ImportComponent_app_callout_30_ng_container_88_Template","ImportComponent_app_callout_30_ng_container_90_Template","ImportComponent_app_callout_30_ng_container_92_Template","ImportComponent_app_callout_30_ng_container_94_Template","ImportComponent_app_callout_30_ng_container_96_Template","ImportComponent_app_callout_30_ng_container_98_Template","getFormatInstructionTitle","ImportComponent","importService","successNavigate","setImportOptions","importer","getImporter","fileContents","getFileContents","content","import","properties","results","featuredImportOptions","__spreadArrays","regularImportOptions","fire","heightAuto","buttonsStyling","iconHtml","input","inputValue","inputAttributes","readonly","showConfirmButton","confirmButtonText","onOpen","popupEl","scrollTo","file","reader","FileReader","readAsText","evt","pre","onerror","ImportComponent_option_22_Template","ImportComponent_ng_container_24_Template","ImportComponent_app_callout_30_Template","ctx_r11","cipherDocs","c_r8","InactiveTwoFactorReportComponent_div_15_ng_container_4_tr_12_ng_container_13_Template","InactiveTwoFactorReportComponent_div_15_ng_container_4_tr_12_ng_container_15_Template","InactiveTwoFactorReportComponent_div_15_ng_container_4_tr_12_a_25_Template","InactiveTwoFactorReportComponent_div_15_ng_container_4_tr_12_Template","InactiveTwoFactorReportComponent_div_15_app_callout_2_Template","InactiveTwoFactorReportComponent_div_15_ng_container_4_Template","InactiveTwoFactorReportComponent","services","load2fa","inactive2faCiphers_1","docs_1","fetch","Request","json","categoryName","responseJson","serviceName","category","service","InactiveTwoFactorReportComponent_small_5_Template","InactiveTwoFactorReportComponent_div_13_Template","InactiveTwoFactorReportComponent_div_15_Template","InactiveTwoFactorReportComponent_ng_template_17_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_9_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_template_11_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_14_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_16_Template","passwordUseMap","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_Template","ReusedPasswordsReportComponent_div_15_app_callout_2_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_Template","ReusedPasswordsReportComponent","ciphersWithPasswords","reusedPasswordCiphers","ReusedPasswordsReportComponent_small_5_Template","ReusedPasswordsReportComponent_div_13_Template","ReusedPasswordsReportComponent_div_15_Template","ReusedPasswordsReportComponent_ng_template_17_Template","UnsecuredWebsitesReportComponent_div_15_ng_container_4_tr_12_ng_container_13_Template","UnsecuredWebsitesReportComponent_div_15_ng_container_4_tr_12_ng_container_15_Template","UnsecuredWebsitesReportComponent_div_15_ng_container_4_tr_12_Template","UnsecuredWebsitesReportComponent_div_15_app_callout_2_Template","UnsecuredWebsitesReportComponent_div_15_ng_container_4_Template","UnsecuredWebsitesReportComponent","unsecuredCiphers","UnsecuredWebsitesReportComponent_small_5_Template","UnsecuredWebsitesReportComponent_div_13_Template","UnsecuredWebsitesReportComponent_div_15_Template","UnsecuredWebsitesReportComponent_ng_template_17_Template","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_9_Template","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_template_11_Template","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_14_Template","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_16_Template","passwordStrengthMap","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_Template","WeakPasswordsReportComponent_div_15_app_callout_2_Template","WeakPasswordsReportComponent_div_15_ng_container_4_Template","WeakPasswordsReportComponent","passwordStrengthCache","weakPasswordCiphers","hasUsername","cacheKey","scoreKey","WeakPasswordsReportComponent_small_5_Template","WeakPasswordsReportComponent_div_13_Template","WeakPasswordsReportComponent_div_15_Template","WeakPasswordsReportComponent_ng_template_17_Template","attachments_component_1","a_r6","reupload","reuploadPromises","_r11","deletePromises","AttachmentsComponent_table_25_tr_4_i_4_Template","AttachmentsComponent_table_25_tr_4_i_6_Template","download","AttachmentsComponent_table_25_tr_4_div_16_Template","AttachmentsComponent_table_25_tr_4_td_23_Template","downloading","AttachmentsComponent_table_25_tr_4_Template","AttachmentsComponent","reuploadCipherAttachment","AttachmentsComponent_small_12_Template","AttachmentsComponent_table_25_Template","AttachmentsComponent_div_27_Template","AttachmentsComponent_button_32_Template","onEventsClicked","deleted","getAllFromApiForOrganization","applyFilter","searchPending","filteredCiphers","searchCiphersBasic","resetPaging","collections_component_1","c_r9","i_r10","CollectionsComponent_table_40_tr_4_Template","CollectionsComponent","CollectionsComponent_small_12_Template","CollectionsComponent_div_35_Template","CollectionsComponent_div_38_Template","CollectionsComponent_table_40_Template","collectionData_1","getCollections","collectionDomains","decryptMany","unassignedCollection","getAllNested","grouping","bulk_delete_component_1","bulk_move_component_1","bulk_restore_component_1","bulk_share_component_1","bulkMove","bulkShare","bulkRestore","BulkActionsComponent","bulkDelete","selectedIds","ciphersComponent","bulkDeleteModalRef","BulkDeleteComponent","cipherIds","onDeleted","bulkRestoreModalRef","BulkRestoreComponent","onRestored","selectedCiphers","bulkShareModalRef","BulkShareComponent","onShared","bulkMoveModalRef","BulkMoveComponent","onMoved","BulkActionsComponent_button_10_Template","BulkActionsComponent_button_12_Template","BulkActionsComponent_button_14_Template","BulkActionsComponent_ng_template_38_Template","BulkActionsComponent_ng_template_41_Template","BulkActionsComponent_ng_template_44_Template","BulkActionsComponent_ng_template_47_Template","sendFileView_1","SendFile","sendTextView_1","SendText","ErrorResponse","identityResponse","errorModel","responseErrorModel","getSingleMessage","messages","this_1","item","prefix","lastSep","lastIndexOf","CipherWithIdRequest","FolderRequest","folder","SelectCopyDirective","onCopy","copyText","selection","getSelection","rangeCount","getRangeAt","stringEndPos","newLinePos","ColorPasswordPipe","colorizedPassword","isSpecial","FolderData","Folder","attachmentResponse_1","baseResponse_1","passwordHistoryResponse_1","CipherResponse","AttachmentResponse","h","PasswordHistoryResponse","profileOrganizationResponse_1","ProfileResponse","emailVerified","masterPasswordHint","culture","twoFactorEnabled","securityStamp","ProfileOrganizationResponse","SendFileApi","SendTextApi","NotificationsService","webpackEmptyAsyncContext","keys","FrontendLayoutComponent","classList","remove","manageRoute","toolsRoute","OrganizationLayoutComponent_div_2_ul_23_li_11_Template","OrganizationLayoutComponent_div_2_ul_23_li_13_Template","OrganizationLayoutComponent_div_2_ul_23_li_15_Template","showManageTab","showToolsTab","isOwner","goToBusinessPortal","businessTokenPromise","OrganizationLayoutComponent_div_2_div_20_Template","OrganizationLayoutComponent_div_2_ul_23_Template","OrganizationLayoutComponent_div_2_button_28_Template","showMenuBar","showBusinessPortalButton","OrganizationLayoutComponent","broadcasterService","ngZone","businessUrl","enterpriseUrl","run","command","unsubscribe","getEnterprisePortalSignInToken","canManageUsers","canManageAssignedCollections","canManageGroups","canManagePolicies","canAccessEventLogs","canAccessImportExport","canAccessReports","canAccessBusinessPortal","NgZone","OrganizationLayoutComponent_div_2_Template","UserLayoutComponent","emergencyAccessAcceptRequest_1","AcceptEmergencyComponent","fired","queryParams","qParams","errorMessage","isAuthenticated","EmergencyAccessAcceptRequest","postEmergencyAccessAccept","toast","save","AcceptEmergencyComponent_div_0_Template","AcceptEmergencyComponent_div_2_Template","organizationUserAcceptRequest_1","orgName","AcceptOrganizationComponent","OrganizationUserAcceptRequest","postOrganizationUserAccept","organizationName","AcceptOrganizationComponent_div_0_Template","AcceptOrganizationComponent_div_2_Template","hint_component_1","HintComponent","lock_component_1","LockComponent","routerService","hasKey","onSuccessfulSubmit","successRoute","webVaultHostname","login_component_1","LoginComponent","authService","onSuccessfulLoginNavigate","goAfterLogIn","queryParamsSub","orgInvite","emergencyInvite","loginRedirect","rememberEmail","deleteRecoverRequest_1","RecoverDeleteComponent","DeleteRecoverRequest","postAccountRecoverDelete","twoFactorRecoveryRequest_1","RecoverTwoFactorComponent","TwoFactorRecoveryRequest","postTwoFactorRecover","register_component_1","policy_1","policyData_1","referenceEventRequest_1","RegisterComponent_div_9_div_4_Template","RegisterComponent_div_9_div_6_Template","RegisterComponent_div_9_div_8_Template","layout","minLength","RegisterComponent_app_callout_53_li_5_Template","RegisterComponent_app_callout_53_li_7_Template","RegisterComponent_app_callout_53_li_9_Template","RegisterComponent_app_callout_53_li_11_Template","RegisterComponent_app_callout_53_li_13_Template","RegisterComponent_app_callout_53_li_15_Template","requireUpper","requireLower","requireNumbers","requireSpecial","acceptPolicies","RegisterComponent","showCreateOrgMessage","referenceData","ReferenceEventRequest","reference","cookie","pop","invite","getPoliciesByToken","policiesData","RegisterComponent_header_2_Template","RegisterComponent_div_9_Template","RegisterComponent_p_17_Template","RegisterComponent_app_callout_23_Template","RegisterComponent_app_callout_53_Template","confirmMasterPassword","hint","RegisterComponent_div_117_Template","showTerms","_r1","set_password_component_1","SetPasswordComponent_div_15_app_callout_8_li_5_Template","SetPasswordComponent_div_15_app_callout_8_li_7_Template","SetPasswordComponent_div_15_app_callout_8_li_9_Template","SetPasswordComponent_div_15_app_callout_8_li_11_Template","SetPasswordComponent_div_15_app_callout_8_li_13_Template","SetPasswordComponent_div_15_app_callout_8_li_15_Template","SetPasswordComponent_div_15_app_callout_8_Template","SetPasswordComponent","SetPasswordComponent_div_13_Template","SetPasswordComponent_div_15_Template","syncLoading","sso_component_1","SsoComponent","redirectUri","origin","storedIdentifier","SsoComponent_div_11_Template","SsoComponent_div_13_Template","initiateSsoFormPromise","loggingIn","twoFactorRoute","changePasswordRoute","checkState","getOrgIdentiferFromState","codeChallenge","returnUri","includeUserIdentifier","preValidate","buildAuthorizeUrl","authorizeUrl","sameWindow","preValidateSso","passwordOptions","uppercase","lowercase","numbers","special","codeVerifierHash","identityBaseUrl","getSsoUserIdentifier","userIdentifier","orgIdFromState","onSuccessfulLoginTwoFactorNavigate","sso","onSuccessfulLoginChangePasswordNavigate","disableFavicon","onSuccessfulLogin","stateSplit","checkStateSplit","two_factor_options_component_1","two_factor_component_1","twoFactorEmail","sendEmail","emailPromise","TwoFactorComponent_ng_container_14_small_14_a_2_Template","selectedProviderType","TwoFactorComponent_ng_container_14_p_2_Template","TwoFactorComponent_ng_container_14_p_4_Template","TwoFactorComponent_ng_container_14_small_14_Template","TwoFactorComponent_ng_container_18_p_2_Template","TwoFactorComponent_ng_container_18_ng_container_4_Template","u2fReady","TwoFactorComponent","anotherMethod","twoFactorOptionsModal","TwoFactorOptionsComponent","onProviderSelected","onRecoverSelected","TwoFactorComponent_ng_container_14_Template","TwoFactorComponent_ng_container_16_Template","TwoFactorComponent_ng_container_18_Template","TwoFactorComponent_ng_container_20_Template","TwoFactorComponent_i_22_Template","TwoFactorComponent_div_24_Template","TwoFactorComponent_ng_container_26_Template","TwoFactorComponent_button_32_Template","TwoFactorComponent_ng_template_51_Template","p_r1","choose","TwoFactorOptionsComponent_a_22_Template","recover","TwoFactorEmailRequest","verifyEmailRequest_1","VerifyEmailTokenComponent","postAccountVerifyEmailToken","VerifyEmailRequest","verifyDeleteRecoverRequest_1","VerifyRecoverDeleteComponent","VerifyDeleteRecoverRequest","postAccountRecoverDeleteToken","collection_add_edit_component_1","entity_users_component_1","c_r10","CollectionsComponent_ng_container_28_table_4_tr_4_Template","searchedCollections_r6","CollectionsComponent_ng_container_28_p_2_Template","CollectionsComponent_ng_container_28_table_4_Template","didScroll","pagedCollectionsCount","getUserCollections","pagedLength","pagedCollections","pagedSize","addEditModalRef","CollectionAddEditComponent","onSavedCollection","onDeletedCollection","removeCollection","deleteCollection","usersModalRef","isSearching","isSearchable","searching","index","CollectionsComponent_ng_container_26_Template","CollectionsComponent_ng_container_28_Template","CollectionsComponent_ng_template_31_Template","CollectionsComponent_ng_template_34_Template","collectionRequest_1","g_r12","CollectionAddEditComponent_div_22_ng_container_24_table_10_tr_25_ng_container_9_Template","i_r13","CollectionAddEditComponent_div_22_ng_container_24_table_10_tr_25_Template","groups","CollectionAddEditComponent_div_22_ng_container_24_div_5_Template","CollectionAddEditComponent_div_22_ng_container_24_div_8_Template","CollectionAddEditComponent_div_22_ng_container_24_table_10_Template","CollectionAddEditComponent_div_22_ng_container_24_Template","accessGroups","getGroups","groupsResponse","getCollectionDetails","group","g","CollectionRequest","putCollection","postCollection","CollectionAddEditComponent_div_20_Template","CollectionAddEditComponent_div_22_Template","CollectionAddEditComponent_button_42_Template","e_r7","EventsComponent_ng_container_39_table_4_tr_29_Template","EventsComponent_ng_container_39_p_2_Template","EventsComponent_ng_container_39_table_4_Template","EventsComponent_ng_container_39_button_6_Template","EventsComponent","getEventsOrganization","EventsComponent_ng_container_37_Template","EventsComponent_ng_container_39_Template","group_add_edit_component_1","g_r10","GroupsComponent_ng_container_28_table_4_tr_4_Template","searchedGroups_r6","GroupsComponent_ng_container_28_p_2_Template","GroupsComponent_ng_container_28_table_4_Template","GroupsComponent","pagedGroupsCount","pagedGroups","GroupAddEditComponent","onSavedGroup","onDeletedGroup","removeGroup","deleteGroup","GroupsComponent_ng_container_26_Template","GroupsComponent_ng_container_28_Template","GroupsComponent_ng_template_31_Template","GroupsComponent_ng_template_34_Template","groupRequest_1","c_r12","GroupAddEditComponent_div_22_ng_container_60_table_4_tr_25_Template","GroupAddEditComponent_div_22_ng_container_60_div_2_Template","GroupAddEditComponent_div_22_ng_container_60_table_4_Template","GroupAddEditComponent_div_22_div_36_Template","access","GroupAddEditComponent_div_22_ng_container_60_Template","getGroupDetails","GroupRequest","putGroup","postGroup","GroupAddEditComponent_div_20_Template","GroupAddEditComponent_div_22_Template","GroupAddEditComponent_button_42_Template","ManageComponent_div_6_a_8_Template","ManageComponent_div_6_a_10_Template","ManageComponent_div_6_a_12_Template","ManageComponent_div_6_a_14_Template","ManageComponent_div_6_a_16_Template","accessPolicies","ManageComponent","ManageComponent_div_6_Template","organizationUserConfirmRequest_1","entity_events_component_1","user_add_edit_component_1","user_confirm_component_1","user_groups_component_1","allCount","invitedCount","acceptedCount","u_r18","reinvite","_r38","confirm","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_12_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_14_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_small_16_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_ng_container_21_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_26_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_28_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_30_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_32_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_34_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_a_49_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_a_51_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_a_53_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_a_55_Template","ctx_r17","PeopleComponent_ng_container_49_ng_container_4_app_callout_2_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_Template","showConfirmUsers","searchedUsers_r13","PeopleComponent_ng_container_49_p_2_Template","PeopleComponent_ng_container_49_ng_container_4_Template","PeopleComponent","statusMap","pagedUsersCount","viewEvents","pagedUsers","confirmedCount","UserAddEditComponent","onSavedUser","onDeletedUser","removeUser","groupsModalRef","UserGroupsComponent","deleteOrganizationUser","postOrganizationUserReinvite","updateUser","mapIndex","autoConfirm","doConfirmation","confirmModalRef","UserConfirmComponent","onConfirmedUser","eventsModalRef","getUserPublicKey","publicKeyResponse","log","getFingerprint","rsaEncrypt","OrganizationUserConfirmRequest","postOrganizationUserConfirm","PeopleComponent_span_13_Template","PeopleComponent_span_19_Template","PeopleComponent_span_25_Template","PeopleComponent_ng_container_47_Template","PeopleComponent_ng_container_49_Template","PeopleComponent_ng_template_52_Template","PeopleComponent_ng_template_55_Template","PeopleComponent_ng_template_58_Template","PeopleComponent_ng_template_61_Template","_c4","_c5","organizationUserInviteRequest_1","organizationUserUpdateRequest_1","permissionsApi_1","emails","c_r28","i_r29","UserAddEditComponent_div_24_ng_container_117_table_4_tr_25_Template","UserAddEditComponent_div_24_ng_container_117_div_2_Template","UserAddEditComponent_div_24_ng_container_117_table_4_Template","UserAddEditComponent_div_24_ng_container_2_Template","UserAddEditComponent_div_24_ng_container_79_Template","UserAddEditComponent_div_24_div_93_Template","UserAddEditComponent_div_24_ng_container_117_Template","customUserTypeSelected","showCustom","getOrganizationUser","setRequestPermissions","clearPermissions","OrganizationUserUpdateRequest","putOrganizationUser","OrganizationUserInviteRequest","postOrganizationUserInvite","UserAddEditComponent_small_11_Template","UserAddEditComponent_div_22_Template","UserAddEditComponent_div_24_Template","UserAddEditComponent_button_44_Template","dontAskAgain","fingerprint","UserConfirmComponent_small_12_Template","organizationUserUpdateGroupsRequest_1","g_r7","i_r8","UserGroupsComponent_div_25_table_8_tr_4_Template","UserGroupsComponent_div_25_div_6_Template","UserGroupsComponent_div_25_table_8_Template","getOrganizationUserGroups","userGroups","ug","OrganizationUserUpdateGroupsRequest","groupIds","putOrganizationUserGroups","UserGroupsComponent_small_12_Template","UserGroupsComponent_div_23_Template","UserGroupsComponent_div_25_Template","policy_edit_component_1","goToEnterprisePortal","_r13","p_r8","PoliciesComponent_table_11_tr_4_td_2_span_5_Template","PoliciesComponent_table_11_tr_4_td_2_Template","display","PoliciesComponent_table_11_tr_4_Template","PoliciesComponent","userCanAccessBusinessPortal","policiesEnabledMap","MasterPassword","PasswordGenerator","RequireSso","PersonalOwnership","DisableSend","policyIdFromEvents","_i","orgPolicies","orgPolicy","getPolicies","op","editModalRef","PolicyEditComponent","onSavedPolicy","enterpriseTokenPromise","PoliciesComponent_app_callout_0_Template","PoliciesComponent_ng_container_9_Template","PoliciesComponent_table_11_Template","PoliciesComponent_ng_template_13_Template","api_service_1","appId_service_1","AppIdService","audit_service_1","cipher_service_1","collection_service_1","crypto_service_1","environment_service_1","folder_service_1","i18n_service_1","log_service_1","LogService","messaging_service_1","passwordGeneration_service_1","platformUtils_service_1","search_service_1","settings_service_1","storage_service_1","state_service_1","sync_service_1","token_service_1","totp_service_1","user_service_1","vaultTimeout_service_1","policyRequest_1","o_r11","masterPassMinComplexity","PolicyEditComponent_div_23_ng_container_26_option_12_Template","masterPassMinLength","masterPassRequireUpper","masterPassRequireLower","masterPassRequireNumbers","masterPassRequireSpecial","passwordScores","o_r20","passGenDefaultType","PolicyEditComponent_div_23_ng_container_28_option_12_Template","passGenMinLength","passGenMinNumbers","passGenMinSpecial","passGenUseUpper","passGenUseLower","passGenUseNumbers","passGenUseSpecial","passGenMinNumberWords","passGenCapitalize","passGenIncludeNumber","defaultTypes","PolicyEditComponent_div_23_app_callout_5_Template","PolicyEditComponent_div_23_app_callout_7_Template","PolicyEditComponent_div_23_ng_container_9_Template","PolicyEditComponent_div_23_app_callout_11_Template","PolicyEditComponent_div_23_app_callout_13_Template","PolicyEditComponent_div_23_ng_container_26_Template","PolicyEditComponent_div_23_ng_container_28_Template","policyType","checkboxDesc","getPolicy","policy","defaultType","useUpper","useLower","useNumbers","useSpecial","minNumbers","minSpecial","minNumberWords","capitalize","includeNumber","PolicyRequest","putPolicy","PolicyEditComponent_div_21_Template","PolicyEditComponent_div_23_Template","organizationUpdateRequest_1","api_key_component_1","purge_vault_component_1","delete_organization_component_1","viewApiKey","rotateApiKey","taxFormPromise","AccountComponent","canUseApi","OrganizationUpdateRequest","putOrganization","deleteOrganization","deleteModalRef","DeleteOrganizationComponent","purgeVault","purgeModalRef","apiKeyModalRef","postOrganizationApiKey","rotateApiKeyModalRef","postOrganizationRotateApiKey","AccountComponent_div_7_Template","AccountComponent_form_9_Template","AccountComponent_ng_container_11_Template","AccountComponent_div_24_Template","AccountComponent_form_26_Template","AccountComponent_ng_template_53_Template","AccountComponent_ng_template_56_Template","AccountComponent_ng_template_59_Template","AccountComponent_ng_template_62_Template","user_billing_component_1","OrganizationBillingComponent_ng_container_11_ng_container_25_app_callout_2_Template","OrganizationBillingComponent_ng_container_11_ng_container_25_span_8_Template","OrganizationBillingComponent_ng_container_11_table_37_tr_4_span_25_Template","OrganizationBillingComponent_ng_container_11_table_37_tr_4_span_27_Template","OrganizationBillingComponent_ng_container_11_table_37_tr_4_Template","OrganizationBillingComponent_ng_container_11_table_45_tr_4_span_8_Template","OrganizationBillingComponent_ng_container_11_table_45_tr_4_span_10_Template","OrganizationBillingComponent_ng_container_11_table_45_tr_4_i_15_Template","OrganizationBillingComponent_ng_container_11_table_45_tr_4_Template","OrganizationBillingComponent_ng_container_11_button_15_Template","OrganizationBillingComponent_ng_container_11_app_add_credit_17_Template","OrganizationBillingComponent_ng_container_11_p_23_Template","OrganizationBillingComponent_ng_container_11_ng_container_25_Template","OrganizationBillingComponent_ng_container_11_button_27_Template","OrganizationBillingComponent_ng_container_11_app_adjust_payment_29_Template","OrganizationBillingComponent_ng_container_11_p_35_Template","OrganizationBillingComponent_ng_container_11_table_37_Template","OrganizationBillingComponent_ng_container_11_p_43_Template","OrganizationBillingComponent_ng_container_11_table_45_Template","OrganizationBillingComponent","OrganizationBillingComponent_button_6_Template","OrganizationBillingComponent_ng_container_9_Template","OrganizationBillingComponent_ng_container_11_Template","reinstate","reinstatePromise","OrganizationSubscriptionComponent_ng_container_11_dl_6_dd_13_span_3_Template","sub","isExpired","OrganizationSubscriptionComponent_ng_container_11_dl_6_dd_13_Template","OrganizationSubscriptionComponent_ng_container_11_dl_6_dd_15_Template","OrganizationSubscriptionComponent_ng_container_11_div_8_ng_container_13_span_11_Template","subscription","subscriptionMarkedForCancel","nextInvoice","i_r19","quantity","OrganizationSubscriptionComponent_ng_container_11_div_8_div_17_tr_10_Template","OrganizationSubscriptionComponent_ng_container_11_div_8_ng_container_13_Template","OrganizationSubscriptionComponent_ng_container_11_div_8_div_17_Template","closeUpdateLicense","updateLicense","OrganizationSubscriptionComponent_ng_container_11_ng_container_10_div_13_Template","showUpdateLicense","changePlan","downloadLicense","showDownloadLicense","ctx_r29","cancelPromise","_r42","closeChangePlan","closeDownloadLicense","ctx_r31","_r50","adjustSeats","_r53","closeSeats","ctx_r48","adjustSeatsAdd","billingInterval","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_23_div_4_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_23_app_adjust_seats_6_Template","ctx_r32","showAdjustSeats","_r58","adjustStorage","_r61","closeStorage","ctx_r56","adjustStorageAdd","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_40_div_4_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_40_app_adjust_storage_6_Template","ctx_r33","showAdjustStorage","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_button_4_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_button_6_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_button_8_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_app_change_plan_11_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_div_13_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_23_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_40_Template","showChangePlan","canDownloadLicense","cancelled","canAdjustSeats","storageName","storageProgressWidth","storagePercentage","OrganizationSubscriptionComponent_ng_container_11_app_callout_2_Template","OrganizationSubscriptionComponent_ng_container_11_app_callout_4_Template","OrganizationSubscriptionComponent_ng_container_11_dl_6_Template","OrganizationSubscriptionComponent_ng_container_11_div_8_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_10_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_Template","OrganizationSubscriptionComponent","getOrganizationSubscription","postOrganizationReinstate","postOrganizationCancel","changed","updated","cancelAtEndDate","upcomingInvoice","storageGb","OrganizationSubscriptionComponent_small_5_Template","OrganizationSubscriptionComponent_ng_container_9_Template","OrganizationSubscriptionComponent_ng_container_11_Template","ChangePlanComponent","onChanged","defaultUpgradePlan","FamiliesAnnually","defaultUpgradeProduct","Families","DownloadLicenseComponent","onDownloaded","installationId","getOrganizationLicense","license","licenseString","JSON","stringify","saveFile","seatRequest_1","seatAdjustment","adjustedSeatTotal","AdjustSeatsComponent","SeatRequest","postOrganizationSeat","AdjustSeatsComponent_div_26_Template","SettingsComponent","access2fa","SettingsComponent_a_22_Template","SettingsComponent_a_24_Template","two_factor_setup_component_1","duoComp","getTwoFactorOrganizationProviders","updateTwoFactorAuthenticatorRequest_1","TwoFactorAuthenticatorComponent_form_26_ng_container_5_Template","TwoFactorAuthenticatorComponent_form_26_ng_container_7_Template","TwoFactorAuthenticatorComponent_form_26_p_43_Template","TwoFactorAuthenticatorComponent_form_26_hr_45_Template","TwoFactorAuthenticatorComponent_form_26_ng_container_57_Template","TwoFactorAuthenticatorComponent_form_26_span_67_Template","TwoFactorAuthenticatorComponent_form_26_span_69_Template","qrScript","UpdateTwoFactorAuthenticatorRequest","putTwoFactorAuthenticator","QRious","element","TwoFactorAuthenticatorComponent_app_two_factor_verify_24_Template","TwoFactorAuthenticatorComponent_form_26_Template","twoFactorEmailRequest_1","updateTwoFactorEmailRequest_1","sentEmail","TwoFactorEmailComponent_form_26_ng_container_7_span_33_Template","TwoFactorEmailComponent_form_26_ng_container_5_Template","TwoFactorEmailComponent_form_26_ng_container_7_Template","TwoFactorEmailComponent_form_26_span_17_Template","TwoFactorEmailComponent_form_26_span_19_Template","postTwoFactorEmailSetup","UpdateTwoFactorEmailRequest","putTwoFactorEmail","TwoFactorEmailComponent_app_two_factor_verify_24_Template","TwoFactorEmailComponent_form_26_Template","print","TwoFactorRecoveryComponent_ng_container_26_ng_container_4_Template","TwoFactorRecoveryComponent_ng_container_26_ng_container_6_Template","TwoFactorRecoveryComponent_ng_container_26_button_11_Template","w","open","write","onafterprint","formatString","TwoFactorRecoveryComponent_app_two_factor_verify_24_Template","TwoFactorRecoveryComponent_ng_container_26_Template","updateTwoFactorU2fDeleteRequest_1","updateTwoFactorU2fRequest_1","i_r14","k_r13","TwoFactorU2fComponent_form_25_li_25_ng_container_9_ng_container_2_Template","TwoFactorU2fComponent_form_25_li_25_ng_container_9_ng_container_4_Template","compromised","TwoFactorU2fComponent_form_25_li_25_ng_container_11_i_2_Template","TwoFactorU2fComponent_form_25_li_25_strong_5_Template","TwoFactorU2fComponent_form_25_li_25_strong_7_Template","TwoFactorU2fComponent_form_25_li_25_ng_container_9_Template","TwoFactorU2fComponent_form_25_li_25_ng_container_11_Template","removePromise","configured","keysConfiguredCount","TwoFactorU2fComponent_form_25_ng_container_72_ng_container_2_Template","TwoFactorU2fComponent_form_25_ng_container_72_ng_container_4_Template","TwoFactorU2fComponent_form_25_ng_container_72_ng_container_6_Template","u2fListening","u2fResponse","u2fError","disablePromise","_r36","TwoFactorU2fComponent_form_25_app_callout_5_Template","TwoFactorU2fComponent_form_25_li_25_Template","readKey","TwoFactorU2fComponent_form_25_ng_container_70_Template","TwoFactorU2fComponent_form_25_ng_container_72_Template","TwoFactorU2fComponent_form_25_i_79_Template","TwoFactorU2fComponent_form_25_span_81_Template","TwoFactorU2fComponent_form_25_button_84_Template","keyIdAvailable","challengePromise","u2fScript","UpdateTwoFactorU2fRequest","deviceResponse","putTwoFactorU2f","UpdateTwoFactorU2fDeleteRequest","deleteTwoFactorU2f","getTwoFactorU2fChallenge","challenge","readDevice","u2fChallenge","resetU2f","u2f","register","errorCode","listening","k","TwoFactorU2fComponent_app_two_factor_verify_23_Template","TwoFactorU2fComponent_form_25_Template","updateTwoFactorYubioOtpRequest_1","i_r9","k_r8","existingKey","TwoFactorYubiKeyComponent_form_25_div_54_input_6_Template","TwoFactorYubiKeyComponent_form_25_div_54_div_8_Template","TwoFactorYubiKeyComponent_form_25_app_callout_5_Template","TwoFactorYubiKeyComponent_form_25_div_54_Template","nfc","TwoFactorYubiKeyComponent_form_25_button_87_Template","UpdateTwoFactorYubioOtpRequest","key1","key2","key3","key4","key5","putTwoFactorYubiKey","padRight","max","TwoFactorYubiKeyComponent_app_two_factor_verify_23_Template","TwoFactorYubiKeyComponent_form_25_Template","getExportData","getOrganizationExport","getFileName","collectEvent","exposed_passwords_report_component_1","manageableCiphers","passwordHistoryView_1","FallbackSrcDirective","onError","appFallbackSrc","import_component_1","inactive_two_factor_report_component_1","reused_passwords_report_component_1","ToolsComponent_ng_container_4_div_8_a_7_Template","ToolsComponent_ng_container_4_div_6_Template","ToolsComponent_ng_container_4_div_8_Template","ToolsComponent","ToolsComponent_ng_container_2_Template","ToolsComponent_ng_container_4_Template","unsecured_websites_report_component_1","weak_passwords_report_component_1","VaultComponent","changeDetectorRef","groupingsComponent","successfully","detectChanges","reload","filterDeleted","filterCipherType","filterCollection","clearGroupingFilters","clearFilters","go","filterSearchText","editCipherAttachments","attachmentsModalRef","madeAttachmentChanges","onUploadedAttachment","onDeletedAttachment","editCipherCollections","collectionsModalRef","onSavedCollections","component","editCipher","cloneCipher","replaceUrl","ChangeDetectorRef","VaultComponent_ng_container_20_Template","VaultComponent_button_29_Template","VaultComponent_ng_template_39_Template","VaultComponent_ng_template_42_Template","VaultComponent_ng_template_45_Template","VaultComponent_ng_template_48_Template","saveCipherAttachment","saveAttachmentWithServer","cipherDomain","deleteCipherAttachment","attachmentId","deleteCipherAttachmentAdmin","onReuploadedAttachment","hasUpdatedKey","canAccessAttachments","cache","arrayBuffer","buf","decryptFromBytes","decBuf","hasEncKey","admin","saveAttachmentRawWithServer","foundAttachment","a2","deleteAttachmentWithServer","Window","cipherCollectionsRequest_1","allowSelectNone","loadCipherCollections","saveCollections","CipherCollectionsRequest","putCipherCollectionsAdmin","cipherBulkDeleteRequest_1","deleteCiphers","deleteCiphersAdmin","deleteManyWithServer","softDeleteManyWithServer","deleteRequest","CipherBulkDeleteRequest","deleteManyCiphersAdmin","putDeleteManyCiphersAdmin","ids","f_r2","moveManyWithServer","BulkMoveComponent_option_35_Template","restoreManyWithServer","o_r5","i_r11","BulkShareComponent_table_54_tr_4_Template","nonShareableCount","shareableCiphers","writeableCollections","allCollections","filterCollections","checkedCollectionIds","shareManyWithServer","BulkShareComponent_option_39_Template","BulkShareComponent_div_49_Template","BulkShareComponent_div_52_Template","BulkShareComponent_table_54_Template","canSave","sendAccess_1","sendType_1","sendAccessRequest_1","errorResponse_1","creatorIdentifier","toggleText","AccessComponent_div_25_ng_container_9_app_callout_2_Template","sendText","AccessComponent_div_25_ng_container_9_button_9_Template","AccessComponent_div_25_ng_container_12_button_5_Template","AccessComponent_div_25_ng_container_12_button_7_Template","expirationDate","AccessComponent_div_25_ng_container_9_Template","AccessComponent_div_25_ng_container_12_Template","AccessComponent_div_25_p_14_Template","sendType","File","AccessComponent","passwordRequired","unavailable","maskedText","sendId","decKey","getSendFileDownloadData","accessRequest","downloadData","keyArray","SendAccessRequest","pbkdf2","passwordHash","sendResponse","postSendAccess","sendAccess","SendAccess","makeSendKey","AccessComponent_div_11_Template","AccessComponent_div_17_Template","AccessComponent_div_19_Template","AccessComponent_div_21_Template","AccessComponent_div_23_Template","AccessComponent_div_25_Template","send_component_1","s_r8","removePassword","SendComponent_table_84_tr_4_i_6_Template","SendComponent_table_84_tr_4_i_8_Template","editSend","SendComponent_table_84_tr_4_ng_container_17_Template","SendComponent_table_84_tr_4_ng_container_19_Template","SendComponent_table_84_tr_4_ng_container_21_Template","SendComponent_table_84_tr_4_ng_container_23_Template","SendComponent_table_84_tr_4_ng_container_25_Template","SendComponent_table_84_tr_4_a_52_Template","maxAccessCountReached","expired","pendingDelete","deletionDate","disableSend","SendComponent_table_84_tr_4_Template","filteredSends","addSend","SendComponent_div_86_ng_container_2_Template","SendComponent_div_86_ng_container_4_Template","SendComponent","sendService","sendAddEditModalRef","onSavedSend","onDeletedSend","SendComponent_div_2_Template","SendComponent_ng_container_69_Template","SendComponent_table_84_Template","SendComponent_div_86_Template","SendComponent_ng_template_91_Template","o_r23","typeChanged","ctx_r22","AddEditComponent_div_20_div_20_div_8_Template","AddEditComponent_div_20_ng_container_26_div_4_Template","AddEditComponent_div_20_ng_container_26_div_6_Template","link","ctx_r34","o_r41","military","standard","safariDeletionTime","AddEditComponent_div_20_ng_template_68_div_3_select_4_option_2_Template","ctx_r38","safariDeletionTimeOptions","deletionTimeFallback","_r47","deletionDateFallback","AddEditComponent_div_20_ng_template_68_div_3_select_4_Template","AddEditComponent_div_20_ng_template_68_div_3_input_6_Template","ctx_r35","isSafari","AddEditComponent_div_20_ng_template_68_ng_container_1_Template","AddEditComponent_div_20_ng_template_68_div_3_Template","isDateTimeLocalSupported","o_r50","AddEditComponent_div_20_div_71_ng_container_7_ng_container_2_Template","deletionDateSelect","AddEditComponent_div_20_div_71_option_4_Template","AddEditComponent_div_20_div_71_ng_container_7_Template","deletionDateOptions","AddEditComponent_div_20_div_73_ng_container_2_Template","clearExpiration","_r60","ctx_r57","o_r64","_r66","safariExpirationTime","AddEditComponent_div_20_ng_template_91_div_3_select_4_option_2_Template","safariExpirationTimeOptions","_r68","expirationTimeFallback","_r70","expirationDateFallback","expirationDateFallbackChanged","AddEditComponent_div_20_ng_template_91_div_3_select_4_Template","AddEditComponent_div_20_ng_template_91_div_3_input_6_Template","ctx_r58","AddEditComponent_div_20_ng_template_91_ng_container_1_Template","AddEditComponent_div_20_ng_template_91_div_3_Template","o_r74","AddEditComponent_div_20_div_94_ng_container_7_ng_container_2_Template","_r77","expirationDateSelect","AddEditComponent_div_20_div_94_option_4_Template","AddEditComponent_div_20_div_94_ng_container_7_Template","expirationDateOptions","AddEditComponent_div_20_div_96_ng_container_2_Template","_r80","accessCount","_r82","AddEditComponent_div_20_div_20_Template","AddEditComponent_div_20_ng_container_23_Template","AddEditComponent_div_20_ng_container_26_Template","AddEditComponent_div_20_div_32_Template","copyLink","toggleOptions","AddEditComponent_div_20_ng_template_68_Template","AddEditComponent_div_20_div_71_Template","AddEditComponent_div_20_div_73_Template","AddEditComponent_div_20_a_88_Template","AddEditComponent_div_20_ng_template_91_Template","AddEditComponent_div_20_div_94_Template","AddEditComponent_div_20_div_96_Template","maxAccessCount","AddEditComponent_div_20_div_119_Template","AddEditComponent_div_20_label_126_Template","AddEditComponent_div_20_label_128_Template","togglePasswordVisible","hasPassword","_r93","_r91","AddEditComponent_div_32_button_2_Template","datePipe","copyLinkToClipboard","DatePipe","AddEditComponent_button_26_Template","AddEditComponent_div_32_Template","SendView","accessId","deauthorize_sessions_component_1","delete_account_component_1","deauthorizeSessions","deauthModalRef","DeauthorizeSessionsComponent","deleteAccount","DeleteAccountComponent","viewUserApiKey","viewUserApiKeyModalRef","postUserApiKey","rotateUserApiKey","rotateUserApiKeyModalRef","postUserRotateApiKey","AccountComponent_ng_template_84_Template","AccountComponent_ng_template_87_Template","AccountComponent_ng_template_90_Template","AccountComponent_ng_template_93_Template","AccountComponent_ng_template_96_Template","postSecurityStamp","updateProfileRequest_1","profile","ProfileComponent_form_2_p_44_Template","_r2","ProfileComponent","getProfile","UpdateProfileRequest","putProfile","ProfileComponent_div_0_Template","ProfileComponent_form_2_Template","emailRequest_1","emailTokenRequest_1","newEmail","reset","ChangeEmailComponent","tokenSent","EmailTokenRequest","postEmailToken","EmailRequest","newKey","newMasterPasswordHash","newEncKey","postEmail","ChangeEmailComponent_ng_container_27_Template","ChangeEmailComponent_span_34_Template","ChangeEmailComponent_span_36_Template","ChangeEmailComponent_button_39_Template","change_password_component_1","emergencyAccessStatusType_1","cipherWithIdRequest_1","emergencyAccessUpdateRequest_1","folderWithIdRequest_1","passwordRequest_1","updateKeyRequest_1","ChangePasswordComponent_app_callout_4_li_5_Template","ChangePasswordComponent_app_callout_4_li_7_Template","ChangePasswordComponent_app_callout_4_li_9_Template","ChangePasswordComponent_app_callout_4_li_11_Template","ChangePasswordComponent_app_callout_4_li_13_Template","ChangePasswordComponent_app_callout_4_li_15_Template","rotateEncKey","rotateEncKeyClicked","currentMasterPassword","PasswordRequest","postPassword","updateKey","getPrivateKey","encPrivateKey","UpdateKeyRequest","FolderWithIdRequest","postAccountKey","updateEmergencyAccesses","getEmergencyAccessTrusted","emergencyAccess","allowedStatuses","EmergencyAccessStatusType","RecoveryInitiated","RecoveryApproved","filteredAccesses","filteredAccesses_1","granteeId","encryptedKey","updateRequest","EmergencyAccessUpdateRequest","waitTimeDays","keyEncrypted","putEmergencyAccess","ChangePasswordComponent_app_callout_4_Template","kdfRequest_1","kdfType_1","o_r2","ChangeKdfComponent","PBKDF2_SHA256","kdfOptions","KdfRequest","postAccountKdf","ChangeKdfComponent_option_40_Template","organization_plans_component_1","CreateOrganizationComponent","orgPlansComponent","EnterpriseAnnually","updateDomainsRequest_1","i_r7","custom","DomainRulesComponent_ng_container_20_div_2_Template","indexTrackBy","d_r14","toggleExcluded","DomainRulesComponent_table_38_tr_4_a_17_Template","DomainRulesComponent_table_38_tr_4_a_19_Template","customize","excluded","domains","DomainRulesComponent_table_38_tr_4_Template","DomainRulesComponent","getSettingsDomains","equivalentDomains","globalEquivalentDomains","globalDomain","UpdateDomainsRequest","excludedGlobalEquivalentDomains","d2","putSettingsDomains","DomainRulesComponent_p_18_Template","DomainRulesComponent_ng_container_20_Template","DomainRulesComponent_p_36_Template","DomainRulesComponent_table_38_Template","o_r3","OptionsComponent","vaultTimeout","vaultTimeoutAction","vaultTimeouts","localeOptions","supportedTranslationLocales","locale","localeNames","_h","disableIcons","enableGravatars","enableFullWidth","_g","startingLocale","setVaultTimeoutOptions","vaultTimeoutActionChanged","newValue","OptionsComponent_option_25_Template","OptionsComponent_option_89_Template","LinkSsoComponent","ngAfterContentInit","premiumPrice","PremiumComponent","getPremium","getEmailVerified","finalizePremium","postPremium","paymentResponse","PremiumComponent_app_callout_7_Template","PremiumComponent_a_65_Template","PremiumComponent_ng_container_68_Template","PremiumComponent_form_70_Template","SettingsComponent_a_26_Template","SettingsComponent_a_28_Template","SettingsComponent_a_30_Template","UserSubscriptionComponent_ng_container_11_dl_6_dd_6_Template","UserSubscriptionComponent_ng_container_11_dl_6_dd_8_Template","i_r17","UserSubscriptionComponent_ng_container_11_div_8_div_29_tr_10_Template","UserSubscriptionComponent_ng_container_11_div_8_span_15_Template","UserSubscriptionComponent_ng_container_11_div_8_div_29_Template","UserSubscriptionComponent_ng_container_11_ng_container_10_div_13_Template","_r39","UserSubscriptionComponent_ng_container_11_ng_container_12_ng_container_24_div_4_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_ng_container_24_app_adjust_storage_6_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_button_4_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_button_6_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_ng_container_24_Template","UserSubscriptionComponent_ng_container_11_app_callout_2_Template","UserSubscriptionComponent_ng_container_11_app_callout_4_Template","UserSubscriptionComponent_ng_container_11_dl_6_Template","UserSubscriptionComponent_ng_container_11_div_8_Template","UserSubscriptionComponent_ng_container_11_ng_container_10_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_Template","UserSubscriptionComponent","getUserSubscription","usingInAppPurchase","postReinstatePremium","postCancelPremium","UserSubscriptionComponent_small_5_Template","UserSubscriptionComponent_ng_container_9_Template","UserSubscriptionComponent_ng_container_11_Template","checkedUsername","breachedAccounts","d_r10","BreachReportComponent_div_41_ng_container_4_ul_6_li_2_li_22_Template","a_r8","logoPath","dataClasses","pwnCount","breachDate","addedDate","BreachReportComponent_div_41_ng_container_4_ul_6_li_2_Template","BreachReportComponent_div_41_ng_container_4_app_callout_2_Template","BreachReportComponent_div_41_ng_container_4_app_callout_4_Template","BreachReportComponent_div_41_ng_container_4_ul_6_Template","BreachReportComponent_div_41_p_2_Template","BreachReportComponent_div_41_ng_container_4_Template","BreachReportComponent","BreachReportComponent_div_41_Template","password_generator_component_1","password_generator_history_component_1","numWords","saveOptions","wordSeparator","lengthChanged","minNumber","minNumberChanged","minSpecialChanged","avoidAmbiguous","useUppercase","useLowercase","PasswordGeneratorComponent","history","historyModalRef","PasswordGeneratorHistoryComponent","PasswordGeneratorComponent_app_callout_7_Template","PasswordGeneratorComponent_ng_container_39_Template","PasswordGeneratorComponent_ng_container_41_Template","regenerate","PasswordGeneratorComponent_ng_template_66_Template","inEffect","h_r3","PasswordGeneratorHistoryComponent_ul_20_li_2_Template","PasswordGeneratorHistoryComponent_ul_20_Template","PasswordGeneratorHistoryComponent_div_22_Template","ToolsComponent_a_35_Template","ToolsComponent_span_66_Template","organizations_component_1","update_key_component_1","folder_add_edit_component_1","share_component_1","favorites","showVerifyEmail","showBrowserOutdated","showUpdateKey","showPremiumCallout","organizationsComponent","filterFavorites","filterFolder","shareCipher","shareModalRef","ShareComponent","onSharedCipher","folderAddEditModalRef","FolderAddEditComponent","onSavedFolder","loadFolders","onDeletedFolder","updateKeyModalRef","UpdateKeyComponent","VaultComponent_div_39_Template","VaultComponent_app_verify_email_41_Template","VaultComponent_div_45_Template","VaultComponent_div_47_Template","VaultComponent_ng_template_70_Template","VaultComponent_ng_template_73_Template","VaultComponent_ng_template_76_Template","VaultComponent_ng_template_79_Template","VaultComponent_ng_template_82_Template","VaultComponent_ng_template_85_Template","makeRequest","getKey","FolderAddEditComponent_button_47_Template","o_r10","c_r15","i_r16","ShareComponent_div_25_table_29_tr_4_Template","ShareComponent_div_25_option_14_Template","ShareComponent_div_25_div_24_Template","ShareComponent_div_25_div_27_Template","ShareComponent_div_25_table_29_Template","ShareComponent_small_12_Template","ShareComponent_div_23_Template","ShareComponent_div_25_Template","ShareComponent_button_29_Template","ShareComponent_a_31_Template","SendInfoComponent","VerifyEmailComponent","postAccountVerifyEmail","OrganizationGuardService","canActivate","permissions_1","OrganizationTypeGuardService","Permissions","AccessBusinessPortal","AccessEventLogs","AccessImportExport","AccessReports","ManageAllCollections","ManageAssignedCollections","ManageGroups","ManageOrganization","ManagePolicies","ManageUsers","UnauthGuardService","isLocked","AuthGuardService","routerState","promptBiometric","data_1","domain_1","emergency_access_attachments_component_1","emergency_add_edit_component_1","viewAttachments","EmergencyAccessViewComponent_ng_container_9_tr_6_ng_container_13_Template","EmergencyAccessViewComponent_ng_container_9_tr_6_ng_container_15_Template","EmergencyAccessViewComponent_ng_container_9_tr_6_div_25_Template","EmergencyAccessViewComponent_ng_container_9_tr_6_Template","EmergencyAccessViewComponent","EmergencyAddEditComponent","postEmergencyAccessView","EmergencyAccessAttachmentsComponent","decCiphers","rsaDecrypt","oldKeyBuffer","oldEncKey","cipherResponse","cipherData","getLocaleSortingFunction","EmergencyAccessViewComponent_ng_container_9_Template","EmergencyAccessViewComponent_ng_template_12_Template","EmergencyAccessViewComponent_ng_template_15_Template","EncryptedObject","EnvironmentUrls","GeneratedPasswordHistory","EmergencyAccessAttachmentsComponent_table_25_tr_4_i_4_Template","EmergencyAccessAttachmentsComponent_table_25_tr_4_i_6_Template","EmergencyAccessAttachmentsComponent_table_25_tr_4_div_16_Template","EmergencyAccessAttachmentsComponent_table_25_tr_4_td_23_Template","EmergencyAccessAttachmentsComponent_table_25_tr_4_Template","EmergencyAccessAttachmentsComponent_small_12_Template","EmergencyAccessAttachmentsComponent_table_25_Template","EmergencyAccessAttachmentsComponent_div_27_Template","EmergencyAccessAttachmentsComponent_button_32_Template","EmergencyAddEditComponent_div_20_div_4_option_10_Template","EmergencyAddEditComponent_div_20_div_17_option_8_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_26_a_2_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_64_a_5_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_64_a_7_Template","EmergencyAddEditComponent_div_20_ng_container_21_ng_container_70_div_2_option_49_Template","EmergencyAddEditComponent_div_20_ng_container_21_ng_container_70_div_2_button_52_Template","EmergencyAddEditComponent_div_20_ng_container_21_ng_container_70_div_2_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_14_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_26_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_64_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_66_Template","EmergencyAddEditComponent_div_20_ng_container_21_ng_container_70_Template","EmergencyAddEditComponent_div_20_ng_container_21_a_72_Template","EmergencyAddEditComponent_div_20_ng_container_24_option_21_Template","EmergencyAddEditComponent_div_20_ng_container_24_option_57_Template","EmergencyAddEditComponent_div_20_ng_container_27_option_12_Template","EmergencyAddEditComponent_div_20_div_42_div_2_div_28_Template","EmergencyAddEditComponent_div_20_div_42_div_2_div_30_Template","EmergencyAddEditComponent_div_20_div_42_div_2_input_34_Template","EmergencyAddEditComponent_div_20_div_42_div_2_button_37_Template","EmergencyAddEditComponent_div_20_div_42_div_2_button_39_Template","EmergencyAddEditComponent_div_20_div_42_div_2_Template","EmergencyAddEditComponent_div_20_div_46_option_10_Template","EmergencyAddEditComponent_div_20_ng_container_48_option_16_Template","EmergencyAddEditComponent_div_20_ng_container_50_ng_container_8_div_2_Template","EmergencyAddEditComponent_div_20_ng_container_50_div_6_Template","EmergencyAddEditComponent_div_20_ng_container_50_ng_container_8_Template","EmergencyAddEditComponent_div_20_ng_container_52_div_16_div_2_Template","EmergencyAddEditComponent_div_20_ng_container_52_div_12_Template","EmergencyAddEditComponent_div_20_ng_container_52_div_14_Template","EmergencyAddEditComponent_div_20_ng_container_52_div_16_Template","EmergencyAddEditComponent_div_20_app_callout_2_Template","EmergencyAddEditComponent_div_20_div_4_Template","EmergencyAddEditComponent_div_20_div_17_Template","EmergencyAddEditComponent_div_20_ng_container_21_Template","EmergencyAddEditComponent_div_20_ng_container_24_Template","EmergencyAddEditComponent_div_20_ng_container_27_Template","EmergencyAddEditComponent_div_20_div_42_Template","EmergencyAddEditComponent_div_20_a_44_Template","EmergencyAddEditComponent_div_20_div_46_Template","EmergencyAddEditComponent_div_20_ng_container_48_Template","EmergencyAddEditComponent_div_20_ng_container_50_Template","EmergencyAddEditComponent_div_20_ng_container_52_Template","EmergencyAddEditComponent_div_30_button_2_Template","EmergencyAddEditComponent_div_30_button_4_Template","EmergencyAddEditComponent_div_20_Template","EmergencyAddEditComponent_button_24_Template","EmergencyAddEditComponent_div_30_Template","emergencyAccessType_1","emergencyAccessConfirmRequest_1","emergencyAccessResponse_1","emergency_access_add_edit_component_1","emergency_access_confirm_component_1","emergency_access_takeover_component_1","approve","EmergencyAccessComponent_table_35_tr_4_span_12_Template","EmergencyAccessComponent_table_35_tr_4_span_14_Template","EmergencyAccessComponent_table_35_tr_4_span_16_Template","EmergencyAccessComponent_table_35_tr_4_span_18_Template","EmergencyAccessComponent_table_35_tr_4_span_20_Template","EmergencyAccessComponent_table_35_tr_4_span_22_Template","EmergencyAccessComponent_table_35_tr_4_small_24_Template","EmergencyAccessComponent_table_35_tr_4_a_39_Template","EmergencyAccessComponent_table_35_tr_4_a_41_Template","EmergencyAccessComponent_table_35_tr_4_a_43_Template","EmergencyAccessComponent_table_35_tr_4_a_45_Template","emergencyAccessStatusType","emergencyAccessType","View","Takeover","EmergencyAccessComponent_table_35_tr_4_Template","trustedContacts","c_r45","requestAccess","_r63","takeover","EmergencyAccessComponent_table_46_tr_4_span_12_Template","EmergencyAccessComponent_table_46_tr_4_span_14_Template","EmergencyAccessComponent_table_46_tr_4_span_16_Template","EmergencyAccessComponent_table_46_tr_4_span_18_Template","EmergencyAccessComponent_table_46_tr_4_span_20_Template","EmergencyAccessComponent_table_46_tr_4_span_22_Template","EmergencyAccessComponent_table_46_tr_4_small_24_Template","EmergencyAccessComponent_table_46_tr_4_a_39_Template","EmergencyAccessComponent_table_46_tr_4_a_41_Template","EmergencyAccessComponent_table_46_tr_4_a_43_Template","EmergencyAccessComponent_table_46_tr_4_Template","grantedContacts","EmergencyAccessComponent","EmergencyAccessType","isOrganizationOwner","getEmergencyAccessGranted","EmergencyAccessAddEditComponent","emergencyAccessId","onSaved","contact","postEmergencyAccessReinvite","childComponent_1","EmergencyAccessConfirmComponent","onConfirmed","deleteEmergencyAccess","EmergencyAccessGranteeDetailsResponse","removeGrantee","removeGrantor","postEmergencyAccessInitiate","postEmergencyAccessApprove","postEmergencyAccessReject","EmergencyAccessTakeoverComponent","takeoverModalRef","onDone","EmergencyAccessConfirmRequest","postEmergencyAccessConfirm","EmergencyAccessComponent_p_15_Template","EmergencyAccessComponent_a_22_Template","EmergencyAccessComponent_table_35_Template","EmergencyAccessComponent_p_37_Template","EmergencyAccessComponent_table_46_Template","EmergencyAccessComponent_p_48_Template","EmergencyAccessComponent_ng_template_50_Template","EmergencyAccessComponent_ng_template_53_Template","EmergencyAccessComponent_ng_template_56_Template","cipherResponse_1","creationDate","EmergencyAccessGrantorDetailsResponse","grantorId","EmergencyAccessTakeoverResponse","EmergencyAccessViewResponse","emergencyAccessInviteRequest_1","o_r13","EmergencyAccessAddEditComponent_div_26_ng_container_2_Template","waitTime","EmergencyAccessAddEditComponent_div_26_option_48_Template","waitTimes","getEmergencyAccess","EmergencyAccessInviteRequest","postEmergencyAccessInvite","EmergencyAccessAddEditComponent_span_11_Template","EmergencyAccessAddEditComponent_small_13_Template","EmergencyAccessAddEditComponent_div_24_Template","EmergencyAccessAddEditComponent_div_26_Template","EmergencyAccessAddEditComponent_i_33_Template","EmergencyAccessAddEditComponent_span_35_Template","EmergencyAccessAddEditComponent_button_44_Template","EmergencyAccessConfirmComponent_small_12_Template","emergencyAccessPasswordRequest_1","EmergencyAccessTakeoverComponent_app_callout_29_li_5_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_7_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_9_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_11_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_13_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_15_Template","getEmergencyGrantorPolicies","policyResponse","postEmergencyAccessTakeover","takeoverResponse","EmergencyAccessPasswordRequest","postEmergencyAccessPassword","EmergencyAccessTakeoverComponent_small_12_Template","EmergencyAccessTakeoverComponent_app_callout_29_Template","apiKeyResponse_1","billingResponse_1","breachAccountResponse_1","collectionResponse_1","domainsResponse_1","eventResponse_1","folderResponse_1","groupResponse_1","identityTokenResponse_1","identityTwoFactorResponse_1","listResponse_1","organizationResponse_1","organizationSubscriptionResponse_1","organizationUserResponse_1","paymentResponse_1","planResponse_1","policyResponse_1","preloginResponse_1","profileResponse_1","selectionReadOnlyResponse_1","sendAccessResponse_1","sendFileDownloadDataResponse_1","sendResponse_1","subscriptionResponse_1","syncResponse_1","taxInfoResponse_1","taxRateResponse_1","twoFactorAuthenticatorResponse_1","twoFactorDuoResponse_1","twoFactorEmailResponse_1","twoFactorProviderResponse_1","twoFactorRescoverResponse_1","twoFactorU2fResponse_1","twoFactorYubiKeyResponse_1","userKeyResponse_1","logoutCallback","customUserAgent","urlsSet","isWebClient","isDesktopClient","usingBaseUrl","device","getDevice","setUrls","urls","apiBaseUrl","eventsBaseUrl","api","headers","Headers","Content-Type","Accept","Device-Type","qsStringify","toIdentityToken","identityClientId","credentials","getCredentials","isJsonResponse","IdentityTokenResponse","TwoFactorProviders2","clearTwoFactorToken","IdentityTwoFactorResponse","doRefreshToken","BillingResponse","SubscriptionResponse","TaxInfoResponse","PreloginResponse","setPassword","getAccountRevisionDate","postPasswordHint","postRegister","PaymentResponse","postIapCheck","postAccountVerifyPassword","ApiKeyResponse","getFolder","FolderResponse","postFolder","putFolder","deleteFolder","getSend","SendResponse","apiUrl","SendAccessResponse","SendFileDownloadDataResponse","getSends","ListResponse","postSend","postSendFile","putSend","putSendRemovePassword","deleteSend","getCipher","getCiphersOrganization","postCipher","postCipherCreate","putCipher","deleteManyCiphers","putMoveCiphers","putShareCipher","putShareCiphers","putCipherCollections","path","postImportCiphers","postImportOrganizationCiphers","putDeleteCipher","putDeleteManyCiphers","putRestoreCipher","putRestoreCipherAdmin","putRestoreManyCiphers","postCipherAttachment","postCipherAttachmentAdmin","postShareCipherAttachment","CollectionGroupDetailsResponse","CollectionResponse","dr","deleteCollectionUser","GroupDetailsResponse","GroupResponse","deleteGroupUser","PolicyResponse","OrganizationUserDetailsResponse","OrganizationUserUserDetailsResponse","PlanResponse","postImportDirectory","TaxRateResponse","DomainsResponse","getSync","SyncResponse","TwoFactorProviderResponse","TwoFactorAuthenticatorResponse","TwoFactorEmailResponse","TwoFactorDuoResponse","TwoFactorYubiKeyResponse","TwoFactorU2fResponse","ChallengeResponse","TwoFactorRecoverResponse","postTwoFactorEmail","OrganizationResponse","OrganizationSubscriptionResponse","getEvents","addEventParameters","EventResponse","postEventsCollect","getActiveBearerToken","authHeader","Authorization","UserKeyResponse","getHibpBreach","BreachAccountResponse","getToken","tokenNeedsRefresh","nativeFetch","handleError","hasResponse","requestInit","tokenError","isTextResponse","Message","getRefreshToken","decodedToken","decodeToken","grant_type","client_id","refresh_token","typeHeader","CollectionDetailsResponse","globalDomainResponse_1","GlobalDomainResponse","businessAddress1","businessAddress2","businessAddress3","businessCountry","businessTaxNumber","maxAdditionalStorage","hasEvents","has2fa","upgradeSortOrder","displaySortOrder","stripePlanId","stripeSeatPlanId","stripeStoragePlanId","stripePremiumAccessPlanId","BillingSubscriptionResponse","BillingSubscriptionUpcomingInvoiceResponse","trialEndDate","periodStartDate","periodEndDate","cancelledDate","BillingSubscriptionItemResponse","sendFileApi_1","sendTextApi_1","makeAndGetAppId","getAnonymousAppId","existingId","guid","throttle_1","hashStart","hashEnding","leakedHashes","v","__decorate","throttle","cipherBulkMoveRequest_1","cipherBulkRestoreRequest_1","cipherBulkShareRequest_1","cipherShareRequest_1","sortedCiphersCache_1","sequentialize_1","Keys","DomainMatchBlacklist","Set","settingsService","sortedCiphersCache","SortedCiphersCache","sortCiphersByLastUsed","_decryptedCipherCache","clearIndex","indexCiphers","clearCache","decryptedCipherCache","existingCipher","existingHiddenFields","hiddenFields_1","ef","matchedField","encryptObjProperty","encryptCipherData","encryptFields","encryptPasswordHistories","encryptAttachments","attachmentsModel","encAttachments","fieldsModel","encFields","encryptField","encField","fieldModel","phModels","encPhs","encryptPasswordHistory","encPh","phModel","getAllDecryptedForGrouping","groupingId","getAllDecryptedForUrl","includeOtherTypes","defaultMatch","eqDomainsPromise","getEquivalentDomains","eqDomains","matches","eqDomain","matchingDomains","domainUrlHost","Host","urlHost","Exact","StartsWith","Never","decCiphers_1","promises_1","getLastUsedForUrl","getCipherForUrl","getLastLaunchedForUrl","getNextCipherForUrl","updateLastUsedIndexForUrl","updateLastUsedIndex","updateLastUsedDate","ciphersLocalData","cached","updateLastLaunchedDate","lastLaunched","saveNeverDomain","saveWithServer","upsert","shareWithServer","attachmentPromises","shareAttachmentWithServer","encCipher","CipherShareRequest","encCiphers","ciphers_1","CipherBulkShareRequest","unencryptedFile","readAsArrayBuffer","cData","filename","encFileName","dataEncKey","encryptToBytes","encData","blob","Blob","filepath","contentType","saveCollectionsWithServer","CipherBulkMoveRequest","deleteAttachment","e_3","aLastUsed","bLastUsed","bothNotNull","sortCiphersByLastUsedThenName","aName","bName","softDelete","setDeletedDate","clearDeletedDate","constructor","CipherBulkRestoreRequest","restores","attachmentView","attachmentResponse","e_4","theObj","modelProp","lastUsed","isCached","addCiphers","getLastLaunched","getLastUsed","getNext","sequentialize","propertyKey","descriptor","originalMethod","caches","args","arguments","getCache","argsCacheKey","onFinally","serviceUtils_1","decryptedCollectionCache","decCollections","nodes","collectionCopy","ServiceUtils","nestedTraverse","getNested","getTreeNodeObject","treeNode_1","nodeTree","partIndex","delimiter","partName","TreeNode","newPartName","ContainerService","attachToWindow","attachToGlobal","bigInt","encryptedObject_1","wordlist_1","secureStorageService","platformUtilService","option","biometric","supportsSecureStorage","keyHash","setOrgKeys","orgKeys","getKeyHash","encKeyCipher","decEncKey","stretchKey","getPublicKey","rsaExtractPublicKey","keyFingerprint","hkdfExpand","userFingerprint","hashPhrase","getOrgKeys","encOrgKeys","clearKey","legacyEtmKey","clearKeyHash","clearEncKey","memoryOnly","clearKeyPair","clearOrgKeys","clearPinProtectedKey","clearKeys","toggleKey","salt","makeKeyFromPin","pin","protectedKeyCs","makePinKey","pinKey","randomBytes","rsaGenerateKeyPair","publicB64","privateEnc","keyMaterial","hkdf","sendKey","getKeyForEncryption","theKey","buildEncKey","plainValue","plainBuf","aesEncrypt","encObj","encValue","macLen","encBytes","Rsa2048_OaepSha256_HmacSha256_B64","Rsa2048_OaepSha1_HmacSha256_B64","alg","cipherString","aesDecryptToBytes","decipher","aesDecryptToUtf8","encBuf","ctBytes","ivBytes","macBytes","randomNumber","min","rval","range","bitsNeeded","ceil","log2","bytesNeeded","mask","pow","byteArray","macData","hmac","keyForEnc","resolveLegacyKey","fastParams","aesDecryptFastParameters","hmacFast","computedMac","compareFast","aesDecryptFast","aesDecrypt","minimumEntropy","entropyPerWord","EEFLongWordList","hashArr","entropyAvailable","phrase","hashNumber","fromArray","remainder","divide","encKeyEnc","environmentUrls_1","notificationsService","getWebVaultUrl","webVaultUrl","setUrlsFromStorage","urlsObj","icons","notifications","webVault","enterprise","envUrls","identityUrl","notificationsUrl","eventsUrl","formatUrl","folderData_1","folder_1","folderRequest_1","decryptedFolderCache","decFolders","noneFolder","folderCopy","cId","updates","systemLanguage","localesDirectory","getLocalesJson","defaultMessages","localeMessages","translationLocale","Intl","Collator","numeric","sensitivity","loadMessages","translate","messagesObj","formattedLocale","locales","placeholders","placeProp","replaceToken","replaceContent","zxcvbn","generatedPasswordHistory_1","passwordGeneratorPolicyOptions_1","DefaultOptions","ambiguous","minUppercase","minLowercase","generatePassphrase","sanitizePasswordLength","positions","shuffleArray","allCharSet","lowercaseCharSet","uppercaseCharSet","numberCharSet","specialCharSet","positionChars","randomCharIndex","listLength","wordList","wordIndex","appendRandomNumberToRandomWord","optionsCache","enforcePasswordGeneratorPoliciesOnOptions","enforcedOptions","getPasswordGeneratorPolicyOptions","numberCount","specialCount","PasswordGeneratorPolicyOptions","currentPolicy","getHistory","encrypted","decryptHistory","addHistory","currentHistory","matchesPrevious","unshift","now","encryptHistory","newHistory","userInputs","globalUserInputs","finalUserInputs","normalizeOptions","decrypted","array","forGeneration","minUppercaseCalc","minLowercaseCalc","minNumberCalc","minSpecialCalc","settingsCache","getSettingsKey","setEquivalentDomains","setSettingsKey","getSettings","settings","purge","organizationData_1","sendData_1","syncInProgress","getLastSync","lastSync","setLastSync","toJSON","forceSync","allowThrowOnError","syncStarted","syncCompleted","needsSync","needsSyncing","syncProfile","syncFolders","syncCollections","syncCiphers","syncSends","sends","syncSettings","syncPolicies","syncUpsertFolder","notification","isEdit","localFolder","remoteFolder","syncDeleteFolder","syncUpsertCipher","shouldUpdate","localCipher","checkCollections","remoteCipher","syncDeleteCipher","syncUpsertSend","localSend","remoteSend","SendData","syncDeleteSend","getSecurityStamp","stamp","setSecurityStamp","OrganizationData","replaceOrganizations","sendFileData_1","sendTextData_1","SendTextData","SendFileData","setToken","setRefreshToken","skipTokenStorage","toggleTokens","clearToken","decoded","getTokenExpirationDate","setUTCSeconds","tokenSecondsRemaining","offsetSeconds","msRemaining","valueOf","minutes","email_verified","getIssuer","iss","B32Chars","SteamChars","period","digits","keyB32","isOtpAuth","isSteamAuth","digitParams","periodParam","algParam","timeHex","leftPad","decToHex","timeBytes","keyBytes","b32ToBytes","sign","offset","otp","fullCode","trunc","isAutoCopyEnabled","b32ToHex","cleanedInput","bits","hex","byteIndex","chunk","signature","organization_1","clearOrganizations","lockedCallback","loggedOutCallback","checkOnInterval","startCheck","checkVaultTimeout","isBiometricLockSet","isViewOpen","lockTimeout","lastActive","vaultTimeoutSeconds","allowSoftLock","isPinLockSet","logLevelType_1","hrtime","timersMap","debug","LogLevelType","Debug","info","Info","Warning","level","warn","time","timeEnd","elapsed","CipherWithIds","build","CollectionWithId","FolderWithId","importResult_1","baseImporter_1","cipherImportContext_1","IgnoredProperties","OnePasswordCsvImporter","loginPropertyParsers","setLoginUsername","setLoginPassword","setLoginUris","creditCardPropertyParsers","setCreditCardNumber","setCreditCardVerification","setCreditCardCardholderName","setCreditCardExpiry","identityPropertyParsers","setIdentityFirstName","setIdentityInitial","setIdentityLastName","setIdentityUserName","setIdentityEmail","setIdentityPhone","setIdentityCompany","quoteChar","escapeChar","getProp","setNotes","setCipherType","altUsername","context","CipherImportContext","setKnownLoginValue","setKnownCreditCardValue","setKnownIdentityValue","setUnknownValue","entries","agg","entry","getPropByRegexp","regexp","matchingKeys","getPropIncluding","includesMap","importRecord","func","lowerProperty","readableDate","toUTCString","view_1","NotificationType","enableProdMode","__NgCli_bootstrap_2","platformBrowser","bootstrapModule","__NgCli_bootstrap_1","AppModule","preserveWhitespaces","angular2_toaster_1","angulartics2_1","ngx_infinite_scroll_1","app_routing_module_1","drag_drop_1","platform_browser_1","animations_1","services_module_1","app_component_1","avatar_component_1","password_strength_component_1","footer_component_1","frontend_layout_component_1","navbar_component_1","organization_layout_component_1","user_layout_component_1","accept_emergency_component_1","accept_organization_component_1","recover_delete_component_1","recover_two_factor_component_1","verify_email_token_component_1","verify_recover_delete_component_1","events_component_1","groups_component_1","manage_component_1","people_component_1","policies_component_1","account_component_1","adjust_seats_component_1","change_plan_component_1","download_license_component_1","organization_billing_component_1","organization_subscription_component_1","settings_component_1","tools_component_1","collections_component_2","vault_component_1","access_component_1","account_component_2","add_credit_component_1","adjust_payment_component_1","adjust_storage_component_1","change_email_component_1","change_kdf_component_1","create_organization_component_1","domain_rules_component_1","emergency_access_view_component_1","emergency_access_component_1","link_sso_component_1","options_component_1","premium_component_1","profile_component_1","settings_component_2","two_factor_setup_component_2","two_factor_verify_component_1","update_license_component_1","user_subscription_component_1","verify_email_component_1","breach_report_component_1","export_component_2","exposed_passwords_report_component_2","import_component_2","inactive_two_factor_report_component_2","reused_passwords_report_component_2","tools_component_2","unsecured_websites_report_component_2","weak_passwords_report_component_2","add_edit_component_3","attachments_component_2","bulk_actions_component_1","ciphers_component_2","collections_component_3","groupings_component_2","send_info_component_1","vault_component_2","callout_component_1","icon_component_1","a11y_title_directive_1","api_action_directive_1","autofocus_directive_1","blur_click_directive_1","box_row_directive_1","fallback_src_directive_1","input_verbatim_directive_1","select_copy_directive_1","stop_click_directive_1","stop_prop_directive_1","true_false_value_directive_1","color_password_pipe_1","i18n_pipe_1","search_ciphers_pipe_1","search_pipe_1","common_1","ca_1","cs_1","da_1","de_1","el_1","en_GB_1","es_1","et_1","fr_1","he_1","it_1","ja_1","ko_1","lv_1","ml_1","nb_1","nl_1","pl_1","pt_1","pt_PT_1","ru_1","sk_1","sv_1","uk_1","zh_Hans_1","zh_Hant_1","registerLocaleData","bootstrap","AppComponent","imports","BrowserModule","BrowserAnimationsModule","FormsModule","AppRoutingModule","ServicesModule","Angulartics2Module","forRoot","pageTracking","clearQueryParams","ToasterModule","InfiniteScrollModule","DragDropModule","declarations","BlurClickDirective","BoxRowDirective","SearchCiphersPipe","organization_guard_service_1","organization_type_guard_service_1","unauth_guard_service_1","auth_guard_service_1","routes","pathMatch","redirectTo","RouterModule","useHash","paramsInheritanceStrategy","subscribers","messageCallback","passwordHintRequest_1","PasswordHintRequest","pinLock","invalidPinAttempts","pinSet","supportsBiometric","biometricLock","vaultUrl","failed","decPin","setKeyAndContinue","passwordValid","storedKeyHash","unlockBiometric","authenticateBiometric","doContinue","launchSsoBrowser","ssoRedirectUri","ssoCodeVerifier","webUrl","registerRequest_1","useLowerKdf","isIE","RegisterRequest","confirmField","setPasswordRequest_1","SetPasswordRequest","orgIdentifier","onSuccessfulChangePassword","backdrop","className","addEventListener","modals_1","DuoWebSDK","u2f_1","initU2f","loginRoute","authing","needsLock","customWebVaultUrl","cleanupU2f","providerData","Challenge","challenges","Challenges","keyHandle","iframe","sig_request","Signature","submit_callback","sig","stop","doToast","cleanup","getDeviceString","pushToken","codes","client_secret","code_verifier","redirect_uri","deviceIdentifier","deviceName","twoFactorRemember","errorCallback","infoCallback","parseFunction","parseMessage","connectorLink","base64Encode","sendMessage","contentWindow","postMessage","removeEventListener","validMessage","warningDialog","downloadFile","encryptedFormat","getExport","extension","csv","onCancelled","onEditAttachments","onShareCipher","onEditCollections","onGeneratePassword","currentDate","myEmail","policies_1","addEditCipherInfo","previousCipherId","editCollections","restorePromise","restoreCipher","toggleUriOptions","moveItemInArray","previousIndex","currentIndex","activeCipherId","onCipherClicked","onCipherRightClicked","onAddCipher","onAddCipherOptions","searchTimeout","pagedCiphersCount","refreshing","deletedFilter","searchCiphers","rightClickCipher","addCipherOptions","selectedCollectionIds","onAllClicked","onFavoritesClicked","onTrashClicked","onCipherTypeClicked","onFolderClicked","onAddFolder","onEditFolder","onCollectionClicked","setLoaded","collapsedGroupings","clearSelections","idPrefix","sendAccessView_1","sendFile_1","sendText_1","SendAccessView","hasSearched","onSuccessfulLoad","applyTextSearch","removePasswordWithServer","onSuccessfulRemovePassword","onSuccessfulDelete","sendLinkBaseUrl","urlB64Key","searchSends","DateField","sendView_1","premiumRequiredAlertShown","isFirefox","nullOrWhiteSpaceCount","formatDateFallbacks","loadSend","dateToString","deletionDateParts","dateToSplitString","expirationDateParts","safariTimeOptions","DeletionDate","ExpriationDate","deletionDateTimeFallback","expirationDateTimeFallback","setHours","encryptSend","encSend","sendData","dateString","strarray","noon","midnight","ams","pms","hour","midnightOption","noonOption","amOption","pmOption","validTimes","previousValue","showSelect","onSelected","optionsResponse","sliderChanged","sliderInput","copyOptions","cipherView","broadcasterMessaging_service_1","htmlStorage_service_1","memoryStorage_service_1","webPlatformUtils_service_1","event_service_1","router_service_1","validation_service_1","analytics_1","container_service_1","event_service_2","export_service_1","import_service_1","notifications_service_1","policy_service_1","send_service_1","webCryptoFunction_service_1","api_service_2","audit_service_2","auth_service_2","cipher_service_2","collection_service_2","crypto_service_2","cryptoFunction_service_1","environment_service_2","event_service_3","export_service_2","folder_service_2","i18n_service_2","import_service_2","notifications_service_2","passwordGeneration_service_2","policy_service_2","search_service_2","send_service_2","settings_service_2","state_service_2","sync_service_2","token_service_2","totp_service_2","user_service_2","vaultTimeout_service_2","language","BroadcasterMessagingService","WebPlatformUtilsService","HtmlStorageService","MemoryStorageService","WebCryptoFunctionService","consoleLogService","__generator","eventLoggingService","Analytics","initFactory","htmlEl","documentElement","theme","useValue","APP_INITIALIZER","useFactory","deps","LOCALE_ID","subscriber","arg","services_1","localStorageKeys","localStorageStartsWithKeys","memoryStorageStartsWithKeys","memoryStorage","isLocalStorage","localStorage","getItem","isMemoryStorage","sessionStorage","setItem","removeItem","swKey","BillingSourceResponse","BillingTransactionResponse","BillingInvoiceResponse","cardBrand","partiallyRefunded","refundedAmount","isActive","isVerified","modifiedDate","access_token","expiresIn","expires_in","tokenType","token_type","OrganizationUserResponse","userProfile","taxIdType","KeyResponse","limit","throttleKey","allThrottles","throttles","getThrottles","argsThrottleKey","queue","exec","comparator","sortedCiphersByUrl","timeouts","Ciphers","resetTimer","lastUsedIndex","y","getNextIndex","filePath","store","browserCache","chrome","isChrome","isEdge","isOpera","isVivaldi","isMacAppStore","analyticsId","rel","click","blobData","blobOptions","fileNameLower","doDownload","endsWith","msSaveOrOpenBlob","msSaveBlob","createObjectURL","position","confirmText","cancelText","bodyIsHtml","iconClasses","iconHtmlStr","showCancelButton","cancelButtonText","clipboardData","setData","queryCommandSupported","textarea","copyEl","contains","execCommand","readFromClipboard","getDefaultSystemTheme","onDefaultSystemThemeChange","GaObj","AnalyticsIds","gaFilter","dependencyResolver","gaTrackingId","defaultDisabled","appVersion","GoogleAnalyticsObject","param1","param2","ga","gaAnonAppId","gaTrackPageView","hitType","page","gaTrackEvent","XMLHttpRequest","eventCategory","eventAction","eventLabel","eventValue","cleanPagePath","pagePath","paramIndex","pathParts","newPathParts","eventData_1","eventRequest_1","uploadEvents","eventType","uploadImmediately","orgIds","eventCollection","EventData","EventRequest","clearEvents","cipherWithIds_1","collectionWithId_1","folderWithId_1","getEncryptedExport","getDecryptedExport","getOrganizationEncryptedExport","getOrganizationDecryptedExport","padNumber","getSeconds","foldersMap_1","exportCiphers_1","buildCommonCipher","unparse","jsonDoc_1","jsonDoc","collectionPromises","decCol","cipherPromises","decCipher","collectionsMap_1","exportCiphers_2","jsonDoc_2","padCharacter","numString","login_uri","login_username","login_password","login_totp","toView","toDomain","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","importCiphersRequest_1","importOrganizationCiphersRequest_1","kvpRequest_1","ascendoCsvImporter_1","avastCsvImporter_1","avastJsonImporter_1","aviraCsvImporter_1","bitwardenCsvImporter_1","bitwardenJsonImporter_1","blackBerryCsvImporter_1","blurCsvImporter_1","buttercupCsvImporter_1","chromeCsvImporter_1","clipperzHtmlImporter_1","codebookCsvImporter_1","dashlaneJsonImporter_1","encryptrCsvImporter_1","enpassCsvImporter_1","enpassJsonImporter_1","firefoxCsvImporter_1","fsecureFskImporter_1","gnomeJsonImporter_1","kasperskyTxtImporter_1","keepass2XmlImporter_1","keepassxCsvImporter_1","keeperCsvImporter_1","lastpassCsvImporter_1","logMeOnceCsvImporter_1","meldiumCsvImporter_1","msecureCsvImporter_1","mykiCsvImporter_1","onepassword1PifImporter_1","onepasswordMacCsvImporter_1","onepasswordWinCsvImporter_1","padlockCsvImporter_1","passkeepCsvImporter_1","passmanJsonImporter_1","passpackCsvImporter_1","passwordAgentCsvImporter_1","passwordBossJsonImporter_1","passwordDragonXmlImporter_1","passwordSafeXmlImporter_1","passwordWalletTxtImporter_1","rememBearCsvImporter_1","roboformCsvImporter_1","safeInCloudXmlImporter_1","saferpassCsvImport_1","secureSafeCsvImporter_1","splashIdCsvImporter_1","stickyPasswordXmlImporter_1","truekeyCsvImporter_1","upmCsvImporter_1","yotiCsvImporter_1","zohoVaultCsvImporter_1","getImportOptions","importResult","halfway","last","badData","postImport","errorResponse","error_1","handleServerError","getImporterInstance","BitwardenCsvImporter","BitwardenJsonImporter","LastPassCsvImporter","KeePassXCsvImporter","AviraCsvImporter","BlurCsvImporter","SafeInCloudXmlImporter","PadlockCsvImporter","KeePass2XmlImporter","ChromeCsvImporter","FirefoxCsvImporter","UpmCsvImporter","SaferPassCsvImporter","MeldiumCsvImporter","OnePassword1PifImporter","OnePasswordWinCsvImporter","OnePasswordMacCsvImporter","KeeperCsvImporter","PasswordDragonXmlImporter","EnpassCsvImporter","EnpassJsonImporter","PasswordSafeXmlImporter","DashlaneJsonImporter","MSecureCsvImporter","StickyPasswordXmlImporter","TrueKeyCsvImporter","ClipperzHtmlImporter","RoboFormCsvImporter","AscendoCsvImporter","PasswordBossJsonImporter","ZohoVaultCsvImporter","SplashIdCsvImporter","PassKeepCsvImporter","GnomeJsonImporter","PasswordAgentCsvImporter","PasspackCsvImporter","PassmanJsonImporter","AvastCsvImporter","AvastJsonImporter","FSecureFskImporter","KasperskyTxtImporter","RememBearCsvImporter","PasswordWalletTxtImporter","MykiCsvImporter","SecureSafeCsvImporter","LogMeOnceCsvImporter","BlackBerryCsvImporter","ButtercupCsvImporter","CodebookCsvImporter","EncryptrCsvImporter","YotiCsvImporter","ImportCiphersRequest","KvpRequest","request_2","ImportOrganizationCiphersRequest","itemType","Number","fieldLower","web","logins","custName","note","pwd","loginName","cards","holderName","cardNumber","cvv","website","secondary_username","col","addCollection","collectionIndex","delimPosition","parseEncrypted","parseDecrypted","groupingsMap","fav","extra","OfficialProps","processingCustomFields","currentVersion","actionType","labelLower","Category","Favorite","Entry","Note","Username","TOTP","Website","Phone","PIN","Account","HandledResults","ADDRESS","processAddress","AUTHENTIFIANT","processAuth","BANKSTATEMENT","processNote","IDCARD","PAYMENTMEANS_CREDITCARD","processCard","IDENTITY","processIdentity","credential","secondaryLogin","fullName","nameParts","pseudo","addressName","addressFull","zipcode","owner","nameProperty","Label","Notes","CVV","expiry","Expiry","expParts","firstRow","containsField","fieldValue","fieldName","fieldNameLower","foldersMap","foldersIndexMap","folderTree","buildFolderTree","flattenFolderTree","template_type","processLogin","sensitive","uuid","parent_uuid","titlePrefix","tree","creditNumber","creditCvv","creditExpiry","keyRing","display_name","secret","attributes","attr","username_value","notesData","applicationsData","websitesData","workingData","parseDataCategory","applications","websites","nameKey","itemComment","itemCommentKey","colonIndex","rootGroup","traverse","isRootNode","groupPrefixName","groupName","nameEl","cipherIndex","entryString","valueEl","keyEl","attrs","ProtectInMemory","Group","buildBaseCipher","parseSecureNote","parseCard","parseIdentity","ccnum","cardCipher","profilename","firstname","lastname","ccname","cccsc","ccexp","ccexpParts","middlename","zip","extraParts","processedNote","typeParts","mappedData","parseSecureNoteMapping","Name on Card","Security Code","Expiration Date","monthString","First Name","Last Name","Middle Name","Company","Address 1","Address 2","Address 3","City / Town","State","Zip / Postal Code","Country","Email Address","processingNotes","extraPart","DisplayName","UserName","Url","nickname","additionalInfo","twoFactAuthToken","cardName","exp_month","exp_year","firstAddressLine","secondAddressLine","zipCode","line","trashed","processStandardItem","processWinOpVaultItem","overview","URLs","urls_1","parsePasswordHistory","notesPlain","parseFields","sections","section","openContents","faveIndex","typeName","secureContents","urls_2","maxSize","designationKey","valueKey","fieldDesignation","street","onepasswordCsvImporter_1","setIdentityAddress","expSplit","tags","tag","getValue","custom_fields","customField","field_type","tagsJson","Tags","tagJson","__parsed_extra","fieldsJson","extraFields","fieldJson","newVersion","altFormat","login_url","identifiers","valObj","expDate","cf","records","record","categoryText","accountName","tagName","passwordSafe","notesDelimiter","getAttribute","groupText","trash","cardholder","verification","expiryMonth","expMonthNumber","expiryYear","expYearNumber","Name","Pwd","Rf_fields","labelEl","cardEl","labelIdEl","labelId","fieldEl","notesEl","Comment","parseFieldsToNotes","startIndex","loginNodes","loginNode","accountId","usernameText","passwordText","titleText","linkText","notesText","accountLogin","account","parentElement","buildGroupText","PropertiesToIgnore","memo","kind","expiryDate","document_content","ChamberName","parseData","SecretData","CustomData","signalR","signalRMsgPack","notificationType_1","notificationResponse_1","connected","inactive","reconnectTimer","signalrConnection","off","HubConnectionBuilder","withUrl","accessTokenFactory","skipNegotiation","transport","HttpTransportType","WebSockets","withHubProtocol","MessagePackHubProtocol","processNotification","NotificationResponse","onclose","reconnect","isAuthedAndUnlocked","updateConnection","sync","reconnectFromActivity","disconnectFromInactivity","contextId","payloadUserId","UserId","myUserId","SyncCipherCreate","SyncCipherUpdate","SyncCipherDelete","SyncLoginDelete","SyncFolderCreate","SyncFolderUpdate","SyncFolderDelete","SyncVault","SyncCiphers","SyncSettings","SyncOrgKeys","LogOut","SyncSendCreate","SyncSendUpdate","SyncSendDelete","SyncCipherNotification","SyncFolderNotification","UserNotification","SyncSendNotification","masterPasswordPolicyOptions_1","policyCache","MasterPasswordPolicyOptions","newPassword","toLocaleLowerCase","toLocaleUpperCase","lunr","indexing","builder","Builder","boost","extractor","uriExtractor","fieldExtractor","attachmentExtractor","isArray","every","getIndexForSearch","ciphersMap","searchResults","soWild_1","Query","wildcard","LEADING","TRAILING","q","tokenizer","term","joined","protocolIndex","queryIndex","sendRequest_1","send_1","decryptedSendCache","fileData","Send","cryptoKey","ArrayBuffer","encryptFileData","parseFile","decSends","SendRequest","name_2","encFileData","fileLength","forge","decryptParameters_1","crypto","subtle","ua","isOldSafari","algorithm","iterations","forgeLen","passwordBytes","toByteString","saltBytes","derivedKeyBytes","wcLen","passwordBuf","toBuf","saltBuf","pbkdf2Params","toWebCryptoAlgorithm","importKey","impKey","deriveBits","ikm","outputByteSize","infoBuf","hkdfParams","prk","hashLen","infoArr","runningOkmLength","previousT","okm","md","md5","sha1","valueBytes","update","digest","valueBuf","signingAlgorithm","mac1","mac2","arr1","arr2","getBytes","rand","Uint32Array","util","createBuffer","putInt32","DecryptParameters","meta","encKeyByteString","macKeyByteString","decode64","parameters","dataBuffer","createDecipher","finish","rsaParams","impPrivateKey","exportKey","jwkPrivateKey","jwkPublicKeyParams","kty","ext","impPublicKey","modulusLength","publicExponent","generateKey","getRandomValues","encodeUtf8","angulartics2GoogleAnalytics","toasterConfig","ToasterConfig","showCloseButton","mouseoverTimerStop","animation","lastActivity","idleTimer","isIdle","runOutsideAngular","onmousemove","recordActivity","onmousedown","ontouchstart","onclick","onscroll","onkeypress","setFullWidth","idleStateChanged","message_1","sanitize","SecurityContext","HTML","bodyOutputType","BodyOutputType","TrustedHtml","trustedHtml","Angulartics2GoogleAnalytics","i15","i16","i17","i18","i19","i20","i21","i22","i23","i24","i25","i26","blur","elRef","formEls","formEl","inputEl"],"mappings":"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QAGGr3I,EAAA9F,UAAAq6I,YAAd,SAA0B73I,EAAyBmzB,0GAE3C6nH,EAA0B,KACH,KAAvBh7I,EAAIA,IAAI2Q,WAAR,MACe,GAAM3P,KAAK20I,WAAW31I,WACzB,OADN4hH,EAASzvG,EAAAuH,OACH,GAAM1Y,KAAKilD,QAAQ9yB,EAAQyuF,kBAAvCo5B,EAAY7oI,EAAAuH,2BACkB,KAAvB1Z,EAAIA,IAAI2Q,WAAR,MACK,GAAM3P,KAAKilD,QAAQ9yB,EAAQnzB,kBAAvCg7I,EAAY7oI,EAAAuH,oBAEZ,MAAM,IAAI9V,MAAM,4BAEpB,SAAO,CAAC,IAAIqlE,EAAAphB,mBAAmB10B,GAAS6nH,UAjmB5C1P,EAAA,CADCO,EAAAmH,cAAc,WAAM,qEACA/pE,EAAAphB,mFA4ErByjF,EAAA,CADCO,EAAAmH,cAAc,WAAM,wIAwhBzB1vI,EA1rBA,GAAa3E,EAAA2E,+FC7BA3E,EAAA67I,gBAAkB,CAC3B,SACA,UACA,YACA,QACA,UACA,UACA,SACA,OACA,WACA,WACA,WACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,SACA,SACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,WACA,UACA,OACA,UACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,OACA,UACA,YACA,WACA,WACA,UACA,YACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,SACA,QACA,YACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,SACA,YACA,YACA,YACA,YACA,YACA,OACA,UACA,SACA,SACA,QACA,YACA,SACA,QACA,UACA,QACA,WACA,UACA,YACA,QACA,YACA,YACA,SACA,WACA,YACA,UACA,QACA,OACA,OACA,OACA,MACA,OACA,YACA,QACA,YACA,QACA,UACA,UACA,YACA,QACA,QACA,YACA,WACA,SACA,QACA,QACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,QACA,QACA,YACA,QACA,WACA,UACA,WACA,WACA,OACA,WACA,SACA,SACA,WACA,QACA,YACA,QACA,WACA,YACA,YACA,WACA,YACA,YACA,SACA,YACA,YACA,SACA,UACA,UACA,WACA,OACA,QACA,QACA,QACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,UACA,WACA,YACA,UACA,YACA,UACA,SACA,UACA,UACA,UACA,SACA,SACA,WACA,OACA,YACA,UACA,QACA,SACA,SACA,SACA,UACA,UACA,YACA,YACA,UACA,SACA,UACA,YACA,YACA,WACA,QACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,UACA,WACA,UACA,YACA,UACA,YACA,WACA,WACA,WACA,SACA,UACA,YACA,WACA,SACA,WACA,WACA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,SACA,UACA,QACA,QACA,UACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,WACA,QACA,SACA,UACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,QACA,YACA,YACA,UACA,QACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,WACA,QACA,OACA,WACA,YACA,YACA,WACA,OACA,QACA,WACA,WACA,QACA,QACA,YACA,UACA,WACA,QACA,SACA,UACA,SACA,UACA,UACA,UACA,SACA,UACA,OACA,QACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,QACA,MACA,SACA,YACA,SACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,YACA,SACA,WACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,YACA,SACA,WACA,QACA,OACA,WACA,OACA,SACA,YACA,UACA,SACA,SACA,UACA,YACA,WACA,YACA,YACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,UACA,WACA,QACA,WACA,YACA,SACA,YACA,SACA,SACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,UACA,WACA,QACA,WACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,UACA,SACA,QACA,OACA,OACA,SACA,WACA,SACA,SACA,WACA,YACA,YACA,WACA,SACA,SACA,YACA,WACA,WACA,UACA,YACA,WACA,WACA,YACA,UACA,UACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,YACA,SACA,WACA,WACA,YACA,WACA,QACA,WACA,YACA,SACA,QACA,UACA,QACA,UACA,SACA,WACA,QACA,SACA,UACA,SACA,SACA,YACA,UACA,QACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,QACA,WACA,SACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,SACA,YACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,QACA,WACA,UACA,WACA,SACA,UACA,SACA,OACA,YACA,UACA,YACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,OACA,YACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,OACA,YACA,WACA,YACA,UACA,UACA,SACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,UACA,YACA,YACA,QACA,YACA,YACA,QACA,WACA,YACA,SACA,UACA,SACA,QACA,QACA,UACA,QACA,QACA,WACA,QACA,QACA,UACA,UACA,WACA,SACA,OACA,WACA,QACA,WACA,UACA,WACA,OACA,OACA,WACA,WACA,UACA,OACA,SACA,UACA,QACA,SACA,YACA,QACA,QACA,UACA,SACA,QACA,QACA,WACA,UACA,WACA,WACA,OACA,SACA,UACA,SACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,QACA,OACA,MACA,UACA,OACA,UACA,SACA,UACA,WACA,QACA,WACA,WACA,WACA,QACA,UACA,SACA,SACA,QACA,OACA,YACA,YACA,OACA,YACA,SACA,QACA,SACA,UACA,WACA,UACA,QACA,QACA,QACA,SACA,UACA,WACA,YACA,OACA,YACA,WACA,SACA,QACA,OACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,YACA,YACA,SACA,SACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,YACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,UACA,UACA,SACA,YACA,OACA,QACA,QACA,UACA,UACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,WACA,QACA,QACA,UACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,WACA,QACA,YACA,SACA,WACA,SACA,YACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,UACA,QACA,OACA,QACA,YACA,SACA,OACA,UACA,YACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,QACA,QACA,SACA,SACA,SACA,UACA,YACA,WACA,QACA,OACA,SACA,OACA,SACA,UACA,OACA,WACA,OACA,SACA,UACA,SACA,YACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,WACA,UACA,OACA,UACA,OACA,WACA,WACA,UACA,YACA,WACA,UACA,YACA,OACA,UACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,WACA,UACA,WACA,SACA,QACA,SACA,SACA,UACA,SACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,SACA,QACA,YACA,SACA,UACA,SACA,UACA,UACA,WACA,OACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,UACA,YACA,UACA,YACA,UACA,UACA,QACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,YACA,YACA,YACA,WACA,SACA,YACA,QACA,SACA,UACA,UACA,WACA,UACA,YACA,WACA,YACA,QACA,YACA,YACA,UACA,UACA,UACA,SACA,YACA,QACA,SACA,WACA,SACA,UACA,YACA,YACA,QACA,UACA,UACA,UACA,OACA,OACA,SACA,SACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,WACA,SACA,UACA,WACA,WACA,UACA,YACA,WACA,UACA,SACA,SACA,SACA,UACA,YACA,SACA,QACA,UACA,YACA,SACA,SACA,YACA,QACA,UACA,YACA,UACA,WACA,WACA,UACA,SACA,SACA,QACA,SACA,YACA,WACA,WACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,WACA,QACA,QACA,UACA,YACA,UACA,YACA,WACA,SACA,SACA,UACA,QACA,QACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,WACA,UACA,WACA,UACA,UACA,QACA,UACA,UACA,WACA,QACA,UACA,SACA,WACA,WACA,WACA,UACA,WACA,SACA,WACA,UACA,QACA,QACA,SACA,SACA,OACA,YACA,UACA,QACA,YACA,SACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,YACA,YACA,YACA,WACA,YACA,YACA,QACA,QACA,QACA,OACA,WACA,SACA,WACA,WACA,QACA,WACA,WACA,SACA,YACA,UACA,QACA,UACA,WACA,SACA,OACA,SACA,UACA,WACA,SACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,UACA,SACA,SACA,OACA,QACA,QACA,OACA,QACA,WACA,SACA,SACA,QACA,YACA,QACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,OACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,YACA,WACA,QACA,SACA,UACA,SACA,UACA,WACA,QACA,SACA,WACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,UACA,UACA,WACA,QACA,SACA,UACA,WACA,YACA,QACA,WACA,SACA,SACA,YACA,SACA,UACA,QACA,YACA,UACA,UACA,WACA,YACA,YACA,OACA,WACA,SACA,UACA,SACA,QACA,UACA,MACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,OACA,OACA,OACA,OACA,WACA,WACA,UACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,QACA,QACA,SACA,QACA,WACA,UACA,UACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,YACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,QACA,YACA,UACA,WACA,WACA,SACA,WACA,YACA,YACA,UACA,YACA,YACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,YACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,UACA,YACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,OACA,QACA,OACA,WACA,YACA,UACA,SACA,SACA,SACA,YACA,YACA,WACA,WACA,YACA,QACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,OACA,UACA,SACA,QACA,QACA,QACA,YACA,YACA,WACA,YACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,SACA,WACA,OACA,WACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,YACA,SACA,QACA,YACA,QACA,UACA,UACA,QACA,QACA,QACA,UACA,WACA,WACA,WACA,WACA,SACA,SACA,UACA,YACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,WACA,WACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,UACA,WACA,YACA,UACA,WACA,UACA,WACA,OACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,UACA,UACA,UACA,WACA,UACA,YACA,SACA,WACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,UACA,QACA,QACA,UACA,UACA,YACA,UACA,YACA,UACA,QACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,UACA,UACA,WACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,UACA,UACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,YACA,WACA,UACA,YACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,YACA,UACA,QACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,YACA,QACA,QACA,QACA,OACA,SACA,UACA,YACA,UACA,YACA,WACA,YACA,UACA,MACA,QACA,SACA,UACA,UACA,WACA,SACA,YACA,YACA,MACA,MACA,WACA,SACA,QACA,WACA,SACA,QACA,QACA,WACA,QACA,UACA,YACA,SACA,WACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,WACA,YACA,UACA,WACA,WACA,UACA,OACA,OACA,YACA,OACA,YACA,OACA,WACA,SACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,QACA,SACA,SACA,QACA,QACA,YACA,QACA,WACA,SACA,WACA,YACA,WACA,UACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,WACA,OACA,WACA,UACA,SACA,YACA,YACA,YACA,QACA,WACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,SACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,WACA,YACA,WACA,SACA,YACA,QACA,WACA,QACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,QACA,SACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,SACA,QACA,SACA,QACA,UACA,SACA,UACA,UACA,OACA,YACA,YACA,WACA,YACA,SACA,UACA,YACA,WACA,SACA,SACA,SACA,WACA,YACA,YACA,UACA,UACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,WACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,QACA,UACA,WACA,UACA,UACA,YACA,WACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,OACA,WACA,SACA,YACA,QACA,OACA,SACA,UACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,MACA,WACA,YACA,WACA,OACA,SACA,OACA,WACA,QACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,YACA,QACA,QACA,SACA,SACA,UACA,UACA,UACA,SACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,SACA,WACA,WACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,WACA,OACA,YACA,UACA,OACA,UACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,QACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,WACA,SACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,QACA,SACA,SACA,OACA,WACA,WACA,QACA,QACA,QACA,QACA,OACA,SACA,YACA,SACA,QACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,QACA,QACA,SACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,UACA,QACA,OACA,YACA,SACA,SACA,OACA,SACA,WACA,SACA,OACA,OACA,QACA,OACA,OACA,WACA,YACA,YACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,YACA,QACA,UACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,SACA,QACA,OACA,UACA,QACA,QACA,QACA,UACA,WACA,YACA,WACA,WACA,SACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,QACA,QACA,QACA,YACA,UACA,WACA,UACA,UACA,UACA,QACA,QACA,WACA,SACA,OACA,MACA,SACA,YACA,UACA,WACA,UACA,WACA,WACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,SACA,WACA,OACA,UACA,WACA,WACA,MACA,OACA,SACA,YACA,YACA,UACA,UACA,WACA,SACA,SACA,OACA,OACA,UACA,OACA,QACA,QACA,QACA,UACA,UACA,WACA,UACA,YACA,UACA,WACA,UACA,WACA,WACA,OACA,QACA,UACA,UACA,UACA,SACA,UACA,QACA,UACA,UACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,SACA,UACA,QACA,UACA,SACA,WACA,SACA,YACA,YACA,SACA,WACA,UACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,YACA,OACA,SACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,YACA,OACA,WACA,SACA,OACA,UACA,SACA,WACA,YACA,WACA,MACA,YACA,UACA,YACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,UACA,SACA,QACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,SACA,MACA,WACA,WACA,YACA,QACA,UACA,SACA,MACA,UACA,WACA,MACA,YACA,QACA,YACA,WACA,YACA,QACA,UACA,QACA,QACA,UACA,SACA,UACA,YACA,YACA,QACA,WACA,UACA,SACA,SACA,WACA,SACA,YACA,QACA,UACA,YACA,WACA,OACA,QACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,YACA,QACA,MACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,SACA,SACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,YACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,UACA,SACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,SACA,SACA,SACA,UACA,UACA,SACA,SACA,YACA,WACA,YACA,WACA,SACA,UACA,SACA,SACA,YACA,SACA,SACA,WACA,UACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,WACA,QACA,OACA,SACA,OACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,WACA,UACA,QACA,SACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,WACA,SACA,SACA,UACA,YACA,SACA,SACA,UACA,QACA,QACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,SACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,UACA,QACA,YACA,SACA,YACA,WACA,UACA,QACA,WACA,YACA,YACA,UACA,UACA,OACA,YACA,YACA,YACA,WACA,WACA,QACA,WACA,UACA,OACA,QACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,SACA,UACA,SACA,QACA,WACA,OACA,SACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,YACA,YACA,YACA,QACA,SACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,YACA,SACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,OACA,SACA,UACA,SACA,OACA,QACA,UACA,OACA,WACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,UACA,OACA,UACA,YACA,YACA,UACA,UACA,WACA,SACA,UACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,MACA,QACA,UACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,WACA,WACA,WACA,WACA,QACA,QACA,UACA,SACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,SACA,SACA,WACA,UACA,YACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,WACA,YACA,UACA,UACA,QACA,WACA,QACA,UACA,SACA,WACA,SACA,SACA,SACA,UACA,OACA,SACA,QACA,WACA,SACA,WACA,WACA,UACA,UACA,YACA,QACA,WACA,QACA,UACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,MACA,OACA,UACA,UACA,WACA,WACA,YACA,YACA,QACA,UACA,QACA,QACA,YACA,UACA,WACA,WACA,OACA,UACA,YACA,YACA,YACA,WACA,WACA,SACA,QACA,UACA,WACA,SACA,WACA,UACA,YACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,OACA,UACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,OACA,SACA,UACA,QACA,WACA,UACA,UACA,QACA,SACA,UACA,WACA,OACA,MACA,MACA,OACA,QACA,OACA,WACA,SACA,WACA,SACA,WACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,WACA,WACA,UACA,YACA,WACA,YACA,WACA,QACA,QACA,UACA,UACA,YACA,SACA,UACA,QACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,SACA,YACA,WACA,YACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,WACA,SACA,YACA,WACA,QACA,UACA,UACA,WACA,SACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,QACA,SACA,UACA,QACA,UACA,YACA,SACA,OACA,QACA,YACA,UACA,WACA,WACA,YACA,SACA,QACA,QACA,SACA,WACA,YACA,WACA,QACA,YACA,SACA,MACA,QACA,MACA,YACA,UACA,QACA,OACA,YACA,WACA,UACA,SACA,SACA,UACA,YACA,SACA,YACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,MACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,MACA,WACA,YACA,SACA,UACA,WACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,WACA,WACA,QACA,UACA,YACA,SACA,QACA,YACA,WACA,YACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,YACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,QACA,QACA,YACA,SACA,UACA,YACA,QACA,OACA,WACA,YACA,WACA,SACA,WACA,SACA,SACA,SACA,QACA,UACA,SACA,WACA,QACA,QACA,SACA,QACA,UACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,SACA,WACA,YACA,QACA,UACA,QACA,WACA,UACA,WACA,UACA,SACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,UACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,QACA,QACA,QACA,UACA,WACA,UACA,OACA,SACA,YACA,UACA,SACA,OACA,OACA,WACA,OACA,UACA,QACA,WACA,WACA,YACA,OACA,UACA,QACA,UACA,OACA,OACA,OACA,QACA,WACA,YACA,QACA,SACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,SACA,SACA,SACA,OACA,OACA,OACA,WACA,YACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,UACA,WACA,QACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,UACA,YACA,QACA,QACA,YACA,UACA,UACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,QACA,OACA,UACA,WACA,WACA,YACA,SACA,QACA,UACA,WACA,OACA,YACA,OACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,OACA,UACA,OACA,WACA,SACA,QACA,QACA,SACA,WACA,SACA,QACA,SACA,UACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,UACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,OACA,WACA,QACA,OACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,OACA,OACA,QACA,QACA,UACA,OACA,SACA,MACA,UACA,WACA,YACA,WACA,UACA,WACA,SACA,SACA,UACA,UACA,MACA,UACA,QACA,OACA,UACA,OACA,SACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,YACA,SACA,QACA,YACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,WACA,QACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,UACA,QACA,UACA,OACA,SACA,QACA,UACA,YACA,QACA,SACA,YACA,WACA,UACA,WACA,YACA,OACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,WACA,SACA,OACA,WACA,WACA,YACA,YACA,YACA,SACA,SACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,UACA,WACA,OACA,OACA,QACA,UACA,YACA,UACA,QACA,UACA,YACA,QACA,SACA,SACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,QACA,WACA,QACA,SACA,SACA,YACA,QACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,WACA,WACA,UACA,WACA,SACA,SACA,WACA,OACA,MACA,OACA,OACA,OACA,QACA,SACA,WACA,SACA,QACA,YACA,WACA,UACA,SACA,YACA,WACA,YACA,WACA,WACA,SACA,SACA,YACA,YACA,SACA,WACA,SACA,OACA,SACA,UACA,WACA,WACA,SACA,SACA,SACA,UACA,SACA,YACA,UACA,QACA,OACA,UACA,OACA,SACA,YACA,MACA,SACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,UACA,QACA,OACA,OACA,MACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,QACA,OACA,QACA,WACA,SACA,SACA,YACA,WACA,WACA,QACA,YACA,WACA,UACA,WACA,UACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,SACA,YACA,UACA,WACA,YACA,YACA,WACA,SACA,UACA,YACA,YACA,WACA,UACA,YACA,YACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,SACA,SACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,WACA,YACA,YACA,UACA,QACA,UACA,YACA,UACA,OACA,YACA,SACA,QACA,MACA,MACA,SACA,SACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,MACA,UACA,UACA,SACA,UACA,UACA,WACA,QACA,OACA,QACA,UACA,UACA,OACA,UACA,YACA,OACA,OACA,YACA,UACA,QACA,SACA,SACA,MACA,QACA,SACA,QACA,SACA,WACA,OACA,UACA,UACA,MACA,SACA,YACA,SACA,UACA,OACA,UACA,WACA,WACA,YACA,QACA,OACA,MACA,SACA,WACA,YACA,SACA,UACA,WACA,YACA,WACA,QACA,YACA,WACA,YACA,OACA,SACA,WACA,UACA,QACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,OACA,WACA,WACA,OACA,SACA,UACA,SACA,UACA,WACA,SACA,QACA,OACA,UACA,YACA,UACA,SACA,WACA,WACA,QACA,WACA,UACA,SACA,QACA,QACA,SACA,WACA,OACA,MACA,OACA,SACA,OACA,WACA,WACA,SACA,OACA,OACA,WACA,WACA,YACA,WACA,OACA,SACA,SACA,WACA,SACA,WACA,UACA,UACA,UACA,OACA,UACA,UACA,YACA,WACA,SACA,UACA,UACA,OACA,SACA,QACA,OACA,UACA,WACA,OACA,QACA,WACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,UACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,QACA,UACA,SACA,QACA,SACA,UACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,UACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,OACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,OACA,UACA,SACA,YACA,UACA,QACA,OACA,SACA,OACA,OACA,UACA,SACA,UACA,YACA,WACA,SACA,UACA,QACA,WACA,SACA,WACA,YACA,YACA,SACA,UACA,YACA,UACA,UACA,WACA,MACA,OACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,SACA,QACA,QACA,OACA,OACA,UACA,YACA,QACA,QACA,UACA,WACA,OACA,QACA,WACA,WACA,SACA,SACA,WACA,UACA,OACA,OACA,MACA,UACA,UACA,SACA,OACA,OACA,WACA,YACA,SACA,SACA,SACA,UACA,QACA,SACA,QACA,YACA,UACA,SACA,SACA,YACA,YACA,QACA,UACA,YACA,WACA,YACA,YACA,SACA,WACA,UACA,SACA,YACA,WACA,YACA,UACA,UACA,SACA,QACA,WACA,WACA,YACA,YACA,OACA,QACA,OACA,YACA,OACA,SACA,WACA,SACA,YACA,UACA,YACA,WACA,QACA,YACA,SACA,QACA,YACA,WACA,WACA,SACA,WACA,WACA,QACA,OACA,UACA,YACA,WACA,UACA,SACA,UACA,WACA,QACA,YACA,WACA,YACA,YACA,YACA,UACA,YACA,WACA,WACA,SACA,WACA,UACA,YACA,WACA,WACA,QACA,YACA,SACA,YACA,OACA,OACA,SACA,UACA,YACA,UACA,WACA,UACA,WACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,YACA,UACA,UACA,UACA,YACA,WACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,SACA,SACA,OACA,MACA,WACA,YACA,UACA,UACA,WACA,QACA,QACA,YACA,YACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,YACA,SACA,UACA,SACA,QACA,YACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,UACA,WACA,SACA,UACA,UACA,UACA,YACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,OACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,WACA,WACA,QACA,WACA,WACA,UACA,QACA,SACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,QACA,SACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,YACA,WACA,QACA,WACA,OACA,YACA,WACA,WACA,UACA,MACA,YACA,SACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,YACA,YACA,YACA,WACA,MACA,SACA,WACA,UACA,YACA,WACA,WACA,WACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,OACA,WACA,YACA,SACA,WACA,YACA,SACA,YACA,QACA,QACA,YACA,WACA,UACA,WACA,UACA,WACA,QACA,YACA,YACA,QACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,OACA,MACA,MACA,WACA,QACA,OACA,SACA,UACA,WACA,WACA,YACA,YACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,WACA,UACA,YACA,SACA,QACA,YACA,QACA,YACA,WACA,SACA,UACA,YACA,WACA,QACA,QACA,SACA,YACA,QACA,UACA,UACA,SACA,YACA,QACA,UACA,SACA,WACA,OACA,YACA,YACA,SACA,OACA,SACA,SACA,SACA,UACA,YACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,QACA,YACA,OACA,SACA,SACA,UACA,QACA,SACA,UACA,YACA,WACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,UACA,OACA,SACA,OACA,UACA,QACA,OACA,MACA,YACA,SACA,WACA,WACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,QACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,QACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,WACA,YACA,QACA,SACA,QACA,MACA,MACA,QACA,MACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,YACA,OACA,UACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,SACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,SACA,QACA,SACA,UACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,MACA,QACA,WACA,QACA,OACA,UACA,WACA,OACA,WACA,UACA,WACA,UACA,QACA,SACA,WACA,OACA,WACA,QACA,UACA,YACA,UACA,OACA,SACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,WACA,UACA,YACA,YACA,YACA,WACA,QACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,MACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,QACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,YACA,UACA,UACA,SACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,OACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,MACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,SACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,QACA,SACA,UACA,SACA,YACA,OACA,WACA,YACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,QACA,WACA,OACA,YACA,QACA,UACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,SACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,UACA,SACA,WACA,SACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,QACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,YACA,SACA,WACA,YACA,OACA,WACA,UACA,QACA,YACA,UACA,SACA,YACA,YACA,SACA,WACA,QACA,YACA,WACA,SACA,SACA,UACA,UACA,WACA,SACA,QACA,QACA,SACA,UACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,UACA,SACA,OACA,SACA,WACA,UACA,SACA,UACA,UACA,YACA,WACA,UACA,YACA,QACA,SACA,UACA,WACA,YACA,MACA,WACA,UACA,QACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,QACA,OACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,YACA,SACA,YACA,QACA,SACA,WACA,QACA,YACA,SACA,YACA,YACA,QACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,UACA,UACA,WACA,QACA,UACA,QACA,SACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,UACA,WACA,YACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,UACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,YACA,WACA,QACA,WACA,QACA,SACA,YACA,SACA,WACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,UACA,WACA,SACA,OACA,YACA,UACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,YACA,UACA,YACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,SACA,QACA,WACA,WACA,UACA,WACA,YACA,OACA,SACA,WACA,WACA,SACA,YACA,WACA,UACA,SACA,WACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,UACA,WACA,SACA,SACA,UACA,YACA,UACA,UACA,QACA,SACA,WACA,QACA,UACA,OACA,WACA,YACA,UACA,QACA,SACA,MACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,YACA,UACA,SACA,WACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,SACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,UACA,SACA,YACA,YACA,YACA,SACA,UACA,YACA,UACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,UACA,SACA,UACA,UACA,YACA,UACA,UACA,WACA,SACA,YACA,WACA,QACA,SACA,YACA,UACA,UACA,SACA,QACA,WACA,QACA,QACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,YACA,WACA,WACA,YACA,QACA,UACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,QACA,QACA,YACA,SACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,UACA,YACA,WACA,SACA,YACA,YACA,WACA,WACA,QACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,QACA,YACA,QACA,UACA,MACA,UACA,SACA,YACA,SACA,SACA,MACA,OACA,YACA,OACA,UACA,QACA,YACA,OACA,SACA,SACA,QACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,SACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,QACA,UACA,WACA,SACA,SACA,UACA,SACA,SACA,WACA,YACA,OACA,QACA,YACA,WACA,UACA,WACA,WACA,YACA,SACA,YACA,UACA,WACA,UACA,SACA,QACA,UACA,OACA,SACA,WACA,UACA,YACA,SACA,QACA,WACA,QACA,WACA,QACA,UACA,YACA,YACA,UACA,UACA,QACA,UACA,UACA,SACA,YACA,YACA,WACA,UACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,QACA,QACA,QACA,UACA,YACA,QACA,OACA,SACA,YACA,WACA,YACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,WACA,YACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,UACA,SACA,OACA,SACA,QACA,SACA,WACA,OACA,SACA,QACA,YACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,SACA,SACA,OACA,UACA,SACA,QACA,SACA,SACA,UACA,YACA,WACA,QACA,YACA,WACA,WACA,UACA,WACA,OACA,YACA,WACA,UACA,YACA,YACA,YACA,WACA,SACA,WACA,WACA,WACA,UACA,YACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,SACA,SACA,YACA,SACA,SACA,SACA,SACA,YACA,YACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,UACA,WACA,WACA,WACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,YACA,UACA,UACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,UACA,SACA,WACA,YACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,UACA,WACA,WACA,QACA,QACA,UACA,UACA,YACA,WACA,WACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,SACA,SACA,WACA,SACA,YACA,OACA,SACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,QACA,UACA,YACA,SACA,UACA,SACA,YACA,UACA,UACA,UACA,WACA,SACA,WACA,YACA,YACA,WACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,WACA,UACA,SACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,UACA,SACA,UACA,QACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,YACA,OACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,UACA,WACA,SACA,SACA,WACA,YACA,YACA,SACA,WACA,YACA,SACA,YACA,YACA,UACA,UACA,UACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,SACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,WACA,SACA,OACA,SACA,UACA,OACA,UACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,UACA,OACA,UACA,WACA,WACA,UACA,SACA,WACA,UACA,OACA,SACA,OACA,UACA,UACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,UACA,QACA,UACA,OACA,QACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,UACA,UACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,SACA,UACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,WACA,UACA,QACA,YACA,UACA,SACA,UACA,QACA,OACA,SACA,UACA,QACA,OACA,OACA,OACA,MACA,UACA,WACA,YACA,SACA,YACA,SACA,YACA,UACA,WACA,QACA,UACA,SACA,YACA,YACA,SACA,WACA,UACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,QACA,SACA,WACA,SACA,SACA,QACA,SACA,QACA,OACA,WACA,SACA,UACA,YACA,YACA,OACA,SACA,WACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,UACA,SACA,WACA,UACA,UACA,YACA,UACA,YACA,YACA,WACA,QACA,WACA,YACA,OACA,QACA,UACA,YACA,QACA,UACA,YACA,UACA,OACA,YACA,QACA,UACA,WACA,QACA,YACA,YACA,UACA,WACA,WACA,YACA,QACA,QACA,SACA,UACA,QACA,UACA,SACA,QACA,YACA,MACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,WACA,OACA,UACA,UACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,QACA,UACA,YACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,QACA,QACA,WACA,QACA,QACA,UACA,QACA,SACA,YACA,YACA,SACA,YACA,SACA,UACA,QACA,WACA,SACA,YACA,UACA,WACA,WACA,SACA,WACA,WACA,WACA,YACA,YACA,QACA,UACA,UACA,SACA,WACA,SACA,WACA,YACA,SACA,SACA,UACA,YACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,WACA,YACA,SACA,UACA,WACA,YACA,YACA,SACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,QACA,SACA,WACA,WACA,WACA,SACA,WACA,UACA,UACA,UACA,SACA,WACA,YACA,YACA,WACA,OACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,UACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,WACA,QACA,YACA,SACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,UACA,WACA,QACA,UACA,UACA,SACA,WACA,UACA,UACA,SACA,WACA,QACA,YACA,YACA,UACA,UACA,WACA,SACA,QACA,SACA,UACA,YACA,UACA,SACA,QACA,QACA,WACA,UACA,YACA,UACA,QACA,QACA,UACA,UACA,QACA,UACA,WACA,QACA,SACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,YACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,SACA,SACA,UACA,WACA,YACA,SACA,UACA,SACA,UACA,QACA,UACA,YACA,UACA,QACA,OACA,QACA,YACA,QACA,QACA,WACA,UACA,WACA,WACA,QACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,QACA,UACA,YACA,YACA,WACA,QACA,SACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,SACA,SACA,UACA,WACA,YACA,SACA,QACA,SACA,WACA,UACA,UACA,YACA,OACA,QACA,OACA,MACA,UACA,WACA,UACA,SACA,SACA,SACA,OACA,UACA,WACA,WACA,SACA,SACA,UACA,OACA,YACA,QACA,OACA,OACA,SACA,YACA,SACA,YACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,UACA,MACA,QACA,SACA,SACA,SACA,UACA,WACA,YACA,UACA,UACA,QACA,UACA,WACA,YACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,UACA,YACA,WACA,WACA,UACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,UACA,UACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,SACA,YACA,UACA,WACA,WACA,QACA,UACA,WACA,WACA,UACA,QACA,YACA,UACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,OACA,UACA,QACA,WACA,YACA,UACA,WACA,QACA,UACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,YACA,SACA,SACA,UACA,QACA,SACA,YACA,UACA,WACA,YACA,WACA,WACA,QACA,WACA,YACA,SACA,OACA,OACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,OACA,YACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,QACA,UACA,YACA,UACA,WACA,UACA,QACA,WACA,QACA,YACA,QACA,QACA,QACA,UACA,QACA,OACA,SACA,YACA,YACA,UACA,QACA,UACA,SACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,QACA,UACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,UACA,WACA,SACA,UACA,SACA,QACA,UACA,UACA,QACA,QACA,WACA,YACA,YACA,UACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,QACA,OACA,QACA,UACA,SACA,WACA,QACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,YACA,SACA,QACA,YACA,UACA,WACA,YACA,UACA,WACA,QACA,OACA,SACA,YACA,SACA,SACA,QACA,SACA,QACA,QACA,UACA,SACA,UACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,YACA,UACA,YACA,WACA,YACA,UACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,UACA,QACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,QACA,WACA,WACA,SACA,SACA,SACA,YACA,UACA,YACA,YACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,QACA,SACA,WACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,QACA,WACA,UACA,YACA,UACA,WACA,SACA,WACA,UACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,QACA,YACA,WACA,WACA,YACA,QACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,OACA,SACA,UACA,OACA,SACA,UACA,YACA,YACA,WACA,YACA,UACA,OACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,QACA,YACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,UACA,QACA,QACA,SACA,QACA,QACA,YACA,YACA,WACA,UACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,QACA,QACA,QACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,QACA,SACA,SACA,SACA,WACA,YACA,QACA,SACA,UACA,SACA,WACA,SACA,SACA,SACA,SACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,WACA,YACA,SACA,YACA,UACA,WACA,QACA,SACA,QACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,SACA,QACA,UACA,WACA,SACA,UACA,YACA,QACA,QACA,UACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,YACA,UACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,YACA,YACA,YACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,UACA,WACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,UACA,YACA,OACA,UACA,SACA,SACA,OACA,WACA,YACA,UACA,SACA,YACA,WACA,QACA,UACA,QACA,WACA,WACA,WACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,WACA,YACA,SACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,SACA,WACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,SACA,UACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,YACA,WACA,SACA,WACA,UACA,YACA,WACA,QACA,UACA,UACA,WACA,YACA,YACA,OACA,YACA,UACA,YACA,OACA,WACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,QACA,QACA,SACA,SACA,UACA,UACA,QACA,SACA,QACA,QACA,QACA,WACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,QACA,SACA,UACA,UACA,QACA,WACA,SACA,SACA,YACA,UACA,YACA,UACA,SACA,WACA,QACA,OACA,UACA,WACA,UACA,UACA,WACA,UACA,YACA,MACA,UACA,OACA,SACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,SACA,OACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,UACA,UACA,OACA,YACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,OACA,SACA,QACA,YACA,UACA,QACA,WACA,SACA,WACA,SACA,QACA,SACA,QACA,OACA,OACA,UACA,YACA,OACA,QACA,QACA,WACA,WACA,UACA,UACA,YACA,QACA,SACA,WACA,UACA,UACA,YACA,WACA,WACA,QACA,UACA,QACA,QACA,SACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,WACA,SACA,YACA,SACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,WACA,WACA,OACA,YACA,UACA,QACA,QACA,QACA,SACA,WACA,UACA,OACA,QACA,UACA,UACA,YACA,YACA,WACA,UACA,OACA,SACA,OACA,OACA,QACA,SACA,UACA,YACA,UACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,OACA,UACA,OACA,SACA,SACA,SACA,UACA,YACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,UACA,QACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,UACA,SACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,WACA,WACA,OACA,YACA,WACA,YACA,UACA,QACA,SACA,OACA,UACA,UACA,YACA,SACA,SACA,QACA,WACA,SACA,QACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,WACA,WACA,UACA,YACA,SACA,WACA,WACA,UACA,QACA,SACA,YACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,YACA,SACA,WACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,YACA,UACA,WACA,WACA,YACA,QACA,MACA,QACA,WACA,UACA,UACA,UACA,MACA,UACA,QACA,SACA,WACA,QACA,SACA,UACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,MACA,QACA,QACA,QACA,WACA,SACA,YACA,SACA,QACA,QACA,UACA,YACA,OACA,WACA,QACA,QACA,QACA,YACA,UACA,UACA,WACA,SACA,SACA,UACA,SACA,QACA,OACA,QACA,WACA,YACA,QACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,UACA,YACA,WACA,SACA,SACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,UACA,WACA,WACA,YACA,UACA,YACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,YACA,UACA,YACA,WACA,QACA,YACA,UACA,YACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,SACA,YACA,UACA,YACA,WACA,UACA,WACA,UACA,SACA,WACA,SACA,YACA,UACA,WACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,YACA,YACA,YACA,SACA,WACA,UACA,YACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,QACA,YACA,YACA,YACA,YACA,YACA,QACA,WACA,YACA,SACA,WACA,OACA,YACA,WACA,WACA,UACA,SACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,SACA,YACA,WACA,UACA,WACA,UACA,YACA,YACA,SACA,SACA,YACA,YACA,YACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,WACA,WACA,SACA,SACA,WACA,UACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,SACA,WACA,YACA,SACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,UACA,UACA,YACA,WACA,UACA,WACA,WACA,SACA,QACA,QACA,UACA,WACA,WACA,YACA,SACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,UACA,WACA,UACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,YACA,UACA,QACA,YACA,SACA,WACA,YACA,SACA,UACA,YACA,YACA,YACA,SACA,YACA,WACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,WACA,YACA,SACA,UACA,UACA,WACA,SACA,SACA,SACA,WACA,YACA,SACA,OACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,SACA,UACA,SACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,UACA,SACA,SACA,YACA,UACA,SACA,QACA,UACA,OACA,YACA,OACA,QACA,QACA,UACA,UACA,UACA,SACA,SACA,QACA,UACA,SACA,SACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,QACA,SACA,SACA,YACA,QACA,UACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,OACA,QACA,SACA,YACA,SACA,WACA,SACA,WACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,QACA,QACA,YACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,YACA,WACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,YACA,SACA,QACA,OACA,WACA,UACA,QACA,WACA,SACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,UACA,WACA,QACA,OACA,YACA,UACA,WACA,UACA,UACA,SACA,WACA,UACA,QACA,QACA,WACA,WACA,UACA,WACA,YACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,QACA,UACA,OACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,QACA,QACA,SACA,YACA,MACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,SACA,UACA,SACA,WACA,YACA,YACA,WACA,YACA,UACA,SACA,SACA,YACA,UACA,UACA,WACA,YACA,UACA,OACA,UACA,QACA,QACA,WACA,SACA,OACA,WACA,SACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,WACA,UACA,QACA,WACA,UACA,WACA,SACA,MACA,OACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,SACA,YACA,UACA,SACA,YACA,OACA,OACA,QACA,UACA,OACA,OACA,UACA,SACA,WACA,SACA,OACA,QACA,WACA,SACA,OACA,SACA,OACA,OACA,WACA,QACA,UACA,SACA,SACA,WACA,SACA,MACA,OACA,YACA,YACA,YACA,YACA,YACA,UACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,UACA,YACA,QACA,YACA,YACA,QACA,QACA,QACA,MACA,UACA,QACA,SACA,WACA,UACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,UACA,UACA,YACA,UACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,MACA,UACA,UACA,OACA,OACA,OACA,WACA,WACA,SACA,WACA,QACA,UACA,OACA,MACA,YACA,UACA,QACA,MACA,SACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,MACA,UACA,QACA,MACA,WACA,OACA,YACA,QACA,YACA,UACA,UACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,YACA,YACA,UACA,k9CCjmPJ,IAAAS,EAAA18I,EAAA,KAEA2f,EAAA3f,EAAA,IAOAoX,EAAA,WAUI,SAAAA,EAAoBuN,EAAgC6pC,EACxCmuF,GADQl6I,KAAAkiB,aAAgCliB,KAAA+rD,iBACxC/rD,KAAAk6I,uBAoGhB,OAlGIvlI,EAAAnY,UAAA29I,eAAA,WACI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","file":"app/main.d8139e017ad9a069b29d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([744,2]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export abstract class I18nService {\n locale: string;\n supportedTranslationLocales: string[];\n translationLocale: string;\n collator: Intl.Collator;\n localeNames: Map;\n t: (id: string, p1?: string, p2?: string, p3?: string) => string;\n translate: (id: string, p1?: string, p2?: string, p3?: string) => string;\n}\n","import { DeviceType } from '../enums/deviceType';\n\nexport abstract class PlatformUtilsService {\n identityClientId: string;\n getDevice: () => DeviceType;\n getDeviceString: () => string;\n isFirefox: () => boolean;\n isChrome: () => boolean;\n isEdge: () => boolean;\n isOpera: () => boolean;\n isVivaldi: () => boolean;\n isSafari: () => boolean;\n isIE: () => boolean;\n isMacAppStore: () => boolean;\n analyticsId: () => string;\n isViewOpen: () => Promise;\n /**\n * @deprecated This only ever returns null. Pull from your platform's storage using ConstantsService.vaultTimeoutKey\n */\n lockTimeout: () => number;\n launchUri: (uri: string, options?: any) => void;\n saveFile: (win: Window, blobData: any, blobOptions: any, fileName: string) => void;\n getApplicationVersion: () => string;\n supportsU2f: (win: Window) => boolean;\n supportsDuo: () => boolean;\n showToast: (type: 'error' | 'success' | 'warning' | 'info', title: string, text: string | string[],\n options?: any) => void;\n showDialog: (body: string, title?: string, confirmText?: string, cancelText?: string,\n type?: string, bodyIsHtml?: boolean) => Promise;\n eventTrack: (action: string, label?: string, options?: any) => void;\n isDev: () => boolean;\n isSelfHost: () => boolean;\n copyToClipboard: (text: string, options?: any) => void;\n readFromClipboard: (options?: any) => Promise;\n supportsBiometric: () => Promise;\n authenticateBiometric: () => Promise;\n getDefaultSystemTheme: () => 'light' | 'dark';\n onDefaultSystemThemeChange: (callback: ((theme: 'light' | 'dark') => unknown)) => unknown;\n supportsSecureStorage: () => boolean;\n}\n","import { PolicyType } from '../enums/policyType';\n\nimport { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { BitPayInvoiceRequest } from '../models/request/bitPayInvoiceRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkRestoreRequest } from '../models/request/cipherBulkRestoreRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { DeleteRecoverRequest } from '../models/request/deleteRecoverRequest';\nimport { EmailRequest } from '../models/request/emailRequest';\nimport { EmailTokenRequest } from '../models/request/emailTokenRequest';\nimport { EmergencyAccessAcceptRequest } from '../models/request/emergencyAccessAcceptRequest';\nimport { EmergencyAccessConfirmRequest } from '../models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessInviteRequest } from '../models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessPasswordRequest } from '../models/request/emergencyAccessPasswordRequest';\nimport { EmergencyAccessUpdateRequest } from '../models/request/emergencyAccessUpdateRequest';\nimport { EventRequest } from '../models/request/eventRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { GroupRequest } from '../models/request/groupRequest';\nimport { IapCheckRequest } from '../models/request/iapCheckRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportDirectoryRequest } from '../models/request/importDirectoryRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KdfRequest } from '../models/request/kdfRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { OrganizationCreateRequest } from '../models/request/organizationCreateRequest';\nimport { OrganizationTaxInfoUpdateRequest } from '../models/request/organizationTaxInfoUpdateRequest';\nimport { OrganizationUpdateRequest } from '../models/request/organizationUpdateRequest';\nimport { OrganizationUpgradeRequest } from '../models/request/organizationUpgradeRequest';\nimport { OrganizationUserAcceptRequest } from '../models/request/organizationUserAcceptRequest';\nimport { OrganizationUserConfirmRequest } from '../models/request/organizationUserConfirmRequest';\nimport { OrganizationUserInviteRequest } from '../models/request/organizationUserInviteRequest';\nimport { OrganizationUserUpdateGroupsRequest } from '../models/request/organizationUserUpdateGroupsRequest';\nimport { OrganizationUserUpdateRequest } from '../models/request/organizationUserUpdateRequest';\nimport { PasswordHintRequest } from '../models/request/passwordHintRequest';\nimport { PasswordRequest } from '../models/request/passwordRequest';\nimport { PasswordVerificationRequest } from '../models/request/passwordVerificationRequest';\nimport { PaymentRequest } from '../models/request/paymentRequest';\nimport { PolicyRequest } from '../models/request/policyRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { RegisterRequest } from '../models/request/registerRequest';\nimport { SeatRequest } from '../models/request/seatRequest';\nimport { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';\nimport { SendAccessRequest } from '../models/request/sendAccessRequest';\nimport { SendRequest } from '../models/request/sendRequest';\nimport { SetPasswordRequest } from '../models/request/setPasswordRequest';\nimport { StorageRequest } from '../models/request/storageRequest';\nimport { TaxInfoUpdateRequest } from '../models/request/taxInfoUpdateRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\nimport { TwoFactorEmailRequest } from '../models/request/twoFactorEmailRequest';\nimport { TwoFactorProviderRequest } from '../models/request/twoFactorProviderRequest';\nimport { TwoFactorRecoveryRequest } from '../models/request/twoFactorRecoveryRequest';\nimport { UpdateDomainsRequest } from '../models/request/updateDomainsRequest';\nimport { UpdateKeyRequest } from '../models/request/updateKeyRequest';\nimport { UpdateProfileRequest } from '../models/request/updateProfileRequest';\nimport { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';\nimport { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';\nimport { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';\nimport { UpdateTwoFactorU2fDeleteRequest } from '../models/request/updateTwoFactorU2fDeleteRequest';\nimport { UpdateTwoFactorU2fRequest } from '../models/request/updateTwoFactorU2fRequest';\nimport { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';\nimport { VerifyBankRequest } from '../models/request/verifyBankRequest';\nimport { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest';\nimport { VerifyEmailRequest } from '../models/request/verifyEmailRequest';\n\nimport { ApiKeyResponse } from '../models/response/apiKeyResponse';\nimport { BillingResponse } from '../models/response/billingResponse';\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport {\n CollectionGroupDetailsResponse,\n CollectionResponse,\n} from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse\n} from '../models/response/emergencyAccessResponse';\nimport { EventResponse } from '../models/response/eventResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n GroupDetailsResponse,\n GroupResponse,\n} from '../models/response/groupResponse';\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\nimport { ListResponse } from '../models/response/listResponse';\nimport { OrganizationResponse } from '../models/response/organizationResponse';\nimport { OrganizationSubscriptionResponse } from '../models/response/organizationSubscriptionResponse';\nimport {\n OrganizationUserDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from '../models/response/organizationUserResponse';\nimport { PaymentResponse } from '../models/response/paymentResponse';\nimport { PlanResponse } from '../models/response/planResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { PreloginResponse } from '../models/response/preloginResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';\nimport { SendAccessResponse } from '../models/response/sendAccessResponse';\nimport { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';\nimport { SendResponse } from '../models/response/sendResponse';\nimport { SubscriptionResponse } from '../models/response/subscriptionResponse';\nimport { SyncResponse } from '../models/response/syncResponse';\nimport { TaxInfoResponse } from '../models/response/taxInfoResponse';\nimport { TaxRateResponse } from '../models/response/taxRateResponse';\nimport { TwoFactorAuthenticatorResponse } from '../models/response/twoFactorAuthenticatorResponse';\nimport { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';\nimport { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';\nimport { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';\nimport { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';\nimport {\n ChallengeResponse,\n TwoFactorU2fResponse,\n} from '../models/response/twoFactorU2fResponse';\nimport { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';\nimport { UserKeyResponse } from '../models/response/userKeyResponse';\n\nimport { SendAccessView } from '../models/view/sendAccessView';\n\nexport abstract class ApiService {\n urlsSet: boolean;\n apiBaseUrl: string;\n identityBaseUrl: string;\n eventsBaseUrl: string;\n\n setUrls: (urls: EnvironmentUrls) => void;\n postIdentityToken: (request: TokenRequest) => Promise;\n refreshIdentityToken: () => Promise;\n\n getProfile: () => Promise;\n getUserBilling: () => Promise;\n getUserSubscription: () => Promise;\n getTaxInfo: () => Promise;\n putProfile: (request: UpdateProfileRequest) => Promise;\n putTaxInfo: (request: TaxInfoUpdateRequest) => Promise;\n postPrelogin: (request: PreloginRequest) => Promise;\n postEmailToken: (request: EmailTokenRequest) => Promise;\n postEmail: (request: EmailRequest) => Promise;\n postPassword: (request: PasswordRequest) => Promise;\n setPassword: (request: SetPasswordRequest) => Promise;\n postSecurityStamp: (request: PasswordVerificationRequest) => Promise;\n deleteAccount: (request: PasswordVerificationRequest) => Promise;\n getAccountRevisionDate: () => Promise;\n postPasswordHint: (request: PasswordHintRequest) => Promise;\n postRegister: (request: RegisterRequest) => Promise;\n postPremium: (data: FormData) => Promise;\n postIapCheck: (request: IapCheckRequest) => Promise;\n postReinstatePremium: () => Promise;\n postCancelPremium: () => Promise;\n postAccountStorage: (request: StorageRequest) => Promise;\n postAccountPayment: (request: PaymentRequest) => Promise;\n postAccountLicense: (data: FormData) => Promise;\n postAccountKey: (request: UpdateKeyRequest) => Promise;\n postAccountKeys: (request: KeysRequest) => Promise;\n postAccountVerifyEmail: () => Promise;\n postAccountVerifyEmailToken: (request: VerifyEmailRequest) => Promise;\n postAccountVerifyPassword: (request: PasswordVerificationRequest) => Promise;\n postAccountRecoverDelete: (request: DeleteRecoverRequest) => Promise;\n postAccountRecoverDeleteToken: (request: VerifyDeleteRecoverRequest) => Promise;\n postAccountKdf: (request: KdfRequest) => Promise;\n getEnterprisePortalSignInToken: () => Promise;\n postUserApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postUserRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n\n getFolder: (id: string) => Promise;\n postFolder: (request: FolderRequest) => Promise;\n putFolder: (id: string, request: FolderRequest) => Promise;\n deleteFolder: (id: string) => Promise;\n\n getSend: (id: string) => Promise;\n postSendAccess: (id: string, request: SendAccessRequest, apiUrl?: string) => Promise;\n getSends: () => Promise>;\n postSend: (request: SendRequest) => Promise;\n postSendFile: (data: FormData) => Promise;\n putSend: (id: string, request: SendRequest) => Promise;\n putSendRemovePassword: (id: string) => Promise;\n deleteSend: (id: string) => Promise;\n getSendFileDownloadData: (send: SendAccessView, request: SendAccessRequest) => Promise;\n\n getCipher: (id: string) => Promise;\n getCipherAdmin: (id: string) => Promise;\n getCiphersOrganization: (organizationId: string) => Promise>;\n postCipher: (request: CipherRequest) => Promise;\n postCipherCreate: (request: CipherCreateRequest) => Promise;\n postCipherAdmin: (request: CipherCreateRequest) => Promise;\n putCipher: (id: string, request: CipherRequest) => Promise;\n putCipherAdmin: (id: string, request: CipherRequest) => Promise;\n deleteCipher: (id: string) => Promise;\n deleteCipherAdmin: (id: string) => Promise;\n deleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise;\n deleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise;\n putMoveCiphers: (request: CipherBulkMoveRequest) => Promise;\n putShareCipher: (id: string, request: CipherShareRequest) => Promise;\n putShareCiphers: (request: CipherBulkShareRequest) => Promise;\n putCipherCollections: (id: string, request: CipherCollectionsRequest) => Promise;\n putCipherCollectionsAdmin: (id: string, request: CipherCollectionsRequest) => Promise;\n postPurgeCiphers: (request: PasswordVerificationRequest, organizationId?: string) => Promise;\n postImportCiphers: (request: ImportCiphersRequest) => Promise;\n postImportOrganizationCiphers: (organizationId: string, request: ImportOrganizationCiphersRequest) => Promise;\n putDeleteCipher: (id: string) => Promise;\n putDeleteCipherAdmin: (id: string) => Promise;\n putDeleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise;\n putDeleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise;\n putRestoreCipher: (id: string) => Promise;\n putRestoreCipherAdmin: (id: string) => Promise;\n putRestoreManyCiphers: (request: CipherBulkRestoreRequest) => Promise>;\n\n postCipherAttachment: (id: string, data: FormData) => Promise;\n postCipherAttachmentAdmin: (id: string, data: FormData) => Promise;\n deleteCipherAttachment: (id: string, attachmentId: string) => Promise;\n deleteCipherAttachmentAdmin: (id: string, attachmentId: string) => Promise;\n postShareCipherAttachment: (id: string, attachmentId: string, data: FormData,\n organizationId: string) => Promise;\n\n getCollectionDetails: (organizationId: string, id: string) => Promise;\n getUserCollections: () => Promise>;\n getCollections: (organizationId: string) => Promise>;\n getCollectionUsers: (organizationId: string, id: string) => Promise;\n postCollection: (organizationId: string, request: CollectionRequest) => Promise;\n putCollectionUsers: (organizationId: string, id: string, request: SelectionReadOnlyRequest[]) => Promise;\n putCollection: (organizationId: string, id: string, request: CollectionRequest) => Promise;\n deleteCollection: (organizationId: string, id: string) => Promise;\n deleteCollectionUser: (organizationId: string, id: string, organizationUserId: string) => Promise;\n\n getGroupDetails: (organizationId: string, id: string) => Promise;\n getGroups: (organizationId: string) => Promise>;\n getGroupUsers: (organizationId: string, id: string) => Promise;\n postGroup: (organizationId: string, request: GroupRequest) => Promise;\n putGroup: (organizationId: string, id: string, request: GroupRequest) => Promise;\n putGroupUsers: (organizationId: string, id: string, request: string[]) => Promise;\n deleteGroup: (organizationId: string, id: string) => Promise;\n deleteGroupUser: (organizationId: string, id: string, organizationUserId: string) => Promise;\n\n getPolicy: (organizationId: string, type: PolicyType) => Promise;\n getPolicies: (organizationId: string) => Promise>;\n getPoliciesByToken: (organizationId: string, token: string, email: string, organizationUserId: string) =>\n Promise>;\n putPolicy: (organizationId: string, type: PolicyType, request: PolicyRequest) => Promise;\n\n getOrganizationUser: (organizationId: string, id: string) => Promise;\n getOrganizationUserGroups: (organizationId: string, id: string) => Promise;\n getOrganizationUsers: (organizationId: string) => Promise>;\n postOrganizationUserInvite: (organizationId: string, request: OrganizationUserInviteRequest) => Promise;\n postOrganizationUserReinvite: (organizationId: string, id: string) => Promise;\n postOrganizationUserAccept: (organizationId: string, id: string,\n request: OrganizationUserAcceptRequest) => Promise;\n postOrganizationUserConfirm: (organizationId: string, id: string,\n request: OrganizationUserConfirmRequest) => Promise;\n putOrganizationUser: (organizationId: string, id: string, request: OrganizationUserUpdateRequest) => Promise;\n putOrganizationUserGroups: (organizationId: string, id: string,\n request: OrganizationUserUpdateGroupsRequest) => Promise;\n deleteOrganizationUser: (organizationId: string, id: string) => Promise;\n\n getSync: () => Promise;\n postImportDirectory: (organizationId: string, request: ImportDirectoryRequest) => Promise;\n\n getSettingsDomains: () => Promise;\n putSettingsDomains: (request: UpdateDomainsRequest) => Promise;\n\n getTwoFactorProviders: () => Promise>;\n getTwoFactorOrganizationProviders: (organizationId: string) => Promise>;\n getTwoFactorAuthenticator: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorEmail: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorDuo: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorOrganizationDuo: (organizationId: string,\n request: PasswordVerificationRequest) => Promise;\n getTwoFactorYubiKey: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorU2f: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorU2fChallenge: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorRecover: (request: PasswordVerificationRequest) => Promise;\n putTwoFactorAuthenticator: (\n request: UpdateTwoFactorAuthenticatorRequest) => Promise;\n putTwoFactorEmail: (request: UpdateTwoFactorEmailRequest) => Promise;\n putTwoFactorDuo: (request: UpdateTwoFactorDuoRequest) => Promise;\n putTwoFactorOrganizationDuo: (organizationId: string,\n request: UpdateTwoFactorDuoRequest) => Promise;\n putTwoFactorYubiKey: (request: UpdateTwoFactorYubioOtpRequest) => Promise;\n putTwoFactorU2f: (request: UpdateTwoFactorU2fRequest) => Promise;\n deleteTwoFactorU2f: (request: UpdateTwoFactorU2fDeleteRequest) => Promise;\n putTwoFactorDisable: (request: TwoFactorProviderRequest) => Promise;\n putTwoFactorOrganizationDisable: (organizationId: string,\n request: TwoFactorProviderRequest) => Promise;\n postTwoFactorRecover: (request: TwoFactorRecoveryRequest) => Promise;\n postTwoFactorEmailSetup: (request: TwoFactorEmailRequest) => Promise;\n postTwoFactorEmail: (request: TwoFactorEmailRequest) => Promise;\n\n getEmergencyAccessTrusted: () => Promise>;\n getEmergencyAccessGranted: () => Promise>;\n getEmergencyAccess: (id: string) => Promise;\n getEmergencyGrantorPolicies: (id: string) => Promise>;\n putEmergencyAccess: (id: string, request: EmergencyAccessUpdateRequest) => Promise;\n deleteEmergencyAccess: (id: string) => Promise;\n postEmergencyAccessInvite: (request: EmergencyAccessInviteRequest) => Promise;\n postEmergencyAccessReinvite: (id: string) => Promise;\n postEmergencyAccessAccept: (id: string, request: EmergencyAccessAcceptRequest) => Promise;\n postEmergencyAccessConfirm: (id: string, request: EmergencyAccessConfirmRequest) => Promise;\n postEmergencyAccessInitiate: (id: string) => Promise;\n postEmergencyAccessApprove: (id: string) => Promise;\n postEmergencyAccessReject: (id: string) => Promise;\n postEmergencyAccessTakeover: (id: string) => Promise;\n postEmergencyAccessPassword: (id: string, request: EmergencyAccessPasswordRequest) => Promise;\n postEmergencyAccessView: (id: string) => Promise;\n\n getOrganization: (id: string) => Promise;\n getOrganizationBilling: (id: string) => Promise;\n getOrganizationSubscription: (id: string) => Promise;\n getOrganizationLicense: (id: string, installationId: string) => Promise;\n getOrganizationTaxInfo: (id: string) => Promise;\n postOrganization: (request: OrganizationCreateRequest) => Promise;\n putOrganization: (id: string, request: OrganizationUpdateRequest) => Promise;\n putOrganizationTaxInfo: (id: string, request: OrganizationTaxInfoUpdateRequest) => Promise;\n postLeaveOrganization: (id: string) => Promise;\n postOrganizationLicense: (data: FormData) => Promise;\n postOrganizationLicenseUpdate: (id: string, data: FormData) => Promise;\n postOrganizationApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postOrganizationRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postOrganizationUpgrade: (id: string, request: OrganizationUpgradeRequest) => Promise;\n postOrganizationSeat: (id: string, request: SeatRequest) => Promise;\n postOrganizationStorage: (id: string, request: StorageRequest) => Promise;\n postOrganizationPayment: (id: string, request: PaymentRequest) => Promise;\n postOrganizationVerifyBank: (id: string, request: VerifyBankRequest) => Promise;\n postOrganizationCancel: (id: string) => Promise;\n postOrganizationReinstate: (id: string) => Promise;\n deleteOrganization: (id: string, request: PasswordVerificationRequest) => Promise;\n getPlans: () => Promise>;\n getTaxRates: () => Promise>;\n\n getEvents: (start: string, end: string, token: string) => Promise>;\n getEventsCipher: (id: string, start: string, end: string, token: string) => Promise>;\n getEventsOrganization: (id: string, start: string, end: string,\n token: string) => Promise>;\n getEventsOrganizationUser: (organizationId: string, id: string,\n start: string, end: string, token: string) => Promise>;\n postEventsCollect: (request: EventRequest[]) => Promise;\n\n deleteSsoUser: (organizationId: string) => Promise;\n getSsoUserIdentifier: () => Promise;\n\n getUserPublicKey: (id: string) => Promise;\n\n getHibpBreach: (username: string) => Promise;\n\n postBitPayInvoice: (request: BitPayInvoiceRequest) => Promise;\n postSetupPayment: () => Promise;\n\n getActiveBearerToken: () => Promise;\n fetch: (request: Request) => Promise;\n nativeFetch: (request: Request) => Promise;\n\n preValidateSso: (identifier: string) => Promise;\n}\n","import { OrganizationData } from '../models/data/organizationData';\nimport { Organization } from '../models/domain/organization';\n\nimport { KdfType } from '../enums/kdfType';\n\nexport abstract class UserService {\n setInformation: (userId: string, email: string, kdf: KdfType, kdfIterations: number) => Promise;\n setSecurityStamp: (stamp: string) => Promise;\n getUserId: () => Promise;\n getEmail: () => Promise;\n getSecurityStamp: () => Promise;\n getKdf: () => Promise;\n getKdfIterations: () => Promise;\n clear: () => Promise;\n isAuthenticated: () => Promise;\n canAccessPremium: () => Promise;\n getOrganization: (id: string) => Promise;\n getAllOrganizations: () => Promise;\n replaceOrganizations: (organizations: { [id: string]: OrganizationData; }) => Promise;\n clearOrganizations: (userId: string) => Promise;\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\n\n@Pipe({\n name: 'i18n',\n})\nexport class I18nPipe implements PipeTransform {\n constructor(private i18nService: I18nService) { }\n\n transform(id: string, p1?: string, p2?: string, p3?: string): string {\n return this.i18nService.t(id, p1, p2, p3);\n }\n}\n","export abstract class MessagingService {\n send: (subscriber: string, arg?: any) => void;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { ValidationService } from '../services/validation.service';\n\n@Directive({\n selector: '[appApiAction]',\n})\nexport class ApiActionDirective implements OnChanges {\n @Input() appApiAction: Promise;\n\n constructor(private el: ElementRef, private validationService: ValidationService) { }\n\n ngOnChanges(changes: any) {\n if (this.appApiAction == null || this.appApiAction.then == null) {\n return;\n }\n\n this.el.nativeElement.loading = true;\n\n this.appApiAction.then((response: any) => {\n this.el.nativeElement.loading = false;\n }, (e: any) => {\n this.el.nativeElement.loading = false;\n this.validationService.showError(e);\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[appA11yTitle]',\n})\nexport class A11yTitleDirective {\n @Input() set appA11yTitle(title: string) {\n this.title = title;\n }\n\n private title: string;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit() {\n if (!this.el.nativeElement.hasAttribute('title')) {\n this.renderer.setAttribute(this.el.nativeElement, 'title', this.title);\n }\n if (!this.el.nativeElement.hasAttribute('aria-label')) {\n this.renderer.setAttribute(this.el.nativeElement, 'aria-label', this.title);\n }\n }\n}\n","import { CipherString } from '../models/domain/cipherString';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';\n\nimport { KdfType } from '../enums/kdfType';\n\nexport abstract class CryptoService {\n setKey: (key: SymmetricCryptoKey) => Promise;\n setKeyHash: (keyHash: string) => Promise<{}>;\n setEncKey: (encKey: string) => Promise<{}>;\n setEncPrivateKey: (encPrivateKey: string) => Promise<{}>;\n setOrgKeys: (orgs: ProfileOrganizationResponse[]) => Promise<{}>;\n getKey: () => Promise;\n getKeyHash: () => Promise;\n getEncKey: (key?: SymmetricCryptoKey) => Promise;\n getPublicKey: () => Promise;\n getPrivateKey: () => Promise;\n getFingerprint: (userId: string, publicKey?: ArrayBuffer) => Promise;\n getOrgKeys: () => Promise>;\n getOrgKey: (orgId: string) => Promise;\n hasKey: () => Promise;\n hasEncKey: () => Promise;\n clearKey: () => Promise;\n clearKeyHash: () => Promise;\n clearEncKey: (memoryOnly?: boolean) => Promise;\n clearKeyPair: (memoryOnly?: boolean) => Promise;\n clearOrgKeys: (memoryOnly?: boolean) => Promise;\n clearPinProtectedKey: () => Promise;\n clearKeys: () => Promise;\n toggleKey: () => Promise;\n makeKey: (password: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise;\n makeKeyFromPin: (pin: string, salt: string, kdf: KdfType, kdfIterations: number,\n protectedKeyCs?: CipherString) => Promise;\n makeShareKey: () => Promise<[CipherString, SymmetricCryptoKey]>;\n makeKeyPair: (key?: SymmetricCryptoKey) => Promise<[string, CipherString]>;\n makePinKey: (pin: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise;\n makeSendKey: (keyMaterial: ArrayBuffer) => Promise;\n hashPassword: (password: string, key: SymmetricCryptoKey) => Promise;\n makeEncKey: (key: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, CipherString]>;\n remakeEncKey: (key: SymmetricCryptoKey, encKey?: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, CipherString]>;\n encrypt: (plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey) => Promise;\n encryptToBytes: (plainValue: ArrayBuffer, key?: SymmetricCryptoKey) => Promise;\n rsaEncrypt: (data: ArrayBuffer, publicKey?: ArrayBuffer) => Promise;\n rsaDecrypt: (encValue: string) => Promise;\n decryptToBytes: (cipherString: CipherString, key?: SymmetricCryptoKey) => Promise;\n decryptToUtf8: (cipherString: CipherString, key?: SymmetricCryptoKey) => Promise;\n decryptFromBytes: (encBuf: ArrayBuffer, key: SymmetricCryptoKey) => Promise;\n randomNumber: (min: number, max: number) => Promise;\n}\n","import { CipherType } from '../enums/cipherType';\nimport { UriMatchType } from '../enums/uriMatchType';\n\nimport { CipherData } from '../models/data/cipherData';\n\nimport { Cipher } from '../models/domain/cipher';\nimport { Field } from '../models/domain/field';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { FieldView } from '../models/view/fieldView';\n\nexport abstract class CipherService {\n decryptedCipherCache: CipherView[];\n\n clearCache: () => void;\n encrypt: (model: CipherView, key?: SymmetricCryptoKey, originalCipher?: Cipher) => Promise;\n encryptFields: (fieldsModel: FieldView[], key: SymmetricCryptoKey) => Promise;\n encryptField: (fieldModel: FieldView, key: SymmetricCryptoKey) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllDecryptedForGrouping: (groupingId: string, folder?: boolean) => Promise;\n getAllDecryptedForUrl: (url: string, includeOtherTypes?: CipherType[],\n defaultMatch?: UriMatchType) => Promise;\n getAllFromApiForOrganization: (organizationId: string) => Promise;\n getLastUsedForUrl: (url: string) => Promise;\n getLastLaunchedForUrl: (url: string) => Promise;\n getNextCipherForUrl: (url: string) => Promise;\n updateLastUsedIndexForUrl: (url: string) => void;\n updateLastUsedDate: (id: string) => Promise;\n updateLastLaunchedDate: (id: string) => Promise;\n saveNeverDomain: (domain: string) => Promise;\n saveWithServer: (cipher: Cipher) => Promise;\n shareWithServer: (cipher: CipherView, organizationId: string, collectionIds: string[]) => Promise;\n shareManyWithServer: (ciphers: CipherView[], organizationId: string, collectionIds: string[]) => Promise;\n saveAttachmentWithServer: (cipher: Cipher, unencryptedFile: any, admin?: boolean) => Promise;\n saveAttachmentRawWithServer: (cipher: Cipher, filename: string, data: ArrayBuffer,\n admin?: boolean) => Promise;\n saveCollectionsWithServer: (cipher: Cipher) => Promise;\n upsert: (cipher: CipherData | CipherData[]) => Promise;\n replace: (ciphers: { [id: string]: CipherData; }) => Promise;\n clear: (userId: string) => Promise;\n moveManyWithServer: (ids: string[], folderId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n deleteManyWithServer: (ids: string[]) => Promise;\n deleteAttachment: (id: string, attachmentId: string) => Promise;\n deleteAttachmentWithServer: (id: string, attachmentId: string) => Promise;\n sortCiphersByLastUsed: (a: any, b: any) => number;\n sortCiphersByLastUsedThenName: (a: any, b: any) => number;\n getLocaleSortingFunction: () => (a: CipherView, b: CipherView) => number;\n softDelete: (id: string | string[]) => Promise;\n softDeleteWithServer: (id: string) => Promise;\n softDeleteManyWithServer: (ids: string[]) => Promise;\n restore: (cipher: { id: string, revisionDate: string; } | { id: string, revisionDate: string; }[]) => Promise;\n restoreWithServer: (id: string) => Promise;\n restoreManyWithServer: (ids: string[]) => Promise;\n}\n","export abstract class BaseResponse {\n private response: any;\n\n constructor(response: any) {\n this.response = response;\n }\n\n protected getResponseProperty(propertyName: string, response: any = null, exactName = false): any {\n if (propertyName == null || propertyName === '') {\n throw new Error('propertyName must not be null/empty.');\n }\n if (response == null && this.response != null) {\n response = this.response;\n }\n if (response == null) {\n return null;\n }\n if (!exactName && response[propertyName] === undefined) {\n let otherCasePropertyName: string = null;\n if (propertyName.charAt(0) === propertyName.charAt(0).toUpperCase()) {\n otherCasePropertyName = propertyName.charAt(0).toLowerCase();\n } else {\n otherCasePropertyName = propertyName.charAt(0).toUpperCase();\n }\n if (propertyName.length > 1) {\n otherCasePropertyName += propertyName.slice(1);\n }\n\n propertyName = otherCasePropertyName;\n if (response[propertyName] === undefined) {\n propertyName = propertyName.toLowerCase();\n }\n if (response[propertyName] === undefined) {\n propertyName = propertyName.toUpperCase();\n }\n }\n return response[propertyName];\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\n\n@Component({\n selector: 'app-callout',\n templateUrl: 'callout.component.html',\n})\nexport class CalloutComponent implements OnInit {\n @Input() type = 'info';\n @Input() icon: string;\n @Input() title: string;\n @Input() clickable: boolean;\n\n calloutStyle: string;\n\n constructor(private i18nService: I18nService) { }\n\n ngOnInit() {\n this.calloutStyle = this.type;\n\n if (this.type === 'warning' || this.type === 'danger') {\n if (this.type === 'danger') {\n this.calloutStyle = 'danger';\n }\n if (this.title === undefined) {\n this.title = this.i18nService.t('warning');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-warning';\n }\n } else if (this.type === 'error') {\n this.calloutStyle = 'danger';\n if (this.title === undefined) {\n this.title = this.i18nService.t('error');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-bolt';\n }\n } else if (this.type === 'tip') {\n this.calloutStyle = 'success';\n if (this.title === undefined) {\n this.title = this.i18nService.t('tip');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-lightbulb-o';\n }\n }\n }\n}\n","

\n

\n \n {{title}}\n

\n \n
\n","import * as papa from 'papaparse';\n\nimport { LogService } from '../abstractions/log.service';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { LoginUriView } from '../models/view/loginUriView';\n\nimport { Utils } from '../misc/utils';\n\nimport { FieldView } from '../models/view/fieldView';\nimport { FolderView } from '../models/view/folderView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { ConsoleLogService } from '../services/consoleLog.service';\n\nexport abstract class BaseImporter {\n organizationId: string = null;\n\n protected logService: LogService = new ConsoleLogService(false);\n\n protected newLineRegex = /(?:\\r\\n|\\r|\\n)/;\n\n protected passwordFieldNames = [\n 'password', 'pass word', 'passphrase', 'pass phrase',\n 'pass', 'code', 'code word', 'codeword',\n 'secret', 'secret word', 'personpwd',\n 'key', 'keyword', 'key word', 'keyphrase', 'key phrase',\n 'form_pw', 'wppassword', 'pin', 'pwd', 'pw', 'pword', 'passwd',\n 'p', 'serial', 'serial#', 'license key', 'reg #',\n\n // Non-English names\n 'passwort',\n ];\n\n protected usernameFieldNames = [\n 'user', 'name', 'user name', 'username', 'login name',\n 'email', 'e-mail', 'id', 'userid', 'user id',\n 'login', 'form_loginname', 'wpname', 'mail',\n 'loginid', 'login id', 'log', 'personlogin',\n 'first name', 'last name', 'card#', 'account #',\n 'member', 'member #',\n\n // Non-English names\n 'nom', 'benutzername',\n ];\n\n protected notesFieldNames = [\n 'note', 'notes', 'comment', 'comments', 'memo',\n 'description', 'free form', 'freeform',\n 'free text', 'freetext', 'free',\n\n // Non-English names\n 'kommentar',\n ];\n\n protected uriFieldNames: string[] = [\n 'url', 'hyper link', 'hyperlink', 'link',\n 'host', 'hostname', 'host name', 'server', 'address',\n 'hyper ref', 'href', 'web', 'website', 'web site', 'site',\n 'web-site', 'uri',\n\n // Non-English names\n 'ort', 'adresse',\n ];\n\n protected parseCsvOptions = {\n encoding: 'UTF-8',\n skipEmptyLines: false,\n };\n\n protected get organization() {\n return this.organizationId != null;\n }\n\n protected parseXml(data: string): Document {\n const parser = new DOMParser();\n const doc = parser.parseFromString(data, 'application/xml');\n return doc != null && doc.querySelector('parsererror') == null ? doc : null;\n }\n\n protected parseCsv(data: string, header: boolean, options: any = {}): any[] {\n const parseOptions = Object.assign({ header: header }, this.parseCsvOptions, options);\n data = this.splitNewLine(data).join('\\n').trim();\n const result = papa.parse(data, parseOptions);\n if (result.errors != null && result.errors.length > 0) {\n result.errors.forEach(e => {\n if (e.row != null) {\n // tslint:disable-next-line\n this.logService.warning('Error parsing row ' + e.row + ': ' + e.message);\n }\n });\n }\n return result.data && result.data.length > 0 ? result.data : null;\n }\n\n protected parseSingleRowCsv(rowData: string) {\n if (this.isNullOrWhitespace(rowData)) {\n return null;\n }\n const parsedRow = this.parseCsv(rowData, false);\n if (parsedRow != null && parsedRow.length > 0 && parsedRow[0].length > 0) {\n return parsedRow[0];\n }\n return null;\n }\n\n protected makeUriArray(uri: string | string[]): LoginUriView[] {\n if (uri == null) {\n return null;\n }\n\n if (typeof uri === 'string') {\n const loginUri = new LoginUriView();\n loginUri.uri = this.fixUri(uri);\n if (this.isNullOrWhitespace(loginUri.uri)) {\n return null;\n }\n loginUri.match = null;\n return [loginUri];\n }\n\n if (uri.length > 0) {\n const returnArr: LoginUriView[] = [];\n uri.forEach(u => {\n const loginUri = new LoginUriView();\n loginUri.uri = this.fixUri(u);\n if (this.isNullOrWhitespace(loginUri.uri)) {\n return;\n }\n loginUri.match = null;\n returnArr.push(loginUri);\n });\n return returnArr.length === 0 ? null : returnArr;\n }\n\n return null;\n }\n\n protected fixUri(uri: string) {\n if (uri == null) {\n return null;\n }\n uri = uri.trim();\n if (uri.indexOf('://') === -1 && uri.indexOf('.') >= 0) {\n uri = 'http://' + uri;\n }\n if (uri.length > 1000) {\n return uri.substring(0, 1000);\n }\n return uri;\n }\n\n protected nameFromUrl(url: string) {\n const hostname = Utils.getHostname(url);\n if (this.isNullOrWhitespace(hostname)) {\n return null;\n }\n return hostname.startsWith('www.') ? hostname.replace('www.', '') : hostname;\n }\n\n protected isNullOrWhitespace(str: string): boolean {\n return Utils.isNullOrWhitespace(str);\n }\n\n protected getValueOrDefault(str: string, defaultValue: string = null): string {\n if (this.isNullOrWhitespace(str)) {\n return defaultValue;\n }\n return str;\n }\n\n protected splitNewLine(str: string): string[] {\n return str.split(this.newLineRegex);\n }\n\n // ref https://stackoverflow.com/a/5911300\n protected getCardBrand(cardNum: string) {\n if (this.isNullOrWhitespace(cardNum)) {\n return null;\n }\n\n // Visa\n let re = new RegExp('^4');\n if (cardNum.match(re) != null) {\n return 'Visa';\n }\n\n // Mastercard\n // Updated for Mastercard 2017 BINs expansion\n if (/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/\n .test(cardNum)) {\n return 'Mastercard';\n }\n\n // AMEX\n re = new RegExp('^3[47]');\n if (cardNum.match(re) != null) {\n return 'Amex';\n }\n\n // Discover\n re = new RegExp('^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)');\n if (cardNum.match(re) != null) {\n return 'Discover';\n }\n\n // Diners\n re = new RegExp('^36');\n if (cardNum.match(re) != null) {\n return 'Diners Club';\n }\n\n // Diners - Carte Blanche\n re = new RegExp('^30[0-5]');\n if (cardNum.match(re) != null) {\n return 'Diners Club';\n }\n\n // JCB\n re = new RegExp('^35(2[89]|[3-8][0-9])');\n if (cardNum.match(re) != null) {\n return 'JCB';\n }\n\n // Visa Electron\n re = new RegExp('^(4026|417500|4508|4844|491(3|7))');\n if (cardNum.match(re) != null) {\n return 'Visa';\n }\n\n return null;\n }\n\n protected setCardExpiration(cipher: CipherView, expiration: string): boolean {\n if (!this.isNullOrWhitespace(expiration)) {\n const parts = expiration.split('/');\n if (parts.length === 2) {\n let month: string = null;\n let year: string = null;\n if (parts[0].length === 1 || parts[0].length === 2) {\n month = parts[0];\n if (month.length === 2 && month[0] === '0') {\n month = month.substr(1, 1);\n }\n }\n if (parts[1].length === 2 || parts[1].length === 4) {\n year = month.length === 2 ? '20' + parts[1] : parts[1];\n }\n if (month != null && year != null) {\n cipher.card.expMonth = month;\n cipher.card.expYear = year;\n return true;\n }\n }\n }\n return false;\n }\n\n protected moveFoldersToCollections(result: ImportResult) {\n result.folderRelationships.forEach(r => result.collectionRelationships.push(r));\n result.collections = result.folders.map(f => {\n const collection = new CollectionView();\n collection.name = f.name;\n return collection;\n });\n result.folderRelationships = [];\n result.folders = [];\n }\n\n protected querySelectorDirectChild(parentEl: Element, query: string) {\n const els = this.querySelectorAllDirectChild(parentEl, query);\n return els.length === 0 ? null : els[0];\n }\n\n protected querySelectorAllDirectChild(parentEl: Element, query: string) {\n return Array.from(parentEl.querySelectorAll(query)).filter(el => el.parentNode === parentEl);\n }\n\n protected initLoginCipher() {\n const cipher = new CipherView();\n cipher.favorite = false;\n cipher.notes = '';\n cipher.fields = [];\n cipher.login = new LoginView();\n cipher.type = CipherType.Login;\n return cipher;\n }\n\n protected cleanupCipher(cipher: CipherView) {\n if (cipher == null) {\n return;\n }\n if (cipher.type !== CipherType.Login) {\n cipher.login = null;\n }\n if (this.isNullOrWhitespace(cipher.name)) {\n cipher.name = '--';\n }\n if (this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = null;\n } else {\n cipher.notes = cipher.notes.trim();\n }\n if (cipher.fields != null && cipher.fields.length === 0) {\n cipher.fields = null;\n }\n }\n\n protected processKvp(cipher: CipherView, key: string, value: string, type: FieldType = FieldType.Text) {\n if (this.isNullOrWhitespace(value)) {\n return;\n }\n if (this.isNullOrWhitespace(key)) {\n key = '';\n }\n if (value.length > 200 || value.trim().search(this.newLineRegex) > -1) {\n if (cipher.notes == null) {\n cipher.notes = '';\n }\n cipher.notes += (key + ': ' + this.splitNewLine(value).join('\\n') + '\\n');\n } else {\n if (cipher.fields == null) {\n cipher.fields = [];\n }\n const field = new FieldView();\n field.type = type;\n field.name = key;\n field.value = value;\n cipher.fields.push(field);\n }\n }\n\n protected processFolder(result: ImportResult, folderName: string) {\n let folderIndex = result.folders.length;\n const hasFolder = !this.isNullOrWhitespace(folderName);\n let addFolder = hasFolder;\n\n if (hasFolder) {\n for (let i = 0; i < result.folders.length; i++) {\n if (result.folders[i].name === folderName) {\n addFolder = false;\n folderIndex = i;\n break;\n }\n }\n }\n\n if (addFolder) {\n const f = new FolderView();\n f.name = folderName;\n result.folders.push(f);\n }\n if (hasFolder) {\n result.folderRelationships.push([result.ciphers.length, folderIndex]);\n }\n }\n\n protected convertToNoteIfNeeded(cipher: CipherView) {\n if (cipher.type === CipherType.Login && this.isNullOrWhitespace(cipher.login.username) &&\n this.isNullOrWhitespace(cipher.login.password) &&\n (cipher.login.uris == null || cipher.login.uris.length === 0)) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n }\n }\n}\n","import { CipherView } from '../view/cipherView';\nimport { CollectionView } from '../view/collectionView';\nimport { FolderView } from '../view/folderView';\n\nexport class ImportResult {\n success = false;\n errorMessage: string;\n ciphers: CipherView[] = [];\n folders: FolderView[] = [];\n folderRelationships: [number, number][] = [];\n collections: CollectionView[] = [];\n collectionRelationships: [number, number][] = [];\n}\n","import * as tldjs from 'tldjs';\n\nimport { I18nService } from '../abstractions/i18n.service';\n\n// tslint:disable-next-line\nconst nodeURL = typeof window === 'undefined' ? require('url') : null;\n\nexport class Utils {\n static inited = false;\n static isNativeScript = false;\n static isNode = false;\n static isBrowser = true;\n static isMobileBrowser = false;\n static isAppleMobileBrowser = false;\n static global: any = null;\n static tldEndingRegex = /.*\\.(com|net|org|edu|uk|gov|ca|de|jp|fr|au|ru|ch|io|es|us|co|xyz|info|ly|mil)$/;\n\n static init() {\n if (Utils.inited) {\n return;\n }\n\n Utils.inited = true;\n Utils.isNode = typeof process !== 'undefined' && (process as any).release != null &&\n (process as any).release.name === 'node';\n Utils.isBrowser = typeof window !== 'undefined';\n Utils.isNativeScript = !Utils.isNode && !Utils.isBrowser;\n Utils.isMobileBrowser = Utils.isBrowser && this.isMobile(window);\n Utils.isAppleMobileBrowser = Utils.isBrowser && this.isAppleMobile(window);\n Utils.global = Utils.isNativeScript ? global : (Utils.isNode && !Utils.isBrowser ? global : window);\n }\n\n static fromB64ToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'base64'));\n } else {\n const binaryString = window.atob(str);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n }\n }\n\n static fromUrlB64ToArray(str: string): Uint8Array {\n return Utils.fromB64ToArray(Utils.fromUrlB64ToB64(str));\n }\n\n static fromHexToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'hex'));\n } else {\n const bytes = new Uint8Array(str.length / 2);\n for (let i = 0; i < str.length; i += 2) {\n bytes[i / 2] = parseInt(str.substr(i, 2), 16);\n }\n return bytes;\n }\n }\n\n static fromUtf8ToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'utf8'));\n } else {\n const strUtf8 = unescape(encodeURIComponent(str));\n const arr = new Uint8Array(strUtf8.length);\n for (let i = 0; i < strUtf8.length; i++) {\n arr[i] = strUtf8.charCodeAt(i);\n }\n return arr;\n }\n }\n\n static fromByteStringToArray(str: string): Uint8Array {\n const arr = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return arr;\n }\n\n static fromBufferToB64(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('base64');\n } else {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n }\n\n static fromBufferToUrlB64(buffer: ArrayBuffer): string {\n return Utils.fromB64toUrlB64(Utils.fromBufferToB64(buffer));\n }\n\n static fromB64toUrlB64(b64Str: string) {\n return b64Str.replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n }\n\n static fromBufferToUtf8(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('utf8');\n } else {\n const bytes = new Uint8Array(buffer);\n const encodedString = String.fromCharCode.apply(null, bytes);\n return decodeURIComponent(escape(encodedString));\n }\n }\n\n static fromBufferToByteString(buffer: ArrayBuffer): string {\n return String.fromCharCode.apply(null, new Uint8Array(buffer));\n }\n\n // ref: https://stackoverflow.com/a/40031979/1090359\n static fromBufferToHex(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('hex');\n } else {\n const bytes = new Uint8Array(buffer);\n return Array.prototype.map.call(bytes, (x: number) => ('00' + x.toString(16)).slice(-2)).join('');\n }\n }\n\n static fromUrlB64ToB64(urlB64Str: string): string {\n let output = urlB64Str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw new Error('Illegal base64url string!');\n }\n\n return output;\n }\n\n static fromUrlB64ToUtf8(urlB64Str: string): string {\n return Utils.fromB64ToUtf8(Utils.fromUrlB64ToB64(urlB64Str));\n }\n\n static fromB64ToUtf8(b64Str: string): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(b64Str, 'base64').toString('utf8');\n } else {\n return decodeURIComponent(escape(window.atob(b64Str)));\n }\n }\n\n // ref: http://stackoverflow.com/a/2117523/1090359\n static newGuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // tslint:disable-next-line\n const r = Math.random() * 16 | 0;\n // tslint:disable-next-line\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n static isGuid(id: string) {\n return RegExp(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/, 'i').test(id);\n }\n\n static getHostname(uriString: string): string {\n const url = Utils.getUrl(uriString);\n try {\n return url != null && url.hostname !== '' ? url.hostname : null;\n } catch {\n return null;\n }\n }\n\n static getHost(uriString: string): string {\n const url = Utils.getUrl(uriString);\n try {\n return url != null && url.host !== '' ? url.host : null;\n } catch {\n return null;\n }\n }\n\n static getDomain(uriString: string): string {\n if (uriString == null) {\n return null;\n }\n\n uriString = uriString.trim();\n if (uriString === '') {\n return null;\n }\n\n if (uriString.startsWith('data:')) {\n return null;\n }\n\n let httpUrl = uriString.startsWith('http://') || uriString.startsWith('https://');\n if (!httpUrl && uriString.indexOf('://') < 0 && Utils.tldEndingRegex.test(uriString)) {\n uriString = 'http://' + uriString;\n httpUrl = true;\n }\n\n if (httpUrl) {\n try {\n const url = Utils.getUrlObject(uriString);\n if (url.hostname === 'localhost' || Utils.validIpAddress(url.hostname)) {\n return url.hostname;\n }\n\n const urlDomain = tldjs != null && tldjs.getDomain != null ? tldjs.getDomain(url.hostname) : null;\n return urlDomain != null ? urlDomain : url.hostname;\n } catch (e) { }\n }\n\n try {\n const domain = tldjs != null && tldjs.getDomain != null ? tldjs.getDomain(uriString) : null;\n\n if (domain != null) {\n return domain;\n }\n } catch {\n return null;\n }\n\n return null;\n }\n\n static getQueryParams(uriString: string): Map {\n const url = Utils.getUrl(uriString);\n if (url == null || url.search == null || url.search === '') {\n return null;\n }\n const map = new Map();\n const pairs = (url.search[0] === '?' ? url.search.substr(1) : url.search).split('&');\n pairs.forEach(pair => {\n const parts = pair.split('=');\n if (parts.length < 1) {\n return;\n }\n map.set(decodeURIComponent(parts[0]).toLowerCase(), parts[1] == null ? '' : decodeURIComponent(parts[1]));\n });\n return map;\n }\n\n static getSortFunction(i18nService: I18nService, prop: string) {\n return (a: any, b: any) => {\n if (a[prop] == null && b[prop] != null) {\n return -1;\n }\n if (a[prop] != null && b[prop] == null) {\n return 1;\n }\n if (a[prop] == null && b[prop] == null) {\n return 0;\n }\n\n return i18nService.collator ? i18nService.collator.compare(a[prop], b[prop]) :\n a[prop].localeCompare(b[prop]);\n };\n }\n\n static isNullOrWhitespace(str: string): boolean {\n return str == null || typeof str !== 'string' || str.trim() === '';\n }\n\n static nameOf(name: string & keyof T) {\n return name;\n }\n\n static assign(target: T, source: Partial): T {\n return Object.assign(target, source);\n }\n\n private static validIpAddress(ipString: string): boolean {\n // tslint:disable-next-line\n const ipRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n return ipRegex.test(ipString);\n }\n\n private static isMobile(win: Window) {\n let mobile = false;\n (a => {\n // tslint:disable-next-line\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) {\n mobile = true;\n }\n })(win.navigator.userAgent || win.navigator.vendor || (win as any).opera);\n return mobile || win.navigator.userAgent.match(/iPad/i) != null;\n }\n\n private static isAppleMobile(win: Window) {\n return win.navigator.userAgent.match(/iPhone/i) != null || win.navigator.userAgent.match(/iPad/i) != null;\n }\n\n private static getUrl(uriString: string): URL {\n if (uriString == null) {\n return null;\n }\n\n uriString = uriString.trim();\n if (uriString === '') {\n return null;\n }\n\n let url = Utils.getUrlObject(uriString);\n if (url == null) {\n const hasHttpProtocol = uriString.indexOf('http://') === 0 || uriString.indexOf('https://') === 0;\n if (!hasHttpProtocol && uriString.indexOf('.') > -1) {\n url = Utils.getUrlObject('http://' + uriString);\n }\n }\n return url;\n }\n\n private static getUrlObject(uriString: string): URL {\n try {\n if (nodeURL != null) {\n return nodeURL.URL ? new nodeURL.URL(uriString) : nodeURL.parse(uriString);\n } else if (typeof URL === 'function') {\n return new URL(uriString);\n } else if (window != null) {\n const hasProtocol = uriString.indexOf('://') > -1;\n if (!hasProtocol && uriString.indexOf('.') > -1) {\n uriString = 'http://' + uriString;\n } else if (!hasProtocol) {\n return null;\n }\n const anchor = window.document.createElement('a');\n anchor.href = uriString;\n return anchor as any;\n }\n } catch (e) { }\n\n return null;\n }\n}\n\nUtils.init();\n","import { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory';\nimport { PasswordGeneratorPolicyOptions } from '../models/domain/passwordGeneratorPolicyOptions';\n\nexport abstract class PasswordGenerationService {\n generatePassword: (options: any) => Promise;\n generatePassphrase: (options: any) => Promise;\n getOptions: () => Promise<[any, PasswordGeneratorPolicyOptions]>;\n enforcePasswordGeneratorPoliciesOnOptions: (options: any) => Promise<[any, PasswordGeneratorPolicyOptions]>;\n getPasswordGeneratorPolicyOptions: () => Promise;\n saveOptions: (options: any) => Promise;\n getHistory: () => Promise;\n addHistory: (password: string) => Promise;\n clear: () => Promise;\n passwordStrength: (password: string, userInputs?: string[]) => zxcvbn.ZXCVBNResult;\n normalizeOptions: (options: any, enforcedPolicyOptions: PasswordGeneratorPolicyOptions) => void;\n}\n","import {\n Directive,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appStopClick]',\n})\nexport class StopClickDirective {\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n $event.preventDefault();\n }\n}\n","export abstract class StateService {\n get: (key: string) => Promise;\n save: (key: string, obj: any) => Promise;\n remove: (key: string) => Promise;\n purge: () => Promise;\n}\n","export enum CipherType {\n Login = 1,\n SecureNote = 2,\n Card = 3,\n Identity = 4,\n}\n","import { CollectionData } from '../models/data/collectionData';\n\nimport { Collection } from '../models/domain/collection';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nexport abstract class CollectionService {\n decryptedCollectionCache: CollectionView[];\n\n clearCache: () => void;\n encrypt: (model: CollectionView) => Promise;\n decryptMany: (collections: Collection[]) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllNested: (collections?: CollectionView[]) => Promise[]>;\n getNested: (id: string) => Promise>;\n upsert: (collection: CollectionData | CollectionData[]) => Promise;\n replace: (collections: { [id: string]: CollectionData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n}\n","export abstract class StorageService {\n get: (key: string) => Promise;\n save: (key: string, obj: any) => Promise;\n remove: (key: string) => Promise;\n}\n","import { PolicyData } from '../models/data/policyData';\n\nimport { MasterPasswordPolicyOptions } from '../models/domain/masterPasswordPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { PolicyType } from '../enums/policyType';\n\nexport abstract class PolicyService {\n policyCache: Policy[];\n\n clearCache: () => void;\n getAll: (type?: PolicyType) => Promise;\n replace: (policies: { [id: string]: PolicyData; }) => Promise;\n clear: (userId: string) => Promise;\n getMasterPasswordPolicyOptions: (policies?: Policy[]) => Promise;\n evaluateMasterPassword: (passwordStrength: number, newPassword: string,\n enforcedPolicyOptions?: MasterPasswordPolicyOptions) => boolean;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[appInputVerbatim]',\n})\nexport class InputVerbatimDirective {\n @Input() set appInputVerbatim(condition: boolean | string) {\n this.disableComplete = condition === '' || condition === true;\n }\n\n private disableComplete: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit() {\n if (this.disableComplete && !this.el.nativeElement.hasAttribute('autocomplete')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocomplete', 'off');\n }\n if (!this.el.nativeElement.hasAttribute('autocapitalize')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocapitalize', 'none');\n }\n if (!this.el.nativeElement.hasAttribute('autocorrect')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocorrect', 'none');\n }\n if (!this.el.nativeElement.hasAttribute('spellcheck')) {\n this.renderer.setAttribute(this.el.nativeElement, 'spellcheck', 'false');\n }\n if (!this.el.nativeElement.hasAttribute('inputmode')) {\n this.renderer.setAttribute(this.el.nativeElement, 'inputmode', 'verbatim');\n }\n }\n}\n","import { FolderData } from '../models/data/folderData';\n\nimport { Folder } from '../models/domain/folder';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport abstract class FolderService {\n decryptedFolderCache: FolderView[];\n\n clearCache: () => void;\n encrypt: (model: FolderView, key?: SymmetricCryptoKey) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllNested: () => Promise[]>;\n getNested: (id: string) => Promise>;\n saveWithServer: (folder: Folder) => Promise;\n upsert: (folder: FolderData | FolderData[]) => Promise;\n replace: (folders: { [id: string]: FolderData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n}\n","import {\n Directive,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appStopProp]',\n})\nexport class StopPropDirective {\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n $event.stopPropagation();\n }\n}\n","import { TwoFactorProviderType } from '../enums/twoFactorProviderType';\n\nimport { AuthResult } from '../models/domain/authResult';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport abstract class AuthService {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n ssoRedirectUrl: string;\n clientId: string;\n clientSecret: string;\n twoFactorProvidersData: Map;\n selectedTwoFactorProviderType: TwoFactorProviderType;\n\n logIn: (email: string, masterPassword: string) => Promise;\n logInSso: (code: string, codeVerifier: string, redirectUrl: string) => Promise;\n logInApiKey: (clientId: string, clientSecret: string) => Promise;\n logInTwoFactor: (twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,\n remember?: boolean) => Promise;\n logInComplete: (email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean) => Promise;\n logInSsoComplete: (code: string, codeVerifier: string, redirectUrl: string,\n twoFactorProvider: TwoFactorProviderType, twoFactorToken: string, remember?: boolean) => Promise;\n logInApiKeyComplete: (clientId: string, clientSecret: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean) => Promise;\n logOut: (callback: Function) => void;\n getSupportedTwoFactorProviders: (win: Window) => any[];\n getDefaultTwoFactorProvider: (u2fSupported: boolean) => TwoFactorProviderType;\n makePreloginKey: (masterPassword: string, email: string) => Promise;\n authingWithApiKey: () => boolean;\n authingWithSso: () => boolean;\n authingWithPassword: () => boolean;\n}\n","import {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\n\nexport abstract class SyncService {\n syncInProgress: boolean;\n\n getLastSync: () => Promise;\n setLastSync: (date: Date) => Promise;\n fullSync: (forceSync: boolean, allowThrowOnError?: boolean) => Promise;\n syncUpsertFolder: (notification: SyncFolderNotification, isEdit: boolean) => Promise;\n syncDeleteFolder: (notification: SyncFolderNotification) => Promise;\n syncUpsertCipher: (notification: SyncCipherNotification, isEdit: boolean) => Promise;\n syncDeleteCipher: (notification: SyncFolderNotification) => Promise;\n syncUpsertSend: (notification: SyncSendNotification, isEdit: boolean) => Promise;\n syncDeleteSend: (notification: SyncSendNotification) => Promise;\n}\n","export abstract class EnvironmentService {\n baseUrl: string;\n webVaultUrl: string;\n apiUrl: string;\n identityUrl: string;\n iconsUrl: string;\n notificationsUrl: string;\n eventsUrl: string;\n enterpriseUrl: string;\n\n getWebVaultUrl: () => string;\n setUrlsFromStorage: () => Promise;\n setUrls: (urls: any) => Promise;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n} from '@angular/core';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive({\n selector: '[appAutofocus]',\n})\nexport class AutofocusDirective {\n @Input() set appAutofocus(condition: boolean | string) {\n this.autofocus = condition === '' || condition === true;\n }\n\n private autofocus: boolean;\n\n constructor(private el: ElementRef) { }\n\n ngOnInit() {\n if (!Utils.isMobileBrowser && this.autofocus) {\n this.el.nativeElement.focus();\n }\n }\n}\n","export class ConstantsService {\n static readonly environmentUrlsKey: string = 'environmentUrls';\n static readonly disableGaKey: string = 'disableGa';\n static readonly disableAddLoginNotificationKey: string = 'disableAddLoginNotification';\n static readonly disableChangedPasswordNotificationKey: string = 'disableChangedPasswordNotification';\n static readonly disableContextMenuItemKey: string = 'disableContextMenuItem';\n static readonly disableFaviconKey: string = 'disableFavicon';\n static readonly disableBadgeCounterKey: string = 'disableBadgeCounter';\n static readonly disableAutoTotpCopyKey: string = 'disableAutoTotpCopy';\n static readonly enableAutoFillOnPageLoadKey: string = 'enableAutoFillOnPageLoad';\n static readonly vaultTimeoutKey: string = 'lockOption';\n static readonly vaultTimeoutActionKey: string = 'vaultTimeoutAction';\n static readonly lastActiveKey: string = 'lastActive';\n static readonly neverDomainsKey: string = 'neverDomains';\n static readonly installedVersionKey: string = 'installedVersion';\n static readonly localeKey: string = 'locale';\n static readonly themeKey: string = 'theme';\n static readonly collapsedGroupingsKey: string = 'collapsedGroupings';\n static readonly autoConfirmFingerprints: string = 'autoConfirmFingerprints';\n static readonly dontShowCardsCurrentTab: string = 'dontShowCardsCurrentTab';\n static readonly dontShowIdentitiesCurrentTab: string = 'dontShowIdentitiesCurrentTab';\n static readonly defaultUriMatch: string = 'defaultUriMatch';\n static readonly pinProtectedKey: string = 'pinProtectedKey';\n static readonly protectedPin: string = 'protectedPin';\n static readonly clearClipboardKey: string = 'clearClipboardKey';\n static readonly eventCollectionKey: string = 'eventCollection';\n static readonly ssoCodeVerifierKey: string = 'ssoCodeVerifier';\n static readonly ssoStateKey: string = 'ssoState';\n static readonly biometricUnlockKey: string = 'biometric';\n static readonly biometricText: string = 'biometricText';\n static readonly biometricAwaitingAcceptance: string = 'biometricAwaitingAcceptance';\n static readonly biometricFingerprintValidated: string = 'biometricFingerprintValidated';\n\n readonly environmentUrlsKey: string = ConstantsService.environmentUrlsKey;\n readonly disableGaKey: string = ConstantsService.disableGaKey;\n readonly disableAddLoginNotificationKey: string = ConstantsService.disableAddLoginNotificationKey;\n readonly disableContextMenuItemKey: string = ConstantsService.disableContextMenuItemKey;\n readonly disableFaviconKey: string = ConstantsService.disableFaviconKey;\n readonly disableBadgeCounterKey: string = ConstantsService.disableBadgeCounterKey;\n readonly disableAutoTotpCopyKey: string = ConstantsService.disableAutoTotpCopyKey;\n readonly enableAutoFillOnPageLoadKey: string = ConstantsService.enableAutoFillOnPageLoadKey;\n readonly vaultTimeoutKey: string = ConstantsService.vaultTimeoutKey;\n readonly vaultTimeoutActionKey: string = ConstantsService.vaultTimeoutActionKey;\n readonly lastActiveKey: string = ConstantsService.lastActiveKey;\n readonly neverDomainsKey: string = ConstantsService.neverDomainsKey;\n readonly installedVersionKey: string = ConstantsService.installedVersionKey;\n readonly localeKey: string = ConstantsService.localeKey;\n readonly themeKey: string = ConstantsService.themeKey;\n readonly collapsedGroupingsKey: string = ConstantsService.collapsedGroupingsKey;\n readonly autoConfirmFingerprints: string = ConstantsService.autoConfirmFingerprints;\n readonly dontShowCardsCurrentTab: string = ConstantsService.dontShowCardsCurrentTab;\n readonly dontShowIdentitiesCurrentTab: string = ConstantsService.dontShowIdentitiesCurrentTab;\n readonly defaultUriMatch: string = ConstantsService.defaultUriMatch;\n readonly pinProtectedKey: string = ConstantsService.pinProtectedKey;\n readonly protectedPin: string = ConstantsService.protectedPin;\n readonly clearClipboardKey: string = ConstantsService.clearClipboardKey;\n readonly eventCollectionKey: string = ConstantsService.eventCollectionKey;\n readonly ssoCodeVerifierKey: string = ConstantsService.ssoCodeVerifierKey;\n readonly ssoStateKey: string = ConstantsService.ssoStateKey;\n readonly biometricUnlockKey: string = ConstantsService.biometricUnlockKey;\n readonly biometricText: string = ConstantsService.biometricText;\n readonly biometricAwaitingAcceptance: string = ConstantsService.biometricAwaitingAcceptance;\n readonly biometricFingerprintValidated: string = ConstantsService.biometricFingerprintValidated;\n}\n","import { EventType } from '../enums/eventType';\n\nexport abstract class EventService {\n collect: (eventType: EventType, cipherId?: string, uploadImmediately?: boolean) => Promise;\n uploadEvents: () => Promise;\n clearEvents: () => Promise;\n}\n","export class PasswordVerificationRequest {\n masterPasswordHash: string;\n}\n","import { CipherView } from '../models/view/cipherView';\nimport { SendView } from '../models/view/sendView';\n\nexport abstract class SearchService {\n clearIndex: () => void;\n isSearchable: (query: string) => boolean;\n indexCiphers: () => Promise;\n searchCiphers: (query: string,\n filter?: ((cipher: CipherView) => boolean) | (((cipher: CipherView) => boolean)[]),\n ciphers?: CipherView[]) => Promise;\n searchCiphersBasic: (ciphers: CipherView[], query: string, deleted?: boolean) => CipherView[];\n searchSends: (sends: SendView[], query: string) => SendView[];\n}\n","import { CipherString } from './cipherString';\n\nimport { View } from '../view/view';\n\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport default class Domain {\n protected buildDomainModel(domain: D, dataObj: any, map: any,\n alreadyEncrypted: boolean, notEncList: any[] = []) {\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n const objProp = dataObj[(map[prop] || prop)];\n if (alreadyEncrypted === true || notEncList.indexOf(prop) > -1) {\n (domain as any)[prop] = objProp ? objProp : null;\n } else {\n (domain as any)[prop] = objProp ? new CipherString(objProp) : null;\n }\n }\n }\n protected buildDataModel(domain: D, dataObj: any, map: any, notCipherStringList: any[] = []) {\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n const objProp = (domain as any)[(map[prop] || prop)];\n if (notCipherStringList.indexOf(prop) > -1) {\n (dataObj as any)[prop] = objProp != null ? objProp : null;\n } else {\n (dataObj as any)[prop] = objProp != null ? (objProp as CipherString).encryptedString : null;\n }\n }\n }\n\n protected async decryptObj(viewModel: T, map: any, orgId: string,\n key: SymmetricCryptoKey = null): Promise {\n const promises = [];\n const self: any = this;\n\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n // tslint:disable-next-line\n (function (theProp) {\n const p = Promise.resolve().then(() => {\n const mapProp = map[theProp] || theProp;\n if (self[mapProp]) {\n return self[mapProp].decrypt(orgId, key);\n }\n return null;\n }).then((val: any) => {\n (viewModel as any)[theProp] = val;\n });\n promises.push(p);\n })(prop);\n }\n\n await Promise.all(promises);\n return viewModel;\n }\n}\n","import * as jq from 'jquery';\n\nimport {\n Component,\n ComponentFactoryResolver,\n Type,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ModalComponent as BaseModalComponent } from 'jslib/angular/components/modal.component';\nimport { Utils } from 'jslib/misc/utils';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\n@Component({\n selector: 'app-modal',\n template: ``,\n})\nexport class ModalComponent extends BaseModalComponent {\n el: any = null;\n\n constructor(componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService) {\n super(componentFactoryResolver, messagingService);\n }\n\n ngOnDestroy() { /* Nothing */ }\n\n show(type: Type, parentContainer: ViewContainerRef, fade: boolean = true,\n setComponentParameters: (component: T) => void = null): T {\n this.parentContainer = parentContainer;\n this.fade = fade;\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = this.container.createComponent(factory);\n if (setComponentParameters != null) {\n setComponentParameters(componentRef.instance);\n }\n\n const modals = Array.from(document.querySelectorAll('.modal'));\n if (modals.length > 0) {\n this.el = jq(modals[0]);\n this.el.modal('show');\n\n this.el.on('show.bs.modal', () => {\n this.onShow.emit();\n this.messagingService.send('modalShow');\n });\n this.el.on('shown.bs.modal', () => {\n this.onShown.emit();\n this.messagingService.send('modalShown');\n if (!Utils.isMobileBrowser) {\n this.el.find('*[appAutoFocus]').focus();\n }\n });\n this.el.on('hide.bs.modal', () => {\n this.onClose.emit();\n this.messagingService.send('modalClose');\n });\n this.el.on('hidden.bs.modal', () => {\n this.onClosed.emit();\n this.messagingService.send('modalClosed');\n if (this.parentContainer != null) {\n this.parentContainer.clear();\n }\n });\n }\n\n return componentRef.instance;\n }\n\n close() {\n if (this.el != null) {\n this.el.modal('hide');\n }\n }\n}\n","import { BreachAccountResponse } from '../models/response/breachAccountResponse';\n\nexport abstract class AuditService {\n passwordLeaked: (password: string) => Promise;\n breachedAccounts: (username: string) => Promise;\n}\n","import { View } from './view';\n\nimport { Card } from '../domain/card';\n\nexport class CardView implements View {\n cardholderName: string = null;\n expMonth: string = null;\n expYear: string = null;\n code: string = null;\n\n // tslint:disable\n private _brand: string = null;\n private _number: string = null;\n private _subTitle: string = null;\n // tslint:enable\n\n constructor(c?: Card) {\n // ctor\n }\n\n get maskedCode(): string {\n return this.code != null ? '•'.repeat(this.code.length) : null;\n }\n\n get brand(): string {\n return this._brand;\n }\n set brand(value: string) {\n this._brand = value;\n this._subTitle = null;\n }\n\n get number(): string {\n return this._number;\n }\n set number(value: string) {\n this._number = value;\n this._subTitle = null;\n }\n\n get subTitle(): string {\n if (this._subTitle == null) {\n this._subTitle = this.brand;\n if (this.number != null && this.number.length >= 4) {\n if (this._subTitle != null && this._subTitle !== '') {\n this._subTitle += ', ';\n } else {\n this._subTitle = '';\n }\n\n // Show last 5 on amex, last 4 for all others\n const count = this.number.length >= 5 && this.number.match(new RegExp('^3[47]')) != null ? 5 : 4;\n this._subTitle += ('*' + this.number.substr(this.number.length - count));\n }\n }\n return this._subTitle;\n }\n\n get expiration(): string {\n if (!this.expMonth && !this.expYear) {\n return null;\n }\n\n let exp = this.expMonth != null ? ('0' + this.expMonth).slice(-2) : '__';\n exp += (' / ' + (this.expYear != null ? this.formatYear(this.expYear) : '____'));\n return exp;\n }\n\n private formatYear(year: string): string {\n return year.length === 2 ? '20' + year : year;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { View } from './view';\n\nimport { SecureNote } from '../domain/secureNote';\n\nexport class SecureNoteView implements View {\n type: SecureNoteType = null;\n\n constructor(n?: SecureNote) {\n if (!n) {\n return;\n }\n\n this.type = n.type;\n }\n\n get subTitle(): string {\n return null;\n }\n}\n","export abstract class TokenService {\n token: string;\n decodedToken: any;\n refreshToken: string;\n setTokens: (accessToken: string, refreshToken: string) => Promise;\n setToken: (token: string) => Promise;\n getToken: () => Promise;\n setRefreshToken: (refreshToken: string) => Promise;\n getRefreshToken: () => Promise;\n toggleTokens: () => Promise;\n setTwoFactorToken: (token: string, email: string) => Promise;\n getTwoFactorToken: (email: string) => Promise;\n clearTwoFactorToken: (email: string) => Promise;\n clearToken: () => Promise;\n decodeToken: () => any;\n getTokenExpirationDate: () => Date;\n tokenSecondsRemaining: (offsetSeconds?: number) => number;\n tokenNeedsRefresh: (minutes?: number) => boolean;\n getUserId: () => string;\n getEmail: () => string;\n getEmailVerified: () => boolean;\n getName: () => string;\n getPremium: () => boolean;\n getIssuer: () => string;\n}\n","import { DecryptParameters } from '../models/domain/decryptParameters';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport abstract class CryptoFunctionService {\n pbkdf2: (password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: 'sha256' | 'sha512',\n iterations: number) => Promise;\n hkdf: (ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer,\n outputByteSize: number, algorithm: 'sha256' | 'sha512') => Promise;\n hkdfExpand: (prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number,\n algorithm: 'sha256' | 'sha512') => Promise;\n hash: (value: string | ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5') => Promise;\n hmac: (value: ArrayBuffer, key: ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512') => Promise;\n compare: (a: ArrayBuffer, b: ArrayBuffer) => Promise;\n hmacFast: (value: ArrayBuffer | string, key: ArrayBuffer | string, algorithm: 'sha1' | 'sha256' | 'sha512') =>\n Promise;\n compareFast: (a: ArrayBuffer | string, b: ArrayBuffer | string) => Promise;\n aesEncrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise;\n aesDecryptFastParameters: (data: string, iv: string, mac: string, key: SymmetricCryptoKey) =>\n DecryptParameters;\n aesDecryptFast: (parameters: DecryptParameters) => Promise;\n aesDecrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise;\n rsaEncrypt: (data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: 'sha1' | 'sha256') => Promise;\n rsaDecrypt: (data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: 'sha1' | 'sha256') => Promise;\n rsaExtractPublicKey: (privateKey: ArrayBuffer) => Promise;\n rsaGenerateKeyPair: (length: 1024 | 2048 | 4096) => Promise<[ArrayBuffer, ArrayBuffer]>;\n randomBytes: (length: number) => Promise;\n}\n","import { EncryptionType } from '../../enums/encryptionType';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\n\nimport { Utils } from '../../misc/utils';\n\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class CipherString {\n encryptedString?: string;\n encryptionType?: EncryptionType;\n decryptedValue?: string;\n data?: string;\n iv?: string;\n mac?: string;\n\n constructor(encryptedStringOrType: string | EncryptionType, data?: string, iv?: string, mac?: string) {\n if (data != null) {\n // data and header\n const encType = encryptedStringOrType as EncryptionType;\n\n if (iv != null) {\n this.encryptedString = encType + '.' + iv + '|' + data;\n } else {\n this.encryptedString = encType + '.' + data;\n }\n\n // mac\n if (mac != null) {\n this.encryptedString += ('|' + mac);\n }\n\n this.encryptionType = encType;\n this.data = data;\n this.iv = iv;\n this.mac = mac;\n\n return;\n }\n\n this.encryptedString = encryptedStringOrType as string;\n if (!this.encryptedString) {\n return;\n }\n\n const headerPieces = this.encryptedString.split('.');\n let encPieces: string[] = null;\n\n if (headerPieces.length === 2) {\n try {\n this.encryptionType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split('|');\n } catch (e) {\n return;\n }\n } else {\n encPieces = this.encryptedString.split('|');\n this.encryptionType = encPieces.length === 3 ? EncryptionType.AesCbc128_HmacSha256_B64 :\n EncryptionType.AesCbc256_B64;\n }\n\n switch (this.encryptionType) {\n case EncryptionType.AesCbc128_HmacSha256_B64:\n case EncryptionType.AesCbc256_HmacSha256_B64:\n if (encPieces.length !== 3) {\n return;\n }\n\n this.iv = encPieces[0];\n this.data = encPieces[1];\n this.mac = encPieces[2];\n break;\n case EncryptionType.AesCbc256_B64:\n if (encPieces.length !== 2) {\n return;\n }\n\n this.iv = encPieces[0];\n this.data = encPieces[1];\n break;\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n if (encPieces.length !== 1) {\n return;\n }\n\n this.data = encPieces[0];\n break;\n default:\n return;\n }\n }\n\n async decrypt(orgId: string, key: SymmetricCryptoKey = null): Promise {\n if (this.decryptedValue != null) {\n return this.decryptedValue;\n }\n\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n if (key == null) {\n key = await cryptoService.getOrgKey(orgId);\n }\n this.decryptedValue = await cryptoService.decryptToUtf8(this, key);\n } catch (e) {\n this.decryptedValue = '[error: cannot decrypt]';\n }\n return this.decryptedValue;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\n\nimport { CipherView } from '../../models/view/cipherView';\n\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { StateService } from '../../abstractions/state.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nconst IconMap: any = {\n 'fa-globe': String.fromCharCode(0xf0ac),\n 'fa-sticky-note-o': String.fromCharCode(0xf24a),\n 'fa-id-card-o': String.fromCharCode(0xf2c3),\n 'fa-credit-card': String.fromCharCode(0xf09d),\n 'fa-android': String.fromCharCode(0xf17b),\n 'fa-apple': String.fromCharCode(0xf179),\n};\n\n@Component({\n selector: 'app-vault-icon',\n templateUrl: 'icon.component.html',\n})\nexport class IconComponent implements OnChanges {\n @Input() cipher: CipherView;\n icon: string;\n image: string;\n fallbackImage: string;\n imageEnabled: boolean;\n\n private iconsUrl: string;\n\n constructor(environmentService: EnvironmentService, protected stateService: StateService) {\n this.iconsUrl = environmentService.iconsUrl;\n if (!this.iconsUrl) {\n if (environmentService.baseUrl) {\n this.iconsUrl = environmentService.baseUrl + '/icons';\n } else {\n this.iconsUrl = 'https://icons.bitwarden.net';\n }\n }\n }\n\n async ngOnChanges() {\n this.imageEnabled = !(await this.stateService.get(ConstantsService.disableFaviconKey));\n this.load();\n }\n\n get iconCode(): string {\n return IconMap[this.icon];\n }\n\n protected load() {\n switch (this.cipher.type) {\n case CipherType.Login:\n this.icon = 'fa-globe';\n this.setLoginIcon();\n break;\n case CipherType.SecureNote:\n this.icon = 'fa-sticky-note-o';\n break;\n case CipherType.Card:\n this.icon = 'fa-credit-card';\n break;\n case CipherType.Identity:\n this.icon = 'fa-id-card-o';\n break;\n default:\n break;\n }\n }\n\n private setLoginIcon() {\n if (this.cipher.login.uri) {\n let hostnameUri = this.cipher.login.uri;\n let isWebsite = false;\n\n if (hostnameUri.indexOf('androidapp://') === 0) {\n this.icon = 'fa-android';\n this.image = null;\n } else if (hostnameUri.indexOf('iosapp://') === 0) {\n this.icon = 'fa-apple';\n this.image = null;\n } else if (this.imageEnabled && hostnameUri.indexOf('://') === -1 && hostnameUri.indexOf('.') > -1) {\n hostnameUri = 'http://' + hostnameUri;\n isWebsite = true;\n } else if (this.imageEnabled) {\n isWebsite = hostnameUri.indexOf('http') === 0 && hostnameUri.indexOf('.') > -1;\n }\n\n if (this.imageEnabled && isWebsite) {\n try {\n this.image = this.iconsUrl + '/' + Utils.getHostname(hostnameUri) + '/icon.png';\n this.fallbackImage = 'images/fa-globe.png';\n } catch (e) { }\n }\n } else {\n this.image = null;\n }\n }\n}\n","
\n \"\"\n \n
\n","import { Injectable } from '@angular/core';\n\nimport { BroadcasterService as BaseBroadcasterService } from '../../services/broadcaster.service';\n\n@Injectable()\nexport class BroadcasterService extends BaseBroadcasterService {\n}\n","import { CipherString } from '../models/domain/cipherString';\n\nexport abstract class VaultTimeoutService {\n biometricLocked: boolean;\n pinProtectedKey: CipherString;\n isLocked: () => Promise;\n checkVaultTimeout: () => Promise;\n lock: (allowSoftLock?: boolean) => Promise;\n logOut: () => Promise;\n setVaultTimeoutOptions: (vaultTimeout: number, vaultTimeoutAction: string) => Promise;\n isPinLockSet: () => Promise<[boolean, boolean]>;\n isBiometricLockSet: () => Promise;\n clear: () => Promise;\n}\n","export enum SecureNoteType {\n Generic = 0,\n}\n","export enum TwoFactorProviderType {\n Authenticator = 0,\n Email = 1,\n Duo = 2,\n Yubikey = 3,\n U2f = 4,\n Remember = 5,\n OrganizationDuo = 6,\n}\n","export abstract class TotpService {\n getCode: (key: string) => Promise;\n getTimeInterval: (key: string) => number;\n isAutoCopyEnabled: () => Promise;\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { WebConstants } from '../../services/webConstants';\n\nconst StripeElementStyle = {\n base: {\n color: '#333333',\n fontFamily: '\"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, ' +\n '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n fontSize: '14px',\n fontSmoothing: 'antialiased',\n },\n invalid: {\n color: '#333333',\n },\n};\n\nconst StripeElementClasses = {\n focus: 'is-focused',\n empty: 'is-empty',\n invalid: 'is-invalid',\n};\n\n@Component({\n selector: 'app-payment',\n templateUrl: 'payment.component.html',\n})\nexport class PaymentComponent implements OnInit {\n @Input() showMethods = true;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.Card;\n @Input() hideBank = false;\n @Input() hidePaypal = false;\n @Input() hideCredit = false;\n\n bank: any = {\n routing_number: null,\n account_number: null,\n account_holder_name: null,\n account_holder_type: '',\n currency: 'USD',\n country: 'US',\n };\n\n paymentMethodType = PaymentMethodType;\n\n private btScript: HTMLScriptElement;\n private btInstance: any = null;\n private stripeScript: HTMLScriptElement;\n private stripe: any = null;\n private stripeElements: any = null;\n private stripeCardNumberElement: any = null;\n private stripeCardExpiryElement: any = null;\n private stripeCardCvcElement: any = null;\n\n constructor(private platformUtilsService: PlatformUtilsService, private apiService: ApiService) {\n this.stripeScript = window.document.createElement('script');\n this.stripeScript.src = 'https://js.stripe.com/v3/';\n this.stripeScript.async = true;\n this.stripeScript.onload = () => {\n this.stripe = (window as any).Stripe(this.platformUtilsService.isDev() ?\n WebConstants.stripeTestKey : WebConstants.stripeLiveKey);\n this.stripeElements = this.stripe.elements();\n this.setStripeElement();\n };\n this.btScript = window.document.createElement('script');\n this.btScript.src = 'scripts/dropin.js';\n this.btScript.async = true;\n }\n\n ngOnInit() {\n if (!this.showOptions) {\n this.hidePaypal = this.method !== PaymentMethodType.PayPal;\n this.hideBank = this.method !== PaymentMethodType.BankAccount;\n this.hideCredit = this.method !== PaymentMethodType.Credit;\n }\n window.document.head.appendChild(this.stripeScript);\n if (!this.hidePaypal) {\n window.document.head.appendChild(this.btScript);\n }\n }\n\n ngOnDestroy() {\n window.document.head.removeChild(this.stripeScript);\n window.setTimeout(() => {\n Array.from(window.document.querySelectorAll('iframe')).forEach(el => {\n if (el.src != null && el.src.indexOf('stripe') > -1) {\n try {\n window.document.body.removeChild(el);\n } catch { }\n }\n });\n }, 500);\n if (!this.hidePaypal) {\n window.document.head.removeChild(this.btScript);\n window.setTimeout(() => {\n Array.from(window.document.head.querySelectorAll('script')).forEach(el => {\n if (el.src != null && el.src.indexOf('paypal') > -1) {\n try {\n window.document.head.removeChild(el);\n } catch { }\n }\n });\n const btStylesheet = window.document.head.querySelector('#braintree-dropin-stylesheet');\n if (btStylesheet != null) {\n try {\n window.document.head.removeChild(btStylesheet);\n } catch { }\n }\n }, 500);\n }\n }\n\n changeMethod() {\n this.btInstance = null;\n\n if (this.method === PaymentMethodType.PayPal) {\n window.setTimeout(() => {\n (window as any).braintree.dropin.create({\n authorization: this.platformUtilsService.isDev() ?\n WebConstants.btSandboxKey : WebConstants.btProductionKey,\n container: '#bt-dropin-container',\n paymentOptionPriority: ['paypal'],\n paypal: {\n flow: 'vault',\n buttonStyle: {\n label: 'pay',\n size: 'medium',\n shape: 'pill',\n color: 'blue',\n },\n },\n }, (createErr: any, instance: any) => {\n if (createErr != null) {\n // tslint:disable-next-line\n console.error(createErr);\n return;\n }\n this.btInstance = instance;\n });\n }, 250);\n } else {\n this.setStripeElement();\n }\n }\n\n createPaymentToken(): Promise<[string, PaymentMethodType]> {\n return new Promise((resolve, reject) => {\n if (this.method === PaymentMethodType.Credit) {\n resolve([null, this.method]);\n } else if (this.method === PaymentMethodType.PayPal) {\n this.btInstance.requestPaymentMethod().then((payload: any) => {\n resolve([payload.nonce, this.method]);\n }).catch((err: any) => {\n reject(err.message);\n });\n } else if (this.method === PaymentMethodType.Card || this.method === PaymentMethodType.BankAccount) {\n if (this.method === PaymentMethodType.Card) {\n this.apiService.postSetupPayment().then(clientSecret =>\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement))\n .then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.setupIntent && result.setupIntent.status === 'succeeded') {\n resolve([result.setupIntent.payment_method, this.method]);\n } else {\n reject();\n }\n });\n } else {\n this.stripe.createToken('bank_account', this.bank).then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.token && result.token.id != null) {\n resolve([result.token.id, this.method]);\n } else {\n reject();\n }\n });\n }\n }\n });\n }\n\n handleStripeCardPayment(clientSecret: string, successCallback: () => Promise): Promise {\n return new Promise((resolve, reject) => {\n if (this.showMethods && this.stripeCardNumberElement == null) {\n reject();\n return;\n }\n const handleCardPayment = () => this.showMethods ?\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement) :\n this.stripe.handleCardSetup(clientSecret);\n return handleCardPayment().then(async (result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.paymentIntent && result.paymentIntent.status === 'succeeded') {\n if (successCallback != null) {\n await successCallback();\n }\n resolve();\n } else {\n reject();\n }\n });\n });\n }\n\n private setStripeElement() {\n window.setTimeout(() => {\n if (this.showMethods && this.method === PaymentMethodType.Card) {\n if (this.stripeCardNumberElement == null) {\n this.stripeCardNumberElement = this.stripeElements.create('cardNumber', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n placeholder: '',\n });\n }\n if (this.stripeCardExpiryElement == null) {\n this.stripeCardExpiryElement = this.stripeElements.create('cardExpiry', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n });\n }\n if (this.stripeCardCvcElement == null) {\n this.stripeCardCvcElement = this.stripeElements.create('cardCvc', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n placeholder: '',\n });\n }\n this.stripeCardNumberElement.mount('#stripe-card-number-element');\n this.stripeCardExpiryElement.mount('#stripe-card-expiry-element');\n this.stripeCardCvcElement.mount('#stripe-card-cvc-element');\n }\n }, 50);\n }\n}\n","
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n
\n
\n \"Visa,\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n \n {{'verifyBankAccountInitialDesc' | i18n}} {{'verifyBankAccountFailureWarning' | i18n}}\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n {{'paypalClickSubmit' | i18n}}\n
\n
\n\n \n {{'makeSureEnoughCredit' | i18n}}\n \n\n","export enum FieldType {\n Text = 0,\n Hidden = 1,\n Boolean = 2,\n}\n","import { View } from './view';\n\nimport { Folder } from '../domain/folder';\nimport { ITreeNodeObject } from '../domain/treeNode';\n\nexport class FolderView implements View, ITreeNodeObject {\n id: string = null;\n name: string = null;\n revisionDate: Date = null;\n\n constructor(f?: Folder) {\n if (!f) {\n return;\n }\n\n this.id = f.id;\n this.revisionDate = f.revisionDate;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { StateService } from 'jslib/abstractions/state.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-avatar',\n template: '',\n})\nexport class AvatarComponent implements OnChanges, OnInit {\n @Input() data: string;\n @Input() email: string;\n @Input() size = 45;\n @Input() charCount = 2;\n @Input() textColor = '#ffffff';\n @Input() fontSize = 20;\n @Input() fontWeight = 300;\n @Input() dynamic = false;\n @Input() circle = false;\n\n src: string;\n\n constructor(public sanitizer: DomSanitizer, private cryptoFunctionService: CryptoFunctionService,\n private stateService: StateService) { }\n\n ngOnInit() {\n if (!this.dynamic) {\n this.generate();\n }\n }\n\n ngOnChanges() {\n if (this.dynamic) {\n this.generate();\n }\n }\n\n private async generate() {\n const enableGravatars = await this.stateService.get('enableGravatars');\n if (enableGravatars && this.email != null) {\n const hashBytes = await this.cryptoFunctionService.hash(this.email.toLowerCase().trim(), 'md5');\n const hash = Utils.fromBufferToHex(hashBytes).toLowerCase();\n this.src = 'https://www.gravatar.com/avatar/' + hash + '?s=' + this.size + '&r=pg&d=retro';\n } else {\n let chars: string = null;\n const upperData = this.data.toUpperCase();\n\n if (this.charCount > 1) {\n chars = this.getFirstLetters(upperData, this.charCount);\n }\n if (chars == null) {\n chars = upperData.substr(0, this.charCount);\n }\n\n const charObj = this.getCharText(chars);\n const color = this.stringToColor(upperData);\n const svg = this.getSvg(this.size, color);\n svg.appendChild(charObj);\n const html = window.document.createElement('div').appendChild(svg).outerHTML;\n const svgHtml = window.btoa(unescape(encodeURIComponent(html)));\n this.src = 'data:image/svg+xml;base64,' + svgHtml;\n }\n }\n\n private stringToColor(str: string): string {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n // tslint:disable-next-line\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n let color = '#';\n for (let i = 0; i < 3; i++) {\n // tslint:disable-next-line\n const value = (hash >> (i * 8)) & 0xFF;\n color += ('00' + value.toString(16)).substr(-2);\n }\n return color;\n }\n\n private getFirstLetters(data: string, count: number): string {\n const parts = data.split(' ');\n if (parts.length > 1) {\n let text = '';\n for (let i = 0; i < count; i++) {\n text += parts[i].substr(0, 1);\n }\n return text;\n }\n return null;\n }\n\n private getSvg(size: number, color: string): HTMLElement {\n const svgTag = window.document.createElement('svg');\n svgTag.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svgTag.setAttribute('pointer-events', 'none');\n svgTag.setAttribute('width', size.toString());\n svgTag.setAttribute('height', size.toString());\n svgTag.style.backgroundColor = color;\n svgTag.style.width = size + 'px';\n svgTag.style.height = size + 'px';\n return svgTag;\n }\n\n private getCharText(character: string): HTMLElement {\n const textTag = window.document.createElement('text');\n textTag.setAttribute('text-anchor', 'middle');\n textTag.setAttribute('y', '50%');\n textTag.setAttribute('x', '50%');\n textTag.setAttribute('dy', '0.35em');\n textTag.setAttribute('pointer-events', 'auto');\n textTag.setAttribute('fill', this.textColor);\n textTag.setAttribute('font-family', '\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,' +\n 'sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"');\n textTag.textContent = character;\n textTag.style.fontWeight = this.fontWeight.toString();\n textTag.style.fontSize = this.fontSize + 'px';\n return textTag;\n }\n}\n","import { CollectionData } from '../data/collectionData';\n\nimport { CollectionView } from '../view/collectionView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nexport class Collection extends Domain {\n id: string;\n organizationId: string;\n name: CipherString;\n externalId: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(obj?: CollectionData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n organizationId: null,\n name: null,\n externalId: null,\n readOnly: null,\n hidePasswords: null,\n }, alreadyEncrypted, ['id', 'organizationId', 'externalId', 'readOnly', 'hidePasswords']);\n }\n\n decrypt(): Promise {\n return this.decryptObj(new CollectionView(this), {\n name: null,\n }, this.organizationId);\n }\n}\n","export enum PolicyType {\n TwoFactorAuthentication = 0, // Requires users to have 2fa enabled\n MasterPassword = 1, // Sets minimum requirements for master password complexity\n PasswordGenerator = 2, // Sets minimum requirements/default type for generated passwords/passphrases\n SingleOrg = 3, // Allows users to only be apart of one organization\n RequireSso = 4, // Requires users to authenticate with SSO\n PersonalOwnership = 5, // Disables personal vault ownership for adding/cloning items\n DisableSend = 6, // Disables the ability to create and edit Bitwarden Sends\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { OrganizationTaxInfoUpdateRequest } from 'jslib/models/request/organizationTaxInfoUpdateRequest';\nimport { TaxInfoUpdateRequest } from 'jslib/models/request/taxInfoUpdateRequest';\nimport { TaxRateResponse } from 'jslib/models/response/taxRateResponse';\n\n@Component({\n selector: 'app-tax-info',\n templateUrl: 'tax-info.component.html',\n})\nexport class TaxInfoComponent {\n @Output() onCountryChanged = new EventEmitter();\n\n loading: boolean = true;\n organizationId: string;\n taxInfo: any = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: 'US',\n includeTaxId: false,\n };\n\n taxRates: TaxRateResponse[];\n\n private pristine: any = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: 'US',\n includeTaxId: false,\n };\n\n constructor(private apiService: ApiService, private route: ActivatedRoute) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n if (this.organizationId) {\n try {\n const taxInfo = await this.apiService.getOrganizationTaxInfo(this.organizationId);\n if (taxInfo) {\n this.taxInfo.taxId = taxInfo.taxId;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.line1 = taxInfo.line1;\n this.taxInfo.line2 = taxInfo.line2;\n this.taxInfo.city = taxInfo.city;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || 'US';\n this.taxInfo.includeTaxId = this.taxInfo.country !== 'US' && (\n !!taxInfo.taxId\n || !!taxInfo.line1\n || !!taxInfo.line2\n || !!taxInfo.city\n || !!taxInfo.state);\n }\n } catch { }\n } else {\n const taxInfo = await this.apiService.getTaxInfo();\n if (taxInfo) {\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || 'US';\n }\n }\n this.pristine = Object.assign({}, this.taxInfo);\n // If not the default (US) then trigger onCountryChanged\n if (this.taxInfo.country !== 'US') {\n this.onCountryChanged.emit();\n }\n });\n\n const taxRates = await this.apiService.getTaxRates();\n this.taxRates = taxRates.data;\n this.loading = false;\n }\n\n get taxRate() {\n if (this.taxRates != null) {\n const localTaxRate = this.taxRates.find(x =>\n x.country === this.taxInfo.country &&\n x.postalCode === this.taxInfo.postalCode\n );\n return localTaxRate?.rate ?? null;\n }\n }\n\n getTaxInfoRequest(): TaxInfoUpdateRequest {\n if (this.organizationId) {\n const request = new OrganizationTaxInfoUpdateRequest();\n request.taxId = this.taxInfo.taxId;\n request.state = this.taxInfo.state;\n request.line1 = this.taxInfo.line1;\n request.line2 = this.taxInfo.line2;\n request.city = this.taxInfo.city;\n request.state = this.taxInfo.state;\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n } else {\n const request = new TaxInfoUpdateRequest();\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n }\n }\n\n submitTaxInfo(): Promise {\n if (!this.hasChanged()) {\n return new Promise(resolve => { resolve(); });\n }\n const request = this.getTaxInfoRequest();\n return this.organizationId ? this.apiService.putOrganizationTaxInfo(this.organizationId,\n request as OrganizationTaxInfoUpdateRequest) : this.apiService.putTaxInfo(request);\n }\n\n changeCountry() {\n if (this.taxInfo.country === 'US') {\n this.taxInfo.includeTaxId = false;\n this.taxInfo.taxId = null;\n this.taxInfo.line1 = null;\n this.taxInfo.line2 = null;\n this.taxInfo.city = null;\n this.taxInfo.state = null;\n }\n this.onCountryChanged.emit();\n }\n\n private hasChanged(): boolean {\n for (const key in this.taxInfo) {\n if (this.pristine.hasOwnProperty(key) && this.pristine[key] !== this.taxInfo[key]) {\n return true;\n }\n }\n return false;\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n","import { CipherType } from '../../enums/cipherType';\n\nimport { Cipher } from '../domain/cipher';\n\nimport { AttachmentView } from './attachmentView';\nimport { CardView } from './cardView';\nimport { FieldView } from './fieldView';\nimport { IdentityView } from './identityView';\nimport { LoginView } from './loginView';\nimport { PasswordHistoryView } from './passwordHistoryView';\nimport { SecureNoteView } from './secureNoteView';\nimport { View } from './view';\n\nexport class CipherView implements View {\n id: string = null;\n organizationId: string = null;\n folderId: string = null;\n name: string = null;\n notes: string = null;\n type: CipherType = null;\n favorite = false;\n organizationUseTotp = false;\n edit = false;\n viewPassword = true;\n localData: any;\n login = new LoginView();\n identity = new IdentityView();\n card = new CardView();\n secureNote = new SecureNoteView();\n attachments: AttachmentView[] = null;\n fields: FieldView[] = null;\n passwordHistory: PasswordHistoryView[] = null;\n collectionIds: string[] = null;\n revisionDate: Date = null;\n deletedDate: Date = null;\n\n constructor(c?: Cipher) {\n if (!c) {\n return;\n }\n\n this.id = c.id;\n this.organizationId = c.organizationId;\n this.folderId = c.folderId;\n this.favorite = c.favorite;\n this.organizationUseTotp = c.organizationUseTotp;\n this.edit = c.edit;\n this.viewPassword = c.viewPassword;\n this.type = c.type;\n this.localData = c.localData;\n this.collectionIds = c.collectionIds;\n this.revisionDate = c.revisionDate;\n this.deletedDate = c.deletedDate;\n }\n\n get subTitle(): string {\n switch (this.type) {\n case CipherType.Login:\n return this.login.subTitle;\n case CipherType.SecureNote:\n return this.secureNote.subTitle;\n case CipherType.Card:\n return this.card.subTitle;\n case CipherType.Identity:\n return this.identity.subTitle;\n default:\n break;\n }\n\n return null;\n }\n\n get hasPasswordHistory(): boolean {\n return this.passwordHistory && this.passwordHistory.length > 0;\n }\n\n get hasAttachments(): boolean {\n return this.attachments && this.attachments.length > 0;\n }\n\n get hasOldAttachments(): boolean {\n if (this.hasAttachments) {\n for (let i = 0; i < this.attachments.length; i++) {\n if (this.attachments[i].key == null) {\n return true;\n }\n }\n }\n return false;\n }\n\n get hasFields(): boolean {\n return this.fields && this.fields.length > 0;\n }\n\n get passwordRevisionDisplayDate(): Date {\n if (this.type !== CipherType.Login || this.login == null) {\n return null;\n } else if (this.login.password == null || this.login.password === '') {\n return null;\n }\n return this.login.passwordRevisionDate;\n }\n\n get isDeleted(): boolean {\n return this.deletedDate != null;\n }\n}\n","import { View } from './view';\n\nimport { Identity } from '../domain/identity';\n\nimport { Utils } from '../../misc/utils';\n\nexport class IdentityView implements View {\n title: string = null;\n middleName: string = null;\n address1: string = null;\n address2: string = null;\n address3: string = null;\n city: string = null;\n state: string = null;\n postalCode: string = null;\n country: string = null;\n company: string = null;\n email: string = null;\n phone: string = null;\n ssn: string = null;\n username: string = null;\n passportNumber: string = null;\n licenseNumber: string = null;\n\n // tslint:disable\n private _firstName: string = null;\n private _lastName: string = null;\n private _subTitle: string = null;\n // tslint:enable\n\n constructor(i?: Identity) {\n // ctor\n }\n\n get firstName(): string {\n return this._firstName;\n }\n set firstName(value: string) {\n this._firstName = value;\n this._subTitle = null;\n }\n\n get lastName(): string {\n return this._lastName;\n }\n set lastName(value: string) {\n this._lastName = value;\n this._subTitle = null;\n }\n\n get subTitle(): string {\n if (this._subTitle == null && (this.firstName != null || this.lastName != null)) {\n this._subTitle = '';\n if (this.firstName != null) {\n this._subTitle = this.firstName;\n }\n if (this.lastName != null) {\n if (this._subTitle !== '') {\n this._subTitle += ' ';\n }\n this._subTitle += this.lastName;\n }\n }\n\n return this._subTitle;\n }\n\n get fullName(): string {\n if (this.title != null || this.firstName != null || this.middleName != null || this.lastName != null) {\n let name = '';\n if (this.title != null) {\n name += (this.title + ' ');\n }\n if (this.firstName != null) {\n name += (this.firstName + ' ');\n }\n if (this.middleName != null) {\n name += (this.middleName + ' ');\n }\n if (this.lastName != null) {\n name += this.lastName;\n }\n return name.trim();\n }\n\n return null;\n }\n\n get fullAddress(): string {\n let address = this.address1;\n if (!Utils.isNullOrWhitespace(this.address2)) {\n if (!Utils.isNullOrWhitespace(address)) {\n address += ', ';\n }\n address += this.address2;\n }\n if (!Utils.isNullOrWhitespace(this.address3)) {\n if (!Utils.isNullOrWhitespace(address)) {\n address += ', ';\n }\n address += this.address3;\n }\n return address;\n }\n\n get fullAddressPart2(): string {\n if (this.city == null && this.state == null && this.postalCode == null) {\n return null;\n }\n const city = this.city || '-';\n const state = this.state;\n const postalCode = this.postalCode || '-';\n let addressPart2 = city;\n if (!Utils.isNullOrWhitespace(state)) {\n addressPart2 += ', ' + state;\n }\n addressPart2 += ', ' + postalCode;\n return addressPart2;\n }\n}\n","import { CollectionDetailsResponse } from '../response/collectionResponse';\n\nexport class CollectionData {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n readOnly: boolean;\n\n constructor(response: CollectionDetailsResponse) {\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.name = response.name;\n this.externalId = response.externalId;\n this.readOnly = response.readOnly;\n }\n}\n","import { View } from './view';\n\nimport { Collection } from '../domain/collection';\nimport { ITreeNodeObject } from '../domain/treeNode';\n\nimport { CollectionGroupDetailsResponse } from '../response/collectionResponse';\n\nexport class CollectionView implements View, ITreeNodeObject {\n id: string = null;\n organizationId: string = null;\n name: string = null;\n externalId: string = null;\n readOnly: boolean = null;\n hidePasswords: boolean = null;\n\n constructor(c?: Collection | CollectionGroupDetailsResponse) {\n if (!c) {\n return;\n }\n\n this.id = c.id;\n this.organizationId = c.organizationId;\n this.externalId = c.externalId;\n if (c instanceof Collection) {\n this.readOnly = c.readOnly;\n this.hidePasswords = c.hidePasswords;\n }\n }\n}\n","export enum OrganizationUserStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { AttachmentData } from './attachmentData';\nimport { CardData } from './cardData';\nimport { FieldData } from './fieldData';\nimport { IdentityData } from './identityData';\nimport { LoginData } from './loginData';\nimport { PasswordHistoryData } from './passwordHistoryData';\nimport { SecureNoteData } from './secureNoteData';\n\nimport { CipherResponse } from '../response/cipherResponse';\n\nexport class CipherData {\n id: string;\n organizationId: string;\n folderId: string;\n userId: string;\n edit: boolean;\n viewPassword: boolean;\n organizationUseTotp: boolean;\n favorite: boolean;\n revisionDate: string;\n type: CipherType;\n sizeName: string;\n name: string;\n notes: string;\n login?: LoginData;\n secureNote?: SecureNoteData;\n card?: CardData;\n identity?: IdentityData;\n fields?: FieldData[];\n attachments?: AttachmentData[];\n passwordHistory?: PasswordHistoryData[];\n collectionIds?: string[];\n deletedDate: string;\n\n constructor(response?: CipherResponse, userId?: string, collectionIds?: string[]) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.folderId = response.folderId;\n this.userId = userId;\n this.edit = response.edit;\n this.viewPassword = response.viewPassword;\n this.organizationUseTotp = response.organizationUseTotp;\n this.favorite = response.favorite;\n this.revisionDate = response.revisionDate;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.collectionIds = collectionIds != null ? collectionIds : response.collectionIds;\n this.deletedDate = response.deletedDate;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new LoginData(response.login);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNoteData(response.secureNote);\n break;\n case CipherType.Card:\n this.card = new CardData(response.card);\n break;\n case CipherType.Identity:\n this.identity = new IdentityData(response.identity);\n break;\n default:\n break;\n }\n\n if (response.fields != null) {\n this.fields = response.fields.map(f => new FieldData(f));\n }\n if (response.attachments != null) {\n this.attachments = response.attachments.map(a => new AttachmentData(a));\n }\n if (response.passwordHistory != null) {\n this.passwordHistory = response.passwordHistory.map(ph => new PasswordHistoryData(ph));\n }\n }\n}\n","import { LoginUriView } from './loginUriView';\nimport { View } from './view';\n\nimport { Utils } from '../../misc/utils';\nimport { Login } from '../domain/login';\n\nexport class LoginView implements View {\n username: string = null;\n password: string = null;\n passwordRevisionDate?: Date = null;\n totp: string = null;\n uris: LoginUriView[] = null;\n\n constructor(l?: Login) {\n if (!l) {\n return;\n }\n\n this.passwordRevisionDate = l.passwordRevisionDate;\n }\n\n get uri(): string {\n return this.hasUris ? this.uris[0].uri : null;\n }\n\n get maskedPassword(): string {\n return this.password != null ? '••••••••' : null;\n }\n\n get subTitle(): string {\n return this.username;\n }\n\n get canLaunch(): boolean {\n return this.hasUris && this.uris.some(u => u.canLaunch);\n }\n\n get hasTotp(): boolean {\n return !Utils.isNullOrWhitespace(this.totp);\n }\n\n get launchUri(): string {\n if (this.hasUris) {\n const uri = this.uris.find(u => u.canLaunch);\n if (uri != null) {\n return uri.launchUri;\n }\n }\n return null;\n }\n\n get hasUris(): boolean {\n return this.uris != null && this.uris.length > 0;\n }\n}\n","export enum SendType {\n Text = 0,\n File = 1,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-two-factor-verify',\n templateUrl: 'two-factor-verify.component.html',\n})\nexport class TwoFactorVerifyComponent {\n @Input() type: TwoFactorProviderType;\n @Input() organizationId: string;\n @Output() onAuthed = new EventEmitter();\n\n masterPassword: string;\n formPromise: Promise;\n\n private masterPasswordHash: string;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = this.masterPasswordHash =\n await this.cryptoService.hashPassword(this.masterPassword, null);\n\n try {\n switch (this.type) {\n case -1:\n this.formPromise = this.apiService.getTwoFactorRecover(request);\n break;\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n if (this.organizationId != null) {\n this.formPromise = this.apiService.getTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n this.formPromise = this.apiService.getTwoFactorDuo(request);\n }\n break;\n case TwoFactorProviderType.Email:\n this.formPromise = this.apiService.getTwoFactorEmail(request);\n break;\n case TwoFactorProviderType.U2f:\n this.formPromise = this.apiService.getTwoFactorU2f(request);\n break;\n case TwoFactorProviderType.Authenticator:\n this.formPromise = this.apiService.getTwoFactorAuthenticator(request);\n break;\n case TwoFactorProviderType.Yubikey:\n this.formPromise = this.apiService.getTwoFactorYubiKey(request);\n break;\n }\n\n const response = await this.formPromise;\n this.onAuthed.emit({\n response: response,\n masterPasswordHash: this.masterPasswordHash,\n });\n } catch { }\n }\n}\n","
\n
\n

{{'twoStepLoginAuthDesc' | i18n}}

\n \n \n
\n
\n \n \n
\n
\n","export abstract class ExportService {\n getExport: (format?: 'csv' | 'json' | 'encrypted_json') => Promise;\n getOrganizationExport: (organizationId: string, format?: 'csv' | 'json' | 'encrypted_json') => Promise;\n getFileName: (prefix?: string, extension?: string) => string;\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { CipherData } from '../data/cipherData';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Attachment } from './attachment';\nimport { Card } from './card';\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { Field } from './field';\nimport { Identity } from './identity';\nimport { Login } from './login';\nimport { Password } from './password';\nimport { SecureNote } from './secureNote';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Cipher extends Domain {\n id: string;\n organizationId: string;\n folderId: string;\n name: CipherString;\n notes: CipherString;\n type: CipherType;\n favorite: boolean;\n organizationUseTotp: boolean;\n edit: boolean;\n viewPassword: boolean;\n revisionDate: Date;\n localData: any;\n login: Login;\n identity: Identity;\n card: Card;\n secureNote: SecureNote;\n attachments: Attachment[];\n fields: Field[];\n passwordHistory: Password[];\n collectionIds: string[];\n deletedDate: Date;\n\n constructor(obj?: CipherData, alreadyEncrypted: boolean = false, localData: any = null) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n userId: null,\n organizationId: null,\n folderId: null,\n name: null,\n notes: null,\n }, alreadyEncrypted, ['id', 'userId', 'organizationId', 'folderId']);\n\n this.type = obj.type;\n this.favorite = obj.favorite;\n this.organizationUseTotp = obj.organizationUseTotp;\n this.edit = obj.edit;\n if (obj.viewPassword != null) {\n this.viewPassword = obj.viewPassword;\n } else {\n this.viewPassword = true; // Default for already synced Ciphers without viewPassword\n }\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n this.collectionIds = obj.collectionIds;\n this.localData = localData;\n this.deletedDate = obj.deletedDate != null ? new Date(obj.deletedDate) : null;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new Login(obj.login, alreadyEncrypted);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNote(obj.secureNote, alreadyEncrypted);\n break;\n case CipherType.Card:\n this.card = new Card(obj.card, alreadyEncrypted);\n break;\n case CipherType.Identity:\n this.identity = new Identity(obj.identity, alreadyEncrypted);\n break;\n default:\n break;\n }\n\n if (obj.attachments != null) {\n this.attachments = obj.attachments.map(a => new Attachment(a, alreadyEncrypted));\n } else {\n this.attachments = null;\n }\n\n if (obj.fields != null) {\n this.fields = obj.fields.map(f => new Field(f, alreadyEncrypted));\n } else {\n this.fields = null;\n }\n\n if (obj.passwordHistory != null) {\n this.passwordHistory = obj.passwordHistory.map(ph => new Password(ph, alreadyEncrypted));\n } else {\n this.passwordHistory = null;\n }\n }\n\n async decrypt(encKey?: SymmetricCryptoKey): Promise {\n const model = new CipherView(this);\n\n await this.decryptObj(model, {\n name: null,\n notes: null,\n }, this.organizationId, encKey);\n\n switch (this.type) {\n case CipherType.Login:\n model.login = await this.login.decrypt(this.organizationId, encKey);\n break;\n case CipherType.SecureNote:\n model.secureNote = await this.secureNote.decrypt(this.organizationId, encKey);\n break;\n case CipherType.Card:\n model.card = await this.card.decrypt(this.organizationId, encKey);\n break;\n case CipherType.Identity:\n model.identity = await this.identity.decrypt(this.organizationId, encKey);\n break;\n default:\n break;\n }\n\n const orgId = this.organizationId;\n\n if (this.attachments != null && this.attachments.length > 0) {\n const attachments: any[] = [];\n await this.attachments.reduce((promise, attachment) => {\n return promise.then(() => {\n return attachment.decrypt(orgId, encKey);\n }).then(decAttachment => {\n attachments.push(decAttachment);\n });\n }, Promise.resolve());\n model.attachments = attachments;\n }\n\n if (this.fields != null && this.fields.length > 0) {\n const fields: any[] = [];\n await this.fields.reduce((promise, field) => {\n return promise.then(() => {\n return field.decrypt(orgId, encKey);\n }).then(decField => {\n fields.push(decField);\n });\n }, Promise.resolve());\n model.fields = fields;\n }\n\n if (this.passwordHistory != null && this.passwordHistory.length > 0) {\n const passwordHistory: any[] = [];\n await this.passwordHistory.reduce((promise, ph) => {\n return promise.then(() => {\n return ph.decrypt(orgId, encKey);\n }).then(decPh => {\n passwordHistory.push(decPh);\n });\n }, Promise.resolve());\n model.passwordHistory = passwordHistory;\n }\n\n return model;\n }\n\n toCipherData(userId: string): CipherData {\n const c = new CipherData();\n c.id = this.id;\n c.organizationId = this.organizationId;\n c.folderId = this.folderId;\n c.userId = this.organizationId != null ? userId : null;\n c.edit = this.edit;\n c.viewPassword = this.viewPassword;\n c.organizationUseTotp = this.organizationUseTotp;\n c.favorite = this.favorite;\n c.revisionDate = this.revisionDate != null ? this.revisionDate.toISOString() : null;\n c.type = this.type;\n c.collectionIds = this.collectionIds;\n c.deletedDate = this.deletedDate != null ? this.deletedDate.toISOString() : null;\n\n this.buildDataModel(this, c, {\n name: null,\n notes: null,\n });\n\n switch (c.type) {\n case CipherType.Login:\n c.login = this.login.toLoginData();\n break;\n case CipherType.SecureNote:\n c.secureNote = this.secureNote.toSecureNoteData();\n break;\n case CipherType.Card:\n c.card = this.card.toCardData();\n break;\n case CipherType.Identity:\n c.identity = this.identity.toIdentityData();\n break;\n default:\n break;\n }\n\n if (this.fields != null) {\n c.fields = this.fields.map(f => f.toFieldData());\n }\n if (this.attachments != null) {\n c.attachments = this.attachments.map(a => a.toAttachmentData());\n }\n if (this.passwordHistory != null) {\n c.passwordHistory = this.passwordHistory.map(ph => ph.toPasswordHistoryData());\n }\n return c;\n }\n}\n","import { SendData } from '../models/data/sendData';\n\nimport { Send } from '../models/domain/send';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { SendView } from '../models/view/sendView';\n\nexport abstract class SendService {\n decryptedSendCache: SendView[];\n\n clearCache: () => void;\n encrypt: (model: SendView, file: File | ArrayBuffer, password: string, key?: SymmetricCryptoKey) => Promise<[Send, ArrayBuffer]>;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n saveWithServer: (sendData: [Send, ArrayBuffer]) => Promise;\n upsert: (send: SendData | SendData[]) => Promise;\n replace: (sends: { [id: string]: SendData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n removePasswordWithServer: (id: string) => Promise;\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { View } from './view';\n\nimport { Field } from '../domain/field';\n\nexport class FieldView implements View {\n name: string = null;\n value: string = null;\n type: FieldType = null;\n newField: boolean = false; // Marks if the field is new and hasn't been saved\n showValue: boolean = false;\n\n constructor(f?: Field) {\n if (!f) {\n return;\n }\n\n this.type = f.type;\n }\n\n get maskedValue(): string {\n return this.value != null ? '••••••••' : null;\n }\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { Cipher } from '../domain/cipher';\n\nimport { CardApi } from '../api/cardApi';\nimport { FieldApi } from '../api/fieldApi';\nimport { IdentityApi } from '../api/identityApi';\nimport { LoginApi } from '../api/loginApi';\nimport { LoginUriApi } from '../api/loginUriApi';\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nimport { AttachmentRequest } from './attachmentRequest';\nimport { PasswordHistoryRequest } from './passwordHistoryRequest';\n\nexport class CipherRequest {\n type: CipherType;\n folderId: string;\n organizationId: string;\n name: string;\n notes: string;\n favorite: boolean;\n login: LoginApi;\n secureNote: SecureNoteApi;\n card: CardApi;\n identity: IdentityApi;\n fields: FieldApi[];\n passwordHistory: PasswordHistoryRequest[];\n // Deprecated, remove at some point and rename attachments2 to attachments\n attachments: { [id: string]: string; };\n attachments2: { [id: string]: AttachmentRequest; };\n lastKnownRevisionDate: Date;\n\n constructor(cipher: Cipher) {\n this.type = cipher.type;\n this.folderId = cipher.folderId;\n this.organizationId = cipher.organizationId;\n this.name = cipher.name ? cipher.name.encryptedString : null;\n this.notes = cipher.notes ? cipher.notes.encryptedString : null;\n this.favorite = cipher.favorite;\n this.lastKnownRevisionDate = cipher.revisionDate;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new LoginApi();\n this.login.uris = null;\n this.login.username = cipher.login.username ? cipher.login.username.encryptedString : null;\n this.login.password = cipher.login.password ? cipher.login.password.encryptedString : null;\n this.login.passwordRevisionDate = cipher.login.passwordRevisionDate != null ?\n cipher.login.passwordRevisionDate.toISOString() : null;\n this.login.totp = cipher.login.totp ? cipher.login.totp.encryptedString : null;\n\n if (cipher.login.uris != null) {\n this.login.uris = cipher.login.uris.map(u => {\n const uri = new LoginUriApi();\n uri.uri = u.uri != null ? u.uri.encryptedString : null;\n uri.match = u.match != null ? u.match : null;\n return uri;\n });\n }\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNoteApi();\n this.secureNote.type = cipher.secureNote.type;\n break;\n case CipherType.Card:\n this.card = new CardApi();\n this.card.cardholderName = cipher.card.cardholderName != null ?\n cipher.card.cardholderName.encryptedString : null;\n this.card.brand = cipher.card.brand != null ? cipher.card.brand.encryptedString : null;\n this.card.number = cipher.card.number != null ? cipher.card.number.encryptedString : null;\n this.card.expMonth = cipher.card.expMonth != null ? cipher.card.expMonth.encryptedString : null;\n this.card.expYear = cipher.card.expYear != null ? cipher.card.expYear.encryptedString : null;\n this.card.code = cipher.card.code != null ? cipher.card.code.encryptedString : null;\n break;\n case CipherType.Identity:\n this.identity = new IdentityApi();\n this.identity.title = cipher.identity.title != null ? cipher.identity.title.encryptedString : null;\n this.identity.firstName = cipher.identity.firstName != null ?\n cipher.identity.firstName.encryptedString : null;\n this.identity.middleName = cipher.identity.middleName != null ?\n cipher.identity.middleName.encryptedString : null;\n this.identity.lastName = cipher.identity.lastName != null ?\n cipher.identity.lastName.encryptedString : null;\n this.identity.address1 = cipher.identity.address1 != null ?\n cipher.identity.address1.encryptedString : null;\n this.identity.address2 = cipher.identity.address2 != null ?\n cipher.identity.address2.encryptedString : null;\n this.identity.address3 = cipher.identity.address3 != null ?\n cipher.identity.address3.encryptedString : null;\n this.identity.city = cipher.identity.city != null ? cipher.identity.city.encryptedString : null;\n this.identity.state = cipher.identity.state != null ? cipher.identity.state.encryptedString : null;\n this.identity.postalCode = cipher.identity.postalCode != null ?\n cipher.identity.postalCode.encryptedString : null;\n this.identity.country = cipher.identity.country != null ?\n cipher.identity.country.encryptedString : null;\n this.identity.company = cipher.identity.company != null ?\n cipher.identity.company.encryptedString : null;\n this.identity.email = cipher.identity.email != null ? cipher.identity.email.encryptedString : null;\n this.identity.phone = cipher.identity.phone != null ? cipher.identity.phone.encryptedString : null;\n this.identity.ssn = cipher.identity.ssn != null ? cipher.identity.ssn.encryptedString : null;\n this.identity.username = cipher.identity.username != null ?\n cipher.identity.username.encryptedString : null;\n this.identity.passportNumber = cipher.identity.passportNumber != null ?\n cipher.identity.passportNumber.encryptedString : null;\n this.identity.licenseNumber = cipher.identity.licenseNumber != null ?\n cipher.identity.licenseNumber.encryptedString : null;\n break;\n default:\n break;\n }\n\n if (cipher.fields != null) {\n this.fields = cipher.fields.map(f => {\n const field = new FieldApi();\n field.type = f.type;\n field.name = f.name ? f.name.encryptedString : null;\n field.value = f.value ? f.value.encryptedString : null;\n return field;\n });\n }\n\n if (cipher.passwordHistory != null) {\n this.passwordHistory = [];\n cipher.passwordHistory.forEach(ph => {\n this.passwordHistory.push({\n lastUsedDate: ph.lastUsedDate,\n password: ph.password ? ph.password.encryptedString : null,\n });\n });\n }\n\n if (cipher.attachments != null) {\n this.attachments = {};\n this.attachments2 = {};\n cipher.attachments.forEach(attachment => {\n const fileName = attachment.fileName ? attachment.fileName.encryptedString : null;\n this.attachments[attachment.id] = fileName;\n const attachmentRequest = new AttachmentRequest();\n attachmentRequest.fileName = fileName;\n if (attachment.key != null) {\n attachmentRequest.key = attachment.key.encryptedString;\n }\n this.attachments2[attachment.id] = attachmentRequest;\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport {\n ActivatedRoute,\n NavigationEnd,\n Router,\n} from '@angular/router';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Injectable()\nexport class RouterService {\n private previousUrl: string = undefined;\n private currentUrl: string = undefined;\n\n constructor(private router: Router, private activatedRoute: ActivatedRoute,\n private titleService: Title, i18nService: I18nService) {\n this.currentUrl = this.router.url;\n router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.previousUrl = this.currentUrl;\n this.currentUrl = event.url;\n\n let title = i18nService.t('pageTitle', 'Bitwarden');\n let titleId: string = null;\n let rawTitle: string = null;\n let child = this.activatedRoute.firstChild;\n while (child != null) {\n if (child.firstChild != null) {\n child = child.firstChild;\n } else if (child.snapshot.data != null && child.snapshot.data.title != null) {\n rawTitle = child.snapshot.data.title;\n break;\n } else if (child.snapshot.data != null && child.snapshot.data.titleId != null) {\n titleId = child.snapshot.data.titleId;\n break;\n } else {\n titleId = null;\n rawTitle = null;\n break;\n }\n }\n\n if (titleId != null || rawTitle != null) {\n const newTitle = rawTitle != null ? rawTitle : i18nService.t(titleId);\n if (newTitle != null && newTitle !== '') {\n title = (newTitle + ' | ' + title);\n }\n }\n this.titleService.setTitle(title);\n }\n });\n }\n\n getPreviousUrl() {\n return this.previousUrl;\n }\n\n setPreviousUrl(url: string) {\n this.previousUrl = url;\n }\n}\n","export enum KdfType {\n PBKDF2_SHA256 = 0,\n}\n","import {\n Component,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-password-strength',\n templateUrl: 'password-strength.component.html',\n})\nexport class PasswordStrengthComponent implements OnChanges {\n @Input() score?: number;\n @Input() showText = false;\n\n scoreWidth = 0;\n color = 'bg-danger';\n text: string;\n\n constructor(private i18nService: I18nService) { }\n\n ngOnChanges(): void {\n this.scoreWidth = this.score == null ? 0 : (this.score + 1) * 20;\n switch (this.score) {\n case 4:\n this.color = 'bg-success';\n this.text = this.i18nService.t('strong');\n break;\n case 3:\n this.color = 'bg-primary';\n this.text = this.i18nService.t('good');\n break;\n case 2:\n this.color = 'bg-warning';\n this.text = this.i18nService.t('weak');\n break;\n default:\n this.color = 'bg-danger';\n this.text = this.score != null ? this.i18nService.t('weak') : null;\n break;\n }\n }\n}\n","
\n
\n \n {{text}}\n \n
\n
\n","export enum OrganizationUserType {\n Owner = 0,\n Admin = 1,\n User = 2,\n Manager = 3,\n Custom = 4,\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\n@Pipe({\n name: 'search',\n})\nexport class SearchPipe implements PipeTransform {\n transform(items: any[], searchText: string, prop1?: string, prop2?: string, prop3?: string): any[] {\n if (items == null || items.length === 0) {\n return [];\n }\n\n if (searchText == null || searchText.length < 2) {\n return items;\n }\n\n searchText = searchText.trim().toLowerCase();\n return items.filter(i => {\n if (prop1 != null && i[prop1] != null && i[prop1].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (prop2 != null && i[prop2] != null && i[prop2].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (prop3 != null && i[prop3] != null && i[prop3].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n return false;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { DeviceType } from 'jslib/enums/deviceType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\n\n@Injectable()\nexport class EventService {\n constructor(private i18nService: I18nService) { }\n\n getDefaultDateFilters() {\n const d = new Date();\n const end = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59);\n d.setDate(d.getDate() - 30);\n const start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0);\n return [this.toDateTimeLocalString(start), this.toDateTimeLocalString(end)];\n }\n\n formatDateFilters(filterStart: string, filterEnd: string) {\n const start: Date = new Date(filterStart);\n const end: Date = new Date(filterEnd + ':59.999');\n if (isNaN(start.getTime()) || isNaN(end.getTime()) || end < start) {\n throw new Error('Invalid date range.');\n }\n return [start.toISOString(), end.toISOString()];\n }\n\n getEventInfo(ev: EventResponse, options = new EventOptions()): EventInfo {\n const appInfo = this.getAppInfo(ev.deviceType);\n return {\n message: this.getEventMessage(ev, options),\n appIcon: appInfo[0],\n appName: appInfo[1],\n };\n }\n\n private getEventMessage(ev: EventResponse, options: EventOptions) {\n let msg = '';\n switch (ev.type) {\n // User\n case EventType.User_LoggedIn:\n msg = this.i18nService.t('loggedIn');\n break;\n case EventType.User_ChangedPassword:\n msg = this.i18nService.t('changedPassword');\n break;\n case EventType.User_Updated2fa:\n msg = this.i18nService.t('enabledUpdated2fa');\n break;\n case EventType.User_Disabled2fa:\n msg = this.i18nService.t('disabled2fa');\n break;\n case EventType.User_Recovered2fa:\n msg = this.i18nService.t('recovered2fa');\n break;\n case EventType.User_FailedLogIn:\n msg = this.i18nService.t('failedLogin');\n break;\n case EventType.User_FailedLogIn2fa:\n msg = this.i18nService.t('failedLogin2fa');\n break;\n case EventType.User_ClientExportedVault:\n msg = this.i18nService.t('exportedVault');\n break;\n // Cipher\n case EventType.Cipher_Created:\n msg = this.i18nService.t('createdItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Updated:\n msg = this.i18nService.t('editedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Deleted:\n msg = this.i18nService.t('permanentlyDeletedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_SoftDeleted:\n msg = this.i18nService.t('deletedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Restored:\n msg = this.i18nService.t('restoredItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_AttachmentCreated:\n msg = this.i18nService.t('createdAttachmentForItem', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_AttachmentDeleted:\n msg = this.i18nService.t('deletedAttachmentForItem', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Shared:\n msg = this.i18nService.t('sharedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientViewed:\n msg = this.i18nService.t('viewedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledPasswordVisible:\n msg = this.i18nService.t('viewedPasswordItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledHiddenFieldVisible:\n msg = this.i18nService.t('viewedHiddenFieldItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledCardCodeVisible:\n msg = this.i18nService.t('viewedSecurityCodeItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedHiddenField:\n msg = this.i18nService.t('copiedHiddenFieldItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedPassword:\n msg = this.i18nService.t('copiedPasswordItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedCardCode:\n msg = this.i18nService.t('copiedSecurityCodeItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientAutofilled:\n msg = this.i18nService.t('autofilledItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_UpdatedCollections:\n msg = this.i18nService.t('editedCollectionsForItem', this.formatCipherId(ev, options));\n break;\n // Collection\n case EventType.Collection_Created:\n msg = this.i18nService.t('createdCollectionId', this.formatCollectionId(ev));\n break;\n case EventType.Collection_Updated:\n msg = this.i18nService.t('editedCollectionId', this.formatCollectionId(ev));\n break;\n case EventType.Collection_Deleted:\n msg = this.i18nService.t('deletedCollectionId', this.formatCollectionId(ev));\n break;\n // Group\n case EventType.Group_Created:\n msg = this.i18nService.t('createdGroupId', this.formatGroupId(ev));\n break;\n case EventType.Group_Updated:\n msg = this.i18nService.t('editedGroupId', this.formatGroupId(ev));\n break;\n case EventType.Group_Deleted:\n msg = this.i18nService.t('deletedGroupId', this.formatGroupId(ev));\n break;\n // Org user\n case EventType.OrganizationUser_Invited:\n msg = this.i18nService.t('invitedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Confirmed:\n msg = this.i18nService.t('confirmedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Updated:\n msg = this.i18nService.t('editedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Removed:\n msg = this.i18nService.t('removedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_UpdatedGroups:\n msg = this.i18nService.t('editedGroupsForUser', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_UnlinkedSso:\n msg = this.i18nService.t('unlinkedSsoUser', this.formatOrgUserId(ev));\n // Org\n case EventType.Organization_Updated:\n msg = this.i18nService.t('editedOrgSettings');\n break;\n case EventType.Organization_PurgedVault:\n msg = this.i18nService.t('purgedOrganizationVault');\n break;\n /*\n case EventType.Organization_ClientExportedVault:\n msg = this.i18nService.t('exportedOrganizationVault');\n break;\n */\n // Policies\n case EventType.Policy_Updated:\n msg = this.i18nService.t('modifiedPolicy', this.formatPolicyId(ev));\n break;\n\n default:\n break;\n }\n return msg === '' ? null : msg;\n }\n\n private getAppInfo(deviceType: DeviceType): [string, string] {\n switch (deviceType) {\n case DeviceType.Android:\n return ['fa-android', this.i18nService.t('mobile') + ' - Android'];\n case DeviceType.iOS:\n return ['fa-apple', this.i18nService.t('mobile') + ' - iOS'];\n case DeviceType.UWP:\n return ['fa-windows', this.i18nService.t('mobile') + ' - Windows'];\n case DeviceType.ChromeExtension:\n return ['fa-chrome', this.i18nService.t('extension') + ' - Chrome'];\n case DeviceType.FirefoxExtension:\n return ['fa-firefox', this.i18nService.t('extension') + ' - Firefox'];\n case DeviceType.OperaExtension:\n return ['fa-opera', this.i18nService.t('extension') + ' - Opera'];\n case DeviceType.EdgeExtension:\n return ['fa-edge', this.i18nService.t('extension') + ' - Edge'];\n case DeviceType.VivaldiExtension:\n return ['fa-puzzle-piece', this.i18nService.t('extension') + ' - Vivaldi'];\n case DeviceType.SafariExtension:\n return ['fa-safari', this.i18nService.t('extension') + ' - Safari'];\n case DeviceType.WindowsDesktop:\n return ['fa-windows', this.i18nService.t('desktop') + ' - Windows'];\n case DeviceType.MacOsDesktop:\n return ['fa-apple', this.i18nService.t('desktop') + ' - macOS'];\n case DeviceType.LinuxDesktop:\n return ['fa-linux', this.i18nService.t('desktop') + ' - Linux'];\n case DeviceType.ChromeBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Chrome'];\n case DeviceType.FirefoxBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Firefox'];\n case DeviceType.OperaBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Opera'];\n case DeviceType.SafariBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Safari'];\n case DeviceType.VivaldiBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Vivaldi'];\n case DeviceType.EdgeBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Edge'];\n case DeviceType.IEBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - IE'];\n case DeviceType.UnknownBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - ' + this.i18nService.t('unknown')];\n default:\n return ['fa-globe', this.i18nService.t('unknown')];\n }\n }\n\n private formatCipherId(ev: EventResponse, options: EventOptions) {\n const shortId = this.getShortId(ev.cipherId);\n if (ev.organizationId == null || !options.cipherInfo) {\n return '' + shortId + '';\n }\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/vault?search=' + shortId +\n '&viewEvents=' + ev.cipherId);\n return a.outerHTML;\n }\n\n private formatGroupId(ev: EventResponse) {\n const shortId = this.getShortId(ev.groupId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/groups?search=' + shortId);\n return a.outerHTML;\n }\n\n private formatCollectionId(ev: EventResponse) {\n const shortId = this.getShortId(ev.collectionId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/collections?search=' + shortId);\n return a.outerHTML;\n }\n\n private formatOrgUserId(ev: EventResponse) {\n const shortId = this.getShortId(ev.organizationUserId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/people?search=' + shortId +\n '&viewEvents=' + ev.organizationUserId);\n return a.outerHTML;\n }\n\n private formatPolicyId(ev: EventResponse) {\n const shortId = this.getShortId(ev.policyId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/policies?policyId=' + ev.policyId);\n return a.outerHTML;\n }\n\n private makeAnchor(shortId: string) {\n const a = document.createElement('a');\n a.title = this.i18nService.t('view');\n a.innerHTML = '' + shortId + '';\n return a;\n }\n\n private getShortId(id: string) {\n return id.substring(0, 8);\n }\n\n private toDateTimeLocalString(date: Date) {\n return date.getFullYear() +\n '-' + this.pad(date.getMonth() + 1) +\n '-' + this.pad(date.getDate()) +\n 'T' + this.pad(date.getHours()) +\n ':' + this.pad(date.getMinutes());\n }\n\n private pad(num: number) {\n const norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n }\n}\n\nexport class EventInfo {\n message: string;\n appIcon: string;\n appName: string;\n}\n\nexport class EventOptions {\n cipherInfo = true;\n}\n","export enum EventType {\n User_LoggedIn = 1000,\n User_ChangedPassword = 1001,\n User_Updated2fa = 1002,\n User_Disabled2fa = 1003,\n User_Recovered2fa = 1004,\n User_FailedLogIn = 1005,\n User_FailedLogIn2fa = 1006,\n User_ClientExportedVault = 1007,\n\n Cipher_Created = 1100,\n Cipher_Updated = 1101,\n Cipher_Deleted = 1102,\n Cipher_AttachmentCreated = 1103,\n Cipher_AttachmentDeleted = 1104,\n Cipher_Shared = 1105,\n Cipher_UpdatedCollections = 1106,\n Cipher_ClientViewed = 1107,\n Cipher_ClientToggledPasswordVisible = 1108,\n Cipher_ClientToggledHiddenFieldVisible = 1109,\n Cipher_ClientToggledCardCodeVisible = 1110,\n Cipher_ClientCopiedPassword = 1111,\n Cipher_ClientCopiedHiddenField = 1112,\n Cipher_ClientCopiedCardCode = 1113,\n Cipher_ClientAutofilled = 1114,\n Cipher_SoftDeleted = 1115,\n Cipher_Restored = 1116,\n\n Collection_Created = 1300,\n Collection_Updated = 1301,\n Collection_Deleted = 1302,\n\n Group_Created = 1400,\n Group_Updated = 1401,\n Group_Deleted = 1402,\n\n OrganizationUser_Invited = 1500,\n OrganizationUser_Confirmed = 1501,\n OrganizationUser_Updated = 1502,\n OrganizationUser_Removed = 1503,\n OrganizationUser_UpdatedGroups = 1504,\n OrganizationUser_UnlinkedSso = 1505,\n\n Organization_Updated = 1600,\n Organization_PurgedVault = 1601,\n // Organization_ClientExportedVault = 1602,\n\n Policy_Updated = 1700,\n}\n","export enum PaymentMethodType {\n Card = 0,\n BankAccount = 1,\n PayPal = 2,\n BitPay = 3,\n Credit = 4,\n WireTransfer = 5,\n AppleInApp = 6,\n GoogleInApp = 7,\n Check = 8,\n}\n","import {\n Directive,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { TwoFactorProviderRequest } from 'jslib/models/request/twoFactorProviderRequest';\n\n@Directive()\nexport abstract class TwoFactorBaseComponent {\n @Output() onUpdated = new EventEmitter();\n\n type: TwoFactorProviderType;\n organizationId: string;\n twoFactorProviderType = TwoFactorProviderType;\n enabled = false;\n authed = false;\n\n protected masterPasswordHash: string;\n\n constructor(protected apiService: ApiService, protected i18nService: I18nService,\n protected analytics: Angulartics2, protected toasterService: ToasterService,\n protected platformUtilsService: PlatformUtilsService) { }\n\n protected auth(authResponse: any) {\n this.masterPasswordHash = authResponse.masterPasswordHash;\n this.authed = true;\n }\n\n protected async enable(enableFunction: () => Promise) {\n try {\n await enableFunction();\n this.analytics.eventTrack.next({\n action: 'Enabled Two-step ' + TwoFactorProviderType[this.type].toString(),\n });\n this.onUpdated.emit(true);\n } catch { }\n }\n\n protected async disable(promise: Promise) {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('twoStepDisableDesc'),\n this.i18nService.t('disable'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n const request = new TwoFactorProviderRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.type = this.type;\n if (this.organizationId != null) {\n promise = this.apiService.putTwoFactorOrganizationDisable(this.organizationId, request);\n } else {\n promise = this.apiService.putTwoFactorDisable(request);\n }\n await promise;\n this.enabled = false;\n this.analytics.eventTrack.next({\n action: 'Disabled Two-step ' + TwoFactorProviderType[this.type].toString(),\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('twoStepDisabled'));\n this.onUpdated.emit(false);\n } catch { }\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { ModalComponent } from '../modal.component';\nimport { AddEditComponent as OrgAddEditComponent } from '../organizations/vault/add-edit.component';\nimport { AddEditComponent } from '../vault/add-edit.component';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Directive()\nexport class CipherReportComponent {\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n\n loading = false;\n hasLoaded = false;\n ciphers: CipherView[] = [];\n organization: Organization;\n\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, protected userService: UserService,\n protected messagingService: MessagingService, public requiresPaid: boolean) { }\n\n async load() {\n this.loading = true;\n await this.setCiphers();\n this.loading = false;\n this.hasLoaded = true;\n }\n\n selectCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n let childComponent: OrgAddEditComponent | AddEditComponent;\n if (this.organization != null) {\n childComponent = this.modal.show(OrgAddEditComponent, this.cipherAddEditModalRef);\n (childComponent as OrgAddEditComponent).organization = this.organization;\n } else {\n childComponent = this.modal.show(AddEditComponent, this.cipherAddEditModalRef);\n }\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n if (this.organization != null) {\n childComponent.organizationId = this.organization.id;\n }\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n protected async checkAccess(): Promise {\n if (this.organization != null) {\n // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now\n // since all paid plans include useTotp\n if (this.requiresPaid && !this.organization.useTotp) {\n this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });\n return false;\n }\n } else {\n const accessPremium = await this.userService.canAccessPremium();\n if (this.requiresPaid && !accessPremium) {\n this.messagingService.send('premiumRequired');\n this.loading = false;\n return false;\n }\n }\n return true;\n }\n\n protected async setCiphers() {\n this.ciphers = [];\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { View } from './view';\n\nimport { LoginUri } from '../domain/loginUri';\n\nimport { Utils } from '../../misc/utils';\n\nconst CanLaunchWhitelist = [\n 'https://',\n 'http://',\n 'ssh://',\n 'ftp://',\n 'sftp://',\n 'irc://',\n 'vnc://',\n // https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-uri\n 'rdp://', // Legacy RDP URI scheme\n 'ms-rd:', // Preferred RDP URI scheme\n 'chrome://',\n 'iosapp://',\n 'androidapp://',\n];\n\nexport class LoginUriView implements View {\n match: UriMatchType = null;\n\n // tslint:disable\n private _uri: string = null;\n private _domain: string = null;\n private _hostname: string = null;\n private _host: string = null;\n private _canLaunch: boolean = null;\n // tslint:enable\n\n constructor(u?: LoginUri) {\n if (!u) {\n return;\n }\n\n this.match = u.match;\n }\n\n get uri(): string {\n return this._uri;\n }\n set uri(value: string) {\n this._uri = value;\n this._domain = null;\n this._canLaunch = null;\n }\n\n get domain(): string {\n if (this._domain == null && this.uri != null) {\n this._domain = Utils.getDomain(this.uri);\n if (this._domain === '') {\n this._domain = null;\n }\n }\n\n return this._domain;\n }\n\n get hostname(): string {\n if (this.match === UriMatchType.RegularExpression) {\n return null;\n }\n if (this._hostname == null && this.uri != null) {\n this._hostname = Utils.getHostname(this.uri);\n if (this._hostname === '') {\n this._hostname = null;\n }\n }\n\n return this._hostname;\n }\n\n get host(): string {\n if (this.match === UriMatchType.RegularExpression) {\n return null;\n }\n if (this._host == null && this.uri != null) {\n this._host = Utils.getHost(this.uri);\n if (this._host === '') {\n this._host = null;\n }\n }\n\n return this._host;\n }\n\n get hostnameOrUri(): string {\n return this.hostname != null ? this.hostname : this.uri;\n }\n\n get hostOrUri(): string {\n return this.host != null ? this.host : this.uri;\n }\n\n get isWebsite(): boolean {\n return this.uri != null && (this.uri.indexOf('http://') === 0 || this.uri.indexOf('https://') === 0 ||\n (this.uri.indexOf('://') < 0 && Utils.tldEndingRegex.test(this.uri)));\n }\n\n get canLaunch(): boolean {\n if (this._canLaunch != null) {\n return this._canLaunch;\n }\n if (this.uri != null && this.match !== UriMatchType.RegularExpression) {\n const uri = this.launchUri;\n for (let i = 0; i < CanLaunchWhitelist.length; i++) {\n if (uri.indexOf(CanLaunchWhitelist[i]) === 0) {\n this._canLaunch = true;\n return this._canLaunch;\n }\n }\n }\n this._canLaunch = false;\n return this._canLaunch;\n }\n\n get launchUri(): string {\n return this.uri.indexOf('://') < 0 && Utils.tldEndingRegex.test(this.uri) ? ('http://' + this.uri) : this.uri;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { CipherType } from 'jslib/enums/cipherType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component';\nimport { LoginUriView } from 'jslib/models/view/loginUriView';\n\n@Component({\n selector: 'app-vault-add-edit',\n templateUrl: 'add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n canAccessPremium: boolean;\n totpCode: string;\n totpCodeFormatted: string;\n totpDash: number;\n totpSec: number;\n totpLow: boolean;\n showRevisionDate = false;\n hasPasswordHistory = false;\n viewingPasswordHistory = false;\n viewOnly = false;\n\n protected totpInterval: number;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n protected totpService: TotpService, protected passwordGenerationService: PasswordGenerationService,\n protected messagingService: MessagingService, eventService: EventService,\n protected policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, messagingService, eventService, policyService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n await this.load();\n this.showRevisionDate = this.cipher.passwordRevisionDisplayDate != null;\n this.hasPasswordHistory = this.cipher.hasPasswordHistory;\n this.cleanUp();\n\n this.canAccessPremium = await this.userService.canAccessPremium();\n if (this.cipher.type === CipherType.Login && this.cipher.login.totp &&\n (this.cipher.organizationUseTotp || this.canAccessPremium)) {\n await this.totpUpdateCode();\n const interval = this.totpService.getTimeInterval(this.cipher.login.totp);\n await this.totpTick(interval);\n\n this.totpInterval = window.setInterval(async () => {\n await this.totpTick(interval);\n }, 1000);\n }\n }\n\n toggleFavorite() {\n this.cipher.favorite = !this.cipher.favorite;\n }\n\n launch(uri: LoginUriView) {\n if (!uri.canLaunch) {\n return;\n }\n\n this.platformUtilsService.eventTrack('Launched Login URI');\n this.platformUtilsService.launchUri(uri.launchUri);\n }\n\n copy(value: string, typeI18nKey: string, aType: string) {\n if (value == null) {\n return;\n }\n\n this.platformUtilsService.eventTrack('Copied ' + aType);\n this.platformUtilsService.copyToClipboard(value, { window: window });\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));\n\n if (this.editMode) {\n if (typeI18nKey === 'password') {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId);\n } else if (typeI18nKey === 'securityCode') {\n this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, this.cipherId);\n } else if (aType === 'H_Field') {\n this.eventService.collect(EventType.Cipher_ClientCopiedHiddenField, this.cipherId);\n }\n }\n }\n\n async generatePassword(): Promise {\n const confirmed = await super.generatePassword();\n if (confirmed) {\n const options = (await this.passwordGenerationService.getOptions())[0];\n this.cipher.login.password = await this.passwordGenerationService.generatePassword(options);\n }\n return confirmed;\n }\n\n premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n upgradeOrganization() {\n this.messagingService.send('upgradeOrganization', { organizationId: this.cipher.organizationId });\n }\n\n viewHistory() {\n this.viewingPasswordHistory = !this.viewingPasswordHistory;\n }\n\n protected cleanUp() {\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n }\n\n protected async totpUpdateCode() {\n if (this.cipher == null || this.cipher.type !== CipherType.Login || this.cipher.login.totp == null) {\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n return;\n }\n\n this.totpCode = await this.totpService.getCode(this.cipher.login.totp);\n if (this.totpCode != null) {\n if (this.totpCode.length > 4) {\n const half = Math.floor(this.totpCode.length / 2);\n this.totpCodeFormatted = this.totpCode.substring(0, half) + ' ' + this.totpCode.substring(half);\n } else {\n this.totpCodeFormatted = this.totpCode;\n }\n } else {\n this.totpCodeFormatted = null;\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n }\n }\n\n protected allowOwnershipAssignment() {\n return (!this.editMode || this.cloneMode) && this.ownershipOptions != null\n && (this.ownershipOptions.length > 1 || !this.allowPersonal);\n }\n\n private async totpTick(intervalSeconds: number) {\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const mod = epoch % intervalSeconds;\n\n this.totpSec = intervalSeconds - mod;\n this.totpDash = +(Math.round((((78.6 / intervalSeconds) * mod) + 'e+2') as any) + 'e-2');\n this.totpLow = this.totpSec <= 7;\n if (mod === 0) {\n await this.totpUpdateCode();\n }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'personalOwnershipPolicyInEffect' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n {{totpSec}}\n \n \n \n \n \n \n \n {{totpCodeFormatted}}\n \n
\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n
\n
\n
\n
\n \n {{'newUri' | i18n}}\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n

{{'customFields' | i18n}}

\n
\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n {{'newCustomField' | i18n}}\n \n
\n
\n \n \n
\n
\n \n

{{'ownership' | i18n}}

\n
\n
\n \n \n
\n
\n
\n \n

{{'collections' | i18n}}

\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n
\n \n \n
\n
\n
\n \n
\n
\n {{'dateUpdated' | i18n}}:\n {{cipher.revisionDate | date:'medium'}}\n
\n
\n {{'datePasswordUpdated' | i18n}}:\n {{cipher.passwordRevisionDisplayDate | date:'medium'}}\n
\n
\n {{'passwordHistory' | i18n}}:\n \n {{cipher.passwordHistory.length}}\n \n
\n
\n
\n {{ph.lastUsedDate | date:'short'}} -\n {{ph.password}}\n
\n
\n
\n
\n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n
\n","import { Importer } from '../importers/importer';\n\nexport interface ImportOption {\n id: string;\n name: string;\n}\nexport abstract class ImportService {\n featuredImportOptions: ImportOption[];\n regularImportOptions: ImportOption[];\n getImportOptions: () => ImportOption[];\n import: (importer: Importer, fileContents: string, organizationId?: string) => Promise;\n getImporter: (format: string, organizationId: string) => Importer;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CiphersComponent as BaseCiphersComponent } from 'jslib/angular/components/ciphers.component';\n\nimport { CipherType } from 'jslib/enums/cipherType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nconst MaxCheckedCount = 500;\n\n@Component({\n selector: 'app-vault-ciphers',\n templateUrl: 'ciphers.component.html',\n})\nexport class CiphersComponent extends BaseCiphersComponent implements OnDestroy {\n @Input() showAddNew = true;\n @Output() onAttachmentsClicked = new EventEmitter();\n @Output() onShareClicked = new EventEmitter();\n @Output() onCollectionsClicked = new EventEmitter();\n @Output() onCloneClicked = new EventEmitter();\n\n cipherType = CipherType;\n actionPromise: Promise;\n userHasPremiumAccess = false;\n\n constructor(searchService: SearchService, protected analytics: Angulartics2,\n protected toasterService: ToasterService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected cipherService: CipherService,\n protected eventService: EventService, protected totpService: TotpService, protected userService: UserService) {\n super(searchService);\n this.pageSize = 200;\n }\n\n async ngOnInit() {\n this.userHasPremiumAccess = await this.userService.canAccessPremium();\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n launch(uri: string) {\n this.platformUtilsService.eventTrack('Launched Login URI');\n this.platformUtilsService.launchUri(uri);\n }\n\n attachments(c: CipherView) {\n this.onAttachmentsClicked.emit(c);\n }\n\n share(c: CipherView) {\n this.onShareClicked.emit(c);\n }\n\n collections(c: CipherView) {\n this.onCollectionsClicked.emit(c);\n }\n\n clone(c: CipherView) {\n this.onCloneClicked.emit(c);\n }\n\n async delete(c: CipherView): Promise {\n if (this.actionPromise != null) {\n return;\n }\n const permanent = c.isDeleted;\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t(permanent ? 'permanentlyDeleteItemConfirmation' : 'deleteItemConfirmation'),\n this.i18nService.t(permanent ? 'permanentlyDeleteItem' : 'deleteItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.deleteCipher(c.id, permanent);\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Deleted Cipher' });\n this.toasterService.popAsync('success', null, this.i18nService.t(permanent ? 'permanentlyDeletedItem'\n : 'deletedItem'));\n this.refresh();\n } catch { }\n this.actionPromise = null;\n }\n\n async restore(c: CipherView): Promise {\n if (this.actionPromise != null || !c.isDeleted) {\n return;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('restoreItemConfirmation'),\n this.i18nService.t('restoreItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.cipherService.restoreWithServer(c.id);\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Restored Cipher' });\n this.toasterService.popAsync('success', null, this.i18nService.t('restoredItem'));\n this.refresh();\n } catch { }\n this.actionPromise = null;\n }\n\n async copy(cipher: CipherView, value: string, typeI18nKey: string, aType: string) {\n if (value == null || aType === 'TOTP' && !this.displayTotpCopyButton(cipher)) {\n return;\n } else if (value === cipher.login.totp) {\n value = await this.totpService.getCode(value);\n }\n\n this.analytics.eventTrack.next({ action: 'Copied ' + aType.toLowerCase() + ' from listing.' });\n this.platformUtilsService.copyToClipboard(value, { window: window });\n this.toasterService.popAsync('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));\n\n if (typeI18nKey === 'password' || typeI18nKey === 'verificationCodeTotp') {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, cipher.id);\n } else if (typeI18nKey === 'securityCode') {\n this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, cipher.id);\n }\n }\n\n selectAll(select: boolean) {\n if (select) {\n this.selectAll(false);\n }\n const selectCount = select && this.ciphers.length > MaxCheckedCount\n ? MaxCheckedCount\n : this.ciphers.length;\n for (let i = 0; i < selectCount; i++) {\n this.checkCipher(this.ciphers[i], select);\n }\n }\n\n checkCipher(c: CipherView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n getSelected(): CipherView[] {\n if (this.ciphers == null) {\n return [];\n }\n return this.ciphers.filter(c => !!(c as any).checked);\n }\n\n getSelectedIds(): string[] {\n return this.getSelected().map(c => c.id);\n }\n\n displayTotpCopyButton(cipher: CipherView) {\n return (cipher?.login?.hasTotp ?? false) &&\n (cipher.organizationUseTotp || this.userHasPremiumAccess);\n }\n\n protected deleteCipher(id: string, permanent: boolean) {\n return permanent ? this.cipherService.deleteWithServer(id) : this.cipherService.softDeleteWithServer(id);\n }\n\n protected showFixOldAttachments(c: CipherView) {\n return c.hasOldAttachments && c.organizationId == null;\n }\n}\n","\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n \n {{'attachmentsNeedFix' | i18n}}\n \n \n
\n {{c.subTitle}}\n
\n \n
\n
\n \n \n {{'loading' | i18n}}\n \n \n

{{'noItemsInList' | i18n}}

\n \n
\n
\n
\n","import { KdfType } from '../enums/kdfType';\nimport { TwoFactorProviderType } from '../enums/twoFactorProviderType';\n\nimport { AuthResult } from '../models/domain/authResult';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { DeviceRequest } from '../models/request/deviceRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\n\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { AppIdService } from '../abstractions/appId.service';\nimport { AuthService as AuthServiceAbstraction } from '../abstractions/auth.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { LogService } from '../abstractions/log.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService } from '../abstractions/vaultTimeout.service';\n\nexport const TwoFactorProviders = {\n [TwoFactorProviderType.Authenticator]: {\n type: TwoFactorProviderType.Authenticator,\n name: null as string,\n description: null as string,\n priority: 1,\n sort: 1,\n premium: false,\n },\n [TwoFactorProviderType.Yubikey]: {\n type: TwoFactorProviderType.Yubikey,\n name: null as string,\n description: null as string,\n priority: 3,\n sort: 2,\n premium: true,\n },\n [TwoFactorProviderType.Duo]: {\n type: TwoFactorProviderType.Duo,\n name: 'Duo',\n description: null as string,\n priority: 2,\n sort: 3,\n premium: true,\n },\n [TwoFactorProviderType.OrganizationDuo]: {\n type: TwoFactorProviderType.OrganizationDuo,\n name: 'Duo (Organization)',\n description: null as string,\n priority: 10,\n sort: 4,\n premium: false,\n },\n [TwoFactorProviderType.U2f]: {\n type: TwoFactorProviderType.U2f,\n name: null as string,\n description: null as string,\n priority: 4,\n sort: 5,\n premium: true,\n },\n [TwoFactorProviderType.Email]: {\n type: TwoFactorProviderType.Email,\n name: null as string,\n description: null as string,\n priority: 0,\n sort: 6,\n premium: false,\n },\n};\n\nexport class AuthService implements AuthServiceAbstraction {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n ssoRedirectUrl: string;\n clientId: string;\n clientSecret: string;\n twoFactorProvidersData: Map;\n selectedTwoFactorProviderType: TwoFactorProviderType = null;\n\n private key: SymmetricCryptoKey;\n\n constructor(private cryptoService: CryptoService, private apiService: ApiService,\n private userService: UserService, private tokenService: TokenService,\n private appIdService: AppIdService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private messagingService: MessagingService,\n private vaultTimeoutService: VaultTimeoutService, private logService: LogService,\n private setCryptoKeys = true) {\n }\n\n init() {\n TwoFactorProviders[TwoFactorProviderType.Email].name = this.i18nService.t('emailTitle');\n TwoFactorProviders[TwoFactorProviderType.Email].description = this.i18nService.t('emailDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Authenticator].name = this.i18nService.t('authenticatorAppTitle');\n TwoFactorProviders[TwoFactorProviderType.Authenticator].description =\n this.i18nService.t('authenticatorAppDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Duo].description = this.i18nService.t('duoDesc');\n\n TwoFactorProviders[TwoFactorProviderType.OrganizationDuo].name =\n 'Duo (' + this.i18nService.t('organization') + ')';\n TwoFactorProviders[TwoFactorProviderType.OrganizationDuo].description =\n this.i18nService.t('duoOrganizationDesc');\n\n TwoFactorProviders[TwoFactorProviderType.U2f].name = this.i18nService.t('u2fTitle');\n TwoFactorProviders[TwoFactorProviderType.U2f].description = this.i18nService.t('u2fDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Yubikey].name = this.i18nService.t('yubiKeyTitle');\n TwoFactorProviders[TwoFactorProviderType.Yubikey].description = this.i18nService.t('yubiKeyDesc');\n }\n\n async logIn(email: string, masterPassword: string): Promise {\n this.selectedTwoFactorProviderType = null;\n const key = await this.makePreloginKey(masterPassword, email);\n const hashedPassword = await this.cryptoService.hashPassword(masterPassword, key);\n return await this.logInHelper(email, hashedPassword, null, null, null, null, null,\n key, null, null, null);\n }\n\n async logInSso(code: string, codeVerifier: string, redirectUrl: string): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, code, codeVerifier, redirectUrl, null, null,\n null, null, null, null);\n }\n\n async logInApiKey(clientId: string, clientSecret: string): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, null, null, null, clientId, clientSecret,\n null, null, null, null);\n }\n\n async logInTwoFactor(twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,\n remember?: boolean): Promise {\n return await this.logInHelper(this.email, this.masterPasswordHash, this.code, this.codeVerifier,\n this.ssoRedirectUrl, this.clientId, this.clientSecret, this.key, twoFactorProvider,\n twoFactorToken, remember);\n }\n\n async logInComplete(email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n const key = await this.makePreloginKey(masterPassword, email);\n const hashedPassword = await this.cryptoService.hashPassword(masterPassword, key);\n return await this.logInHelper(email, hashedPassword, null, null, null, null, null, key,\n twoFactorProvider, twoFactorToken, remember);\n }\n\n async logInSsoComplete(code: string, codeVerifier: string, redirectUrl: string,\n twoFactorProvider: TwoFactorProviderType, twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, code, codeVerifier, redirectUrl, null,\n null, null, twoFactorProvider, twoFactorToken, remember);\n }\n\n async logInApiKeyComplete(clientId: string, clientSecret: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, null, null, null, clientId, clientSecret, null,\n twoFactorProvider, twoFactorToken, remember);\n }\n\n logOut(callback: Function) {\n callback();\n this.messagingService.send('loggedOut');\n }\n\n getSupportedTwoFactorProviders(win: Window): any[] {\n const providers: any[] = [];\n if (this.twoFactorProvidersData == null) {\n return providers;\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.OrganizationDuo) &&\n this.platformUtilsService.supportsDuo()) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.OrganizationDuo]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Authenticator)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Authenticator]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Yubikey)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Yubikey]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Duo) && this.platformUtilsService.supportsDuo()) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Duo]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.U2f) && this.platformUtilsService.supportsU2f(win)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.U2f]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Email)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Email]);\n }\n\n return providers;\n }\n\n getDefaultTwoFactorProvider(u2fSupported: boolean): TwoFactorProviderType {\n if (this.twoFactorProvidersData == null) {\n return null;\n }\n\n if (this.selectedTwoFactorProviderType != null &&\n this.twoFactorProvidersData.has(this.selectedTwoFactorProviderType)) {\n return this.selectedTwoFactorProviderType;\n }\n\n let providerType: TwoFactorProviderType = null;\n let providerPriority = -1;\n this.twoFactorProvidersData.forEach((value, type) => {\n const provider = (TwoFactorProviders as any)[type];\n if (provider != null && provider.priority > providerPriority) {\n if (type === TwoFactorProviderType.U2f && !u2fSupported) {\n return;\n }\n\n providerType = type;\n providerPriority = provider.priority;\n }\n });\n\n return providerType;\n }\n\n async makePreloginKey(masterPassword: string, email: string): Promise {\n email = email.trim().toLowerCase();\n let kdf: KdfType = null;\n let kdfIterations: number = null;\n try {\n const preloginResponse = await this.apiService.postPrelogin(new PreloginRequest(email));\n if (preloginResponse != null) {\n kdf = preloginResponse.kdf;\n kdfIterations = preloginResponse.kdfIterations;\n }\n } catch (e) {\n if (e == null || e.statusCode !== 404) {\n throw e;\n }\n }\n return this.cryptoService.makeKey(masterPassword, email, kdf, kdfIterations);\n }\n\n authingWithApiKey(): boolean {\n return this.clientId != null && this.clientSecret != null;\n }\n\n authingWithSso(): boolean {\n return this.code != null && this.codeVerifier != null && this.ssoRedirectUrl != null;\n }\n\n authingWithPassword(): boolean {\n return this.email != null && this.masterPasswordHash != null;\n }\n\n private async logInHelper(email: string, hashedPassword: string, code: string, codeVerifier: string,\n redirectUrl: string, clientId: string, clientSecret: string, key: SymmetricCryptoKey,\n twoFactorProvider?: TwoFactorProviderType, twoFactorToken?: string, remember?: boolean): Promise {\n const storedTwoFactorToken = await this.tokenService.getTwoFactorToken(email);\n const appId = await this.appIdService.getAppId();\n const deviceRequest = new DeviceRequest(appId, this.platformUtilsService);\n\n let emailPassword: string[] = [];\n let codeCodeVerifier: string[] = [];\n let clientIdClientSecret: string[] = [];\n\n if (email != null && hashedPassword != null) {\n emailPassword = [email, hashedPassword];\n } else {\n emailPassword = null;\n }\n if (code != null && codeVerifier != null && redirectUrl != null) {\n codeCodeVerifier = [code, codeVerifier, redirectUrl];\n } else {\n codeCodeVerifier = null;\n }\n if (clientId != null && clientSecret != null) {\n clientIdClientSecret = [clientId, clientSecret];\n } else {\n clientIdClientSecret = null;\n }\n\n let request: TokenRequest;\n if (twoFactorToken != null && twoFactorProvider != null) {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, twoFactorProvider,\n twoFactorToken, remember, deviceRequest);\n } else if (storedTwoFactorToken != null) {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, TwoFactorProviderType.Remember,\n storedTwoFactorToken, false, deviceRequest);\n } else {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, null,\n null, false, deviceRequest);\n }\n\n const response = await this.apiService.postIdentityToken(request);\n\n this.clearState();\n const result = new AuthResult();\n result.twoFactor = !(response as any).accessToken;\n\n if (result.twoFactor) {\n // two factor required\n const twoFactorResponse = response as IdentityTwoFactorResponse;\n this.email = email;\n this.masterPasswordHash = hashedPassword;\n this.code = code;\n this.codeVerifier = codeVerifier;\n this.ssoRedirectUrl = redirectUrl;\n this.clientId = clientId;\n this.clientSecret = clientSecret;\n this.key = this.setCryptoKeys ? key : null;\n this.twoFactorProvidersData = twoFactorResponse.twoFactorProviders2;\n result.twoFactorProviders = twoFactorResponse.twoFactorProviders2;\n return result;\n }\n\n const tokenResponse = response as IdentityTokenResponse;\n result.resetMasterPassword = tokenResponse.resetMasterPassword;\n if (tokenResponse.twoFactorToken != null) {\n await this.tokenService.setTwoFactorToken(tokenResponse.twoFactorToken, email);\n }\n\n await this.tokenService.setTokens(tokenResponse.accessToken, tokenResponse.refreshToken);\n await this.userService.setInformation(this.tokenService.getUserId(), this.tokenService.getEmail(),\n tokenResponse.kdf, tokenResponse.kdfIterations);\n if (this.setCryptoKeys) {\n if (key != null) {\n await this.cryptoService.setKey(key);\n }\n if (hashedPassword != null) {\n await this.cryptoService.setKeyHash(hashedPassword);\n }\n\n // Skip this step during SSO new user flow. No key is returned from server.\n if (code == null || tokenResponse.key != null) {\n await this.cryptoService.setEncKey(tokenResponse.key);\n\n // User doesn't have a key pair yet (old account), let's generate one for them\n if (tokenResponse.privateKey == null) {\n try {\n const keyPair = await this.cryptoService.makeKeyPair();\n await this.apiService.postAccountKeys(new KeysRequest(keyPair[0], keyPair[1].encryptedString));\n tokenResponse.privateKey = keyPair[1].encryptedString;\n } catch (e) {\n // tslint:disable-next-line\n this.logService.error(e);\n }\n }\n\n await this.cryptoService.setEncPrivateKey(tokenResponse.privateKey);\n }\n }\n\n if (this.vaultTimeoutService != null) {\n this.vaultTimeoutService.biometricLocked = false;\n }\n this.messagingService.send('loggedIn');\n return result;\n }\n\n private clearState(): void {\n this.key = null;\n this.email = null;\n this.masterPasswordHash = null;\n this.code = null;\n this.codeVerifier = null;\n this.ssoRedirectUrl = null;\n this.clientId = null;\n this.clientSecret = null;\n this.twoFactorProvidersData = null;\n this.selectedTwoFactorProviderType = null;\n }\n}\n","export class SelectionReadOnlyRequest {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(id: string, readOnly: boolean, hidePasswords: boolean) {\n this.id = id;\n this.readOnly = readOnly;\n this.hidePasswords = hidePasswords;\n }\n}\n","export enum DeviceType {\n Android = 0,\n iOS = 1,\n ChromeExtension = 2,\n FirefoxExtension = 3,\n OperaExtension = 4,\n EdgeExtension = 5,\n WindowsDesktop = 6,\n MacOsDesktop = 7,\n LinuxDesktop = 8,\n ChromeBrowser = 9,\n FirefoxBrowser = 10,\n OperaBrowser = 11,\n EdgeBrowser = 12,\n IEBrowser = 13,\n UnknownBrowser = 14,\n AndroidAmazon = 15,\n UWP = 16,\n SafariBrowser = 17,\n VivaldiBrowser = 18,\n VivaldiExtension = 19,\n SafariExtension = 20,\n}\n","export abstract class SettingsService {\n clearCache: () => void;\n getEquivalentDomains: () => Promise;\n setEquivalentDomains: (equivalentDomains: string[][]) => Promise;\n clear: (userId: string) => Promise;\n}\n","export enum PlanType {\n Free = 0,\n FamiliesAnnually2019 = 1,\n TeamsMonthly2019 = 2,\n TeamsAnnually2019 = 3,\n EnterpriseMonthly2019 = 4,\n EnterpriseAnnually2019 = 5,\n Custom = 6,\n FamiliesAnnually = 7,\n TeamsMonthly = 8,\n TeamsAnnually = 9,\n EnterpriseMonthly = 10,\n EnterpriseAnnually = 11,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { PlanType } from 'jslib/enums/planType';\nimport { PolicyType } from 'jslib/enums/policyType';\nimport { ProductType } from 'jslib/enums/productType';\n\nimport { OrganizationCreateRequest } from 'jslib/models/request/organizationCreateRequest';\nimport { OrganizationUpgradeRequest } from 'jslib/models/request/organizationUpgradeRequest';\nimport { PlanResponse } from 'jslib/models/response/planResponse';\n\n@Component({\n selector: 'app-organization-plans',\n templateUrl: 'organization-plans.component.html',\n})\nexport class OrganizationPlansComponent implements OnInit {\n @ViewChild(PaymentComponent) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent) taxComponent: TaxInfoComponent;\n\n @Input() organizationId: string;\n @Input() showFree = true;\n @Input() showCancel = false;\n @Input() product: ProductType = ProductType.Free;\n @Input() plan: PlanType = PlanType.Free;\n @Output() onSuccess = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n loading: boolean = true;\n selfHosted: boolean = false;\n ownedBusiness: boolean = false;\n premiumAccessAddon: boolean = false;\n additionalStorage: number = 0;\n additionalSeats: number = 0;\n name: string;\n billingEmail: string;\n businessName: string;\n productTypes = ProductType;\n formPromise: Promise;\n singleOrgPolicyBlock: boolean = false;\n\n plans: PlanResponse[];\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService, private cryptoService: CryptoService,\n private router: Router, private syncService: SyncService,\n private policyService: PolicyService, private userService: UserService) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n if (!this.selfHosted) {\n const plans = await this.apiService.getPlans();\n this.plans = plans.data;\n if (this.product === ProductType.Enterprise || this.product === ProductType.Teams) {\n this.ownedBusiness = true;\n }\n }\n this.loading = false;\n }\n\n get createOrganization() {\n return this.organizationId == null;\n }\n\n get selectedPlan() {\n return this.plans.find(plan => plan.type === this.plan);\n }\n\n get selectedPlanInterval() {\n return this.selectedPlan.isAnnual\n ? 'year'\n : 'month';\n }\n\n get selectableProducts() {\n let validPlans = this.plans.filter(plan => plan.type !== PlanType.Custom);\n\n if (this.ownedBusiness) {\n validPlans = validPlans.filter(plan => plan.canBeUsedByBusiness);\n }\n\n if (!this.showFree) {\n validPlans = validPlans.filter(plan => plan.product !== ProductType.Free);\n }\n\n validPlans = validPlans\n .filter(plan => !plan.legacyYear\n && !plan.disabled\n && (plan.isAnnual || plan.product === this.productTypes.Free));\n\n return validPlans;\n }\n\n get selectablePlans() {\n return this.plans.filter(plan => !plan.legacyYear && !plan.disabled && plan.product === this.product);\n }\n\n additionalStoragePriceMonthly(selectedPlan: PlanResponse) {\n if (!selectedPlan.isAnnual) {\n return selectedPlan.additionalStoragePricePerGb;\n }\n return selectedPlan.additionalStoragePricePerGb / 12;\n }\n\n seatPriceMonthly(selectedPlan: PlanResponse) {\n if (!selectedPlan.isAnnual) {\n return selectedPlan.seatPrice;\n }\n return selectedPlan.seatPrice / 12;\n }\n\n additionalStorageTotal(plan: PlanResponse): number {\n if (!plan.hasAdditionalStorageOption) {\n return 0;\n }\n\n return plan.additionalStoragePricePerGb * Math.abs(this.additionalStorage || 0);\n }\n\n seatTotal(plan: PlanResponse): number {\n if (!plan.hasAdditionalSeatsOption) {\n return 0;\n }\n\n return plan.seatPrice * Math.abs(this.additionalSeats || 0);\n }\n\n get subtotal() {\n let subTotal = this.selectedPlan.basePrice;\n if (this.selectedPlan.hasAdditionalSeatsOption && this.additionalSeats) {\n subTotal += this.seatTotal(this.selectedPlan);\n }\n if (this.selectedPlan.hasAdditionalStorageOption && this.additionalStorage) {\n subTotal += this.additionalStorageTotal(this.selectedPlan);\n }\n if (this.selectedPlan.hasPremiumAccessOption && this.premiumAccessAddon) {\n subTotal += this.selectedPlan.premiumAccessOptionPrice;\n }\n return subTotal;\n }\n\n get taxCharges() {\n return this.taxComponent != null && this.taxComponent.taxRate != null ?\n (this.taxComponent.taxRate / 100) * this.subtotal :\n 0;\n }\n\n get total() {\n return (this.subtotal + this.taxCharges) || 0;\n }\n\n changedProduct() {\n this.plan = this.selectablePlans[0].type;\n if (!this.selectedPlan.hasPremiumAccessOption) {\n this.premiumAccessAddon = false;\n }\n if (!this.selectedPlan.hasAdditionalStorageOption) {\n this.additionalStorage = 0;\n }\n if (!this.selectedPlan.hasAdditionalSeatsOption) {\n this.additionalSeats = 0;\n } else if (!this.additionalSeats && !this.selectedPlan.baseSeats &&\n this.selectedPlan.hasAdditionalSeatsOption) {\n this.additionalSeats = 1;\n }\n }\n\n changedOwnedBusiness() {\n if (!this.ownedBusiness || this.selectedPlan.canBeUsedByBusiness) {\n return;\n }\n this.product = ProductType.Teams;\n this.plan = PlanType.TeamsAnnually;\n }\n\n changedCountry() {\n this.paymentComponent.hideBank = this.taxComponent.taxInfo.country !== 'US';\n // Bank Account payments are only available for US customers\n if (this.paymentComponent.hideBank &&\n this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n async submit() {\n if (this.singleOrgPolicyBlock) {\n return;\n } else {\n const policies = await this.policyService.getAll(PolicyType.SingleOrg);\n const orgs = await this.userService.getAllOrganizations();\n\n const orgsWithSingleOrgPolicy = policies\n .filter(p => p.enabled && p.type === PolicyType.SingleOrg)\n .map(p => p.organizationId);\n\n this.singleOrgPolicyBlock = orgs.some(org =>\n org.type !== OrganizationUserType.Owner &&\n org.type !== OrganizationUserType.Admin &&\n org.status !== OrganizationUserStatusType.Invited &&\n orgsWithSingleOrgPolicy.includes(org.id));\n\n if (this.singleOrgPolicyBlock) {\n return;\n }\n }\n\n let files: FileList = null;\n if (this.createOrganization && this.selfHosted) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n }\n\n try {\n const doSubmit = async () => {\n let orgId: string = null;\n if (this.createOrganization) {\n let tokenResult: [string, PaymentMethodType] = null;\n if (!this.selfHosted && this.plan !== PlanType.Free) {\n tokenResult = await this.paymentComponent.createPaymentToken();\n }\n const shareKey = await this.cryptoService.makeShareKey();\n const key = shareKey[0].encryptedString;\n const collection = await this.cryptoService.encrypt(\n this.i18nService.t('defaultCollection'), shareKey[1]);\n const collectionCt = collection.encryptedString;\n\n if (this.selfHosted) {\n const fd = new FormData();\n fd.append('license', files[0]);\n fd.append('key', key);\n fd.append('collectionName', collectionCt);\n const response = await this.apiService.postOrganizationLicense(fd);\n orgId = response.id;\n } else {\n const request = new OrganizationCreateRequest();\n request.key = key;\n request.collectionName = collectionCt;\n request.name = this.name;\n request.billingEmail = this.billingEmail;\n\n if (this.selectedPlan.type === PlanType.Free) {\n request.planType = PlanType.Free;\n } else {\n request.paymentToken = tokenResult[0];\n request.paymentMethodType = tokenResult[1];\n request.businessName = this.ownedBusiness ? this.businessName : null;\n request.additionalSeats = this.additionalSeats;\n request.additionalStorageGb = this.additionalStorage;\n request.premiumAccessAddon = this.selectedPlan.hasPremiumAccessOption &&\n this.premiumAccessAddon;\n request.planType = this.selectedPlan.type;\n request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode;\n request.billingAddressCountry = this.taxComponent.taxInfo.country;\n if (this.taxComponent.taxInfo.includeTaxId) {\n request.taxIdNumber = this.taxComponent.taxInfo.taxId;\n request.billingAddressLine1 = this.taxComponent.taxInfo.line1;\n request.billingAddressLine2 = this.taxComponent.taxInfo.line2;\n request.billingAddressCity = this.taxComponent.taxInfo.city;\n request.billingAddressState = this.taxComponent.taxInfo.state;\n }\n }\n const response = await this.apiService.postOrganization(request);\n orgId = response.id;\n }\n } else {\n const request = new OrganizationUpgradeRequest();\n request.businessName = this.ownedBusiness ? this.businessName : null;\n request.additionalSeats = this.additionalSeats;\n request.additionalStorageGb = this.additionalStorage;\n request.premiumAccessAddon = this.selectedPlan.hasPremiumAccessOption &&\n this.premiumAccessAddon;\n request.planType = this.selectedPlan.type;\n request.billingAddressCountry = this.taxComponent.taxInfo.country;\n request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode;\n\n const result = await this.apiService.postOrganizationUpgrade(this.organizationId, request);\n if (!result.success && result.paymentIntentClientSecret != null) {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n }\n orgId = this.organizationId;\n }\n\n if (orgId != null) {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n if (this.createOrganization) {\n this.analytics.eventTrack.next({ action: 'Created Organization' });\n this.toasterService.popAsync('success',\n this.i18nService.t('organizationCreated'), this.i18nService.t('organizationReadyToGo'));\n } else {\n this.analytics.eventTrack.next({ action: 'Upgraded Organization' });\n this.toasterService.popAsync('success', null, this.i18nService.t('organizationUpgraded'));\n }\n this.router.navigate(['/organizations/' + orgId]);\n }\n };\n\n this.formPromise = doSubmit();\n await this.formPromise;\n this.onSuccess.emit();\n } catch { }\n }\n\n}\n","\n \n {{'loading' | i18n}}\n\n\n

{{'uploadLicenseFileOrg' | i18n}}

\n
\n
\n \n \n {{'licenseFileDesc' | i18n : 'bitwarden_organization_license.json'}}\n
\n \n
\n
\n
\n

{{'generalInformation' | i18n}}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n

{{'chooseYourPlan' | i18n}}

\n
\n \n \n
\n
\n \n

{{'users' | i18n}}

\n
\n
\n \n \n {{'userSeatsHowManyDesc' | i18n}}\n
\n
\n
\n

{{'addons' | i18n}}

\n
\n
\n \n \n {{'userSeatsAdditionalDesc' | i18n : selectedPlan.baseSeats : (seatPriceMonthly(selectedPlan) | currency:'$')}}\n
\n
\n
\n
\n \n \n {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (additionalStoragePriceMonthly(selectedPlan) | currency:'$') : ('month' | i18n)}}\n
\n
\n
\n
\n
\n \n \n
\n {{'premiumAccessDesc' | i18n : (3.33 | currency:'$') : ('month' | i18n)}}\n
\n
\n

{{'summary' | i18n}}

\n
\n \n \n
\n
\n

{{ (createOrganization ? 'paymentInformation' : 'billingInformation') | i18n}}

\n \n \n
\n
\n {{ 'planPrice' | i18n }}: {{ subtotal | currency: 'USD $' }}\n
\n \n {{ 'estimatedTax' | i18n }}: {{ taxCharges | currency: 'USD $' }}\n \n
\n
\n

{{'total' | i18n}}:\n {{total | currency:'USD $'}}/{{selectedPlanInterval | i18n}}

\n
\n {{'paymentChargedWithTrial' | i18n : (selectedPlanInterval | i18n) }}\n \n \n \n \n {{'paymentCharged' | i18n : (selectedPlanInterval | i18n) }}\n
\n
\n {{'singleOrgBlockCreateMessage' | i18n}}\n
\n
\n \n \n
\n
\n","import { EncryptionType } from '../../enums/encryptionType';\n\nimport { Utils } from '../../misc/utils';\n\nexport class SymmetricCryptoKey {\n key: ArrayBuffer;\n encKey?: ArrayBuffer;\n macKey?: ArrayBuffer;\n encType: EncryptionType;\n\n keyB64: string;\n encKeyB64: string;\n macKeyB64: string;\n\n meta: any;\n\n constructor(key: ArrayBuffer, encType?: EncryptionType) {\n if (key == null) {\n throw new Error('Must provide key');\n }\n\n if (encType == null) {\n if (key.byteLength === 32) {\n encType = EncryptionType.AesCbc256_B64;\n } else if (key.byteLength === 64) {\n encType = EncryptionType.AesCbc256_HmacSha256_B64;\n } else {\n throw new Error('Unable to determine encType.');\n }\n }\n\n this.key = key;\n this.encType = encType;\n\n if (encType === EncryptionType.AesCbc256_B64 && key.byteLength === 32) {\n this.encKey = key;\n this.macKey = null;\n } else if (encType === EncryptionType.AesCbc128_HmacSha256_B64 && key.byteLength === 32) {\n this.encKey = key.slice(0, 16);\n this.macKey = key.slice(16, 32);\n } else if (encType === EncryptionType.AesCbc256_HmacSha256_B64 && key.byteLength === 64) {\n this.encKey = key.slice(0, 32);\n this.macKey = key.slice(32, 64);\n } else {\n throw new Error('Unsupported encType/key length.');\n }\n\n if (this.key != null) {\n this.keyB64 = Utils.fromBufferToB64(this.key);\n }\n if (this.encKey != null) {\n this.encKeyB64 = Utils.fromBufferToB64(this.encKey);\n }\n if (this.macKey != null) {\n this.macKeyB64 = Utils.fromBufferToB64(this.macKey);\n }\n }\n}\n","import { CardData } from '../data/cardData';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nimport { CardView } from '../view/cardView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Card extends Domain {\n cardholderName: CipherString;\n brand: CipherString;\n number: CipherString;\n expMonth: CipherString;\n expYear: CipherString;\n code: CipherString;\n\n constructor(obj?: CardData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new CardView(this), {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, orgId, encKey);\n }\n\n toCardData(): CardData {\n const c = new CardData();\n this.buildDataModel(this, c, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n });\n return c;\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldData } from '../data/fieldData';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nimport { FieldView } from '../view/fieldView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Field extends Domain {\n name: CipherString;\n value: CipherString;\n type: FieldType;\n\n constructor(obj?: FieldData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.type = obj.type;\n this.buildDomainModel(this, obj, {\n name: null,\n value: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new FieldView(this), {\n name: null,\n value: null,\n }, orgId, encKey);\n }\n\n toFieldData(): FieldData {\n const f = new FieldData();\n this.buildDataModel(this, f, {\n name: null,\n value: null,\n type: null,\n }, ['type']);\n return f;\n }\n}\n","import { IdentityData } from '../data/identityData';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { IdentityView } from '../view/identityView';\n\nexport class Identity extends Domain {\n title: CipherString;\n firstName: CipherString;\n middleName: CipherString;\n lastName: CipherString;\n address1: CipherString;\n address2: CipherString;\n address3: CipherString;\n city: CipherString;\n state: CipherString;\n postalCode: CipherString;\n country: CipherString;\n company: CipherString;\n email: CipherString;\n phone: CipherString;\n ssn: CipherString;\n username: CipherString;\n passportNumber: CipherString;\n licenseNumber: CipherString;\n\n constructor(obj?: IdentityData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new IdentityView(this), {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, orgId, encKey);\n }\n\n toIdentityData(): IdentityData {\n const i = new IdentityData();\n this.buildDataModel(this, i, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n });\n return i;\n }\n}\n","import { LoginUri } from './loginUri';\n\nimport { LoginData } from '../data/loginData';\n\nimport { LoginView } from '../view/loginView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Login extends Domain {\n uris: LoginUri[];\n username: CipherString;\n password: CipherString;\n passwordRevisionDate?: Date;\n totp: CipherString;\n\n constructor(obj?: LoginData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.passwordRevisionDate = obj.passwordRevisionDate != null ? new Date(obj.passwordRevisionDate) : null;\n this.buildDomainModel(this, obj, {\n username: null,\n password: null,\n totp: null,\n }, alreadyEncrypted, []);\n\n if (obj.uris) {\n this.uris = [];\n obj.uris.forEach(u => {\n this.uris.push(new LoginUri(u, alreadyEncrypted));\n });\n }\n }\n\n async decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new LoginView(this), {\n username: null,\n password: null,\n totp: null,\n }, orgId, encKey);\n\n if (this.uris != null) {\n view.uris = [];\n for (let i = 0; i < this.uris.length; i++) {\n const uri = await this.uris[i].decrypt(orgId, encKey);\n view.uris.push(uri);\n }\n }\n\n return view;\n }\n\n toLoginData(): LoginData {\n const l = new LoginData();\n l.passwordRevisionDate = this.passwordRevisionDate != null ? this.passwordRevisionDate.toISOString() : null;\n this.buildDataModel(this, l, {\n username: null,\n password: null,\n totp: null,\n });\n\n if (this.uris != null && this.uris.length > 0) {\n l.uris = [];\n this.uris.forEach(u => {\n l.uris.push(u.toLoginUriData());\n });\n }\n\n return l;\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriData } from '../data/loginUriData';\n\nimport { LoginUriView } from '../view/loginUriView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class LoginUri extends Domain {\n uri: CipherString;\n match: UriMatchType;\n\n constructor(obj?: LoginUriData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.match = obj.match;\n this.buildDomainModel(this, obj, {\n uri: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new LoginUriView(this), {\n uri: null,\n }, orgId, encKey);\n }\n\n toLoginUriData(): LoginUriData {\n const u = new LoginUriData();\n this.buildDataModel(this, u, {\n uri: null,\n }, ['match']);\n return u;\n }\n}\n","export enum UriMatchType {\n Domain = 0,\n Host = 1,\n StartsWith = 2,\n Exact = 3,\n RegularExpression = 4,\n Never = 5,\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteData } from '../data/secureNoteData';\n\nimport Domain from './domainBase';\n\nimport { SecureNoteView } from '../view/secureNoteView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class SecureNote extends Domain {\n type: SecureNoteType;\n\n constructor(obj?: SecureNoteData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.type = obj.type;\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return Promise.resolve(new SecureNoteView(this));\n }\n\n toSecureNoteData(): SecureNoteData {\n const n = new SecureNoteData();\n n.type = this.type;\n return n;\n }\n}\n","import {\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n Renderer2,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\n// ref: https://juristr.com/blog/2018/02/ng-true-value-directive/\n@Directive({\n selector: 'input[type=checkbox][appTrueFalseValue]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TrueFalseValueDirective),\n multi: true,\n },\n ],\n})\nexport class TrueFalseValueDirective implements ControlValueAccessor {\n @Input() trueValue = true;\n @Input() falseValue = false;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('change', ['$event'])\n onHostChange(ev: any) {\n this.propagateChange(ev.target.checked ? this.trueValue : this.falseValue);\n }\n\n writeValue(obj: any): void {\n if (obj === this.trueValue) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', true);\n } else {\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', false);\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void { /* nothing */ }\n\n setDisabledState?(isDisabled: boolean): void { /* nothing */ }\n\n private propagateChange = (_: any) => { /* nothing */ };\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { GroupingsComponent as BaseGroupingsComponent } from 'jslib/angular/components/groupings.component';\n\n@Component({\n selector: 'app-vault-groupings',\n templateUrl: 'groupings.component.html',\n})\nexport class GroupingsComponent extends BaseGroupingsComponent {\n @Output() onSearchTextChanged = new EventEmitter();\n\n searchText: string = '';\n searchPlaceholder: string = null;\n\n constructor(collectionService: CollectionService, folderService: FolderService,\n storageService: StorageService, userService: UserService) {\n super(collectionService, folderService, storageService, userService);\n }\n\n searchTextChanged() {\n this.onSearchTextChanged.emit(this.searchText);\n }\n}\n","
\n
\n {{'filters' | i18n}}\n \n \n \n
\n
\n \n \n

{{'types' | i18n}}

\n \n

\n \n {{'loading' | i18n}}\n

\n \n \n

\n {{'folders' | i18n}}\n \n \n \n

\n \n
\n \n

{{'collections' | i18n}}

\n \n
\n
\n
\n
\n","import { OrganizationData } from '../data/organizationData';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\n\nexport class Organization {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n\n constructor(obj?: OrganizationData) {\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.name = obj.name;\n this.status = obj.status;\n this.type = obj.type;\n this.enabled = obj.enabled;\n this.usePolicies = obj.usePolicies;\n this.useGroups = obj.useGroups;\n this.useDirectory = obj.useDirectory;\n this.useEvents = obj.useEvents;\n this.useTotp = obj.useTotp;\n this.use2fa = obj.use2fa;\n this.useApi = obj.useApi;\n this.useBusinessPortal = obj.useBusinessPortal;\n this.useSso = obj.useSso;\n this.selfHost = obj.selfHost;\n this.usersGetPremium = obj.usersGetPremium;\n this.seats = obj.seats;\n this.maxCollections = obj.maxCollections;\n this.maxStorageGb = obj.maxStorageGb;\n this.ssoBound = obj.ssoBound;\n this.identifier = obj.identifier;\n this.permissions = obj.permissions;\n }\n\n get canAccess() {\n if (this.type === OrganizationUserType.Owner) {\n return true;\n }\n return this.enabled && this.status === OrganizationUserStatusType.Confirmed;\n }\n\n get isManager() {\n return this.type === OrganizationUserType.Manager || this.type === OrganizationUserType.Owner ||\n this.type === OrganizationUserType.Admin;\n }\n\n get isAdmin() {\n return this.type === OrganizationUserType.Owner || this.type === OrganizationUserType.Admin;\n }\n\n get isOwner() {\n return this.type === OrganizationUserType.Owner;\n }\n\n get canAccessBusinessPortal() {\n return this.isAdmin || this.permissions.accessBusinessPortal;\n }\n\n get canAccessEventLogs() {\n return this.isAdmin || this.permissions.accessEventLogs;\n }\n\n get canAccessImportExport() {\n return this.isAdmin || this.permissions.accessImportExport;\n }\n\n get canAccessReports() {\n return this.isAdmin || this.permissions.accessReports;\n }\n\n get canManageAllCollections() {\n return this.isAdmin || this.permissions.manageAllCollections;\n }\n\n get canManageAssignedCollections() {\n return this.isManager || this.permissions.manageAssignedCollections;\n }\n\n get canManageGroups() {\n return this.isAdmin || this.permissions.manageGroups;\n }\n\n get canManageSso() {\n return this.isAdmin || this.permissions.manageSso;\n }\n\n get canManagePolicies() {\n return this.isAdmin || this.permissions.managePolicies;\n }\n\n get canManageUsers() {\n return this.isAdmin || this.permissions.manageUsers;\n }\n}\n","import { View } from './view';\n\nimport { SendFile } from '../domain/sendFile';\n\nexport class SendFileView implements View {\n id: string = null;\n size: string = null;\n sizeName: string = null;\n fileName: string = null;\n\n constructor(f?: SendFile) {\n if (!f) {\n return;\n }\n\n this.id = f.id;\n this.size = f.size;\n this.sizeName = f.sizeName;\n }\n\n get fileSize(): number {\n try {\n if (this.size != null) {\n return parseInt(this.size, null);\n }\n } catch { }\n return 0;\n }\n}\n","import { View } from './view';\n\nimport { SendText } from '../domain/sendText';\n\nexport class SendTextView implements View {\n text: string = null;\n hidden: boolean;\n\n constructor(t?: SendText) {\n if (!t) {\n return;\n }\n\n this.hidden = t.hidden;\n }\n\n get maskedText(): string {\n return this.text != null ? '••••••••' : null;\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-organizations',\n templateUrl: 'organizations.component.html',\n})\nexport class OrganizationsComponent implements OnInit {\n @Input() vault = false;\n\n organizations: Organization[];\n loaded: boolean = false;\n actionPromise: Promise;\n\n constructor(private userService: UserService, private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private syncService: SyncService) { }\n\n async ngOnInit() {\n if (!this.vault) {\n await this.syncService.fullSync(true);\n await this.load();\n }\n }\n\n async load() {\n const orgs = await this.userService.getAllOrganizations();\n orgs.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.organizations = orgs;\n this.loaded = true;\n }\n\n async unlinkSso(org: Organization) {\n const confirmed = await this.platformUtilsService.showDialog(\n 'Are you sure you want to unlink SSO for this organization?', org.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.apiService.deleteSsoUser(org.id).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Unlinked SSO' });\n this.toasterService.popAsync('success', null, 'Unlinked SSO');\n await this.load();\n } catch { }\n }\n\n async leave(org: Organization) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('leaveOrganizationConfirmation'), org.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.apiService.postLeaveOrganization(org.id).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Left Organization' });\n this.toasterService.popAsync('success', null, this.i18nService.t('leftOrganization'));\n await this.load();\n } catch { }\n }\n}\n","\n

\n \n {{'loading' | i18n}}\n

\n \n \n

{{'noOrganizationsList' | i18n}}

\n
\n \n \n {{'newOrganization' | i18n}}\n \n
\n\n
\n

\n {{'organizations' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n \n \n {{'newOrganization' | i18n}}\n \n
\n \n \n {{'loading' | i18n}}\n \n \n \n

{{'noOrganizationsList' | i18n}}

\n \n \n {{'newOrganization' | i18n}}\n \n
\n \n \n \n \n \n \n \n \n
\n \n \n {{o.name}}\n \n \n {{'organizationIsDisabled' | i18n}}\n \n \n
\n \n \n
\n
\n
\n
\n","import { BaseResponse } from './baseResponse';\n\nexport class SelectionReadOnlyResponse extends BaseResponse {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.readOnly = this.getResponseProperty('ReadOnly');\n this.hidePasswords = this.getResponseProperty('HidePasswords');\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\n@Component({\n selector: 'app-navbar',\n templateUrl: 'navbar.component.html',\n})\nexport class NavbarComponent implements OnInit {\n selfHosted = false;\n name: string;\n email: string;\n\n constructor(private messagingService: MessagingService, private platformUtilsService: PlatformUtilsService,\n private tokenService: TokenService) {\n this.selfHosted = this.platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.name = await this.tokenService.getName();\n this.email = await this.tokenService.getEmail();\n if (this.name == null || this.name.trim() === '') {\n this.name = this.email;\n }\n }\n\n lock() {\n this.messagingService.send('lockVault');\n }\n\n logOut() {\n this.messagingService.send('logout');\n }\n}\n","\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: 'footer.component.html',\n})\nexport class FooterComponent implements OnInit {\n version: string;\n year: string = '2015';\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.year = new Date().getFullYear().toString();\n this.version = this.platformUtilsService.getApplicationVersion();\n }\n}\n","
\n
\n
\n © {{year}}, Bitwarden Inc.\n
\n
\n
\n {{'versionNumber' | i18n : version}}\n
\n
\n
\n","import { Injectable } from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { ErrorResponse } from '../../models/response/errorResponse';\n\n@Injectable()\nexport class ValidationService {\n constructor(private i18nService: I18nService, private platformUtilsService: PlatformUtilsService) { }\n\n showError(data: any): string[] {\n const defaultErrorMessage = this.i18nService.t('unexpectedError');\n let errors: string[] = [];\n\n if (data != null && typeof data === 'string') {\n errors.push(data);\n } else if (data == null || typeof data !== 'object') {\n errors.push(defaultErrorMessage);\n } else if (data.validationErrors != null) {\n errors = errors.concat((data as ErrorResponse).getAllMessages());\n } else {\n errors.push(data.message ? data.message : defaultErrorMessage);\n }\n\n if (errors.length === 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), errors[0]);\n } else if (errors.length > 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), errors, {\n timeout: 5000 * errors.length,\n });\n }\n\n return errors;\n }\n}\n","export enum EncryptionType {\n AesCbc256_B64 = 0,\n AesCbc128_HmacSha256_B64 = 1,\n AesCbc256_HmacSha256_B64 = 2,\n Rsa2048_OaepSha256_B64 = 3,\n Rsa2048_OaepSha1_B64 = 4,\n Rsa2048_OaepSha256_HmacSha256_B64 = 5,\n Rsa2048_OaepSha1_HmacSha256_B64 = 6,\n}\n","export class KeysRequest {\n publicKey: string;\n encryptedPrivateKey: string;\n\n constructor(publicKey: string, encryptedPrivateKey: string) {\n this.publicKey = publicKey;\n this.encryptedPrivateKey = encryptedPrivateKey;\n }\n}\n","import { PolicyData } from '../data/policyData';\n\nimport Domain from './domainBase';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class Policy extends Domain {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(obj?: PolicyData) {\n super();\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.organizationId = obj.organizationId;\n this.type = obj.type;\n this.data = obj.data;\n this.enabled = obj.enabled;\n }\n}\n","import { PolicyResponse } from '../response/policyResponse';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class PolicyData {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(response: PolicyResponse) {\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.type = response.type;\n this.data = response.data;\n this.enabled = response.enabled;\n }\n}\n","import { OnInit } from '@angular/core';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { CipherString } from '../../models/domain/cipherString';\nimport { MasterPasswordPolicyOptions } from '../../models/domain/masterPasswordPolicyOptions';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class ChangePasswordComponent implements OnInit {\n masterPassword: string;\n masterPasswordRetype: string;\n formPromise: Promise;\n masterPasswordScore: number;\n enforcedPolicyOptions: MasterPasswordPolicyOptions;\n\n protected email: string;\n protected kdf: KdfType;\n protected kdfIterations: number;\n\n private masterPasswordStrengthTimeout: any;\n\n constructor(protected i18nService: I18nService, protected cryptoService: CryptoService,\n protected messagingService: MessagingService, protected userService: UserService,\n protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected policyService: PolicyService) { }\n\n async ngOnInit() {\n this.email = await this.userService.getEmail();\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions();\n }\n\n getPasswordScoreAlertDisplay() {\n if (this.enforcedPolicyOptions == null) {\n return '';\n }\n\n let str: string;\n switch (this.enforcedPolicyOptions.minComplexity) {\n case 4:\n str = this.i18nService.t('strong');\n break;\n case 3:\n str = this.i18nService.t('good');\n break;\n default:\n str = this.i18nService.t('weak');\n break;\n }\n return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';\n }\n\n async submit() {\n if (!await this.strongPassword()) {\n return;\n }\n\n if (!await this.setupSubmitActions()) {\n return;\n }\n\n const email = await this.userService.getEmail();\n if (this.kdf == null) {\n this.kdf = await this.userService.getKdf();\n }\n if (this.kdfIterations == null) {\n this.kdfIterations = await this.userService.getKdfIterations();\n }\n const key = await this.cryptoService.makeKey(this.masterPassword, email.trim().toLowerCase(),\n this.kdf, this.kdfIterations);\n const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n let encKey: [SymmetricCryptoKey, CipherString] = null;\n const existingEncKey = await this.cryptoService.getEncKey();\n if (existingEncKey == null) {\n encKey = await this.cryptoService.makeEncKey(key);\n } else {\n encKey = await this.cryptoService.remakeEncKey(key);\n }\n\n await this.performSubmitActions(masterPasswordHash, key, encKey);\n }\n\n async setupSubmitActions(): Promise {\n // Override in sub-class\n // Can be used for additional validation and/or other processes the should occur before changing passwords\n return true;\n }\n\n async performSubmitActions(masterPasswordHash: string, key: SymmetricCryptoKey,\n encKey: [SymmetricCryptoKey, CipherString]) {\n // Override in sub-class\n }\n\n async strongPassword(): Promise {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return false;\n }\n if (this.masterPassword.length < 8) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassLength'));\n return false;\n }\n if (this.masterPassword !== this.masterPasswordRetype) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassDoesntMatch'));\n return false;\n }\n\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n\n if (this.enforcedPolicyOptions != null &&\n !this.policyService.evaluateMasterPassword(\n strengthResult.score,\n this.masterPassword,\n this.enforcedPolicyOptions)) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPasswordPolicyRequirementsNotMet'));\n return false;\n }\n\n if (strengthResult != null && strengthResult.score < 3) {\n const result = await this.platformUtilsService.showDialog(this.i18nService.t('weakMasterPasswordDesc'),\n this.i18nService.t('weakMasterPassword'), this.i18nService.t('yes'), this.i18nService.t('no'),\n 'warning');\n if (!result) {\n return false;\n }\n }\n\n return true;\n }\n\n updatePasswordStrength() {\n if (this.masterPasswordStrengthTimeout != null) {\n clearTimeout(this.masterPasswordStrengthTimeout);\n }\n this.masterPasswordStrengthTimeout = setTimeout(() => {\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;\n }, 300);\n }\n\n async logOut() {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('logOutConfirmation'),\n this.i18nService.t('logOut'), this.i18nService.t('logOut'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.messagingService.send('logout');\n }\n }\n\n private getPasswordStrengthUserInput() {\n let userInput: string[] = [];\n const atPosition = this.email.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(this.email.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/));\n }\n return userInput;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { OrganizationUserUserDetailsResponse } from 'jslib/models/response/organizationUserResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-entity-users',\n templateUrl: 'entity-users.component.html',\n})\nexport class EntityUsersComponent implements OnInit {\n @Input() entity: 'group' | 'collection';\n @Input() entityId: string;\n @Input() entityName: string;\n @Input() organizationId: string;\n @Output() onEditedUsers = new EventEmitter();\n\n organizationUserType = OrganizationUserType;\n organizationUserStatusType = OrganizationUserStatusType;\n\n showSelected = false;\n loading = true;\n formPromise: Promise;\n selectedCount = 0;\n searchText: string;\n\n private allUsers: OrganizationUserUserDetailsResponse[] = [];\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n await this.loadUsers();\n this.loading = false;\n }\n\n get users() {\n if (this.showSelected) {\n return this.allUsers.filter(u => (u as any).checked);\n } else {\n return this.allUsers;\n }\n }\n\n async loadUsers() {\n const users = await this.apiService.getOrganizationUsers(this.organizationId);\n this.allUsers = users.data.map(r => r).sort(Utils.getSortFunction(this.i18nService, 'email'));\n if (this.entity === 'group') {\n const response = await this.apiService.getGroupUsers(this.organizationId, this.entityId);\n if (response != null && users.data.length > 0) {\n response.forEach(s => {\n const user = users.data.filter(u => u.id === s);\n if (user != null && user.length > 0) {\n (user[0] as any).checked = true;\n }\n });\n }\n } else if (this.entity === 'collection') {\n const response = await this.apiService.getCollectionUsers(this.organizationId, this.entityId);\n if (response != null && users.data.length > 0) {\n response.forEach(s => {\n const user = users.data.filter(u => !u.accessAll && u.id === s.id);\n if (user != null && user.length > 0) {\n (user[0] as any).checked = true;\n (user[0] as any).readOnly = s.readOnly;\n (user[0] as any).hidePasswords = s.hidePasswords;\n }\n });\n }\n }\n\n this.allUsers.forEach(u => {\n if (this.entity === 'collection' && u.accessAll) {\n (u as any).checked = true;\n }\n if ((u as any).checked) {\n this.selectedCount++;\n }\n });\n }\n\n check(u: OrganizationUserUserDetailsResponse) {\n if (this.entity === 'collection' && u.accessAll) {\n return;\n }\n (u as any).checked = !(u as any).checked;\n this.selectedChanged(u);\n }\n\n selectedChanged(u: OrganizationUserUserDetailsResponse) {\n if ((u as any).checked) {\n this.selectedCount++;\n } else {\n if (this.entity === 'collection') {\n (u as any).readOnly = false;\n (u as any).hidePasswords = false;\n }\n this.selectedCount--;\n }\n }\n\n filterSelected(showSelected: boolean) {\n this.showSelected = showSelected;\n }\n\n async submit() {\n try {\n if (this.entity === 'group') {\n const selections = this.users.filter(u => (u as any).checked).map(u => u.id);\n this.formPromise = this.apiService.putGroupUsers(this.organizationId, this.entityId, selections);\n } else {\n const selections = this.users.filter(u => (u as any).checked && !u.accessAll)\n .map(u => new SelectionReadOnlyRequest(u.id, !!(u as any).readOnly, !!(u as any).hidePasswords));\n this.formPromise = this.apiService.putCollectionUsers(this.organizationId, this.entityId, selections);\n }\n await this.formPromise;\n this.analytics.eventTrack.next({\n action: this.entity === 'group' ? 'Edited Group Users' : 'Edited Collection Users',\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedUsers'));\n this.onEditedUsers.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'userAccess' | i18n}}\n {{entityName}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noUsersInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
  {{'name' | i18n}} {{'userType' | i18n}}{{'hidePasswords' |\n i18n}}{{'readOnly' |\n i18n}}
\n \n \n \n \n {{u.email}}\n {{'invited'\n | i18n}}\n {{'accepted'\n | i18n}}\n {{u.name}}\n \n \n \n {{'userAccessAllItems' | i18n}}\n \n \n {{'owner' | i18n}}\n {{'admin' | i18n}}\n {{'manager' | i18n}}\n {{'user' | i18n}}\n {{'custom' | i18n}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { EventService } from '../../services/event.service';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\n\n@Component({\n selector: 'app-entity-events',\n templateUrl: 'entity-events.component.html',\n})\nexport class EntityEventsComponent implements OnInit {\n @Input() name: string;\n @Input() entity: 'user' | 'cipher';\n @Input() entityId: string;\n @Input() organizationId: string;\n @Input() showUser = false;\n\n loading = true;\n loaded = false;\n events: any[];\n start: string;\n end: string;\n continuationToken: string;\n refreshPromise: Promise;\n morePromise: Promise;\n\n private orgUsersUserIdMap = new Map();\n private orgUsersIdMap = new Map();\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private eventService: EventService, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const defaultDates = this.eventService.getDefaultDateFilters();\n this.start = defaultDates[0];\n this.end = defaultDates[1];\n await this.load();\n }\n\n async load() {\n if (this.showUser) {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n response.data.forEach(u => {\n const name = u.name == null || u.name.trim() === '' ? u.email : u.name;\n this.orgUsersIdMap.set(u.id, { name: name, email: u.email });\n this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });\n });\n }\n await this.loadEvents(true);\n this.loaded = true;\n }\n\n async loadEvents(clearExisting: boolean) {\n if (this.refreshPromise != null || this.morePromise != null) {\n return;\n }\n\n let dates: string[] = null;\n try {\n dates = this.eventService.formatDateFilters(this.start, this.end);\n } catch (e) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidDateRange'));\n return;\n }\n\n this.loading = true;\n let response: ListResponse;\n try {\n let promise: Promise;\n if (this.entity === 'user') {\n promise = this.apiService.getEventsOrganizationUser(this.organizationId, this.entityId,\n dates[0], dates[1], clearExisting ? null : this.continuationToken);\n } else {\n promise = this.apiService.getEventsCipher(this.entityId,\n dates[0], dates[1], clearExisting ? null : this.continuationToken);\n }\n if (clearExisting) {\n this.refreshPromise = promise;\n } else {\n this.morePromise = promise;\n }\n response = await promise;\n } catch { }\n\n this.continuationToken = response.continuationToken;\n const events = response.data.map(r => {\n const userId = r.actingUserId == null ? r.userId : r.actingUserId;\n const eventInfo = this.eventService.getEventInfo(r);\n const user = this.showUser && userId != null && this.orgUsersUserIdMap.has(userId) ?\n this.orgUsersUserIdMap.get(userId) : null;\n return {\n message: eventInfo.message,\n appIcon: eventInfo.appIcon,\n appName: eventInfo.appName,\n userId: userId,\n userName: user != null ? user.name : this.showUser ? this.i18nService.t('unknown') : null,\n userEmail: user != null ? user.email : this.showUser ? '' : null,\n date: r.date,\n ip: r.ipAddress,\n type: r.type,\n };\n });\n\n if (!clearExisting && this.events != null && this.events.length > 0) {\n this.events = this.events.concat(events);\n } else {\n this.events = events;\n }\n\n this.loading = false;\n this.morePromise = null;\n this.refreshPromise = null;\n }\n}\n","
\n
\n
\n
\n

\n {{'eventLogs' | i18n}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n \n \n -\n \n \n
\n \n
\n
\n
\n {{'noEventsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{'timestamp' | i18n}}\n {{'device' | i18n}}\n {{'user' | i18n}}{{'event' | i18n}}
{{e.date | date:'medium'}}\n \n {{e.appName}}, {{e.ip}}\n \n {{e.userName}}\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class PermissionsApi extends BaseResponse {\n accessBusinessPortal: boolean;\n accessEventLogs: boolean;\n accessImportExport: boolean;\n accessReports: boolean;\n manageAllCollections: boolean;\n manageAssignedCollections: boolean;\n manageCiphers: boolean;\n manageGroups: boolean;\n manageSso: boolean;\n managePolicies: boolean;\n manageUsers: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return this;\n }\n this.accessBusinessPortal = this.getResponseProperty('AccessBusinessPortal');\n this.accessEventLogs = this.getResponseProperty('AccessEventLogs');\n this.accessImportExport = this.getResponseProperty('AccessImportExport');\n this.accessReports = this.getResponseProperty('AccessReports');\n this.manageAllCollections = this.getResponseProperty('ManageAllCollections');\n this.manageAssignedCollections = this.getResponseProperty('ManageAssignedCollections');\n this.manageCiphers = this.getResponseProperty('ManageCiphers');\n this.manageGroups = this.getResponseProperty('ManageGroups');\n this.manageSso = this.getResponseProperty('ManageSso');\n this.managePolicies = this.getResponseProperty('ManagePolicies');\n this.manageUsers = this.getResponseProperty('ManageUsers');\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\nimport { ApiKeyResponse } from 'jslib/models/response/apiKeyResponse';\n\n@Component({\n selector: 'app-api-key',\n templateUrl: 'api-key.component.html',\n})\nexport class ApiKeyComponent {\n keyType: string;\n isRotation: boolean;\n postKey: (entityId: string, request: PasswordVerificationRequest) => Promise;\n entityId: string;\n scope: string;\n grantType: string;\n apiKeyTitle: string;\n apiKeyWarning: string;\n apiKeyDescription: string;\n\n masterPassword: string;\n formPromise: Promise;\n clientId: string;\n clientSecret: string;\n\n constructor(private i18nService: I18nService, private analytics: Angulartics2,\n private toasterService: ToasterService, private cryptoService: CryptoService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.postKey(this.entityId, request);\n const response = await this.formPromise;\n this.clientSecret = response.apiKey;\n this.clientId = `${this.keyType}.${this.entityId}`;\n this.analytics.eventTrack.next({ action: `Viewed ${this.keyType} API Key` });\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{apiKeyTitle | i18n}}

\n \n
\n
\n

{{apiKeyDescription | i18n}}

\n \n \n \n \n {{apiKeyWarning | i18n}}\n \n

\n client_id:
\n {{clientId}}\n

\n

\n client_secret:
\n {{clientSecret}}\n

\n

\n scope:
\n {{scope}}\n

\n

\n grant_type:
\n {{grantType}}\n

\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n Input,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-purge-vault',\n templateUrl: 'purge-vault.component.html',\n})\nexport class PurgeVaultComponent {\n @Input() organizationId?: string = null;\n\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private router: Router) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postPurgeCiphers(request, this.organizationId);\n await this.formPromise;\n this.analytics.eventTrack.next({\n action: this.organizationId != null ? 'Purged Organization Vault' : 'Purged Vault',\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('vaultPurged'));\n if (this.organizationId != null) {\n this.router.navigate(['organizations', this.organizationId, 'vault']);\n } else {\n this.router.navigate(['vault']);\n }\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'purgeVault' | i18n}}

\n \n
\n
\n

{{(organizationId ? 'purgeOrgVaultDesc' : 'purgeVaultDesc') | i18n}}

\n {{'purgeVaultWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { BillingResponse } from 'jslib/models/response/billingResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\nimport { TransactionType } from 'jslib/enums/transactionType';\nimport { VerifyBankRequest } from 'jslib/models/request/verifyBankRequest';\n\n@Component({\n selector: 'app-user-billing',\n templateUrl: 'user-billing.component.html',\n})\nexport class UserBillingComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n showAdjustPayment = false;\n showAddCredit = false;\n billing: BillingResponse;\n paymentMethodType = PaymentMethodType;\n transactionType = TransactionType;\n organizationId: string;\n verifyAmount1: number;\n verifyAmount2: number;\n\n verifyBankPromise: Promise;\n\n constructor(protected apiService: ApiService, protected i18nService: I18nService,\n protected analytics: Angulartics2, protected toasterService: ToasterService,\n protected platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n await this.load();\n this.firstLoaded = true;\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n if (this.organizationId != null) {\n this.billing = await this.apiService.getOrganizationBilling(this.organizationId);\n } else {\n this.billing = await this.apiService.getUserBilling();\n }\n this.loading = false;\n }\n\n async verifyBank() {\n if (this.loading) {\n return;\n }\n\n try {\n const request = new VerifyBankRequest();\n request.amount1 = this.verifyAmount1;\n request.amount2 = this.verifyAmount2;\n this.verifyBankPromise = this.apiService.postOrganizationVerifyBank(this.organizationId, request);\n await this.verifyBankPromise;\n this.analytics.eventTrack.next({ action: 'Verified Bank Account' });\n this.toasterService.popAsync('success', null, this.i18nService.t('verifiedBankAccount'));\n this.load();\n } catch { }\n }\n\n addCredit() {\n if (this.paymentSourceInApp) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t('addCredit'), null, null, 'warning');\n return;\n }\n this.showAddCredit = true;\n }\n\n closeAddCredit(load: boolean) {\n this.showAddCredit = false;\n if (load) {\n this.load();\n }\n }\n\n changePayment() {\n if (this.paymentSourceInApp) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t('changePaymentMethod'), null, null, 'warning');\n return;\n }\n this.showAdjustPayment = true;\n }\n\n closePayment(load: boolean) {\n this.showAdjustPayment = false;\n if (load) {\n this.load();\n }\n }\n\n get isCreditBalance() {\n return this.billing == null || this.billing.balance <= 0;\n }\n\n get creditOrBalance() {\n return Math.abs(this.billing != null ? this.billing.balance : 0);\n }\n\n get paymentSource() {\n return this.billing != null ? this.billing.paymentSource : null;\n }\n\n get paymentSourceInApp() {\n return this.paymentSource != null &&\n (this.paymentSource.type === PaymentMethodType.AppleInApp ||\n this.paymentSource.type === PaymentMethodType.GoogleInApp);\n }\n\n get invoices() {\n return this.billing != null ? this.billing.invoices : null;\n }\n\n get transactions() {\n return this.billing != null ? this.billing.transactions : null;\n }\n}\n","
\n

\n {{'billing' | i18n}}\n

\n \n
\n\n \n {{'loading' | i18n}}\n\n\n

{{(isCreditBalance ? 'accountCredit' : 'accountBalance') | i18n}}

\n

{{creditOrBalance | currency:'$'}}

\n

{{'creditAppliedDesc' | i18n}}

\n \n \n \n

{{'paymentMethod' | i18n}}

\n

{{'noPaymentMethod' | i18n}}

\n \n \n

{{'verifyBankAccountDesc' | i18n}} {{'verifyBankAccountFailureWarning' | i18n}}

\n
\n \n
\n
\n
$0.
\n
\n \n
\n \n
\n
\n
$0.
\n
\n \n
\n \n
\n
\n

\n \n {{'inAppPurchase' | i18n}}\n {{paymentSource.description}}\n

\n
\n \n \n \n

{{'invoices' | i18n}}

\n

{{'noInvoices' | i18n}}

\n \n \n \n \n \n \n \n \n \n
{{i.date | date:'mediumDate'}}\n \n \n \n {{'invoiceNumber' | i18n : i.number}}\n {{i.amount | currency:'$'}}\n \n \n {{'paid' | i18n}}\n \n \n \n {{'unpaid' | i18n}}\n \n
\n

{{'transactions' | i18n}}

\n

{{'noTransactions' | i18n}}

\n \n \n \n \n \n \n \n \n \n
{{t.createdDate | date:'mediumDate'}}\n \n {{'chargeNoun' | i18n}}\n \n {{'refundNoun' | i18n}}\n \n \n {{t.details}}\n \n {{t.amount | currency:'$'}}
\n * {{'chargesStatement' | i18n : 'BITWARDEN'}}\n
\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { BitPayInvoiceRequest } from 'jslib/models/request/bitPayInvoiceRequest';\n\nimport { WebConstants } from '../../services/webConstants';\n\n@Component({\n selector: 'app-add-credit',\n templateUrl: 'add-credit.component.html',\n})\nexport class AddCreditComponent implements OnInit {\n @Input() creditAmount: string;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.PayPal;\n @Input() organizationId: string;\n @Output() onAdded = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild('ppButtonForm', { read: ElementRef, static: true }) ppButtonFormRef: ElementRef;\n\n paymentMethodType = PaymentMethodType;\n ppButtonFormAction = WebConstants.paypal.buttonActionProduction;\n ppButtonBusinessId = WebConstants.paypal.businessIdProduction;\n ppButtonCustomField: string;\n ppLoading = false;\n subject: string;\n returnUrl: string;\n formPromise: Promise;\n\n private userId: string;\n private name: string;\n private email: string;\n\n constructor(private userService: UserService, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private platformUtilsService: PlatformUtilsService) {\n if (platformUtilsService.isDev()) {\n this.ppButtonFormAction = WebConstants.paypal.buttonActionSandbox;\n this.ppButtonBusinessId = WebConstants.paypal.businessIdSandbox;\n }\n }\n\n async ngOnInit() {\n if (this.organizationId != null) {\n if (this.creditAmount == null) {\n this.creditAmount = '20.00';\n }\n this.ppButtonCustomField = 'organization_id:' + this.organizationId;\n const org = await this.userService.getOrganization(this.organizationId);\n if (org != null) {\n this.subject = org.name;\n this.name = org.name;\n }\n } else {\n if (this.creditAmount == null) {\n this.creditAmount = '10.00';\n }\n this.userId = await this.userService.getUserId();\n this.subject = await this.userService.getEmail();\n this.email = this.subject;\n this.ppButtonCustomField = 'user_id:' + this.userId;\n }\n this.ppButtonCustomField += ',account_credit:1';\n this.returnUrl = window.location.href;\n }\n\n async submit() {\n if (this.creditAmount == null || this.creditAmount === '') {\n return;\n }\n\n if (this.method === PaymentMethodType.PayPal) {\n this.ppButtonFormRef.nativeElement.submit();\n this.ppLoading = true;\n return;\n }\n if (this.method === PaymentMethodType.BitPay) {\n try {\n const req = new BitPayInvoiceRequest();\n req.email = this.email;\n req.name = this.name;\n req.credit = true;\n req.amount = this.creditAmountNumber;\n req.organizationId = this.organizationId;\n req.userId = this.userId;\n req.returnUrl = this.returnUrl;\n this.formPromise = this.apiService.postBitPayInvoice(req);\n const bitPayUrl: string = await this.formPromise;\n this.platformUtilsService.launchUri(bitPayUrl);\n } catch { }\n return;\n }\n try {\n this.analytics.eventTrack.next({\n action: 'Added Credit',\n });\n this.onAdded.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n formatAmount() {\n try {\n if (this.creditAmount != null && this.creditAmount !== '') {\n const floatAmount = Math.abs(parseFloat(this.creditAmount));\n if (floatAmount > 0) {\n this.creditAmount = parseFloat((Math.round(floatAmount * 100) / 100).toString())\n .toFixed(2).toString();\n return;\n }\n }\n } catch { }\n this.creditAmount = '';\n }\n\n get creditAmountNumber(): number {\n if (this.creditAmount != null && this.creditAmount !== '') {\n try {\n return parseFloat(this.creditAmount);\n } catch { }\n }\n return null;\n }\n}\n","
\n
\n \n

{{'addCredit' | i18n}}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
$USD
\n \n
\n
\n
\n {{'creditDelayed' | i18n}}\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PaymentRequest } from 'jslib/models/request/paymentRequest';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\n@Component({\n selector: 'app-adjust-payment',\n templateUrl: 'adjust-payment.component.html',\n})\nexport class AdjustPaymentComponent {\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent, { static: true }) taxInfoComponent: TaxInfoComponent;\n\n @Input() currentType?: PaymentMethodType;\n @Input() organizationId: string;\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n paymentMethodType = PaymentMethodType;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async submit() {\n try {\n const request = new PaymentRequest();\n this.formPromise = this.paymentComponent.createPaymentToken().then(result => {\n request.paymentToken = result[0];\n request.paymentMethodType = result[1];\n request.postalCode = this.taxInfoComponent.taxInfo.postalCode;\n request.country = this.taxInfoComponent.taxInfo.country;\n if (this.organizationId == null) {\n return this.apiService.postAccountPayment(request);\n } else {\n request.taxId = this.taxInfoComponent.taxInfo.taxId;\n request.state = this.taxInfoComponent.taxInfo.state;\n request.line1 = this.taxInfoComponent.taxInfo.line1;\n request.line2 = this.taxInfoComponent.taxInfo.line2;\n request.city = this.taxInfoComponent.taxInfo.city;\n request.state = this.taxInfoComponent.taxInfo.state;\n return this.apiService.postOrganizationPayment(this.organizationId, request);\n }\n });\n await this.formPromise;\n this.analytics.eventTrack.next({\n action: this.currentType == null ? 'Added Payment Method' : 'Changed Payment Method',\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedPaymentMethod'));\n this.onAdjusted.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n changeCountry() {\n if (this.taxInfoComponent.taxInfo.country === 'US') {\n this.paymentComponent.hideBank = !this.organizationId;\n } else {\n this.paymentComponent.hideBank = true;\n if (this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n }\n}\n","
\n
\n \n

{{(currentType != null ? 'changePaymentMethod' : 'addPaymentMethod') | i18n}}

\n \n \n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-update-license',\n templateUrl: 'update-license.component.html',\n})\nexport class UpdateLicenseComponent {\n @Input() organizationId: string;\n @Output() onUpdated = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async submit() {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n try {\n const fd = new FormData();\n fd.append('license', files[0]);\n\n let updatePromise: Promise = null;\n if (this.organizationId == null) {\n updatePromise = this.apiService.postAccountLicense(fd);\n } else {\n updatePromise = this.apiService.postOrganizationLicenseUpdate(this.organizationId, fd);\n }\n\n this.formPromise = updatePromise.then(() => {\n return this.apiService.refreshIdentityToken();\n });\n\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Updated License' });\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedLicense'));\n this.onUpdated.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n \n {{'licenseFileDesc' | i18n : (!organizationId ? 'bitwarden_premium_license.json' : 'bitwarden_organization_license.json')}}\n
\n \n \n
\n","export enum ProductType {\n Free = 0,\n Families = 1,\n Teams = 2,\n Enterprise = 3,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { StorageRequest } from 'jslib/models/request/storageRequest';\n\nimport { PaymentResponse } from 'jslib/models/response/paymentResponse';\n\nimport { PaymentComponent } from './payment.component';\n\n@Component({\n selector: 'app-adjust-storage',\n templateUrl: 'adjust-storage.component.html',\n})\nexport class AdjustStorageComponent {\n @Input() storageGbPrice = 0;\n @Input() add = true;\n @Input() organizationId: string;\n @Input() interval = 'year';\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n storageAdjustment = 0;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private router: Router, private activatedRoute: ActivatedRoute) { }\n\n async submit() {\n try {\n const request = new StorageRequest();\n request.storageGbAdjustment = this.storageAdjustment;\n if (!this.add) {\n request.storageGbAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n let response: Promise;\n if (this.organizationId == null) {\n response = this.formPromise = this.apiService.postAccountStorage(request);\n } else {\n response = this.formPromise = this.apiService.postOrganizationStorage(this.organizationId, request);\n }\n const result = await response;\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n } catch {\n paymentFailed = true;\n }\n }\n };\n this.formPromise = action();\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.add ? 'Added Storage' : 'Removed Storage' });\n this.onAdjusted.emit(this.storageAdjustment);\n if (paymentFailed) {\n this.toasterService.popAsync({\n body: this.i18nService.t('couldNotChargeCardPayInvoice'),\n type: 'warning',\n timeout: 10000,\n });\n this.router.navigate(['../billing'], { relativeTo: this.activatedRoute });\n } else {\n this.toasterService.popAsync('success', null,\n this.i18nService.t('adjustedStorage', request.storageGbAdjustment.toString()));\n }\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n get adjustedStorageTotal(): number {\n return this.storageGbPrice * this.storageAdjustment;\n }\n}\n","
\n
\n \n

{{(add ? 'addStorage' : 'removeStorage') | i18n}}

\n
\n
\n \n \n
\n
\n
\n {{'total' | i18n}}: {{storageAdjustment || 0}} GB × {{storageGbPrice | currency:'$'}}\n = {{adjustedStorageTotal\n | currency:'$'}} /{{interval | i18n}}\n
\n \n \n \n {{(add ? 'storageAddNote' : 'storageRemoveNote') | i18n}}\n \n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { UpdateTwoFactorDuoRequest } from 'jslib/models/request/updateTwoFactorDuoRequest';\nimport { TwoFactorDuoResponse } from 'jslib/models/response/twoFactorDuoResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-duo',\n templateUrl: 'two-factor-duo.component.html',\n})\nexport class TwoFactorDuoComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Duo;\n ikey: string;\n skey: string;\n host: string;\n formPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorDuoRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.integrationKey = this.ikey;\n request.secretKey = this.skey;\n request.host = this.host;\n\n return super.enable(async () => {\n if (this.organizationId != null) {\n this.formPromise = this.apiService.putTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n this.formPromise = this.apiService.putTwoFactorDuo(request);\n }\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private processResponse(response: TwoFactorDuoResponse) {\n this.ikey = response.integrationKey;\n this.skey = response.secretKey;\n this.host = response.host;\n this.enabled = response.enabled;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n Duo\n

\n \n
\n \n \n
\n
\n \n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \"\"\n {{'twoFactorDuoIntegrationKey' | i18n}}: {{ikey}}\n
\n {{'twoFactorDuoSecretKey' | i18n}}: {{skey}}\n
\n {{'twoFactorDuoApiHostname' | i18n}}: {{host}}\n
\n \n \"\"\n

{{'twoFactorDuoDesc' | i18n}}

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorProviders } from 'jslib/services/auth.service';\n\nimport { PolicyType } from 'jslib/enums/policyType';\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { TwoFactorAuthenticatorComponent } from './two-factor-authenticator.component';\nimport { TwoFactorDuoComponent } from './two-factor-duo.component';\nimport { TwoFactorEmailComponent } from './two-factor-email.component';\nimport { TwoFactorRecoveryComponent } from './two-factor-recovery.component';\nimport { TwoFactorU2fComponent } from './two-factor-u2f.component';\nimport { TwoFactorYubiKeyComponent } from './two-factor-yubikey.component';\n\n@Component({\n selector: 'app-two-factor-setup',\n templateUrl: 'two-factor-setup.component.html',\n})\nexport class TwoFactorSetupComponent implements OnInit {\n @ViewChild('recoveryTemplate', { read: ViewContainerRef, static: true }) recoveryModalRef: ViewContainerRef;\n @ViewChild('authenticatorTemplate', { read: ViewContainerRef, static: true }) authenticatorModalRef: ViewContainerRef;\n @ViewChild('yubikeyTemplate', { read: ViewContainerRef, static: true }) yubikeyModalRef: ViewContainerRef;\n @ViewChild('u2fTemplate', { read: ViewContainerRef, static: true }) u2fModalRef: ViewContainerRef;\n @ViewChild('duoTemplate', { read: ViewContainerRef, static: true }) duoModalRef: ViewContainerRef;\n @ViewChild('emailTemplate', { read: ViewContainerRef, static: true }) emailModalRef: ViewContainerRef;\n\n organizationId: string;\n providers: any[] = [];\n canAccessPremium: boolean;\n showPolicyWarning = false;\n loading = true;\n\n private modal: ModalComponent = null;\n\n constructor(protected apiService: ApiService, protected userService: UserService,\n protected componentFactoryResolver: ComponentFactoryResolver, protected messagingService: MessagingService,\n protected policyService: PolicyService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n\n for (const key in TwoFactorProviders) {\n if (!TwoFactorProviders.hasOwnProperty(key)) {\n continue;\n }\n\n const p = (TwoFactorProviders as any)[key];\n if (this.filterProvider(p.type)) {\n continue;\n }\n\n this.providers.push({\n type: p.type,\n name: p.name,\n description: p.description,\n enabled: false,\n premium: p.premium,\n sort: p.sort,\n });\n }\n\n this.providers.sort((a: any, b: any) => a.sort - b.sort);\n await this.load();\n }\n\n async load() {\n this.loading = true;\n const providerList = await this.getTwoFactorProviders();\n providerList.data.forEach(p => {\n this.providers.forEach(p2 => {\n if (p.type === p2.type) {\n p2.enabled = p.enabled;\n }\n });\n });\n this.evaluatePolicies();\n this.loading = false;\n }\n\n manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.Authenticator:\n const authComp = this.openModal(this.authenticatorModalRef, TwoFactorAuthenticatorComponent);\n authComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Authenticator);\n });\n break;\n case TwoFactorProviderType.Yubikey:\n const yubiComp = this.openModal(this.yubikeyModalRef, TwoFactorYubiKeyComponent);\n yubiComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Yubikey);\n });\n break;\n case TwoFactorProviderType.Duo:\n const duoComp = this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Duo);\n });\n break;\n case TwoFactorProviderType.Email:\n const emailComp = this.openModal(this.emailModalRef, TwoFactorEmailComponent);\n emailComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Email);\n });\n break;\n case TwoFactorProviderType.U2f:\n const u2fComp = this.openModal(this.u2fModalRef, TwoFactorU2fComponent);\n u2fComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.U2f);\n });\n break;\n default:\n break;\n }\n }\n\n recoveryCode() {\n this.openModal(this.recoveryModalRef, TwoFactorRecoveryComponent);\n }\n\n async premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorProviders();\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type === TwoFactorProviderType.OrganizationDuo;\n }\n\n protected openModal(ref: ViewContainerRef, type: Type): T {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = ref.createComponent(factory).instance;\n const childComponent = this.modal.show(type, ref);\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return childComponent;\n }\n\n protected updateStatus(enabled: boolean, type: TwoFactorProviderType) {\n if (!enabled && this.modal != null) {\n this.modal.close();\n }\n this.providers.forEach(p => {\n if (p.type === type) {\n p.enabled = enabled;\n }\n });\n this.evaluatePolicies();\n }\n\n private async evaluatePolicies() {\n if (this.organizationId == null && this.providers.filter(p => p.enabled).length === 1) {\n const policies = await this.policyService.getAll(PolicyType.TwoFactorAuthentication);\n this.showPolicyWarning = policies != null && policies.some(p => p.enabled);\n } else {\n this.showPolicyWarning = false;\n }\n }\n}\n","
\n

{{'twoStepLogin' | i18n}}

\n
\n

{{'twoStepLoginDesc' | i18n}}

\n

{{'twoStepLoginOrganizationDesc' | i18n}}

\n\n

{{'twoStepLoginRecoveryWarning' | i18n}}

\n \n
\n

\n {{'providers' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n\n {{'twoStepLoginPolicyUserWarning' | i18n}}\n\n
    \n
  • \n
    \n \"\"\n
    \n
    \n

    \n {{p.name}}\n \n \n {{'enabled' | i18n}}\n \n \n {{'premium' | i18n}}\n \n

    \n {{p.description}}\n
    \n
    \n \n
    \n
  • \n
\n\n\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { ExportService } from 'jslib/abstractions/export.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { ExportComponent as BaseExportComponent } from 'jslib/angular/components/export.component';\n\n@Component({\n selector: 'app-export',\n templateUrl: 'export.component.html',\n})\nexport class ExportComponent extends BaseExportComponent {\n organizationId: string;\n\n constructor(cryptoService: CryptoService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, exportService: ExportService,\n eventService: EventService) {\n super(cryptoService, i18nService, platformUtilsService, exportService, eventService, window);\n }\n\n protected saved() {\n super.saved();\n this.masterPassword = null;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('exportSuccess'));\n }\n}\n","
\n
\n

{{'exportVault' | i18n}}

\n
\n

{{'exportMasterPassword' | i18n}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-exposed-passwords-report',\n templateUrl: 'exposed-passwords-report.component.html',\n})\nexport class ExposedPasswordsReportComponent extends CipherReportComponent implements OnInit {\n exposedPasswordMap = new Map();\n\n constructor(protected cipherService: CipherService, protected auditService: AuditService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n ngOnInit() {\n this.checkAccess();\n }\n\n async load() {\n if (await this.checkAccess()) {\n super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const exposedPasswordCiphers: CipherView[] = [];\n const promises: Promise[] = [];\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n const promise = this.auditService.passwordLeaked(c.login.password).then(exposedCount => {\n if (exposedCount > 0) {\n exposedPasswordCiphers.push(c);\n this.exposedPasswordMap.set(c.id, exposedCount);\n }\n });\n promises.push(promise);\n });\n await Promise.all(promises);\n this.ciphers = exposedPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from the org view;\n return true;\n }\n}\n","
\n

{{'exposedPasswordsReport' | i18n}}

\n
\n

{{'exposedPasswordsReportDesc' | i18n}}

\n\n
\n \n {{'noExposedPasswords' | i18n}}\n \n \n \n {{'exposedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'exposedXTimes' | i18n : (exposedPasswordMap.get(c.id) | number)}}\n \n
\n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherCreateRequest } from 'jslib/models/request/cipherCreateRequest';\nimport { CipherRequest } from 'jslib/models/request/cipherRequest';\n\nimport { AddEditComponent as BaseAddEditComponent } from '../../vault/add-edit.component';\n\n@Component({\n selector: 'app-org-vault-add-edit',\n templateUrl: '../../vault/add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n organization: Organization;\n originalCipher: Cipher = null;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n totpService: TotpService, passwordGenerationService: PasswordGenerationService,\n private apiService: ApiService, messagingService: MessagingService,\n eventService: EventService, policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, totpService, passwordGenerationService, messagingService,\n eventService, policyService);\n }\n\n protected allowOwnershipAssignment() {\n if (this.ownershipOptions != null && (this.ownershipOptions.length > 1 || !this.allowPersonal)) {\n if (this.organization != null) {\n return this.cloneMode && this.organization.canManageAllCollections;\n } else {\n return !this.editMode || this.cloneMode;\n }\n }\n return false;\n }\n\n protected loadCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCollections();\n }\n return Promise.resolve(this.collections);\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n const data = new CipherData(response);\n this.originalCipher = new Cipher(data);\n return new Cipher(data);\n }\n\n protected encryptCipher() {\n if (!this.organization.canManageAllCollections) {\n return super.encryptCipher();\n }\n return this.cipherService.encrypt(this.cipher, null, this.originalCipher);\n }\n\n protected async saveCipher(cipher: Cipher) {\n if (!this.organization.canManageAllCollections || cipher.organizationId == null) {\n return super.saveCipher(cipher);\n }\n if (this.editMode && !this.cloneMode) {\n const request = new CipherRequest(cipher);\n return this.apiService.putCipherAdmin(this.cipherId, request);\n } else {\n const request = new CipherCreateRequest(cipher);\n return this.apiService.postCipherAdmin(request);\n }\n }\n\n protected async deleteCipher() {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipher();\n }\n return this.cipher.isDeleted ? this.apiService.deleteCipherAdmin(this.cipherId)\n : this.apiService.putDeleteCipherAdmin(this.cipherId);\n }\n}\n","import { AttachmentResponse } from '../response/attachmentResponse';\n\nexport class AttachmentData {\n id: string;\n url: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(response?: AttachmentResponse) {\n if (response == null) {\n return;\n }\n this.id = response.id;\n this.url = response.url;\n this.fileName = response.fileName;\n this.key = response.key;\n this.size = response.size;\n this.sizeName = response.sizeName;\n }\n}\n","import { CardApi } from '../api/cardApi';\n\nexport class CardData {\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(data?: CardApi) {\n if (data == null) {\n return;\n }\n\n this.cardholderName = data.cardholderName;\n this.brand = data.brand;\n this.number = data.number;\n this.expMonth = data.expMonth;\n this.expYear = data.expYear;\n this.code = data.code;\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldApi } from '../api/fieldApi';\n\nexport class FieldData {\n type: FieldType;\n name: string;\n value: string;\n\n constructor(response?: FieldApi) {\n if (response == null) {\n return;\n }\n this.type = response.type;\n this.name = response.name;\n this.value = response.value;\n }\n}\n","import { IdentityApi } from '../api/identityApi';\n\nexport class IdentityData {\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(data?: IdentityApi) {\n if (data == null) {\n return;\n }\n\n this.title = data.title;\n this.firstName = data.firstName;\n this.middleName = data.middleName;\n this.lastName = data.lastName;\n this.address1 = data.address1;\n this.address2 = data.address2;\n this.address3 = data.address3;\n this.city = data.city;\n this.state = data.state;\n this.postalCode = data.postalCode;\n this.country = data.country;\n this.company = data.company;\n this.email = data.email;\n this.phone = data.phone;\n this.ssn = data.ssn;\n this.username = data.username;\n this.passportNumber = data.passportNumber;\n this.licenseNumber = data.licenseNumber;\n }\n}\n","import { LoginApi } from '../api/loginApi';\n\nimport { LoginUriData } from './loginUriData';\n\nexport class LoginData {\n uris: LoginUriData[];\n username: string;\n password: string;\n passwordRevisionDate: string;\n totp: string;\n\n constructor(data?: LoginApi) {\n if (data == null) {\n return;\n }\n\n this.username = data.username;\n this.password = data.password;\n this.passwordRevisionDate = data.passwordRevisionDate;\n this.totp = data.totp;\n\n if (data.uris) {\n this.uris = data.uris.map(u => new LoginUriData(u));\n }\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriApi } from '../api/loginUriApi';\n\nexport class LoginUriData {\n uri: string;\n match: UriMatchType = null;\n\n constructor(data?: LoginUriApi) {\n if (data == null) {\n return;\n }\n this.uri = data.uri;\n this.match = data.match;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nexport class SecureNoteData {\n type: SecureNoteType;\n\n constructor(data?: SecureNoteApi) {\n if (data == null) {\n return;\n }\n\n this.type = data.type;\n }\n}\n","import { AttachmentData } from '../data/attachmentData';\n\nimport { AttachmentView } from '../view/attachmentView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\n\nimport { Utils } from '../../misc/utils';\n\nexport class Attachment extends Domain {\n id: string;\n url: string;\n size: string;\n sizeName: string;\n key: CipherString;\n fileName: CipherString;\n\n constructor(obj?: AttachmentData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.size = obj.size;\n this.buildDomainModel(this, obj, {\n id: null,\n url: null,\n sizeName: null,\n fileName: null,\n key: null,\n }, alreadyEncrypted, ['id', 'url', 'sizeName']);\n }\n\n async decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new AttachmentView(this), {\n fileName: null,\n }, orgId, encKey);\n\n if (this.key != null) {\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n const orgKey = await cryptoService.getOrgKey(orgId);\n const decValue = await cryptoService.decryptToBytes(this.key, orgKey ?? encKey);\n view.key = new SymmetricCryptoKey(decValue);\n } catch (e) {\n // TODO: error?\n }\n }\n\n return view;\n }\n\n toAttachmentData(): AttachmentData {\n const a = new AttachmentData();\n a.size = this.size;\n this.buildDataModel(this, a, {\n id: null,\n url: null,\n sizeName: null,\n fileName: null,\n key: null,\n }, ['id', 'url', 'sizeName']);\n return a;\n }\n}\n","import { View } from './view';\n\nimport { Password } from '../domain/password';\n\nexport class PasswordHistoryView implements View {\n password: string = null;\n lastUsedDate: Date = null;\n\n constructor(ph?: Password) {\n if (!ph) {\n return;\n }\n\n this.lastUsedDate = ph.lastUsedDate;\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { ImportOption, ImportService } from 'jslib/abstractions/import.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport Swal, { SweetAlertIcon } from 'sweetalert2/dist/sweetalert2.js';\n\n@Component({\n selector: 'app-import',\n templateUrl: 'import.component.html',\n})\nexport class ImportComponent implements OnInit {\n featuredImportOptions: ImportOption[];\n importOptions: ImportOption[];\n format: string = null;\n fileContents: string;\n formPromise: Promise;\n loading: boolean = false;\n\n protected organizationId: string = null;\n protected successNavigate: any[] = ['vault'];\n\n constructor(protected i18nService: I18nService, protected analytics: Angulartics2,\n protected toasterService: ToasterService, protected importService: ImportService,\n protected router: Router, protected platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.setImportOptions();\n this.importOptions.sort((a, b) => {\n if (a.name == null && b.name != null) {\n return -1;\n }\n if (a.name != null && b.name == null) {\n return 1;\n }\n if (a.name == null && b.name == null) {\n return 0;\n }\n\n return this.i18nService.collator ? this.i18nService.collator.compare(a.name, b.name) :\n a.name.localeCompare(b.name);\n });\n }\n\n async submit() {\n this.loading = true;\n\n const importer = this.importService.getImporter(this.format, this.organizationId);\n if (importer === null) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFormat'));\n this.loading = false;\n return;\n }\n\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if ((files == null || files.length === 0) && (this.fileContents == null || this.fileContents === '')) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n this.loading = false;\n return;\n }\n\n let fileContents = this.fileContents;\n if (files != null && files.length > 0) {\n try {\n const content = await this.getFileContents(files[0]);\n if (content != null) {\n fileContents = content;\n }\n } catch { }\n }\n\n if (fileContents == null || fileContents === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n this.loading = false;\n return;\n }\n\n try {\n this.formPromise = this.importService.import(importer, fileContents, this.organizationId);\n const error = await this.formPromise;\n if (error != null) {\n this.error(error);\n this.loading = false;\n return;\n }\n this.analytics.eventTrack.next({\n action: 'Imported Data',\n properties: { label: this.format },\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('importSuccess'));\n this.router.navigate(this.successNavigate);\n } catch { }\n\n this.loading = false;\n }\n\n getFormatInstructionTitle() {\n if (this.format == null) {\n return null;\n }\n\n const results = this.featuredImportOptions.concat(this.importOptions).filter(o => o.id === this.format);\n if (results.length > 0) {\n return this.i18nService.t('instructionsFor', results[0].name);\n }\n return null;\n }\n\n protected setImportOptions() {\n this.featuredImportOptions = [{\n id: null,\n name: '-- ' + this.i18nService.t('select') + ' --',\n }, ...this.importService.featuredImportOptions];\n this.importOptions = this.importService.regularImportOptions;\n }\n\n private async error(error: Error) {\n this.analytics.eventTrack.next({\n action: 'Import Data Failed',\n properties: { label: this.format },\n });\n\n await Swal.fire({\n heightAuto: false,\n buttonsStyling: false,\n icon: 'error' as SweetAlertIcon,\n iconHtml: ``,\n input: 'textarea',\n inputValue: error.message,\n inputAttributes: {\n 'readonly': 'true',\n },\n title: this.i18nService.t('importError'),\n text: this.i18nService.t('importErrorDesc'),\n showConfirmButton: true,\n confirmButtonText: this.i18nService.t('ok'),\n onOpen: popupEl => {\n popupEl.querySelector('.swal2-textarea').scrollTo(0, 0);\n },\n });\n }\n\n private getFileContents(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = evt => {\n if (this.format === 'lastpasscsv' && file.type === 'text/html') {\n const parser = new DOMParser();\n const doc = parser.parseFromString((evt.target as any).result, 'text/html');\n const pre = doc.querySelector('pre');\n if (pre != null) {\n resolve(pre.textContent);\n return;\n }\n reject();\n return;\n }\n\n resolve((evt.target as any).result);\n };\n reader.onerror = () => {\n reject();\n };\n });\n }\n}\n","
\n

{{'importData' | i18n}}

\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/export-your-data/\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-lastpass/\n \n \n Using the KeePassX desktop application, navigate to \"Database\" → \"Export to CSV file\" and save the CSV\n file.\n \n \n In the Avira web vault, go to \"Settings\" → \"My Data\" → \"Export data\" and save the CSV file.\n \n \n In the Blur web vault, click your username at the top and go to \"Settings\" → \"Export Data\", then click\n \"Export CSV\"\n for your \"Accounts\".\n \n \n Using the SaveInCloud desktop application, navigate to \"File\" → \"Export\" → \"As XML\" and save the\n XML file.\n \n \n Using the Padlock desktop application, click the hamburger icon in the top left corner and navigate to\n \"Settings\" →\n \"Export\" button and save the file \"As CSV\".\n \n \n Using the KeePass 2 desktop application, navigate to \"File\" → \"Export\" and select the \"KeePass XML\n (2.x)\" option.\n \n \n Using the Universal Password Manager desktop application, navigate to \"Database\" → \"Export\" and save\n the CSV file.\n \n \n Using the SaferPass browser extension, click the hamburger icon in the top left corner and navigate to\n \"Settings\". Click the \"Export accounts\" button to save the CSV file.\n \n \n Using the Meldium web vault, navigate to \"Settings\". Locate the \"Export data\" function and click \"Show me my\n data\" to save the CSV file.\n \n \n Log into the Keeper web vault (keepersecurity.com/vault). Navigate to \"Backup\" (top right) and find the\n \"Export to .csv File\" option. Click \"Export Now\" to save the CSV file.\n \n \n \n The process is exactly the same as importing from Google Chrome.\n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-chrome/\n \n \n See detailed instructions on our help site at\n \n https://bitwarden.com/help/article/import-from-firefox/.\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-1password/.\n \n \n Using the Password Dragon desktop application, navigate to \"File\" → \"Export\" → \"To XML\". In the\n dialog that pops up select \"All Rows\" and check all fields. Click the \"Export\" button and save the XML file.\n \n \n Using the Enpass desktop application, navigate to \"File\" → \"Export\" → \"As CSV\". Select \"OK\" to the\n warning alert and save the CSV file. Note that the importer only supports files exported while Enpass is set\n to the English language, so adjust your settings accordingly.\n \n \n Using the Enpass 6 desktop application, click the menu button and navigate to \"File\" → \"Export\".\n Select the \".json\" file format option and save the JSON file.\n \n \n Using the Password Safe desktop application, navigate to \"File\" → \"Export To\" → \"XML format...\"\n and save the XML file.\n \n \n Using the Dashlane desktop application, navigate to \"File\" → \"Export\" → \"Unsecured archive\n (readable) in JSON format\" and save the JSON file.\n \n \n Using the mSecure desktop application, navigate to \"File\" → \"Export\" → \"CSV File...\" and save the\n CSV file.\n \n \n Using the Sticky Password desktop application, navigate to \"Menu\" (top right) → \"Export\" → \"Export\n all\". Select the unencrypted format XML option and save the XML file.\n \n \n Using the True Key desktop application, click the gear icon (top right) and then navigate to \"App Settings\".\n Click the \"Export\" button, enter your password and save the CSV file.\n \n \n Log into the Clipperz web application (clipperz.is/app). Click the hamburger menu icon in the top right to\n expand the navigation bar. Navigate to \"Data\" → \"Export\". Click the \"download HTML+JSON\" button to save\n the HTML file.\n \n \n Using the RoboForm Editor desktop application, navigate to \"RoboForm\" (top left) → \"Options\" →\n \"Account & Data\" and click the \"Export\" button. Select all of your data, change the \"Format\" to \"CSV\n file\" and then click the \"Export\" button to save the CSV file. Note: RoboForm only allows you to export\n Logins. Other items will not be exported.\n \n \n Log into the Passbolt web vault and navigate to the \"Passwords\" listing. Select all of the passwords you\n would like to export and click the \"Export\" button at the top of the listing. Choose the \"csv (lastpass)\"\n export format and click the \"Export\" button.\n \n \n Using the Ascendo DataVault desktop application, navigate to \"Tools\" → \"Export\". In the dialog that\n pops up, select the \"All Items (DVX, CSV)\" option. Click the \"Ok\" button to save the CSV file.\n \n \n Using the Password Boss desktop application, navigate to \"File\" → \"Export data\" → \"Password Boss\n JSON - not encrypted\" and save the JSON file.\n \n \n Log into the Zoho web vault (vault.zoho.com). Navigate to \"Tools\" → \"Export Secrets\". Select \"All\n Secrets\" and click the \"Zoho Vault Format CSV\" button. Highlight and copy the data from the textarea. Open a\n text editor like Notepad and paste the data. Save the data from the text editor as\n zoho_export.csv.\n \n \n Using the SplashID Safe desktop application, click on the SplashID blue lock logo in the top right corner.\n Navigate to \"Export\" → \"Export as CSV\" and save the CSV file.\n \n \n Using the PassKeep mobile app, navigate to \"Backup/Restore\". Locate the \"CSV Backup/Restore\" section and\n click \"Backup to CSV\" to save the CSV file.\n \n \n Make sure you have python-keyring and python-gnomekeyring installed. Save the\n GNOME Keyring Import/Export python\n script to your desktop as pw_helper.py. Open terminal and run\n chmod +rx Desktop/pw_helper.py and then\n python Desktop/pw_helper.py export Desktop/my_passwords.json. Then upload the resulting\n my_passwords.json file here to Bitwarden.\n \n \n Using the Password Agent desktop application navigate to \"File\" → \"Export\", select the \"Fields to\n export\" button and check all of the fields, change the \"Output format\" to \"CSV\", and then click the \"Start\"\n button to save the CSV file.\n \n \n Log into the Passpack website vault and navigate to \"Settings\" → \"Export\", then click the \"Download\"\n button to save the CSV file.\n \n \n Open your Passman vault and click on \"Settings\" in the bottom left corner. In the \"Settings\" window switch\n to the \"Export credentials\" tab and choose \"JSON\" as the export type. Enter your vault's passphrase and\n click the \"Export\" button to save the JSON file.\n \n \n Open the Avast Passwords desktop application and navigate to \"Settings\" → \"Import/export data\". Select\n the \"Export\" button for the \"Export to CSV file\" option to save the CSV file.\n \n \n Open the Avast Passwords desktop application and navigate to \"Settings\" → \"Import/export data\". Select\n the \"Export\" button for the \"Export to JSON file\" option to save the JSON file.\n \n \n Open the F-Secure KEY desktop application and navigate to \"Settings\" → \"Export Passwords\". Select the\n \"Export\" button, enter your master password, and save the FSK file.\n \n \n Open the Kaspersky Password Manager desktop application and navigate to \"Settings\" → \"Import/Export\".\n Locate the \"Export to text file\" section and select the \"Export\" button to save the TXT file.\n \n \n Open the RememBear desktop application and navigate to \"Settings\" → \"Account\" → \"Export\".\n Enter your master password and select the \"Export Anyway\" button to save the CSV file.\n \n \n Open the PasswordWallet desktop application and navigate to \"File\" → \"Export\" →\n \"Visible entries to text file\". Enter your password and select the \"Ok\" button to save the TXT file.\n \n \n Open the Myki desktop browser extension and navigate to \"Advanced\" → \"Export Accounts\" and then scan\n the QR code with your mobile device. Various CSV files will then be saved to your computer's\n downloads folder.\n \n \n Export your SecureSafe password safe to a CSV file with a comma delimiter.\n \n \n Open the LogMeOnce browser extension, then navigate to \"Open Menu\" → \"Export To\" and\n select \"CSV File\" to save the CSV file.\n \n \n Open the BlackBerry Password Keeper application, then navigate to \"Settings\" → \"Import/Export\".\n Select \"Export Passwords\" and follow the instructions on screen to save the unencrypted CSV file.\n \n \n Open the Buttercup desktop application and unlock your vault. Right click on your vault's icon and\n select \"Export\" to save the CSV file.\n \n \n Open the Codebook desktop application and log in. Navigate to \"File\" → \"Export all\", then click\n \"Yes\" on the dialog and save the CSV file.\n \n \n Open the newest version of the Encryptr desktop application and allow all of your data to sync.\n Once syncing of your data is complete, the download icon in the top right corner will turn pink. Click\n the download icon and save the CSV file.\n \n \n From the Yoti browser extension, click on \"Settings\", then \"Export Saved Logins\" and save the CSV file.\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-inactive-two-factor-report',\n templateUrl: 'inactive-two-factor-report.component.html',\n})\nexport class InactiveTwoFactorReportComponent extends CipherReportComponent implements OnInit {\n services = new Map();\n cipherDocs = new Map();\n\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n try {\n await this.load2fa();\n } catch { }\n if (this.services.size > 0) {\n const allCiphers = await this.getAllCiphers();\n const inactive2faCiphers: CipherView[] = [];\n const promises: Promise[] = [];\n const docs = new Map();\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || (c.login.totp != null && c.login.totp !== '') || !c.login.hasUris ||\n c.isDeleted) {\n return;\n }\n for (let i = 0; i < c.login.uris.length; i++) {\n const u = c.login.uris[i];\n if (u.uri != null && u.uri !== '') {\n const hostname = Utils.getHostname(u.uri);\n if (hostname != null && this.services.has(hostname)) {\n if (this.services.get(hostname) != null) {\n docs.set(c.id, this.services.get(hostname));\n }\n inactive2faCiphers.push(c);\n break;\n }\n }\n }\n });\n await Promise.all(promises);\n this.ciphers = inactive2faCiphers;\n this.cipherDocs = docs;\n }\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n private async load2fa() {\n if (this.services.size > 0) {\n return;\n }\n const response = await fetch(new Request('https://2fa.directory/api/v2/totp.json'));\n if (response.status !== 200) {\n throw new Error();\n }\n const responseJson = await response.json();\n for (const categoryName in responseJson) {\n if (responseJson.hasOwnProperty(categoryName)) {\n const category = responseJson[categoryName];\n for (const serviceName in category) {\n if (category.hasOwnProperty(serviceName)) {\n const service = category[serviceName];\n if (service.url != null) {\n const hostname = Utils.getHostname(service.url);\n if (hostname != null) {\n this.services.set(hostname, service.doc);\n }\n }\n }\n }\n }\n }\n }\n}\n","
\n

\n {{'inactive2faReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'inactive2faReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noInactive2fa' | i18n}}\n \n \n \n {{'inactive2faFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'instructions' | i18n}}\n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-reused-passwords-report',\n templateUrl: 'reused-passwords-report.component.html',\n})\nexport class ReusedPasswordsReportComponent extends CipherReportComponent implements OnInit {\n passwordUseMap: Map;\n\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const ciphersWithPasswords: CipherView[] = [];\n this.passwordUseMap = new Map();\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n ciphersWithPasswords.push(c);\n if (this.passwordUseMap.has(c.login.password)) {\n this.passwordUseMap.set(c.login.password, this.passwordUseMap.get(c.login.password) + 1);\n } else {\n this.passwordUseMap.set(c.login.password, 1);\n }\n });\n const reusedPasswordCiphers = ciphersWithPasswords.filter(c =>\n this.passwordUseMap.has(c.login.password) && this.passwordUseMap.get(c.login.password) > 1);\n this.ciphers = reusedPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from an organization view\n return true;\n }\n}\n","
\n

\n {{'reusedPasswordsReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'reusedPasswordsReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noReusedPasswords' | i18n}}\n \n \n \n {{'reusedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'reusedXTimes' | i18n : passwordUseMap.get(c.login.password)}}\n \n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-unsecured-websites-report',\n templateUrl: 'unsecured-websites-report.component.html',\n})\nexport class UnsecuredWebsitesReportComponent extends CipherReportComponent implements OnInit {\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const unsecuredCiphers = allCiphers.filter(c => {\n if (c.type !== CipherType.Login || !c.login.hasUris || c.isDeleted) {\n return false;\n }\n return c.login.uris.some(u => u.uri != null && u.uri.indexOf('http://') === 0);\n });\n this.ciphers = unsecuredCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n}\n","
\n

\n {{'unsecuredWebsitesReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'unsecuredWebsitesReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noUnsecuredWebsites' | i18n}}\n \n \n \n {{'unsecuredWebsitesFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-weak-passwords-report',\n templateUrl: 'weak-passwords-report.component.html',\n})\nexport class WeakPasswordsReportComponent extends CipherReportComponent implements OnInit {\n passwordStrengthMap = new Map();\n\n private passwordStrengthCache = new Map();\n\n constructor(protected cipherService: CipherService, protected passwordGenerationService: PasswordGenerationService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const weakPasswordCiphers: CipherView[] = [];\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n const hasUsername = c.login.username != null && c.login.username.trim() !== '';\n const cacheKey = c.login.password + '_____' + (hasUsername ? c.login.username : '');\n if (!this.passwordStrengthCache.has(cacheKey)) {\n let userInput: string[] = [];\n if (hasUsername) {\n const atPosition = c.login.username.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(\n c.login.username.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/))\n .filter(i => i.length >= 3);\n } else {\n userInput = c.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/)\n .filter(i => i.length >= 3);\n }\n }\n const result = this.passwordGenerationService.passwordStrength(c.login.password,\n userInput.length > 0 ? userInput : null);\n this.passwordStrengthCache.set(cacheKey, result.score);\n }\n const score = this.passwordStrengthCache.get(cacheKey);\n if (score != null && score <= 2) {\n this.passwordStrengthMap.set(c.id, this.scoreKey(score));\n weakPasswordCiphers.push(c);\n }\n });\n this.ciphers = weakPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from the org view;\n return true;\n }\n\n private scoreKey(score: number): [string, string] {\n switch (score) {\n case 4:\n return ['strong', 'success'];\n case 3:\n return ['good', 'primary'];\n case 2:\n return ['weak', 'warning'];\n default:\n return ['veryWeak', 'danger'];\n }\n }\n}\n","
\n

\n {{'weakPasswordsReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'weakPasswordsReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noWeakPasswords' | i18n}}\n \n \n \n {{'weakPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{passwordStrengthMap.get(c.id)[0] | i18n}}\n \n
\n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from 'jslib/angular/components/attachments.component';\n\n@Component({\n selector: 'app-vault-attachments',\n templateUrl: 'attachments.component.html',\n})\nexport class AttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = false;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, window);\n }\n\n protected async reupload(attachment: AttachmentView) {\n if (this.showFixOldAttachments(attachment)) {\n await this.reuploadCipherAttachment(attachment, false);\n }\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return attachment.key == null && this.cipher.organizationId == null;\n }\n}\n","
\n
\n
\n
\n

\n {{'attachments' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n
\n {{a.fileName}}\n
\n \n \n {{'attachmentFixDesc' | i18n}}\n \n
\n
\n {{a.sizeName}}\n
\n \n
\n
\n

{{'newAttachment' | i18n}}

\n \n \n {{'maxFileSize' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CiphersComponent as BaseCiphersComponent } from '../../vault/ciphers.component';\n\n@Component({\n selector: 'app-org-vault-ciphers',\n templateUrl: '../../vault/ciphers.component.html',\n})\nexport class CiphersComponent extends BaseCiphersComponent {\n @Output() onEventsClicked = new EventEmitter();\n\n organization: Organization;\n accessEvents = false;\n\n protected allCiphers: CipherView[] = [];\n\n constructor(searchService: SearchService, analytics: Angulartics2,\n toasterService: ToasterService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, cipherService: CipherService,\n private apiService: ApiService, eventService: EventService, totpService: TotpService, userService: UserService) {\n super(searchService, analytics, toasterService, i18nService, platformUtilsService,\n cipherService, eventService, totpService, userService);\n }\n\n async load(filter: (cipher: CipherView) => boolean = null) {\n if (!this.organization.canManageAllCollections) {\n await super.load(filter, this.deleted);\n return;\n }\n this.accessEvents = this.organization.useEvents;\n this.allCiphers = await this.cipherService.getAllFromApiForOrganization(this.organization.id);\n this.applyFilter(filter);\n this.loaded = true;\n }\n\n async applyFilter(filter: (cipher: CipherView) => boolean = null) {\n if (this.organization.canManageAllCollections) {\n await super.applyFilter(filter);\n } else {\n const f = (c: CipherView) => c.organizationId === this.organization.id && (filter == null || filter(c));\n await super.applyFilter(f);\n }\n }\n\n async search(timeout: number = null) {\n if (!this.organization.canManageAllCollections) {\n return super.search(timeout);\n }\n this.searchPending = false;\n let filteredCiphers = this.allCiphers;\n\n if (this.searchText == null || this.searchText.trim().length < 2) {\n this.ciphers = filteredCiphers.filter(c => {\n if (c.isDeleted !== this.deleted) {\n return false;\n }\n return this.filter == null || this.filter(c);\n });\n } else {\n if (this.filter != null) {\n filteredCiphers = filteredCiphers.filter(this.filter);\n }\n this.ciphers = this.searchService.searchCiphersBasic(filteredCiphers, this.searchText, this.deleted);\n }\n await this.resetPaging();\n }\n\n events(c: CipherView) {\n this.onEventsClicked.emit(c);\n }\n\n protected deleteCipher(id: string) {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipher(id, this.deleted);\n }\n return this.deleted ? this.apiService.deleteCipherAdmin(id) : this.apiService.putDeleteCipherAdmin(id);\n }\n\n protected showFixOldAttachments(c: CipherView) {\n return this.organization.canManageAllCollections && c.hasOldAttachments;\n }\n}\n","import {\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { CollectionsComponent as BaseCollectionsComponent } from 'jslib/angular/components/collections.component';\n\n@Component({\n selector: 'app-vault-collections',\n templateUrl: 'collections.component.html',\n})\nexport class CollectionsComponent extends BaseCollectionsComponent implements OnDestroy {\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, cipherService: CipherService) {\n super(collectionService, platformUtilsService, i18nService, cipherService);\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n}\n","
\n
\n
\n
\n

\n {{'collections' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n

{{'collectionsDesc' | i18n}}

\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { GroupingsComponent as BaseGroupingsComponent } from '../../vault/groupings.component';\n\n@Component({\n selector: 'app-org-vault-groupings',\n templateUrl: '../../vault/groupings.component.html',\n})\nexport class GroupingsComponent extends BaseGroupingsComponent {\n organization: Organization;\n\n constructor(collectionService: CollectionService, folderService: FolderService,\n storageService: StorageService, userService: UserService,\n private apiService: ApiService, private i18nService: I18nService) {\n super(collectionService, folderService, storageService, userService);\n }\n\n async loadCollections() {\n if (!this.organization.canManageAllCollections) {\n await super.loadCollections(this.organization.id);\n return;\n }\n\n const collections = await this.apiService.getCollections(this.organization.id);\n if (collections != null && collections.data != null && collections.data.length) {\n const collectionDomains = collections.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collectionDomains);\n } else {\n this.collections = [];\n }\n\n const unassignedCollection = new CollectionView();\n unassignedCollection.name = this.i18nService.t('unassigned');\n unassignedCollection.id = 'unassigned';\n unassignedCollection.organizationId = this.organization.id;\n unassignedCollection.readOnly = true;\n this.collections.push(unassignedCollection);\n this.nestedCollections = await this.collectionService.getAllNested(this.collections);\n }\n\n collapse(grouping: CollectionView) {\n super.collapse(grouping, 'org_');\n }\n\n isCollapsed(grouping: CollectionView) {\n return super.isCollapsed(grouping, 'org_');\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n Input,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { BulkDeleteComponent } from './bulk-delete.component';\nimport { BulkMoveComponent } from './bulk-move.component';\nimport { BulkRestoreComponent } from './bulk-restore.component';\nimport { BulkShareComponent } from './bulk-share.component';\nimport { CiphersComponent } from './ciphers.component';\n\n@Component({\n selector: 'app-vault-bulk-actions',\n templateUrl: 'bulk-actions.component.html',\n})\nexport class BulkActionsComponent {\n @Input() ciphersComponent: CiphersComponent;\n @Input() modal: ModalComponent;\n @Input() deleted: boolean;\n @Input() organization: Organization;\n\n @ViewChild('bulkDeleteTemplate', { read: ViewContainerRef, static: true }) bulkDeleteModalRef: ViewContainerRef;\n @ViewChild('bulkRestoreTemplate', { read: ViewContainerRef, static: true }) bulkRestoreModalRef: ViewContainerRef;\n @ViewChild('bulkMoveTemplate', { read: ViewContainerRef, static: true }) bulkMoveModalRef: ViewContainerRef;\n @ViewChild('bulkShareTemplate', { read: ViewContainerRef, static: true }) bulkShareModalRef: ViewContainerRef;\n\n constructor(private toasterService: ToasterService,\n private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver) { }\n\n bulkDelete() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkDeleteModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkDeleteComponent, this.bulkDeleteModalRef);\n\n childComponent.permanent = this.deleted;\n childComponent.cipherIds = selectedIds;\n childComponent.organization = this.organization;\n childComponent.onDeleted.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n bulkRestore() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkRestoreModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkRestoreComponent, this.bulkRestoreModalRef);\n\n childComponent.cipherIds = selectedIds;\n childComponent.onRestored.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n bulkShare() {\n const selectedCiphers = this.ciphersComponent.getSelected();\n if (selectedCiphers.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkShareModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkShareComponent, this.bulkShareModalRef);\n\n childComponent.ciphers = selectedCiphers;\n childComponent.onShared.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n bulkMove() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkMoveModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkMoveComponent, this.bulkMoveModalRef);\n\n childComponent.cipherIds = selectedIds;\n childComponent.onMoved.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n selectAll(select: boolean) {\n this.ciphersComponent.selectAll(select);\n }\n}\n","
\n \n
\n \n \n \n \n
\n \n \n
\n
\n\n\n\n\n\n","import { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { SendFileData } from '../data/sendFileData';\n\nimport { SendFileView } from '../view/sendFileView';\n\nexport class SendFile extends Domain {\n id: string;\n size: string;\n sizeName: string;\n fileName: CipherString;\n\n constructor(obj?: SendFileData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.size = obj.size;\n this.buildDomainModel(this, obj, {\n id: null,\n sizeName: null,\n fileName: null,\n }, alreadyEncrypted, ['id', 'sizeName']);\n }\n\n async decrypt(key: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new SendFileView(this), {\n fileName: null,\n }, null, key);\n return view;\n }\n}\n","import { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { SendTextData } from '../data/sendTextData';\n\nimport { SendTextView } from '../view/sendTextView';\n\nexport class SendText extends Domain {\n text: CipherString;\n hidden: boolean;\n\n constructor(obj?: SendTextData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.hidden = obj.hidden;\n this.buildDomainModel(this, obj, {\n text: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(key: SymmetricCryptoKey): Promise {\n return this.decryptObj(new SendTextView(this), {\n text: null,\n }, null, key);\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class ErrorResponse extends BaseResponse {\n message: string;\n validationErrors: { [key: string]: string[]; };\n statusCode: number;\n\n constructor(response: any, status: number, identityResponse?: boolean) {\n super(response);\n let errorModel = null;\n if (response != null) {\n const responseErrorModel = this.getResponseProperty('ErrorModel');\n if (responseErrorModel && identityResponse) {\n errorModel = responseErrorModel;\n } else {\n errorModel = response;\n }\n }\n\n if (errorModel) {\n this.message = this.getResponseProperty('Message', errorModel);\n this.validationErrors = this.getResponseProperty('ValidationErrors', errorModel);\n } else {\n if (status === 429) {\n this.message = 'Rate limit exceeded. Try again later.';\n }\n }\n this.statusCode = status;\n }\n\n getSingleMessage(): string {\n if (this.validationErrors == null) {\n return this.message;\n }\n for (const key in this.validationErrors) {\n if (!this.validationErrors.hasOwnProperty(key)) {\n continue;\n }\n if (this.validationErrors[key].length) {\n return this.validationErrors[key][0];\n }\n }\n return this.message;\n }\n\n getAllMessages(): string[] {\n const messages: string[] = [];\n if (this.validationErrors == null) {\n return messages;\n }\n for (const key in this.validationErrors) {\n if (!this.validationErrors.hasOwnProperty(key)) {\n continue;\n }\n this.validationErrors[key].forEach((item: string) => {\n let prefix = '';\n if (key.indexOf('[') > -1 && key.indexOf(']') > -1) {\n const lastSep = key.lastIndexOf('.');\n prefix = key.substr(0, lastSep > -1 ? lastSep : key.length) + ': ';\n }\n messages.push(prefix + item);\n });\n }\n return messages;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherWithIdRequest extends CipherRequest {\n id: string;\n\n constructor(cipher: Cipher) {\n super(cipher);\n this.id = cipher.id;\n }\n}\n","import { Folder } from '../domain/folder';\n\nexport class FolderRequest {\n name: string;\n\n constructor(folder: Folder) {\n this.name = folder.name ? folder.name.encryptedString : null;\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\n@Directive({\n selector: '[appSelectCopy]',\n})\nexport class SelectCopyDirective {\n constructor(private el: ElementRef, private platformUtilsService: PlatformUtilsService) { }\n\n @HostListener('copy') onCopy() {\n if (window == null) {\n return;\n }\n let copyText = '';\n const selection = window.getSelection();\n for (let i = 0; i < selection.rangeCount; i++) {\n const range = selection.getRangeAt(i);\n const text = range.toString();\n\n // The selection should only contain one line of text. In some cases however, the\n // selection contains newlines and space characters from the indentation of following\n // sibling nodes. To avoid copying passwords containing trailing newlines and spaces\n // that aren't part of the password, the selection has to be trimmed.\n let stringEndPos = text.length;\n const newLinePos = text.search(/(?:\\r\\n|\\r|\\n)/);\n if (newLinePos > -1) {\n const otherPart = text.substr(newLinePos).trim();\n if (otherPart === '') {\n stringEndPos = newLinePos;\n }\n }\n copyText += text.substring(0, stringEndPos);\n }\n this.platformUtilsService.copyToClipboard(copyText, { window: window });\n }\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\n/**\n * A pipe that sanitizes HTML and highlights numbers and special characters (in different colors each).\n */\n@Pipe({ name: 'colorPassword' })\nexport class ColorPasswordPipe implements PipeTransform {\n transform(password: string) {\n let colorizedPassword = '';\n for (let i = 0; i < password.length; i++) {\n let character = password[i];\n let isSpecial = false;\n // Sanitize HTML first.\n switch (character) {\n case '&':\n character = '&';\n isSpecial = true;\n break;\n case '<':\n character = '<';\n isSpecial = true;\n break;\n case '>':\n character = '>';\n isSpecial = true;\n break;\n case ' ':\n character = ' ';\n isSpecial = true;\n break;\n default:\n break;\n }\n let type = 'letter';\n if (isSpecial || character.match(/[^\\w ]/)) {\n type = 'special';\n } else if (character.match(/\\d/)) {\n type = 'number';\n }\n colorizedPassword += '' + character + '';\n }\n return colorizedPassword;\n }\n}\n","import { FolderResponse } from '../response/folderResponse';\n\nexport class FolderData {\n id: string;\n userId: string;\n name: string;\n revisionDate: string;\n\n constructor(response: FolderResponse, userId: string) {\n this.userId = userId;\n this.name = response.name;\n this.id = response.id;\n this.revisionDate = response.revisionDate;\n }\n}\n","import { FolderData } from '../data/folderData';\n\nimport { FolderView } from '../view/folderView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nexport class Folder extends Domain {\n id: string;\n name: CipherString;\n revisionDate: Date;\n\n constructor(obj?: FolderData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n name: null,\n }, alreadyEncrypted, ['id']);\n\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n }\n\n decrypt(): Promise {\n return this.decryptObj(new FolderView(this), {\n name: null,\n }, null);\n }\n}\n","import { AttachmentResponse } from './attachmentResponse';\nimport { BaseResponse } from './baseResponse';\nimport { PasswordHistoryResponse } from './passwordHistoryResponse';\n\nimport { CardApi } from '../api/cardApi';\nimport { FieldApi } from '../api/fieldApi';\nimport { IdentityApi } from '../api/identityApi';\nimport { LoginApi } from '../api/loginApi';\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nexport class CipherResponse extends BaseResponse {\n id: string;\n organizationId: string;\n folderId: string;\n type: number;\n name: string;\n notes: string;\n fields: FieldApi[];\n login: LoginApi;\n card: CardApi;\n identity: IdentityApi;\n secureNote: SecureNoteApi;\n favorite: boolean;\n edit: boolean;\n viewPassword: boolean;\n organizationUseTotp: boolean;\n revisionDate: string;\n attachments: AttachmentResponse[];\n passwordHistory: PasswordHistoryResponse[];\n collectionIds: string[];\n deletedDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.folderId = this.getResponseProperty('FolderId') || null;\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.notes = this.getResponseProperty('Notes');\n this.favorite = this.getResponseProperty('Favorite') || false;\n this.edit = !!this.getResponseProperty('Edit');\n if (this.getResponseProperty('ViewPassword') == null) {\n this.viewPassword = true;\n } else {\n this.viewPassword = this.getResponseProperty('ViewPassword');\n }\n this.organizationUseTotp = this.getResponseProperty('OrganizationUseTotp');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n this.collectionIds = this.getResponseProperty('CollectionIds');\n this.deletedDate = this.getResponseProperty('DeletedDate');\n\n const login = this.getResponseProperty('Login');\n if (login != null) {\n this.login = new LoginApi(login);\n }\n\n const card = this.getResponseProperty('Card');\n if (card != null) {\n this.card = new CardApi(card);\n }\n\n const identity = this.getResponseProperty('Identity');\n if (identity != null) {\n this.identity = new IdentityApi(identity);\n }\n\n const secureNote = this.getResponseProperty('SecureNote');\n if (secureNote != null) {\n this.secureNote = new SecureNoteApi(secureNote);\n }\n\n const fields = this.getResponseProperty('Fields');\n if (fields != null) {\n this.fields = fields.map((f: any) => new FieldApi(f));\n }\n\n const attachments = this.getResponseProperty('Attachments');\n if (attachments != null) {\n this.attachments = attachments.map((a: any) => new AttachmentResponse(a));\n }\n\n const passwordHistory = this.getResponseProperty('PasswordHistory');\n if (passwordHistory != null) {\n this.passwordHistory = passwordHistory.map((h: any) => new PasswordHistoryResponse(h));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { ProfileOrganizationResponse } from './profileOrganizationResponse';\n\nexport class ProfileResponse extends BaseResponse {\n id: string;\n name: string;\n email: string;\n emailVerified: boolean;\n masterPasswordHint: string;\n premium: boolean;\n culture: string;\n twoFactorEnabled: boolean;\n key: string;\n privateKey: string;\n securityStamp: string;\n organizations: ProfileOrganizationResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.emailVerified = this.getResponseProperty('EmailVerified');\n this.masterPasswordHint = this.getResponseProperty('MasterPasswordHint');\n this.premium = this.getResponseProperty('Premium');\n this.culture = this.getResponseProperty('Culture');\n this.twoFactorEnabled = this.getResponseProperty('TwoFactorEnabled');\n this.key = this.getResponseProperty('Key');\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.securityStamp = this.getResponseProperty('SecurityStamp');\n\n const organizations = this.getResponseProperty('Organizations');\n if (organizations != null) {\n this.organizations = organizations.map((o: any) => new ProfileOrganizationResponse(o));\n }\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class SendFileApi extends BaseResponse {\n id: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.id = this.getResponseProperty('Id');\n this.fileName = this.getResponseProperty('FileName');\n this.key = this.getResponseProperty('Key');\n this.size = this.getResponseProperty('Size');\n this.sizeName = this.getResponseProperty('SizeName');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class SendTextApi extends BaseResponse {\n text: string;\n hidden: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.text = this.getResponseProperty('Text');\n this.hidden = this.getResponseProperty('Hidden') || false;\n }\n}\n","import { EnvironmentService } from './environment.service';\n\nexport abstract class NotificationsService {\n init: (environmentService: EnvironmentService) => Promise;\n updateConnection: (sync?: boolean) => Promise;\n reconnectFromActivity: () => Promise;\n disconnectFromInactivity: () => Promise;\n}\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 525;","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-frontend-layout',\n templateUrl: 'frontend-layout.component.html',\n})\nexport class FrontendLayoutComponent implements OnInit, OnDestroy {\n version: string;\n year: string = '2015';\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.year = new Date().getFullYear().toString();\n this.version = this.platformUtilsService.getApplicationVersion();\n document.body.classList.add('layout_frontend');\n }\n\n ngOnDestroy() {\n document.body.classList.remove('layout_frontend');\n }\n}\n","\n
\n © {{year}}, Bitwarden Inc.\n
{{'versionNumber' | i18n : version}}\n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nconst BroadcasterSubscriptionId = 'OrganizationLayoutComponent';\n\n@Component({\n selector: 'app-organization-layout',\n templateUrl: 'organization-layout.component.html',\n})\nexport class OrganizationLayoutComponent implements OnInit, OnDestroy {\n organization: Organization;\n businessTokenPromise: Promise;\n private organizationId: string;\n private businessUrl: string;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private broadcasterService: BroadcasterService, private ngZone: NgZone,\n private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private environmentService: EnvironmentService) { }\n\n ngOnInit() {\n this.businessUrl = 'https://portal.bitwarden.com';\n if (this.environmentService.enterpriseUrl != null) {\n this.businessUrl = this.environmentService.enterpriseUrl;\n } else if (this.environmentService.baseUrl != null) {\n this.businessUrl = this.environmentService.baseUrl + '/portal';\n }\n\n document.body.classList.remove('layout_frontend');\n this.route.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n });\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'updatedOrgLicense':\n await this.load();\n break;\n }\n });\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async load() {\n this.organization = await this.userService.getOrganization(this.organizationId);\n }\n\n async goToBusinessPortal() {\n if (this.businessTokenPromise != null) {\n return;\n }\n try {\n this.businessTokenPromise = this.apiService.getEnterprisePortalSignInToken();\n const token = await this.businessTokenPromise;\n if (token != null) {\n const userId = await this.userService.getUserId();\n this.platformUtilsService.launchUri(this.businessUrl + '/login?userId=' + userId +\n '&token=' + (window as any).encodeURIComponent(token) + '&organizationId=' + this.organization.id);\n }\n } catch { }\n this.businessTokenPromise = null;\n }\n\n get showMenuBar() {\n return this.showManageTab || this.showToolsTab || this.organization.isOwner;\n }\n\n get showManageTab(): boolean {\n return this.organization.canManageUsers ||\n this.organization.canManageAssignedCollections ||\n this.organization.canManageAllCollections ||\n this.organization.canManageGroups ||\n this.organization.canManagePolicies ||\n this.organization.canAccessEventLogs;\n }\n\n get showToolsTab(): boolean {\n return this.organization.canAccessImportExport || this.organization.canAccessReports;\n }\n\n get showBusinessPortalButton(): boolean {\n return this.organization.useBusinessPortal && this.organization.canAccessBusinessPortal;\n }\n\n get toolsRoute(): string {\n return this.organization.canAccessImportExport ?\n 'tools/import' :\n 'tools/exposed-passwords-report';\n }\n\n get manageRoute(): string {\n let route: string;\n switch (true) {\n case this.organization.canManageUsers:\n route = 'manage/people';\n break;\n case this.organization.canManageAssignedCollections || this.organization.canManageAllCollections:\n route = 'manage/collections';\n break;\n case this.organization.canManageGroups:\n route = 'manage/groups';\n break;\n case this.organization.canManagePolicies:\n route = 'manage/policies';\n break;\n case this.organization.canAccessEventLogs:\n route = 'manage/events';\n break;\n }\n return route;\n }\n}\n","\n
\n
\n
\n
\n \n
\n {{organization.name}}\n {{'organization' | i18n}}\n
\n
\n
\n \n {{'organizationIsDisabled' | i18n}}\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\n@Component({\n selector: 'app-user-layout',\n templateUrl: 'user-layout.component.html',\n})\nexport class UserLayoutComponent implements OnInit {\n ngOnInit() {\n document.body.classList.remove('layout_frontend');\n }\n}\n","\n\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { EmergencyAccessAcceptRequest } from 'jslib/models/request/emergencyAccessAcceptRequest';\n\n@Component({\n selector: 'app-accept-emergency',\n templateUrl: 'accept-emergency.component.html',\n})\nexport class AcceptEmergencyComponent implements OnInit {\n loading = true;\n authed = false;\n name: string;\n email: string;\n actionPromise: Promise;\n\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService,\n private stateService: StateService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n await this.stateService.remove('emergencyInvitation');\n let error = qParams.id == null || qParams.name == null || qParams.email == null || qParams.token == null;\n let errorMessage: string = null;\n if (!error) {\n this.authed = await this.userService.isAuthenticated();\n if (this.authed) {\n const request = new EmergencyAccessAcceptRequest();\n request.token = qParams.token;\n try {\n this.actionPromise = this.apiService.postEmergencyAccessAccept(qParams.id, request);\n await this.actionPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('inviteAccepted'),\n body: this.i18nService.t('emergencyInviteAcceptedDesc'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/vault']);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.stateService.save('emergencyInvitation', qParams);\n this.email = qParams.email;\n this.name = qParams.name;\n if (this.name != null) {\n // Fix URL encoding of space issue with Angular\n this.name = this.name.replace(/\\+/g, ' ');\n }\n }\n }\n\n if (error) {\n const toast: Toast = {\n type: 'error',\n title: null,\n body: errorMessage != null ? this.i18nService.t('emergencyInviteAcceptFailedShort', errorMessage) :\n this.i18nService.t('emergencyInviteAcceptFailed'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/']);\n }\n\n this.loading = false;\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n
\n
\n
\n

{{'emergencyAccess' | i18n}}

\n
\n
\n

\n {{name}}\n

\n

{{'acceptEmergencyAccess' | i18n}}

\n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { OrganizationUserAcceptRequest } from 'jslib/models/request/organizationUserAcceptRequest';\n\n@Component({\n selector: 'app-accept-organization',\n templateUrl: 'accept-organization.component.html',\n})\nexport class AcceptOrganizationComponent implements OnInit {\n loading = true;\n authed = false;\n orgName: string;\n email: string;\n actionPromise: Promise;\n\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService,\n private stateService: StateService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n await this.stateService.remove('orgInvitation');\n let error = qParams.organizationId == null || qParams.organizationUserId == null || qParams.token == null;\n let errorMessage: string = null;\n if (!error) {\n this.authed = await this.userService.isAuthenticated();\n if (this.authed) {\n const request = new OrganizationUserAcceptRequest();\n request.token = qParams.token;\n try {\n this.actionPromise = this.apiService.postOrganizationUserAccept(qParams.organizationId,\n qParams.organizationUserId, request);\n await this.actionPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('inviteAccepted'),\n body: this.i18nService.t('inviteAcceptedDesc'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/vault']);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.stateService.save('orgInvitation', qParams);\n this.email = qParams.email;\n this.orgName = qParams.organizationName;\n if (this.orgName != null) {\n // Fix URL encoding of space issue with Angular\n this.orgName = this.orgName.replace(/\\+/g, ' ');\n }\n }\n }\n\n if (error) {\n const toast: Toast = {\n type: 'error',\n title: null,\n body: errorMessage != null ? this.i18nService.t('inviteAcceptFailedShort', errorMessage) :\n this.i18nService.t('inviteAcceptFailed'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/']);\n }\n\n this.loading = false;\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n
\n
\n
\n

{{'joinOrganization' | i18n}}

\n
\n
\n

\n {{orgName}}\n {{email}}\n

\n

{{'joinOrganizationDesc' | i18n}}

\n
\n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { HintComponent as BaseHintComponent } from 'jslib/angular/components/hint.component';\n\n@Component({\n selector: 'app-hint',\n templateUrl: 'hint.component.html',\n})\nexport class HintComponent extends BaseHintComponent {\n constructor(router: Router, i18nService: I18nService,\n apiService: ApiService, platformUtilsService: PlatformUtilsService) {\n super(router, i18nService, apiService, platformUtilsService);\n }\n}\n","
\n
\n
\n

{{'passwordHint' | i18n}}

\n
\n
\n
\n \n \n {{'enterEmailToGetHint' | i18n}}\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { RouterService } from '../services/router.service';\n\nimport { LockComponent as BaseLockComponent } from 'jslib/angular/components/lock.component';\n\n@Component({\n selector: 'app-lock',\n templateUrl: 'lock.component.html',\n})\nexport class LockComponent extends BaseLockComponent {\n constructor(router: Router, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, messagingService: MessagingService,\n userService: UserService, cryptoService: CryptoService,\n storageService: StorageService, vaultTimeoutService: VaultTimeoutService,\n environmentService: EnvironmentService, private routerService: RouterService,\n stateService: StateService, apiService: ApiService) {\n super(router, i18nService, platformUtilsService, messagingService, userService, cryptoService,\n storageService, vaultTimeoutService, environmentService, stateService, apiService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n this.router.navigate(['/']);\n } else if (await this.cryptoService.hasKey()) {\n this.router.navigate(['vault']);\n }\n\n this.onSuccessfulSubmit = () => {\n const previousUrl = this.routerService.getPreviousUrl();\n if (previousUrl !== '/' && previousUrl.indexOf('lock') === -1) {\n this.successRoute = previousUrl;\n }\n this.router.navigate([this.successRoute]);\n };\n }\n}\n","
\n
\n
\n

\n \n

\n

{{'yourVaultIsLocked' | i18n}}

\n
\n
\n
\n \n
\n \n \n
\n \n {{'loggedInAsEmailOn' | i18n : email : webVaultHostname}}\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { LoginComponent as BaseLoginComponent } from 'jslib/angular/components/login.component';\n\n@Component({\n selector: 'app-login',\n templateUrl: 'login.component.html',\n})\nexport class LoginComponent extends BaseLoginComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, private route: ActivatedRoute,\n storageService: StorageService, stateService: StateService,\n platformUtilsService: PlatformUtilsService, environmentService: EnvironmentService,\n passwordGenerationService: PasswordGenerationService, cryptoFunctionService: CryptoFunctionService) {\n super(authService, router,\n platformUtilsService, i18nService,\n stateService, environmentService,\n passwordGenerationService, cryptoFunctionService,\n storageService);\n this.onSuccessfulLoginNavigate = this.goAfterLogIn;\n }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.email != null && qParams.email.indexOf('@') > -1) {\n this.email = qParams.email;\n }\n if (qParams.premium != null) {\n this.stateService.save('loginRedirect', { route: '/settings/premium' });\n } else if (qParams.org != null) {\n this.stateService.save('loginRedirect',\n { route: '/settings/create-organization', qParams: { plan: qParams.org } });\n }\n await super.ngOnInit();\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async goAfterLogIn() {\n const orgInvite = await this.stateService.get('orgInvitation');\n const emergencyInvite = await this.stateService.get('emergencyInvitation');\n if (orgInvite != null) {\n this.router.navigate(['accept-organization'], { queryParams: orgInvite });\n } else if (emergencyInvite != null) {\n this.router.navigate(['accept-emergency'], { queryParams: emergencyInvite });\n } else {\n const loginRedirect = await this.stateService.get('loginRedirect');\n if (loginRedirect != null) {\n this.router.navigate([loginRedirect.route], { queryParams: loginRedirect.qParams });\n await this.stateService.remove('loginRedirect');\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n }\n}\n","
\n
\n
\n \n

{{'loginOrCreateNewAccount' | i18n}}

\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n \n {{'getMasterPasswordHint' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n \n \n {{'createAccount' | i18n}}\n \n
\n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { DeleteRecoverRequest } from 'jslib/models/request/deleteRecoverRequest';\n\n@Component({\n selector: 'app-recover-delete',\n templateUrl: 'recover-delete.component.html',\n})\nexport class RecoverDeleteComponent {\n email: string;\n formPromise: Promise;\n\n constructor(private router: Router, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private i18nService: I18nService) {\n }\n\n async submit() {\n try {\n const request = new DeleteRecoverRequest();\n request.email = this.email.trim().toLowerCase();\n this.formPromise = this.apiService.postAccountRecoverDelete(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Started Delete Recovery' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deleteRecoverEmailSent'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'deleteAccount' | i18n}}

\n
\n
\n

{{'deleteRecoverDesc' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { TwoFactorRecoveryRequest } from 'jslib/models/request/twoFactorRecoveryRequest';\n\n@Component({\n selector: 'app-recover-two-factor',\n templateUrl: 'recover-two-factor.component.html',\n})\nexport class RecoverTwoFactorComponent {\n email: string;\n masterPassword: string;\n recoveryCode: string;\n formPromise: Promise;\n\n constructor(private router: Router, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private i18nService: I18nService, private cryptoService: CryptoService,\n private authService: AuthService) { }\n\n async submit() {\n try {\n const request = new TwoFactorRecoveryRequest();\n request.recoveryCode = this.recoveryCode.replace(/\\s/g, '').toLowerCase();\n request.email = this.email.trim().toLowerCase();\n const key = await this.authService.makePreloginKey(this.masterPassword, request.email);\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n this.formPromise = this.apiService.postTwoFactorRecover(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Recovered 2FA' });\n this.toasterService.popAsync('success', null, this.i18nService.t('twoStepRecoverDisabled'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'recoverAccountTwoStep' | i18n}}

\n
\n
\n

{{'recoverAccountTwoStepDesc' | i18n}}\n {{'learnMore' | i18n}}\n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\n\nimport { RegisterComponent as BaseRegisterComponent } from 'jslib/angular/components/register.component';\n\nimport { MasterPasswordPolicyOptions } from 'jslib/models/domain/masterPasswordPolicyOptions';\nimport { Policy } from 'jslib/models/domain/policy';\n\nimport { PolicyData } from 'jslib/models/data/policyData';\nimport { ReferenceEventRequest } from 'jslib/models/request/referenceEventRequest';\n\n@Component({\n selector: 'app-register',\n templateUrl: 'register.component.html',\n})\nexport class RegisterComponent extends BaseRegisterComponent {\n showCreateOrgMessage = false;\n layout = '';\n enforcedPolicyOptions: MasterPasswordPolicyOptions;\n\n private policies: Policy[];\n\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, cryptoService: CryptoService,\n apiService: ApiService, private route: ActivatedRoute,\n stateService: StateService, platformUtilsService: PlatformUtilsService,\n passwordGenerationService: PasswordGenerationService, private policyService: PolicyService) {\n super(authService, router, i18nService, cryptoService, apiService, stateService, platformUtilsService,\n passwordGenerationService);\n }\n\n getPasswordScoreAlertDisplay() {\n if (this.enforcedPolicyOptions == null) {\n return '';\n }\n\n let str: string;\n switch (this.enforcedPolicyOptions.minComplexity) {\n case 4:\n str = this.i18nService.t('strong');\n break;\n case 3:\n str = this.i18nService.t('good');\n break;\n default:\n str = this.i18nService.t('weak');\n break;\n }\n return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';\n }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(qParams => {\n this.referenceData = new ReferenceEventRequest();\n if (qParams.email != null && qParams.email.indexOf('@') > -1) {\n this.email = qParams.email;\n }\n if (qParams.premium != null) {\n this.stateService.save('loginRedirect', { route: '/settings/premium' });\n } else if (qParams.org != null) {\n this.showCreateOrgMessage = true;\n this.referenceData.flow = qParams.org;\n this.stateService.save('loginRedirect',\n { route: '/settings/create-organization', qParams: { plan: qParams.org } });\n }\n if (qParams.layout != null) {\n this.layout = this.referenceData.layout = qParams.layout;\n }\n if (qParams.reference != null) {\n this.referenceData.id = qParams.reference;\n } else {\n this.referenceData.id = ('; ' + document.cookie).split('; reference=').pop().split(';').shift();\n }\n if (this.referenceData.id === '') {\n this.referenceData.id = null;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n const invite = await this.stateService.get('orgInvitation');\n if (invite != null) {\n try {\n const policies = await this.apiService.getPoliciesByToken(invite.organizationId, invite.token,\n invite.email, invite.organizationUserId);\n if (policies.data != null) {\n const policiesData = policies.data.map(p => new PolicyData(p));\n this.policies = policiesData.map(p => new Policy(p));\n }\n } catch { }\n }\n\n if (this.policies != null) {\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(this.policies);\n }\n }\n\n async submit() {\n if (this.enforcedPolicyOptions != null &&\n !this.policyService.evaluateMasterPassword(this.masterPasswordScore, this.masterPassword,\n this.enforcedPolicyOptions)) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPasswordPolicyRequirementsNotMet'));\n return;\n }\n\n await super.submit();\n }\n}\n","
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Companies globally trust Bitwarden for password management.

\n

Start your 7-day free trial!

\n

Quickly deploy your organization

\n

Use Bitwarden across all platforms

\n

Collaborate and share securely

\n
\n
\n \n \"Wired\"\n \n
\n
\n \"Bitwarden has become a popular choice among open-source software advocates. After using\n it for a few months, I can see why.\" - February 2020\n
\n
\n
\n
\n

Enterprise 3 layout

\n
\n
\n

Enterprise 4 layout

\n
\n
\n
\n
\n
\n
\n

{{'createAccount' | i18n}}

\n
\n
\n \n {{'createOrganizationCreatePersonalAccount' | i18n}}\n \n
\n \n \n {{'emailAddressDesc' | i18n}}\n
\n
\n \n \n {{'yourNameDesc' | i18n}}\n
\n
\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n {{'masterPassDesc' | i18n}}\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n {{'masterPassHintDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n SetPasswordComponent as BaseSetPasswordComponent,\n} from 'jslib/angular/components/set-password.component';\n\n@Component({\n selector: 'app-set-password',\n templateUrl: 'set-password.component.html',\n})\nexport class SetPasswordComponent extends BaseSetPasswordComponent {\n constructor(apiService: ApiService, i18nService: I18nService,\n cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService, router: Router,\n syncService: SyncService, route: ActivatedRoute) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService, router, apiService, syncService, route);\n }\n}\n","
\n
\n
\n

{{'setMasterPassword' | i18n}}

\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n {{'ssoCompleteRegistration' | i18n}}\n
\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n {{'masterPassDesc' | i18n}}\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n {{'masterPassHintDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { SsoComponent as BaseSsoComponent } from 'jslib/angular/components/sso.component';\n\nconst IdentifierStorageKey = 'ssoOrgIdentifier';\n\n@Component({\n selector: 'app-sso',\n templateUrl: 'sso.component.html',\n})\nexport class SsoComponent extends BaseSsoComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, route: ActivatedRoute,\n storageService: StorageService, stateService: StateService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService,\n cryptoFunctionService: CryptoFunctionService,\n passwordGenerationService: PasswordGenerationService) {\n super(authService, router, i18nService, route, storageService, stateService, platformUtilsService,\n apiService, cryptoFunctionService, passwordGenerationService);\n this.redirectUri = window.location.origin + '/sso-connector.html';\n this.clientId = 'web';\n }\n\n async ngOnInit() {\n super.ngOnInit();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n } else {\n const storedIdentifier = await this.storageService.get(IdentifierStorageKey);\n if (storedIdentifier != null) {\n this.identifier = storedIdentifier;\n }\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async submit() {\n await this.storageService.save(IdentifierStorageKey, this.identifier);\n if (this.clientId === 'browser') {\n document.cookie = `ssoHandOffMessage=${this.i18nService.t('ssoHandOff')};SameSite=strict`;\n }\n super.submit();\n }\n}\n","
\n
\n
\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'ssoLogInWithOrgIdentifier' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoFunctionService } from '../../abstractions/cryptoFunction.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nimport { AuthResult } from '../../models/domain/authResult';\n\nexport class SsoComponent {\n identifier: string;\n loggingIn = false;\n\n formPromise: Promise;\n initiateSsoFormPromise: Promise;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n onSuccessfulLoginTwoFactorNavigate: () => Promise;\n onSuccessfulLoginChangePasswordNavigate: () => Promise;\n\n protected twoFactorRoute = '2fa';\n protected successRoute = 'lock';\n protected changePasswordRoute = 'set-password';\n protected clientId: string;\n protected redirectUri: string;\n protected state: string;\n protected codeChallenge: string;\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected route: ActivatedRoute,\n protected storageService: StorageService, protected stateService: StateService,\n protected platformUtilsService: PlatformUtilsService, protected apiService: ApiService,\n protected cryptoFunctionService: CryptoFunctionService,\n protected passwordGenerationService: PasswordGenerationService) { }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.code != null && qParams.state != null) {\n const codeVerifier = await this.storageService.get(ConstantsService.ssoCodeVerifierKey);\n const state = await this.storageService.get(ConstantsService.ssoStateKey);\n await this.storageService.remove(ConstantsService.ssoCodeVerifierKey);\n await this.storageService.remove(ConstantsService.ssoStateKey);\n if (qParams.code != null && codeVerifier != null && state != null && this.checkState(state, qParams.state)) {\n await this.logIn(qParams.code, codeVerifier, this.getOrgIdentiferFromState(qParams.state));\n }\n } else if (qParams.clientId != null && qParams.redirectUri != null && qParams.state != null &&\n qParams.codeChallenge != null) {\n this.redirectUri = qParams.redirectUri;\n this.state = qParams.state;\n this.codeChallenge = qParams.codeChallenge;\n this.clientId = qParams.clientId;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async submit(returnUri?: string, includeUserIdentifier?: boolean) {\n this.initiateSsoFormPromise = this.preValidate();\n if (await this.initiateSsoFormPromise) {\n const authorizeUrl = await this.buildAuthorizeUrl(returnUri, includeUserIdentifier);\n this.platformUtilsService.launchUri(authorizeUrl, { sameWindow: true });\n }\n }\n\n async preValidate(): Promise {\n if (this.identifier == null || this.identifier === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('ssoValidationFailed'),\n this.i18nService.t('ssoIdentifierRequired'));\n return false;\n }\n return await this.apiService.preValidateSso(this.identifier);\n }\n\n protected async buildAuthorizeUrl(returnUri?: string, includeUserIdentifier?: boolean): Promise {\n let codeChallenge = this.codeChallenge;\n let state = this.state;\n\n const passwordOptions: any = {\n type: 'password',\n length: 64,\n uppercase: true,\n lowercase: true,\n numbers: true,\n special: false,\n };\n\n if (codeChallenge == null) {\n const codeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions);\n const codeVerifierHash = await this.cryptoFunctionService.hash(codeVerifier, 'sha256');\n codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash);\n await this.storageService.save(ConstantsService.ssoCodeVerifierKey, codeVerifier);\n }\n\n if (state == null) {\n state = await this.passwordGenerationService.generatePassword(passwordOptions);\n if (returnUri) {\n state += `_returnUri='${returnUri}'`;\n }\n }\n\n // Add Organization Identifier to state\n state += `_identifier=${this.identifier}`;\n\n // Save state (regardless of new or existing)\n await this.storageService.save(ConstantsService.ssoStateKey, state);\n\n let authorizeUrl = this.apiService.identityBaseUrl + '/connect/authorize?' +\n 'client_id=' + this.clientId + '&redirect_uri=' + encodeURIComponent(this.redirectUri) + '&' +\n 'response_type=code&scope=api offline_access&' +\n 'state=' + state + '&code_challenge=' + codeChallenge + '&' +\n 'code_challenge_method=S256&response_mode=query&' +\n 'domain_hint=' + encodeURIComponent(this.identifier);\n\n if (includeUserIdentifier) {\n const userIdentifier = await this.apiService.getSsoUserIdentifier();\n authorizeUrl += `&user_identifier=${encodeURIComponent(userIdentifier)}`;\n }\n\n return authorizeUrl;\n }\n\n private async logIn(code: string, codeVerifier: string, orgIdFromState: string) {\n this.loggingIn = true;\n try {\n this.formPromise = this.authService.logInSso(code, codeVerifier, this.redirectUri);\n const response = await this.formPromise;\n if (response.twoFactor) {\n this.platformUtilsService.eventTrack('SSO Logged In To Two-step');\n if (this.onSuccessfulLoginTwoFactorNavigate != null) {\n this.onSuccessfulLoginTwoFactorNavigate();\n } else {\n this.router.navigate([this.twoFactorRoute], {\n queryParams: {\n identifier: orgIdFromState,\n sso: 'true',\n },\n });\n }\n } else if (response.resetMasterPassword) {\n this.platformUtilsService.eventTrack('SSO - routing to complete registration');\n if (this.onSuccessfulLoginChangePasswordNavigate != null) {\n this.onSuccessfulLoginChangePasswordNavigate();\n } else {\n this.router.navigate([this.changePasswordRoute], {\n queryParams: {\n identifier: orgIdFromState,\n },\n });\n }\n } else {\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n this.platformUtilsService.eventTrack('SSO Logged In');\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n } catch { }\n this.loggingIn = false;\n }\n\n private getOrgIdentiferFromState(state: string): string {\n if (state === null || state === undefined) {\n return null;\n }\n\n const stateSplit = state.split('_identifier=');\n return stateSplit.length > 1 ? stateSplit[1] : null;\n }\n\n private checkState(state: string, checkState: string): boolean {\n if (state === null || state === undefined) {\n return false;\n }\n if (checkState === null || checkState === undefined) {\n return false;\n }\n\n const stateSplit = state.split('_identifier=');\n const checkStateSplit = checkState.split('_identifier=');\n return stateSplit[0] === checkStateSplit[0];\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { TwoFactorOptionsComponent } from './two-factor-options.component';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { TwoFactorComponent as BaseTwoFactorComponent } from 'jslib/angular/components/two-factor.component';\n\n@Component({\n selector: 'app-two-factor',\n templateUrl: 'two-factor.component.html',\n})\nexport class TwoFactorComponent extends BaseTwoFactorComponent {\n @ViewChild('twoFactorOptions', { read: ViewContainerRef, static: true }) twoFactorOptionsModal: ViewContainerRef;\n\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, apiService: ApiService,\n platformUtilsService: PlatformUtilsService, stateService: StateService,\n environmentService: EnvironmentService, private componentFactoryResolver: ComponentFactoryResolver,\n storageService: StorageService, route: ActivatedRoute) {\n super(authService, router, i18nService, apiService, platformUtilsService, window, environmentService,\n stateService, storageService, route);\n this.onSuccessfulLoginNavigate = this.goAfterLogIn;\n }\n\n anotherMethod() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n const modal = this.twoFactorOptionsModal.createComponent(factory).instance;\n const childComponent = modal.show(TwoFactorOptionsComponent,\n this.twoFactorOptionsModal);\n\n childComponent.onProviderSelected.subscribe(async (provider: TwoFactorProviderType) => {\n modal.close();\n this.selectedProviderType = provider;\n await this.init();\n });\n childComponent.onRecoverSelected.subscribe(() => {\n modal.close();\n });\n }\n\n async goAfterLogIn() {\n const orgInvite = await this.stateService.get('orgInvitation');\n const emergencyInvite = await this.stateService.get('emergencyInvitation');\n if (orgInvite != null) {\n this.router.navigate(['accept-organization'], { queryParams: orgInvite });\n } else if (emergencyInvite != null) {\n this.router.navigate(['accept-emergency'], { queryParams: emergencyInvite });\n } else {\n const loginRedirect = await this.stateService.get('loginRedirect');\n if (loginRedirect != null) {\n this.router.navigate([loginRedirect.route], { queryParams: loginRedirect.qParams });\n await this.stateService.remove('loginRedirect');\n } else {\n this.router.navigate([this.successRoute], {\n queryParams: {\n identifier: this.identifier,\n },\n });\n }\n }\n }\n}\n","
\n
\n
\n

{{title}}

\n
\n
\n \n

\n {{'enterVerificationCodeApp' | i18n}}

\n

\n {{'enterVerificationCodeEmail' | i18n : twoFactorEmail}}\n

\n
\n \n \n \n \n {{'sendVerificationCodeEmailAgain' | i18n}}\n \n \n
\n \n \n

{{'insertYubiKey' | i18n}}

\n \"\"\n
\n \n \n
\n
\n \n

\n \n {{'loading' | i18n}}\n

\n \n

{{'insertU2f' | i18n}}

\n \"\"\n
\n
\n \n
\n \n
\n
\n \n
\n \n \n
\n \n

{{'noTwoStepProviders' | i18n}}

\n

{{'noTwoStepProviders2' | i18n}}

\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n \n
\n
\n
\n
\n
\n\n\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n TwoFactorOptionsComponent as BaseTwoFactorOptionsComponent,\n} from 'jslib/angular/components/two-factor-options.component';\n\n@Component({\n selector: 'app-two-factor-options',\n templateUrl: 'two-factor-options.component.html',\n})\nexport class TwoFactorOptionsComponent extends BaseTwoFactorOptionsComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService) {\n super(authService, router, i18nService, platformUtilsService, window);\n }\n}\n","
\n
\n
\n
\n

{{'twoStepOptions' | i18n}}

\n \n
\n \n
\n \n
\n
\n
\n
\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class TwoFactorEmailRequest extends PasswordVerificationRequest {\n email: string;\n\n constructor(email: string, masterPasswordHash: string) {\n super();\n this.masterPasswordHash = masterPasswordHash;\n this.email = email;\n }\n}\n","import { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class AuthResult {\n twoFactor: boolean = false;\n resetMasterPassword: boolean = false;\n twoFactorProviders: Map = null;\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { VerifyEmailRequest } from 'jslib/models/request/verifyEmailRequest';\n\n@Component({\n selector: 'app-verify-email-token',\n templateUrl: 'verify-email-token.component.html',\n})\nexport class VerifyEmailTokenComponent implements OnInit {\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n if (qParams.userId != null && qParams.token != null) {\n try {\n await this.apiService.postAccountVerifyEmailToken(\n new VerifyEmailRequest(qParams.userId, qParams.token));\n const authed = await this.userService.isAuthenticated();\n if (authed) {\n await this.apiService.refreshIdentityToken();\n }\n this.toasterService.popAsync('success', null, this.i18nService.t('emailVerified'));\n this.router.navigate(['/']);\n return;\n } catch { }\n }\n this.toasterService.popAsync('error', null, this.i18nService.t('emailVerifiedFailed'));\n this.router.navigate(['/']);\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { VerifyDeleteRecoverRequest } from 'jslib/models/request/verifyDeleteRecoverRequest';\n\n@Component({\n selector: 'app-verify-recover-delete',\n templateUrl: 'verify-recover-delete.component.html',\n})\nexport class VerifyRecoverDeleteComponent implements OnInit {\n email: string;\n formPromise: Promise;\n\n private userId: string;\n private token: string;\n\n constructor(private router: Router, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute) {\n }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n if (qParams.userId != null && qParams.token != null && qParams.email != null) {\n this.userId = qParams.userId;\n this.token = qParams.token;\n this.email = qParams.email;\n } else {\n this.router.navigate(['/']);\n }\n });\n }\n\n async submit() {\n try {\n const request = new VerifyDeleteRecoverRequest(this.userId, this.token);\n this.formPromise = this.apiService.postAccountRecoverDeleteToken(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Recovered Delete' });\n this.toasterService.popAsync('success', this.i18nService.t('accountDeleted'),\n this.i18nService.t('accountDeletedDesc'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'deleteAccount' | i18n}}

\n
\n
\n {{'deleteAccountWarning' | i18n}}\n

\n {{email}}\n

\n

{{'deleteRecoverConfirmDesc' | i18n}}

\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport {\n CollectionDetailsResponse,\n CollectionResponse,\n} from 'jslib/models/response/collectionResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { ModalComponent } from '../../modal.component';\nimport { CollectionAddEditComponent } from './collection-add-edit.component';\nimport { EntityUsersComponent } from './entity-users.component';\n\n@Component({\n selector: 'app-org-manage-collections',\n templateUrl: 'collections.component.html',\n})\nexport class CollectionsComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('usersTemplate', { read: ViewContainerRef, static: true }) usersModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n collections: CollectionView[];\n pagedCollections: CollectionView[];\n searchText: string;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedCollectionsCount = 0;\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private collectionService: CollectionService, private componentFactoryResolver: ComponentFactoryResolver,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private i18nService: I18nService, private platformUtilsService: PlatformUtilsService,\n private userService: UserService, private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const organization = await this.userService.getOrganization(this.organizationId);\n let response: ListResponse;\n if (organization.canManageAllCollections) {\n response = await this.apiService.getCollections(this.organizationId);\n } else {\n response = await this.apiService.getUserCollections();\n }\n const collections = response.data.filter(c => c.organizationId === this.organizationId).map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n this.resetPaging();\n this.loading = false;\n }\n\n loadMore() {\n if (!this.collections || this.collections.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedCollections.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedCollectionsCount > this.pageSize) {\n pagedSize = this.pagedCollectionsCount;\n }\n if (this.collections.length > pagedLength) {\n this.pagedCollections =\n this.pagedCollections.concat(this.collections.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedCollectionsCount = this.pagedCollections.length;\n this.didScroll = this.pagedCollections.length > this.pageSize;\n }\n\n edit(collection: CollectionView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n CollectionAddEditComponent, this.addEditModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.collectionId = collection != null ? collection.id : null;\n childComponent.onSavedCollection.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedCollection.subscribe(() => {\n this.modal.close();\n this.removeCollection(collection);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n add() {\n this.edit(null);\n }\n\n async delete(collection: CollectionView) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteCollectionConfirmation'), collection.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteCollection(this.organizationId, collection.id);\n this.analytics.eventTrack.next({ action: 'Deleted Collection' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedCollectionId', collection.name));\n this.removeCollection(collection);\n } catch { }\n }\n\n users(collection: CollectionView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.usersModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityUsersComponent, this.usersModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.entity = 'collection';\n childComponent.entityId = collection.id;\n childComponent.entityName = collection.name;\n\n childComponent.onEditedUsers.subscribe(() => {\n this.load();\n this.modal.close();\n });\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedCollections = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.collections && this.collections.length > this.pageSize;\n }\n\n private removeCollection(collection: CollectionView) {\n const index = this.collections.indexOf(collection);\n if (index > -1) {\n this.collections.splice(index, 1);\n this.resetPaging();\n }\n }\n}\n","
\n

{{'collections' | i18n}}

\n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noCollectionsInList' | i18n}}

\n \n \n \n \n \n \n \n
\n {{c.name}}\n \n \n
\n\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherString } from 'jslib/models/domain/cipherString';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\nimport { CollectionRequest } from 'jslib/models/request/collectionRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-collection-add-edit',\n templateUrl: 'collection-add-edit.component.html',\n})\nexport class CollectionAddEditComponent implements OnInit {\n @Input() collectionId: string;\n @Input() organizationId: string;\n @Output() onSavedCollection = new EventEmitter();\n @Output() onDeletedCollection = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n accessGroups: boolean = false;\n title: string;\n name: string;\n externalId: string;\n groups: GroupResponse[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n\n private orgKey: SymmetricCryptoKey;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private platformUtilsService: PlatformUtilsService, private cryptoService: CryptoService,\n private userService: UserService) { }\n\n async ngOnInit() {\n const organization = await this.userService.getOrganization(this.organizationId);\n this.accessGroups = organization.useGroups;\n this.editMode = this.loading = this.collectionId != null;\n if (this.accessGroups) {\n const groupsResponse = await this.apiService.getGroups(this.organizationId);\n this.groups = groupsResponse.data.map(r => r).sort(Utils.getSortFunction(this.i18nService, 'name'));\n }\n this.orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editCollection');\n try {\n const collection = await this.apiService.getCollectionDetails(this.organizationId, this.collectionId);\n this.name = await this.cryptoService.decryptToUtf8(new CipherString(collection.name), this.orgKey);\n this.externalId = collection.externalId;\n if (collection.groups != null && this.groups.length > 0) {\n collection.groups.forEach(s => {\n const group = this.groups.filter(g => !g.accessAll && g.id === s.id);\n if (group != null && group.length > 0) {\n (group[0] as any).checked = true;\n (group[0] as any).readOnly = s.readOnly;\n (group[0] as any).hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('addCollection');\n }\n\n this.groups.forEach(g => {\n if (g.accessAll) {\n (g as any).checked = true;\n }\n });\n\n this.loading = false;\n }\n\n check(g: GroupResponse, select?: boolean) {\n if (g.accessAll) {\n return;\n }\n (g as any).checked = select == null ? !(g as any).checked : select;\n if (!(g as any).checked) {\n (g as any).readOnly = false;\n (g as any).hidePasswords = false;\n }\n }\n\n selectAll(select: boolean) {\n this.groups.forEach(g => this.check(g, select));\n }\n\n async submit() {\n if (this.orgKey == null) {\n throw new Error('No encryption key for this organization.');\n }\n\n const request = new CollectionRequest();\n request.name = (await this.cryptoService.encrypt(this.name, this.orgKey)).encryptedString;\n request.externalId = this.externalId;\n request.groups = this.groups.filter(g => (g as any).checked && !g.accessAll)\n .map(g => new SelectionReadOnlyRequest(g.id, !!(g as any).readOnly, !!(g as any).hidePasswords));\n\n try {\n if (this.editMode) {\n this.formPromise = this.apiService.putCollection(this.organizationId, this.collectionId, request);\n } else {\n this.formPromise = this.apiService.postCollection(this.organizationId, request);\n }\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.editMode ? 'Edited Collection' : 'Created Collection' });\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedCollectionId' : 'createdCollectionId', this.name));\n this.onSavedCollection.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteCollectionConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteCollection(this.organizationId, this.collectionId);\n await this.deletePromise;\n this.analytics.eventTrack.next({ action: 'Deleted Collection' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedCollectionId', this.name));\n this.onDeletedCollection.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n \n \n
\n
\n \n \n {{'externalIdDesc' | i18n}}\n
\n \n

\n {{'groupAccess' | i18n}}\n
\n \n \n
\n

\n
\n {{'noGroupsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{g.name}}\n \n \n {{'groupAccessAllItems' | i18n}}\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import { Collection } from '../domain/collection';\n\nimport { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nexport class CollectionRequest {\n name: string;\n externalId: string;\n groups: SelectionReadOnlyRequest[] = [];\n\n constructor(collection?: Collection) {\n if (collection == null) {\n return;\n }\n this.name = collection.name ? collection.name.encryptedString : null;\n this.externalId = collection.externalId;\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EventService } from '../../services/event.service';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\n\n@Component({\n selector: 'app-org-events',\n templateUrl: 'events.component.html',\n})\nexport class EventsComponent implements OnInit {\n loading = true;\n loaded = false;\n organizationId: string;\n events: any[];\n start: string;\n end: string;\n continuationToken: string;\n refreshPromise: Promise;\n morePromise: Promise;\n\n private orgUsersUserIdMap = new Map();\n private orgUsersIdMap = new Map();\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private eventService: EventService, private i18nService: I18nService,\n private toasterService: ToasterService, private userService: UserService,\n private router: Router) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.useEvents) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n const defaultDates = this.eventService.getDefaultDateFilters();\n this.start = defaultDates[0];\n this.end = defaultDates[1];\n await this.load();\n });\n }\n\n async load() {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n response.data.forEach(u => {\n const name = u.name == null || u.name.trim() === '' ? u.email : u.name;\n this.orgUsersIdMap.set(u.id, { name: name, email: u.email });\n this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });\n });\n await this.loadEvents(true);\n this.loaded = true;\n }\n\n async loadEvents(clearExisting: boolean) {\n if (this.refreshPromise != null || this.morePromise != null) {\n return;\n }\n\n let dates: string[] = null;\n try {\n dates = this.eventService.formatDateFilters(this.start, this.end);\n } catch (e) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidDateRange'));\n return;\n }\n\n this.loading = true;\n let response: ListResponse;\n try {\n const promise = this.apiService.getEventsOrganization(this.organizationId, dates[0], dates[1],\n clearExisting ? null : this.continuationToken);\n if (clearExisting) {\n this.refreshPromise = promise;\n } else {\n this.morePromise = promise;\n }\n response = await promise;\n } catch { }\n\n this.continuationToken = response.continuationToken;\n const events = response.data.map(r => {\n const userId = r.actingUserId == null ? r.userId : r.actingUserId;\n const eventInfo = this.eventService.getEventInfo(r);\n const user = userId != null && this.orgUsersUserIdMap.has(userId) ?\n this.orgUsersUserIdMap.get(userId) : null;\n return {\n message: eventInfo.message,\n appIcon: eventInfo.appIcon,\n appName: eventInfo.appName,\n userId: userId,\n userName: user != null ? user.name : this.i18nService.t('unknown'),\n userEmail: user != null ? user.email : '',\n date: r.date,\n ip: r.ipAddress,\n type: r.type,\n };\n });\n\n if (!clearExisting && this.events != null && this.events.length > 0) {\n this.events = this.events.concat(events);\n } else {\n this.events = events;\n }\n\n this.loading = false;\n this.morePromise = null;\n this.refreshPromise = null;\n }\n}\n","
\n

{{'eventLogs' | i18n}}

\n
\n
\n \n \n -\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noEventsInList' | i18n}}

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{'timestamp' | i18n}}\n {{'device' | i18n}}\n {{'user' | i18n}}{{'event' | i18n}}
{{e.date | date:'medium'}}\n \n {{e.appName}}, {{e.ip}}\n \n {{e.userName}}\n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { ModalComponent } from '../../modal.component';\nimport { EntityUsersComponent } from './entity-users.component';\nimport { GroupAddEditComponent } from './group-add-edit.component';\n\n@Component({\n selector: 'app-org-groups',\n templateUrl: 'groups.component.html',\n})\nexport class GroupsComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('usersTemplate', { read: ViewContainerRef, static: true }) usersModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n groups: GroupResponse[];\n pagedGroups: GroupResponse[];\n searchText: string;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedGroupsCount = 0;\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private platformUtilsService: PlatformUtilsService, private userService: UserService,\n private router: Router, private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.useGroups) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n await this.load();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const response = await this.apiService.getGroups(this.organizationId);\n const groups = response.data != null && response.data.length > 0 ? response.data : [];\n groups.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.groups = groups;\n this.resetPaging();\n this.loading = false;\n }\n\n loadMore() {\n if (!this.groups || this.groups.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedGroups.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedGroupsCount > this.pageSize) {\n pagedSize = this.pagedGroupsCount;\n }\n if (this.groups.length > pagedLength) {\n this.pagedGroups = this.pagedGroups.concat(this.groups.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedGroupsCount = this.pagedGroups.length;\n this.didScroll = this.pagedGroups.length > this.pageSize;\n }\n\n edit(group: GroupResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n GroupAddEditComponent, this.addEditModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.groupId = group != null ? group.id : null;\n childComponent.onSavedGroup.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedGroup.subscribe(() => {\n this.modal.close();\n this.removeGroup(group);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n add() {\n this.edit(null);\n }\n\n async delete(group: GroupResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteGroupConfirmation'), group.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteGroup(this.organizationId, group.id);\n this.analytics.eventTrack.next({ action: 'Deleted Group' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedGroupId', group.name));\n this.removeGroup(group);\n } catch { }\n }\n\n users(group: GroupResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.usersModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityUsersComponent, this.usersModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.entity = 'group';\n childComponent.entityId = group.id;\n childComponent.entityName = group.name;\n\n childComponent.onEditedUsers.subscribe(() => {\n this.modal.close();\n });\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedGroups = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.groups && this.groups.length > this.pageSize;\n }\n\n private removeGroup(group: GroupResponse) {\n const index = this.groups.indexOf(group);\n if (index > -1) {\n this.groups.splice(index, 1);\n this.resetPaging();\n }\n }\n}\n","
\n

{{'groups' | i18n}}

\n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noGroupsInList' | i18n}}

\n \n \n \n \n \n \n \n
\n {{g.name}}\n \n \n
\n
\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { GroupRequest } from 'jslib/models/request/groupRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\n@Component({\n selector: 'app-group-add-edit',\n templateUrl: 'group-add-edit.component.html',\n})\nexport class GroupAddEditComponent implements OnInit {\n @Input() groupId: string;\n @Input() organizationId: string;\n @Output() onSavedGroup = new EventEmitter();\n @Output() onDeletedGroup = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n title: string;\n name: string;\n externalId: string;\n access: 'all' | 'selected' = 'selected';\n collections: CollectionView[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private collectionService: CollectionService, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.groupId != null;\n await this.loadCollections();\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editGroup');\n try {\n const group = await this.apiService.getGroupDetails(this.organizationId, this.groupId);\n this.access = group.accessAll ? 'all' : 'selected';\n this.name = group.name;\n this.externalId = group.externalId;\n if (group.collections != null && this.collections != null) {\n group.collections.forEach(s => {\n const collection = this.collections.filter(c => c.id === s.id);\n if (collection != null && collection.length > 0) {\n (collection[0] as any).checked = true;\n collection[0].readOnly = s.readOnly;\n collection[0].hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('addGroup');\n }\n\n this.loading = false;\n }\n\n async loadCollections() {\n const response = await this.apiService.getCollections(this.organizationId);\n const collections = response.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n if (!(c as any).checked) {\n c.readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n\n async submit() {\n const request = new GroupRequest();\n request.name = this.name;\n request.externalId = this.externalId;\n request.accessAll = this.access === 'all';\n if (!request.accessAll) {\n request.collections = this.collections.filter(c => (c as any).checked)\n .map(c => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords));\n }\n\n try {\n if (this.editMode) {\n this.formPromise = this.apiService.putGroup(this.organizationId, this.groupId, request);\n } else {\n this.formPromise = this.apiService.postGroup(this.organizationId, request);\n }\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.editMode ? 'Edited Group' : 'Created Group' });\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedGroupId' : 'createdGroupId', this.name));\n this.onSavedGroup.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteGroupConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteGroup(this.organizationId, this.groupId);\n await this.deletePromise;\n this.analytics.eventTrack.next({ action: 'Deleted Group' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedGroupId', this.name));\n this.onDeletedGroup.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n \n \n
\n
\n \n \n {{'externalIdDesc' | i18n}}\n
\n

\n
\n {{'accessControl' | i18n}}\n \n \n \n
\n
\n \n \n
\n

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{c.name}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-org-manage',\n templateUrl: 'manage.component.html',\n})\nexport class ManageComponent implements OnInit {\n organization: Organization;\n accessPolicies = false;\n accessGroups = false;\n accessEvents = false;\n\n constructor(private route: ActivatedRoute, private userService: UserService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.accessPolicies = this.organization.usePolicies;\n this.accessEvents = this.organization.useEvents;\n this.accessGroups = this.organization.useGroups;\n });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { OrganizationUserConfirmRequest } from 'jslib/models/request/organizationUserConfirmRequest';\n\nimport { OrganizationUserUserDetailsResponse } from 'jslib/models/response/organizationUserResponse';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { ModalComponent } from '../../modal.component';\nimport { EntityEventsComponent } from './entity-events.component';\nimport { UserAddEditComponent } from './user-add-edit.component';\nimport { UserConfirmComponent } from './user-confirm.component';\nimport { UserGroupsComponent } from './user-groups.component';\n\n@Component({\n selector: 'app-org-people',\n templateUrl: 'people.component.html',\n})\nexport class PeopleComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('groupsTemplate', { read: ViewContainerRef, static: true }) groupsModalRef: ViewContainerRef;\n @ViewChild('eventsTemplate', { read: ViewContainerRef, static: true }) eventsModalRef: ViewContainerRef;\n @ViewChild('confirmTemplate', { read: ViewContainerRef, static: true }) confirmModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n users: OrganizationUserUserDetailsResponse[];\n pagedUsers: OrganizationUserUserDetailsResponse[];\n searchText: string;\n status: OrganizationUserStatusType = null;\n statusMap = new Map();\n organizationUserType = OrganizationUserType;\n organizationUserStatusType = OrganizationUserStatusType;\n actionPromise: Promise;\n accessEvents = false;\n accessGroups = false;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedUsersCount = 0;\n private modal: ModalComponent = null;\n private allUsers: OrganizationUserUserDetailsResponse[];\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService, private analytics: Angulartics2,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private userService: UserService, private router: Router,\n private storageService: StorageService, private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (!organization.canManageUsers) {\n this.router.navigate(['../collections'], { relativeTo: this.route });\n return;\n }\n this.accessEvents = organization.useEvents;\n this.accessGroups = organization.useGroups;\n await this.load();\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (qParams.viewEvents != null) {\n const user = this.users.filter(u => u.id === qParams.viewEvents);\n if (user.length > 0 && user[0].status === OrganizationUserStatusType.Confirmed) {\n this.events(user[0]);\n }\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n this.statusMap.clear();\n this.allUsers = response.data != null && response.data.length > 0 ? response.data : [];\n this.allUsers.sort(Utils.getSortFunction(this.i18nService, 'email'));\n this.allUsers.forEach(u => {\n if (!this.statusMap.has(u.status)) {\n this.statusMap.set(u.status, [u]);\n } else {\n this.statusMap.get(u.status).push(u);\n }\n });\n this.filter(this.status);\n this.loading = false;\n }\n\n filter(status: OrganizationUserStatusType) {\n this.status = status;\n if (this.status != null) {\n this.users = this.statusMap.get(this.status);\n } else {\n this.users = this.allUsers;\n }\n this.resetPaging();\n }\n\n loadMore() {\n if (!this.users || this.users.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedUsers.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedUsersCount > this.pageSize) {\n pagedSize = this.pagedUsersCount;\n }\n if (this.users.length > pagedLength) {\n this.pagedUsers = this.pagedUsers.concat(this.users.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedUsersCount = this.pagedUsers.length;\n this.didScroll = this.pagedUsers.length > this.pageSize;\n }\n\n get allCount() {\n return this.allUsers != null ? this.allUsers.length : 0;\n }\n\n get invitedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Invited) ?\n this.statusMap.get(OrganizationUserStatusType.Invited).length : 0;\n }\n\n get acceptedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Accepted) ?\n this.statusMap.get(OrganizationUserStatusType.Accepted).length : 0;\n }\n\n get confirmedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Confirmed) ?\n this.statusMap.get(OrganizationUserStatusType.Confirmed).length : 0;\n }\n\n get showConfirmUsers(): boolean {\n return this.allUsers != null && this.statusMap != null && this.allUsers.length > 1 &&\n this.confirmedCount > 0 && this.confirmedCount < 3 && this.acceptedCount > 0;\n }\n\n edit(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserAddEditComponent, this.addEditModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.onSavedUser.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedUser.subscribe(() => {\n this.modal.close();\n this.removeUser(user);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n invite() {\n this.edit(null);\n }\n\n groups(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.groupsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserGroupsComponent, this.groupsModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.onSavedUser.subscribe(() => {\n this.modal.close();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async remove(user: OrganizationUserUserDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), user.name || user.email,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteOrganizationUser(this.organizationId, user.id);\n this.analytics.eventTrack.next({ action: 'Deleted User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', user.name || user.email));\n this.removeUser(user);\n } catch { }\n }\n\n async reinvite(user: OrganizationUserUserDetailsResponse) {\n if (this.actionPromise != null) {\n return;\n }\n this.actionPromise = this.apiService.postOrganizationUserReinvite(this.organizationId, user.id);\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Reinvited User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenReinvited', user.name || user.email));\n this.actionPromise = null;\n }\n\n async confirm(user: OrganizationUserUserDetailsResponse) {\n function updateUser(self: PeopleComponent) {\n user.status = OrganizationUserStatusType.Confirmed;\n const mapIndex = self.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);\n if (mapIndex > -1) {\n self.statusMap.get(OrganizationUserStatusType.Accepted).splice(mapIndex, 1);\n self.statusMap.get(OrganizationUserStatusType.Confirmed).push(user);\n }\n }\n\n if (this.actionPromise != null) {\n return;\n }\n\n const autoConfirm = await this.storageService.get(ConstantsService.autoConfirmFingerprints);\n if (autoConfirm == null || !autoConfirm) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.confirmModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserConfirmComponent, this.confirmModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.userId = user != null ? user.userId : null;\n childComponent.onConfirmedUser.subscribe(() => {\n this.modal.close();\n updateUser(this);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return;\n }\n\n this.actionPromise = this.doConfirmation(user);\n await this.actionPromise;\n updateUser(this);\n this.analytics.eventTrack.next({ action: 'Confirmed User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', user.name || user.email));\n this.actionPromise = null;\n }\n\n async events(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.eventsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityEventsComponent, this.eventsModalRef);\n\n childComponent.name = user.name || user.email;\n childComponent.organizationId = this.organizationId;\n childComponent.entityId = user.id;\n childComponent.showUser = false;\n childComponent.entity = 'user';\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedUsers = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.users && this.users.length > this.pageSize;\n }\n\n private async doConfirmation(user: OrganizationUserUserDetailsResponse) {\n const orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n const publicKeyResponse = await this.apiService.getUserPublicKey(user.userId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n try {\n // tslint:disable-next-line\n console.log('User\\'s fingerprint: ' +\n (await this.cryptoService.getFingerprint(user.userId, publicKey.buffer)).join('-'));\n } catch { }\n const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey.buffer);\n const request = new OrganizationUserConfirmRequest();\n request.key = key.encryptedString;\n await this.apiService.postOrganizationUserConfirm(this.organizationId, user.id, request);\n }\n\n private removeUser(user: OrganizationUserUserDetailsResponse) {\n let index = this.users.indexOf(user);\n if (index > -1) {\n this.users.splice(index, 1);\n this.resetPaging();\n }\n if (this.statusMap.has(OrganizationUserStatusType.Accepted)) {\n index = this.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Accepted).splice(index, 1);\n }\n }\n if (this.statusMap.has(OrganizationUserStatusType.Invited)) {\n index = this.statusMap.get(OrganizationUserStatusType.Invited).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Invited).splice(index, 1);\n }\n }\n if (this.statusMap.has(OrganizationUserStatusType.Confirmed)) {\n index = this.statusMap.get(OrganizationUserStatusType.Confirmed).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Confirmed).splice(index, 1);\n }\n }\n }\n}\n","
\n

{{'people' | i18n}}

\n
\n
\n \n \n \n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noUsersInList' | i18n}}

\n \n \n {{'usersNeedConfirmed' | i18n}}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n {{u.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{u.name}}\n \n \n \n {{'userUsingTwoStep' | i18n}}\n \n \n {{'owner' | i18n}}\n {{'admin' | i18n}}\n {{'manager' | i18n}}\n {{'user' | i18n}}\n {{'custom' | i18n}}\n \n \n
\n
\n\n\n\n\n\n","export class OrganizationUserConfirmRequest {\n key: string;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { OrganizationUserInviteRequest } from 'jslib/models/request/organizationUserInviteRequest';\nimport { OrganizationUserUpdateRequest } from 'jslib/models/request/organizationUserUpdateRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { PermissionsApi } from 'jslib/models/api/permissionsApi';\n\n@Component({\n selector: 'app-user-add-edit',\n templateUrl: 'user-add-edit.component.html',\n})\nexport class UserAddEditComponent implements OnInit {\n @Input() name: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onSavedUser = new EventEmitter();\n @Output() onDeletedUser = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n title: string;\n emails: string;\n type: OrganizationUserType = OrganizationUserType.User;\n permissions = new PermissionsApi();\n showCustom = false;\n access: 'all' | 'selected' = 'selected';\n collections: CollectionView[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n organizationUserType = OrganizationUserType;\n\n get customUserTypeSelected(): boolean {\n return this.type === OrganizationUserType.Custom;\n }\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private collectionService: CollectionService, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.organizationUserId != null;\n await this.loadCollections();\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editUser');\n try {\n const user = await this.apiService.getOrganizationUser(this.organizationId, this.organizationUserId);\n this.access = user.accessAll ? 'all' : 'selected';\n this.type = user.type;\n if (user.type === OrganizationUserType.Custom) {\n this.permissions = user.permissions;\n }\n if (user.collections != null && this.collections != null) {\n user.collections.forEach(s => {\n const collection = this.collections.filter(c => c.id === s.id);\n if (collection != null && collection.length > 0) {\n (collection[0] as any).checked = true;\n collection[0].readOnly = s.readOnly;\n collection[0].hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('inviteUser');\n }\n\n this.loading = false;\n }\n\n async loadCollections() {\n const response = await this.apiService.getCollections(this.organizationId);\n const collections = response.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n if (!(c as any).checked) {\n c.readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n\n setRequestPermissions(p: PermissionsApi, clearPermissions: boolean) {\n p.accessBusinessPortal = clearPermissions ?\n false :\n this.permissions.accessBusinessPortal;\n p.accessEventLogs = this.permissions.accessEventLogs = clearPermissions ?\n false :\n this.permissions.accessEventLogs;\n p.accessImportExport = clearPermissions ?\n false :\n this.permissions.accessImportExport;\n p.accessReports = clearPermissions ?\n false :\n this.permissions.accessReports;\n p.manageAllCollections = clearPermissions ?\n false :\n this.permissions.manageAllCollections;\n p.manageAssignedCollections = clearPermissions ?\n false :\n this.permissions.manageAssignedCollections;\n p.manageGroups = clearPermissions ?\n false :\n this.permissions.manageGroups;\n p.manageSso = clearPermissions ?\n false :\n this.permissions.manageSso;\n p.managePolicies = clearPermissions ?\n false :\n this.permissions.managePolicies;\n p.manageUsers = clearPermissions ?\n false :\n this.permissions.manageUsers;\n return p;\n }\n\n async submit() {\n let collections: SelectionReadOnlyRequest[] = null;\n if (this.access !== 'all') {\n collections = this.collections.filter(c => (c as any).checked)\n .map(c => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords));\n }\n\n try {\n if (this.editMode) {\n const request = new OrganizationUserUpdateRequest();\n request.accessAll = this.access === 'all';\n request.type = this.type;\n request.collections = collections;\n request.permissions = this.setRequestPermissions(request.permissions ?? new PermissionsApi(), request.type !== OrganizationUserType.Custom);\n this.formPromise = this.apiService.putOrganizationUser(this.organizationId, this.organizationUserId,\n request);\n } else {\n const request = new OrganizationUserInviteRequest();\n request.emails = this.emails.trim().split(/\\s*,\\s*/);\n request.accessAll = this.access === 'all';\n request.type = this.type;\n request.permissions = this.setRequestPermissions(request.permissions ?? new PermissionsApi(), request.type !== OrganizationUserType.Custom);\n request.collections = collections;\n this.formPromise = this.apiService.postOrganizationUserInvite(this.organizationId, request);\n }\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.editMode ? 'Edited User' : 'Invited User' });\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedUserId' : 'invitedUsers', this.name));\n this.onSavedUser.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteOrganizationUser(this.organizationId, this.organizationUserId);\n await this.deletePromise;\n this.analytics.eventTrack.next({ action: 'Deleted User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', this.name));\n this.onDeletedUser.emit();\n } catch { }\n }\n\n}\n","
\n
\n
\n
\n

\n {{title}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n \n

{{'inviteUserDesc' | i18n}}

\n
\n \n \n {{'inviteMultipleEmailDesc' | i18n : '20'}}\n
\n
\n

\n {{'userType' | i18n}}\n \n \n \n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n

\n {{'permissions' | i18n}}\n

\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n

\n
\n {{'accessControl' | i18n}}\n \n \n \n
\n
\n \n \n
\n

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{c.name}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { OrganizationUserConfirmRequest } from 'jslib/models/request/organizationUserConfirmRequest';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-user-confirm',\n templateUrl: 'user-confirm.component.html',\n})\nexport class UserConfirmComponent implements OnInit {\n @Input() name: string;\n @Input() userId: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onConfirmedUser = new EventEmitter();\n\n dontAskAgain = false;\n loading = true;\n fingerprint: string;\n formPromise: Promise;\n\n private publicKey: Uint8Array = null;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private storageService: StorageService) { }\n\n async ngOnInit() {\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId);\n if (publicKeyResponse != null) {\n this.publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n const fingerprint = await this.cryptoService.getFingerprint(this.userId, this.publicKey.buffer);\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n } catch { }\n this.loading = false;\n }\n\n async submit() {\n if (this.loading) {\n return;\n }\n\n if (this.dontAskAgain) {\n await this.storageService.save(ConstantsService.autoConfirmFingerprints, true);\n }\n\n try {\n this.formPromise = this.doConfirmation();\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Confirmed User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', this.name));\n this.onConfirmedUser.emit();\n } catch { }\n }\n\n private async doConfirmation() {\n const orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n const key = await this.cryptoService.rsaEncrypt(orgKey.key, this.publicKey.buffer);\n const request = new OrganizationUserConfirmRequest();\n request.key = key.encryptedString;\n await this.apiService.postOrganizationUserConfirm(this.organizationId, this.organizationUserId, request);\n }\n}\n","
\n
\n
\n
\n

\n {{'confirmUser' | i18n}}\n {{name}}\n

\n \n
\n
\n

\n {{'fingerprintEnsureIntegrityVerify' | i18n}}\n \n {{'learnMore' | i18n}}\n

\n

{{fingerprint}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { OrganizationUserUpdateGroupsRequest } from 'jslib/models/request/organizationUserUpdateGroupsRequest';\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-user-groups',\n templateUrl: 'user-groups.component.html',\n})\nexport class UserGroupsComponent implements OnInit {\n @Input() name: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onSavedUser = new EventEmitter();\n\n loading = true;\n groups: GroupResponse[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const groupsResponse = await this.apiService.getGroups(this.organizationId);\n const groups = groupsResponse.data.map(r => r);\n groups.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.groups = groups;\n\n try {\n const userGroups = await this.apiService.getOrganizationUserGroups(\n this.organizationId, this.organizationUserId);\n if (userGroups != null && this.groups != null) {\n userGroups.forEach(ug => {\n const group = this.groups.filter(g => g.id === ug);\n if (group != null && group.length > 0) {\n (group[0] as any).checked = true;\n }\n });\n }\n } catch { }\n\n this.loading = false;\n }\n\n check(g: GroupResponse, select?: boolean) {\n (g as any).checked = select == null ? !(g as any).checked : select;\n if (!(g as any).checked) {\n (g as any).readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.groups.forEach(g => this.check(g, select));\n }\n\n async submit() {\n const request = new OrganizationUserUpdateGroupsRequest();\n request.groupIds = this.groups.filter(g => (g as any).checked).map(g => g.id);\n\n try {\n this.formPromise = this.apiService.putOrganizationUserGroups(this.organizationId, this.organizationUserId,\n request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Edited User Groups' });\n this.toasterService.popAsync('success', null, this.i18nService.t('editedGroupsForUser', this.name));\n this.onSavedUser.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'groupAccess' | i18n}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'groupAccessUserDesc' | i18n}}

\n
\n {{'noGroupsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{g.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { PolicyType } from 'jslib/enums/policyType';\n\nimport { EnvironmentService } from 'jslib/abstractions';\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\nimport { ModalComponent } from '../../modal.component';\n\nimport { PolicyEditComponent } from './policy-edit.component';\n\n@Component({\n selector: 'app-org-policies',\n templateUrl: 'policies.component.html',\n})\nexport class PoliciesComponent implements OnInit {\n @ViewChild('editTemplate', { read: ViewContainerRef, static: true }) editModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n policies: any[];\n\n // Remove when removing deprecation warning\n enterpriseTokenPromise: Promise;\n userCanAccessBusinessPortal = false;\n\n private enterpriseUrl: string;\n\n private modal: ModalComponent = null;\n private orgPolicies: PolicyResponse[];\n private policiesEnabledMap: Map = new Map();\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService, private userService: UserService,\n private router: Router, private environmentService: EnvironmentService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.usePolicies) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n this.userCanAccessBusinessPortal = organization.canAccessBusinessPortal;\n this.policies = [\n {\n name: this.i18nService.t('twoStepLogin'),\n description: this.i18nService.t('twoStepLoginPolicyDesc'),\n type: PolicyType.TwoFactorAuthentication,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('masterPass'),\n description: this.i18nService.t('masterPassPolicyDesc'),\n type: PolicyType.MasterPassword,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('passwordGenerator'),\n description: this.i18nService.t('passwordGeneratorPolicyDesc'),\n type: PolicyType.PasswordGenerator,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('singleOrg'),\n description: this.i18nService.t('singleOrgDesc'),\n type: PolicyType.SingleOrg,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('requireSso'),\n description: this.i18nService.t('requireSsoPolicyDesc'),\n type: PolicyType.RequireSso,\n enabled: false,\n display: organization.useSso,\n },\n {\n name: this.i18nService.t('personalOwnership'),\n description: this.i18nService.t('personalOwnershipPolicyDesc'),\n type: PolicyType.PersonalOwnership,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('disableSend'),\n description: this.i18nService.t('disableSendPolicyDesc'),\n type: PolicyType.DisableSend,\n enabled: false,\n display: true,\n },\n ];\n await this.load();\n\n // Handle policies component launch from Event message\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.policyId != null) {\n const policyIdFromEvents: string = qParams.policyId;\n for (const orgPolicy of this.orgPolicies) {\n if (orgPolicy.id === policyIdFromEvents) {\n for (let i = 0; i < this.policies.length; i++) {\n if (this.policies[i].type === orgPolicy.type) {\n this.edit(this.policies[i]);\n break;\n }\n }\n break;\n }\n }\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n\n // Remove when removing deprecation warning\n this.enterpriseUrl = 'https://portal.bitwarden.com';\n if (this.environmentService.enterpriseUrl != null) {\n this.enterpriseUrl = this.environmentService.enterpriseUrl;\n } else if (this.environmentService.baseUrl != null) {\n this.enterpriseUrl = this.environmentService.baseUrl + '/portal';\n }\n }\n\n async load() {\n const response = await this.apiService.getPolicies(this.organizationId);\n this.orgPolicies = response.data != null && response.data.length > 0 ? response.data : [];\n this.orgPolicies.forEach(op => {\n this.policiesEnabledMap.set(op.type, op.enabled);\n });\n this.policies.forEach(p => {\n p.enabled = this.policiesEnabledMap.has(p.type) && this.policiesEnabledMap.get(p.type);\n });\n this.loading = false;\n }\n\n edit(p: any) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.editModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n PolicyEditComponent, this.editModalRef);\n\n childComponent.name = p.name;\n childComponent.description = p.description;\n childComponent.type = p.type;\n childComponent.organizationId = this.organizationId;\n childComponent.policiesEnabledMap = this.policiesEnabledMap;\n childComponent.onSavedPolicy.subscribe(() => {\n this.modal.close();\n this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n\n // Remove when removing deprecation warning\n async goToEnterprisePortal() {\n if (this.enterpriseTokenPromise != null) {\n return;\n }\n try {\n this.enterpriseTokenPromise = this.apiService.getEnterprisePortalSignInToken();\n const token = await this.enterpriseTokenPromise;\n if (token != null) {\n const userId = await this.userService.getUserId();\n this.platformUtilsService.launchUri(this.enterpriseUrl + '/login?userId=' + userId +\n '&token=' + (window as any).encodeURIComponent(token) + '&organizationId=' + this.organizationId);\n }\n } catch { }\n this.enterpriseTokenPromise = null;\n }\n}\n","\n

{{'webPoliciesDeprecationWarning' | i18n}}

\n \n
\n
\n

{{'policies' | i18n}}

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n \n \n \n \n
\n {{p.name}}\n {{'enabled' | i18n}}\n {{p.description}}\n
\n\n","// Using index.ts is deprecated, please do not extend\nexport { ApiService } from './api.service';\nexport { AppIdService } from './appId.service';\nexport { AuditService } from './audit.service';\nexport { AuthService } from './auth.service';\nexport { CipherService } from './cipher.service';\nexport { CollectionService } from './collection.service';\nexport { CryptoService } from './crypto.service';\nexport { EnvironmentService } from './environment.service';\nexport { FolderService } from './folder.service';\nexport { I18nService } from './i18n.service';\nexport { LogService } from './log.service';\nexport { MessagingService } from './messaging.service';\nexport { PasswordGenerationService } from './passwordGeneration.service';\nexport { PlatformUtilsService } from './platformUtils.service';\nexport { SearchService } from './search.service';\nexport { SettingsService } from './settings.service';\nexport { StorageService } from './storage.service';\nexport { StateService } from './state.service';\nexport { SyncService } from './sync.service';\nexport { TokenService } from './token.service';\nexport { TotpService } from './totp.service';\nexport { UserService } from './user.service';\nexport { VaultTimeoutService } from './vaultTimeout.service';\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PolicyType } from 'jslib/enums/policyType';\n\nimport { PolicyRequest } from 'jslib/models/request/policyRequest';\n\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\n@Component({\n selector: 'app-policy-edit',\n templateUrl: 'policy-edit.component.html',\n})\nexport class PolicyEditComponent implements OnInit {\n @Input() name: string;\n @Input() description: string;\n @Input() type: PolicyType;\n @Input() organizationId: string;\n @Input() policiesEnabledMap: Map = new Map();\n @Output() onSavedPolicy = new EventEmitter();\n\n policyType = PolicyType;\n loading = true;\n enabled = false;\n formPromise: Promise;\n passwordScores: any[];\n defaultTypes: any[];\n\n // Master password\n\n masterPassMinComplexity?: number = null;\n masterPassMinLength?: number;\n masterPassRequireUpper?: number;\n masterPassRequireLower?: number;\n masterPassRequireNumbers?: number;\n masterPassRequireSpecial?: number;\n\n // Password generator\n\n passGenDefaultType?: string;\n passGenMinLength?: number;\n passGenUseUpper?: boolean;\n passGenUseLower?: boolean;\n passGenUseNumbers?: boolean;\n passGenUseSpecial?: boolean;\n passGenMinNumbers?: number;\n passGenMinSpecial?: number;\n passGenMinNumberWords?: number;\n passGenCapitalize?: boolean;\n passGenIncludeNumber?: boolean;\n\n private policy: PolicyResponse;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) {\n this.passwordScores = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: i18nService.t('weak') + ' (0)', value: 0 },\n { name: i18nService.t('weak') + ' (1)', value: 1 },\n { name: i18nService.t('weak') + ' (2)', value: 2 },\n { name: i18nService.t('good') + ' (3)', value: 3 },\n { name: i18nService.t('strong') + ' (4)', value: 4 },\n ];\n this.defaultTypes = [\n { name: i18nService.t('userPreference'), value: null },\n { name: i18nService.t('password'), value: 'password' },\n { name: i18nService.t('passphrase'), value: 'passphrase' },\n ];\n }\n\n async ngOnInit() {\n await this.load();\n this.loading = false;\n }\n\n async load() {\n try {\n this.policy = await this.apiService.getPolicy(this.organizationId, this.type);\n\n if (this.policy != null) {\n this.enabled = this.policy.enabled;\n if (this.policy.data != null) {\n switch (this.type) {\n case PolicyType.PasswordGenerator:\n this.passGenDefaultType = this.policy.data.defaultType;\n this.passGenMinLength = this.policy.data.minLength;\n this.passGenUseUpper = this.policy.data.useUpper;\n this.passGenUseLower = this.policy.data.useLower;\n this.passGenUseNumbers = this.policy.data.useNumbers;\n this.passGenUseSpecial = this.policy.data.useSpecial;\n this.passGenMinNumbers = this.policy.data.minNumbers;\n this.passGenMinSpecial = this.policy.data.minSpecial;\n this.passGenMinNumberWords = this.policy.data.minNumberWords;\n this.passGenCapitalize = this.policy.data.capitalize;\n this.passGenIncludeNumber = this.policy.data.includeNumber;\n break;\n case PolicyType.MasterPassword:\n this.masterPassMinComplexity = this.policy.data.minComplexity;\n this.masterPassMinLength = this.policy.data.minLength;\n this.masterPassRequireUpper = this.policy.data.requireUpper;\n this.masterPassRequireLower = this.policy.data.requireLower;\n this.masterPassRequireNumbers = this.policy.data.requireNumbers;\n this.masterPassRequireSpecial = this.policy.data.requireSpecial;\n break;\n default:\n break;\n }\n }\n }\n } catch (e) {\n if (e.statusCode === 404) {\n this.enabled = false;\n } else {\n throw e;\n }\n }\n }\n\n async submit() {\n if (this.preValidate()) {\n const request = new PolicyRequest();\n request.enabled = this.enabled;\n request.type = this.type;\n request.data = null;\n switch (this.type) {\n case PolicyType.PasswordGenerator:\n request.data = {\n defaultType: this.passGenDefaultType,\n minLength: this.passGenMinLength || null,\n useUpper: this.passGenUseUpper,\n useLower: this.passGenUseLower,\n useNumbers: this.passGenUseNumbers,\n useSpecial: this.passGenUseSpecial,\n minNumbers: this.passGenMinNumbers || null,\n minSpecial: this.passGenMinSpecial || null,\n minNumberWords: this.passGenMinNumberWords || null,\n capitalize: this.passGenCapitalize,\n includeNumber: this.passGenIncludeNumber,\n };\n break;\n case PolicyType.MasterPassword:\n request.data = {\n minComplexity: this.masterPassMinComplexity || null,\n minLength: this.masterPassMinLength || null,\n requireUpper: this.masterPassRequireUpper,\n requireLower: this.masterPassRequireLower,\n requireNumbers: this.masterPassRequireNumbers,\n requireSpecial: this.masterPassRequireSpecial,\n };\n break;\n default:\n break;\n }\n try {\n this.formPromise = this.apiService.putPolicy(this.organizationId, this.type, request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Edited Policy' });\n this.toasterService.popAsync('success', null, this.i18nService.t('editedPolicyId', this.name));\n this.onSavedPolicy.emit();\n } catch { }\n }\n }\n\n get checkboxDesc(): string {\n return this.type === PolicyType.PersonalOwnership ? this.i18nService.t('personalOwnershipCheckboxDesc') :\n this.i18nService.t('enabled');\n }\n\n private preValidate(): boolean {\n switch (this.type) {\n case PolicyType.RequireSso:\n // Don't need prevalidation checks if submitting to disable\n if (!this.enabled) {\n return true;\n }\n // Have SingleOrg policy enabled?\n if (!(this.policiesEnabledMap.has(PolicyType.SingleOrg)\n && this.policiesEnabledMap.get(PolicyType.SingleOrg))) {\n this.toasterService.popAsync('error', null, this.i18nService.t('requireSsoPolicyReqError'));\n return false;\n }\n return true;\n\n case PolicyType.SingleOrg:\n // Don't need prevalidation checks if submitting to enable\n if (this.enabled) {\n return true;\n }\n // If RequireSso Policy is enabled prevent submittal\n if (this.policiesEnabledMap.has(PolicyType.RequireSso)\n && this.policiesEnabledMap.get(PolicyType.RequireSso)) {\n this.toasterService.popAsync('error', null, this.i18nService.t('disableRequireSsoError'));\n return false;\n }\n return true;\n\n default:\n return true;\n }\n }\n}\n","
\n
\n
\n
\n

{{'editPolicy' | i18n}} - {{name}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{description}}

\n \n {{'twoStepLoginPolicyWarning' | i18n}}\n \n \n {{'singleOrgPolicyWarning' | i18n}}\n \n \n \n {{'requireSsoPolicyReq' | i18n}}\n \n \n {{'requireSsoExemption' | i18n}}\n \n \n \n {{'personalOwnershipExemption' | i18n}}\n \n \n {{'disableSendExemption' | i18n}}\n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n

{{'password' | i18n}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n

{{'passphrase' | i18n}}

\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\n\nimport { OrganizationUpdateRequest } from 'jslib/models/request/organizationUpdateRequest';\nimport { OrganizationResponse } from 'jslib/models/response/organizationResponse';\n\nimport { ModalComponent } from '../../modal.component';\nimport { ApiKeyComponent } from '../../settings/api-key.component';\nimport { PurgeVaultComponent } from '../../settings/purge-vault.component';\nimport { TaxInfoComponent } from '../../settings/tax-info.component';\nimport { DeleteOrganizationComponent } from './delete-organization.component';\n\n@Component({\n selector: 'app-org-account',\n templateUrl: 'account.component.html',\n})\nexport class AccountComponent {\n @ViewChild('deleteOrganizationTemplate', { read: ViewContainerRef, static: true }) deleteModalRef: ViewContainerRef;\n @ViewChild('purgeOrganizationTemplate', { read: ViewContainerRef, static: true }) purgeModalRef: ViewContainerRef;\n @ViewChild('apiKeyTemplate', { read: ViewContainerRef, static: true }) apiKeyModalRef: ViewContainerRef;\n @ViewChild('rotateApiKeyTemplate', { read: ViewContainerRef, static: true }) rotateApiKeyModalRef: ViewContainerRef;\n @ViewChild(TaxInfoComponent) taxInfo: TaxInfoComponent;\n\n selfHosted = false;\n loading = true;\n canUseApi = false;\n org: OrganizationResponse;\n formPromise: Promise;\n taxFormPromise: Promise;\n\n private organizationId: string;\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private route: ActivatedRoute, private syncService: SyncService,\n private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.selfHosted = this.platformUtilsService.isSelfHost();\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n try {\n this.org = await this.apiService.getOrganization(this.organizationId);\n this.canUseApi = this.org.useApi;\n } catch { }\n });\n this.loading = false;\n }\n\n async submit() {\n try {\n const request = new OrganizationUpdateRequest();\n request.name = this.org.name;\n request.businessName = this.org.businessName;\n request.billingEmail = this.org.billingEmail;\n request.identifier = this.org.identifier;\n this.formPromise = this.apiService.putOrganization(this.organizationId, request).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Updated Organization Settings' });\n this.toasterService.popAsync('success', null, this.i18nService.t('organizationUpdated'));\n } catch { }\n }\n\n async submitTaxInfo() {\n this.taxFormPromise = this.taxInfo.submitTaxInfo();\n await this.taxFormPromise;\n this.analytics.eventTrack.next({ action: 'Updated Organization Tax Info' });\n this.toasterService.popAsync('success', null, this.i18nService.t('taxInfoUpdated'));\n }\n\n deleteOrganization() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deleteModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n DeleteOrganizationComponent, this.deleteModalRef);\n childComponent.organizationId = this.organizationId;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n purgeVault() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.purgeModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(PurgeVaultComponent, this.purgeModalRef);\n childComponent.organizationId = this.organizationId;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n viewApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.apiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.apiKeyModalRef);\n childComponent.keyType = 'organization';\n childComponent.entityId = this.organizationId;\n childComponent.postKey = this.apiService.postOrganizationApiKey.bind(this.apiService);\n childComponent.scope = 'api.organization';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'apiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n rotateApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.rotateApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.rotateApiKeyModalRef);\n childComponent.keyType = 'organization';\n childComponent.isRotation = true;\n childComponent.entityId = this.organizationId;\n childComponent.postKey = this.apiService.postOrganizationRotateApiKey.bind(this.apiService);\n childComponent.scope = 'api.organization';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'apiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyRotateDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n}\n","
\n

{{'myOrganization' | i18n}}

\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n\n
\n

{{'apiKey' | i18n}}

\n
\n

\n {{'apiKeyDesc' | i18n}}\n \n {{'learnMore' | i18n}}\n \n

\n \n \n
\n
\n

{{'taxInformation' | i18n}}

\n
\n

{{'taxInformationDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n \n
\n
\n

{{'dangerZone' | i18n}}

\n
\n
\n
\n

{{'dangerZoneDesc' | i18n}}

\n \n \n
\n
\n\n\n\n\n","import { TaxInfoUpdateRequest } from './taxInfoUpdateRequest';\n\nexport class OrganizationTaxInfoUpdateRequest extends TaxInfoUpdateRequest {\n taxId: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n}\n","export class TaxInfoUpdateRequest {\n country: string;\n postalCode: string;\n}\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-delete-organization',\n templateUrl: 'delete-organization.component.html',\n})\nexport class DeleteOrganizationComponent {\n organizationId: string;\n\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private router: Router) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.deleteOrganization(this.organizationId, request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Deleted Organization' });\n this.toasterService.popAsync('success', this.i18nService.t('organizationDeleted'),\n this.i18nService.t('organizationDeletedDesc'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deleteOrganization' | i18n}}

\n \n
\n
\n

{{'deleteOrganizationDesc' | i18n}}

\n {{'deleteOrganizationWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { UserBillingComponent } from '../../settings/user-billing.component';\n\n@Component({\n selector: 'app-org-billing',\n templateUrl: '../../settings/user-billing.component.html',\n})\nexport class OrganizationBillingComponent extends UserBillingComponent implements OnInit {\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n private route: ActivatedRoute, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n this.firstLoaded = true;\n });\n }\n}\n","export class WebConstants {\n static readonly stripeTestKey = 'pk_test_KPoCfZXu7mznb9uSCPZ2JpTD';\n static readonly stripeLiveKey = 'pk_live_bpN0P37nMxrMQkcaHXtAybJk';\n static readonly btSandboxKey = 'sandbox_r72q8jq6_9pnxkwm75f87sdc2';\n static readonly btProductionKey = 'production_qfbsv8kc_njj2zjtyngtjmbjd';\n static readonly paypal = {\n businessIdProduction: '4ZDA7DLUUJGMN',\n businessIdSandbox: 'AD3LAUZSNVPJY',\n buttonActionProduction: 'https://www.paypal.com/cgi-bin/webscr',\n buttonActionSandbox: 'https://www.sandbox.paypal.com/cgi-bin/webscr',\n };\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { OrganizationSubscriptionResponse } from 'jslib/models/response/organizationSubscriptionResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PlanType } from 'jslib/enums/planType';\n\n@Component({\n selector: 'app-org-subscription',\n templateUrl: 'organization-subscription.component.html',\n})\nexport class OrganizationSubscriptionComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n organizationId: string;\n adjustSeatsAdd = true;\n showAdjustSeats = false;\n adjustStorageAdd = true;\n showAdjustStorage = false;\n showUpdateLicense = false;\n showDownloadLicense = false;\n showChangePlan = false;\n sub: OrganizationSubscriptionResponse;\n selfHosted = false;\n\n cancelPromise: Promise;\n reinstatePromise: Promise;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService, private analytics: Angulartics2,\n private toasterService: ToasterService, private messagingService: MessagingService,\n private route: ActivatedRoute) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n this.firstLoaded = true;\n });\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n this.sub = await this.apiService.getOrganizationSubscription(this.organizationId);\n this.loading = false;\n }\n\n async reinstate() {\n if (this.loading) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('reinstateConfirmation'),\n this.i18nService.t('reinstateSubscription'), this.i18nService.t('yes'), this.i18nService.t('cancel'));\n if (!confirmed) {\n return;\n }\n\n try {\n this.reinstatePromise = this.apiService.postOrganizationReinstate(this.organizationId);\n await this.reinstatePromise;\n this.analytics.eventTrack.next({ action: 'Reinstated Plan' });\n this.toasterService.popAsync('success', null, this.i18nService.t('reinstated'));\n this.load();\n } catch { }\n }\n\n async cancel() {\n if (this.loading) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('cancelConfirmation'),\n this.i18nService.t('cancelSubscription'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.cancelPromise = this.apiService.postOrganizationCancel(this.organizationId);\n await this.cancelPromise;\n this.analytics.eventTrack.next({ action: 'Canceled Plan' });\n this.toasterService.popAsync('success', null, this.i18nService.t('canceledSubscription'));\n this.load();\n } catch { }\n }\n\n async changePlan() {\n if (this.subscription == null && this.sub.planType === PlanType.Free) {\n this.showChangePlan = !this.showChangePlan;\n return;\n }\n const contactSupport = await this.platformUtilsService.showDialog(this.i18nService.t('changeBillingPlanDesc'),\n this.i18nService.t('changeBillingPlan'), this.i18nService.t('contactSupport'), this.i18nService.t('close'));\n if (contactSupport) {\n this.platformUtilsService.launchUri('https://bitwarden.com/contact');\n }\n }\n\n closeChangePlan(changed: boolean) {\n this.showChangePlan = false;\n }\n\n downloadLicense() {\n this.showDownloadLicense = !this.showDownloadLicense;\n }\n\n closeDownloadLicense() {\n this.showDownloadLicense = false;\n }\n\n updateLicense() {\n if (this.loading) {\n return;\n }\n this.showUpdateLicense = true;\n }\n\n closeUpdateLicense(updated: boolean) {\n this.showUpdateLicense = false;\n if (updated) {\n this.load();\n this.messagingService.send('updatedOrgLicense');\n }\n }\n\n adjustSeats(add: boolean) {\n this.adjustSeatsAdd = add;\n this.showAdjustSeats = true;\n }\n\n closeSeats(load: boolean) {\n this.showAdjustSeats = false;\n if (load) {\n this.load();\n }\n }\n\n adjustStorage(add: boolean) {\n this.adjustStorageAdd = add;\n this.showAdjustStorage = true;\n }\n\n closeStorage(load: boolean) {\n this.showAdjustStorage = false;\n if (load) {\n this.load();\n }\n }\n\n get isExpired() {\n return this.sub != null && this.sub.expiration != null &&\n new Date(this.sub.expiration) < new Date();\n }\n\n get subscriptionMarkedForCancel() {\n return this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate;\n }\n\n get subscription() {\n return this.sub != null ? this.sub.subscription : null;\n }\n\n get nextInvoice() {\n return this.sub != null ? this.sub.upcomingInvoice : null;\n }\n\n get storagePercentage() {\n return this.sub != null && this.sub.maxStorageGb ?\n +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) : 0;\n }\n\n get storageProgressWidth() {\n return this.storagePercentage < 5 ? 5 : 0;\n }\n\n get billingInterval() {\n const monthly = !this.sub.plan.isAnnual;\n return monthly ? 'month' : 'year';\n }\n\n get storageGbPrice() {\n return this.sub.plan.additionalStoragePricePerGb;\n }\n\n get seatPrice() {\n return this.sub.plan.seatPrice;\n }\n\n get canAdjustSeats() {\n return this.sub.plan.hasAdditionalSeatsOption;\n }\n\n get canDownloadLicense() {\n return (this.sub.planType !== PlanType.Free && this.subscription == null) ||\n (this.subscription != null && !this.subscription.cancelled);\n }\n}\n","
\n

\n {{'subscription' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n {{'subscriptionCanceled' | i18n}}\n \n

{{'subscriptionPendingCanceled' | i18n}}

\n \n
\n
\n
{{'billingPlan' | i18n}}
\n
{{sub.plan.name}}
\n
{{'expiration' | i18n}}
\n
\n {{sub.expiration | date:'mediumDate'}}\n \n \n {{'licenseIsExpired' | i18n}}\n \n
\n
{{'neverExpires' | i18n}}
\n
\n
\n
\n
\n
{{'billingPlan' | i18n}}
\n
{{sub.plan.name}}
\n \n
{{'status' | i18n}}
\n
\n {{subscription.status || '-'}}\n {{'pendingCancellation' | i18n}}\n
\n
{{'nextCharge' | i18n}}
\n
{{nextInvoice ? ((nextInvoice.date | date: 'mediumDate') + ', ' + (nextInvoice.amount | currency:'$'))\n : '-'}}\n
\n
\n
\n
\n
\n {{'details' | i18n}}\n \n \n \n \n \n \n \n
\n {{i.name}} {{i.quantity > 1 ? '×' + i.quantity : ''}} @ {{i.amount | currency:'$'}}\n \n {{(i.quantity * i.amount) | currency:'$'}} /{{i.interval | i18n}}\n
\n
\n
\n \n
\n \n \n {{'manageSubscription' | i18n}}\n \n
\n
\n
\n \n

{{'updateLicense' | i18n}}

\n \n
\n
\n
\n \n
\n \n \n \n
\n \n
\n \n
\n

{{'userSeats' | i18n}}

\n

{{'subscriptionUserSeats' | i18n : sub.seats}}

\n \n
\n
\n \n \n
\n \n
\n
\n

{{'storage' | i18n}}

\n

{{'subscriptionStorage' | i18n : sub.maxStorageGb || 0 : sub.storageName || '0 MB'}}

\n
\n
\n {{(storagePercentage / 100) | percent}}
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PlanType } from 'jslib/enums/planType';\nimport { ProductType } from 'jslib/enums/productType';\n\n@Component({\n selector: 'app-change-plan',\n templateUrl: 'change-plan.component.html',\n})\nexport class ChangePlanComponent {\n @Input() organizationId: string;\n @Output() onChanged = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n formPromise: Promise;\n defaultUpgradePlan: PlanType = PlanType.FamiliesAnnually;\n defaultUpgradeProduct: ProductType = ProductType.Families;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n try {\n this.platformUtilsService.eventTrack('Changed Plan');\n this.onChanged.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n

{{'changeBillingPlan' | i18n}}

\n

{{'changeBillingPlanUpgrade' | i18n}}

\n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-download-license',\n templateUrl: 'download-license.component.html',\n})\nexport class DownloadLicenseComponent {\n @Input() organizationId: string;\n @Output() onDownloaded = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n installationId: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n if (this.installationId == null || this.installationId === '') {\n return;\n }\n\n try {\n this.formPromise = this.apiService.getOrganizationLicense(this.organizationId, this.installationId);\n const license = await this.formPromise;\n const licenseString = JSON.stringify(license, null, 2);\n this.platformUtilsService.saveFile(window, licenseString, null, 'bitwarden_organization_license.json');\n this.platformUtilsService.eventTrack('Downloaded License');\n this.onDownloaded.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n

{{'downloadLicense' | i18n}}

\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { SeatRequest } from 'jslib/models/request/seatRequest';\n\nimport { PaymentComponent } from '../../settings/payment.component';\n\n@Component({\n selector: 'app-adjust-seats',\n templateUrl: 'adjust-seats.component.html',\n})\nexport class AdjustSeatsComponent {\n @Input() seatPrice = 0;\n @Input() add = true;\n @Input() organizationId: string;\n @Input() interval = 'year';\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n seatAdjustment = 0;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private router: Router, private activatedRoute: ActivatedRoute) { }\n\n async submit() {\n try {\n const request = new SeatRequest();\n request.seatAdjustment = this.seatAdjustment;\n if (!this.add) {\n request.seatAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n const result = await this.apiService.postOrganizationSeat(this.organizationId, request);\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n } catch {\n paymentFailed = true;\n }\n }\n };\n this.formPromise = action();\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.add ? 'Added Seats' : 'Removed Seats' });\n this.onAdjusted.emit(this.seatAdjustment);\n if (paymentFailed) {\n this.toasterService.popAsync({\n body: this.i18nService.t('couldNotChargeCardPayInvoice'),\n type: 'warning',\n timeout: 10000,\n });\n this.router.navigate(['../billing'], { relativeTo: this.activatedRoute });\n } else {\n this.toasterService.popAsync('success', null,\n this.i18nService.t('adjustedSeats', request.seatAdjustment.toString()));\n }\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n get adjustedSeatTotal(): number {\n return this.seatAdjustment * this.seatPrice;\n }\n}\n","
\n
\n \n

{{(add ? 'addSeats' : 'removeSeats') | i18n}}

\n
\n
\n \n \n
\n
\n
\n {{'total' | i18n}}: {{seatAdjustment || 0}} × {{seatPrice | currency:'$'}} = {{adjustedSeatTotal\n | currency:'$'}} /{{interval | i18n}}\n
\n \n \n \n {{(add ? 'seatsAddNote' : 'seatsRemoveNote') | i18n}}\n \n
\n
\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-org-settings',\n templateUrl: 'settings.component.html',\n})\nexport class SettingsComponent {\n access2fa = false;\n selfHosted: boolean;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.selfHosted = await this.platformUtilsService.isSelfHost();\n const organization = await this.userService.getOrganization(params.organizationId);\n this.access2fa = organization.use2fa;\n });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorDuoComponent } from '../../settings/two-factor-duo.component';\nimport { TwoFactorSetupComponent as BaseTwoFactorSetupComponent } from '../../settings/two-factor-setup.component';\n\n@Component({\n selector: 'app-two-factor-setup',\n templateUrl: '../../settings/two-factor-setup.component.html',\n})\nexport class TwoFactorSetupComponent extends BaseTwoFactorSetupComponent {\n constructor(apiService: ApiService, userService: UserService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n policyService: PolicyService, private route: ActivatedRoute) {\n super(apiService, userService, componentFactoryResolver, messagingService, policyService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await super.ngOnInit();\n });\n }\n\n manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.OrganizationDuo:\n const duoComp = this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.type = TwoFactorProviderType.OrganizationDuo;\n duoComp.organizationId = this.organizationId;\n duoComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.OrganizationDuo);\n });\n break;\n default:\n break;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorOrganizationProviders(this.organizationId);\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type !== TwoFactorProviderType.OrganizationDuo;\n }\n}\n","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { UpdateTwoFactorAuthenticatorRequest } from 'jslib/models/request/updateTwoFactorAuthenticatorRequest';\nimport { TwoFactorAuthenticatorResponse } from 'jslib/models/response/twoFactorAuthenticatorResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-authenticator',\n templateUrl: 'two-factor-authenticator.component.html',\n})\nexport class TwoFactorAuthenticatorComponent extends TwoFactorBaseComponent implements OnInit, OnDestroy {\n type = TwoFactorProviderType.Authenticator;\n key: string;\n token: string;\n formPromise: Promise;\n\n private qrScript: HTMLScriptElement;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n private userService: UserService, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n this.qrScript = window.document.createElement('script');\n this.qrScript.src = 'scripts/qrious.min.js';\n this.qrScript.async = true;\n }\n\n ngOnInit() {\n window.document.body.appendChild(this.qrScript);\n }\n\n ngOnDestroy() {\n window.document.body.removeChild(this.qrScript);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorAuthenticatorRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.token = this.token;\n request.key = this.key;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorAuthenticator(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorAuthenticatorResponse) {\n this.token = null;\n this.enabled = response.enabled;\n this.key = response.key;\n const email = await this.userService.getEmail();\n window.setTimeout(() => {\n const qr = new (window as any).QRious({\n element: document.getElementById('qr'),\n value: 'otpauth://totp/Bitwarden:' + encodeURIComponent(email) +\n '?secret=' + encodeURIComponent(this.key) + '&issuer=Bitwarden',\n size: 160,\n });\n }, 100);\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'authenticatorAppTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n \"\"\n

{{'twoStepAuthenticatorDesc' | i18n}}

\n

\n 1. {{'twoStepAuthenticatorDownloadApp' | i18n}}\n

\n
\n \n \n

{{'twoStepLoginProviderEnabled' | i18n}}

\n {{'twoStepAuthenticatorReaddDesc' | i18n}}\n
\n \"\"\n

{{'twoStepAuthenticatorNeedApp' | i18n}}

\n
\n \n

{{'twoStepAuthenticatorAppsRecommended' | i18n}}

\n

\n 2. {{'twoStepAuthenticatorScanCode' | i18n}}\n

\n
\n

\n
\n {{key}}\n

\n \n \n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorEmailRequest } from 'jslib/models/request/twoFactorEmailRequest';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { UpdateTwoFactorEmailRequest } from 'jslib/models/request/updateTwoFactorEmailRequest';\nimport { TwoFactorEmailResponse } from 'jslib/models/response/twoFactorEmailResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-email',\n templateUrl: 'two-factor-email.component.html',\n})\nexport class TwoFactorEmailComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Email;\n email: string;\n token: string;\n sentEmail: string;\n formPromise: Promise;\n emailPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService, private userService: UserService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n async sendEmail() {\n try {\n const request = new TwoFactorEmailRequest(this.email, this.masterPasswordHash);\n this.emailPromise = this.apiService.postTwoFactorEmailSetup(request);\n await this.emailPromise;\n this.sentEmail = this.email;\n } catch { }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorEmailRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.email = this.email;\n request.token = this.token;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorEmail(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorEmailResponse) {\n this.token = null;\n this.email = response.email;\n this.enabled = response.enabled;\n if (!this.enabled && (this.email == null || this.email === '')) {\n this.email = await this.userService.getEmail();\n }\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'emailTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n {{'email' | i18n}}: {{email}}\n \n \n

\n {{'twoFactorEmailDesc' | i18n}}\n \"\"\n

\n
\n \n \n
\n
\n \n \n {{'verificationCodeEmailSent' | i18n : sentEmail}}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { TwoFactorRecoverResponse } from 'jslib/models/response/twoFactorRescoverResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\n@Component({\n selector: 'app-two-factor-recovery',\n templateUrl: 'two-factor-recovery.component.html',\n})\nexport class TwoFactorRecoveryComponent {\n type = -1;\n code: string;\n authed: boolean;\n twoFactorProviderType = TwoFactorProviderType;\n\n constructor(private i18nService: I18nService) { }\n\n auth(authResponse: any) {\n this.authed = true;\n this.processResponse(authResponse.response);\n }\n\n print() {\n const w = window.open();\n w.document.write('
' +\n '

' + this.i18nService.t('twoFactorRecoveryYourCode') + ':

' +\n '' +\n this.code + '
' +\n '

' + new Date() + '

');\n w.onafterprint = () => w.close();\n w.print();\n }\n\n private formatString(s: string) {\n if (s == null) {\n return null;\n }\n return s.replace(/(.{4})/g, '$1 ').trim().toUpperCase();\n }\n\n private processResponse(response: TwoFactorRecoverResponse) {\n this.code = this.formatString(response.code);\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'recoveryCodeTitle' | i18n}}\n

\n \n
\n \n \n \n
\n \n

{{'twoFactorRecoveryYourCode' | i18n}}:

\n {{code}}\n
\n \n {{'twoFactorRecoveryNoCode' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n
\n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\nimport { UpdateTwoFactorU2fDeleteRequest } from 'jslib/models/request/updateTwoFactorU2fDeleteRequest';\nimport { UpdateTwoFactorU2fRequest } from 'jslib/models/request/updateTwoFactorU2fRequest';\nimport {\n ChallengeResponse,\n TwoFactorU2fResponse,\n} from 'jslib/models/response/twoFactorU2fResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-u2f',\n templateUrl: 'two-factor-u2f.component.html',\n})\nexport class TwoFactorU2fComponent extends TwoFactorBaseComponent implements OnInit, OnDestroy {\n type = TwoFactorProviderType.U2f;\n name: string;\n keys: any[];\n keyIdAvailable: number = null;\n keysConfiguredCount = 0;\n u2fError: boolean;\n u2fListening: boolean;\n u2fResponse: string;\n challengePromise: Promise;\n formPromise: Promise;\n\n private u2fScript: HTMLScriptElement;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService, private ngZone: NgZone) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n this.u2fScript = window.document.createElement('script');\n this.u2fScript.src = 'scripts/u2f.js';\n this.u2fScript.async = true;\n }\n\n ngOnInit() {\n window.document.body.appendChild(this.u2fScript);\n }\n\n ngOnDestroy() {\n window.document.body.removeChild(this.u2fScript);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.u2fResponse == null || this.keyIdAvailable == null) {\n // Should never happen.\n return Promise.reject();\n }\n const request = new UpdateTwoFactorU2fRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.deviceResponse = this.u2fResponse;\n request.id = this.keyIdAvailable;\n request.name = this.name;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorU2f(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n disable() {\n return super.disable(this.formPromise);\n }\n\n async remove(key: any) {\n if (this.keysConfiguredCount <= 1 || key.removePromise != null) {\n return;\n }\n const name = key.name != null ? key.name : this.i18nService.t('u2fkeyX', key.id);\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeU2fConfirmation'), name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n const request = new UpdateTwoFactorU2fDeleteRequest();\n request.id = key.id;\n request.masterPasswordHash = this.masterPasswordHash;\n try {\n key.removePromise = this.apiService.deleteTwoFactorU2f(request);\n const response = await key.removePromise;\n key.removePromise = null;\n await this.processResponse(response);\n } catch { }\n }\n\n async readKey() {\n if (this.keyIdAvailable == null) {\n return;\n }\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n try {\n this.challengePromise = this.apiService.getTwoFactorU2fChallenge(request);\n const challenge = await this.challengePromise;\n this.readDevice(challenge);\n } catch { }\n }\n\n private readDevice(u2fChallenge: ChallengeResponse) {\n // tslint:disable-next-line\n console.log('listening for key...');\n this.resetU2f(true);\n (window as any).u2f.register(u2fChallenge.appId, [{\n version: u2fChallenge.version,\n challenge: u2fChallenge.challenge,\n }], [], (data: any) => {\n this.ngZone.run(() => {\n this.u2fListening = false;\n if (data.errorCode) {\n this.u2fError = true;\n // tslint:disable-next-line\n console.log('error: ' + data.errorCode);\n return;\n }\n this.u2fResponse = JSON.stringify(data);\n });\n }, 15);\n }\n\n private resetU2f(listening = false) {\n this.u2fResponse = null;\n this.u2fError = false;\n this.u2fListening = listening;\n }\n\n private processResponse(response: TwoFactorU2fResponse) {\n this.resetU2f();\n this.keys = [];\n this.keyIdAvailable = null;\n this.name = null;\n this.keysConfiguredCount = 0;\n for (let i = 1; i <= 5; i++) {\n if (response.keys != null) {\n const key = response.keys.filter(k => k.id === i);\n if (key.length > 0) {\n this.keysConfiguredCount++;\n this.keys.push({\n id: i, name: key[0].name,\n configured: true,\n compromised: key[0].compromised,\n removePromise: null,\n });\n continue;\n }\n }\n this.keys.push({ id: i, name: null, configured: false, compromised: false, removePromise: null });\n if (this.keyIdAvailable == null) {\n this.keyIdAvailable = i;\n }\n }\n this.enabled = response.enabled;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n FIDO U2F\n

\n \n
\n \n \n
\n
\n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \n

{{'twoFactorU2fWarning' | i18n}}

\n
    \n
  • {{'twoFactorU2fSupportWeb' | i18n}}
  • \n
\n
\n \"\"\n
    \n
  • \n \n {{'u2fkeyX' | i18n : i + 1}}\n {{k.name}}\n \n \n \n {{'keyCompromised' | i18n}}\n \n \n \n {{'enabled' | i18n}}\n \n \n 1 && k.configured\">\n \n -\n {{'remove' | i18n}}\n \n
  • \n
\n
\n

{{'twoFactorU2fAdd' | i18n}}:

\n
    \n
  1. {{'twoFactorU2fGiveName' | i18n}}
  2. \n
  3. {{'twoFactorU2fPlugInReadKey' | i18n}}
  4. \n
  5. {{'twoFactorU2fTouchButton' | i18n}}
  6. \n
  7. {{'twoFactorU2fSaveForm' | i18n}}
  8. \n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n {{'twoFactorU2fWaiting' | i18n}}...\n \n \n \n {{'twoFactorU2fClickSave' | i18n}}\n \n \n \n {{'twoFactorU2fProblemReadingTryAgain' | i18n}}\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { UpdateTwoFactorYubioOtpRequest } from 'jslib/models/request/updateTwoFactorYubioOtpRequest';\nimport { TwoFactorYubiKeyResponse } from 'jslib/models/response/twoFactorYubiKeyResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-yubikey',\n templateUrl: 'two-factor-yubikey.component.html',\n})\nexport class TwoFactorYubiKeyComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Yubikey;\n keys: any[];\n nfc = false;\n\n formPromise: Promise;\n disablePromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n const request = new UpdateTwoFactorYubioOtpRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.key1 = this.keys != null && this.keys.length > 0 ? this.keys[0].key : null;\n request.key2 = this.keys != null && this.keys.length > 1 ? this.keys[1].key : null;\n request.key3 = this.keys != null && this.keys.length > 2 ? this.keys[2].key : null;\n request.key4 = this.keys != null && this.keys.length > 3 ? this.keys[3].key : null;\n request.key5 = this.keys != null && this.keys.length > 4 ? this.keys[4].key : null;\n request.nfc = this.nfc;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorYubiKey(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n this.toasterService.popAsync('success', null, this.i18nService.t('yubikeysUpdated'));\n });\n }\n\n disable() {\n return super.disable(this.disablePromise);\n }\n\n remove(key: any) {\n key.existingKey = null;\n key.key = null;\n }\n\n private processResponse(response: TwoFactorYubiKeyResponse) {\n this.enabled = response.enabled;\n this.keys = [\n { key: response.key1, existingKey: this.padRight(response.key1) },\n { key: response.key2, existingKey: this.padRight(response.key2) },\n { key: response.key3, existingKey: this.padRight(response.key3) },\n { key: response.key4, existingKey: this.padRight(response.key4) },\n { key: response.key5, existingKey: this.padRight(response.key5) },\n ];\n this.nfc = response.nfc || !response.enabled;\n }\n\n private padRight(str: string, character = '•', size = 44) {\n if (str == null || character == null || str.length >= size) {\n return str;\n }\n const max = (size - str.length) / character.length;\n for (let i = 0; i < max; i++) {\n str += character;\n }\n return str;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n YubiKey\n

\n \n
\n \n \n
\n
\n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \n

{{'twoFactorYubikeyWarning' | i18n}}

\n
    \n
  • {{'twoFactorYubikeySupportUsb' | i18n}}
  • \n
  • {{'twoFactorYubikeySupportMobile' | i18n}}
  • \n
\n
\n \"\"\n

{{'twoFactorYubikeyAdd' | i18n}}:

\n
    \n
  1. {{'twoFactorYubikeyPlugIn' | i18n}}
  2. \n
  3. {{'twoFactorYubikeySelectKey' | i18n}}
  4. \n
  5. {{'twoFactorYubikeyTouchButton' | i18n}}
  6. \n
  7. {{'twoFactorYubikeySaveForm' | i18n}}
  8. \n
\n
\n
\n
\n \n \n
\n {{k.existingKey}}\n \n
\n
\n
\n {{'nfcSupport' | i18n}}\n
\n \n \n
\n {{'twoFactorYubikeySupportsNfcDesc' | i18n}}\n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { ExportService } from 'jslib/abstractions/export.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { ExportComponent as BaseExportComponent } from '../../tools/export.component';\n\nimport { EventType } from 'jslib/enums/eventType';\n\n@Component({\n selector: 'app-org-export',\n templateUrl: '../../tools/export.component.html',\n})\nexport class ExportComponent extends BaseExportComponent {\n constructor(cryptoService: CryptoService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, exportService: ExportService,\n eventService: EventService, private route: ActivatedRoute) {\n super(cryptoService, i18nService, platformUtilsService, exportService, eventService);\n }\n\n ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n });\n }\n\n getExportData() {\n return this.exportService.getOrganizationExport(this.organizationId, this.format);\n }\n\n getFileName() {\n return super.getFileName('org');\n }\n\n async collectEvent(): Promise {\n // TODO\n // await this.eventService.collect(EventType.Organization_ClientExportedVault);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n ExposedPasswordsReportComponent as BaseExposedPasswordsReportComponent,\n} from '../../tools/exposed-passwords-report.component';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-exposed-passwords-report',\n templateUrl: '../../tools/exposed-passwords-report.component.html',\n})\nexport class ExposedPasswordsReportComponent extends BaseExposedPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, auditService: AuditService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService, private route: ActivatedRoute) {\n super(cipherService, auditService, componentFactoryResolver, messagingService, userService);\n }\n\n ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import { PasswordHistoryResponse } from '../response/passwordHistoryResponse';\n\nexport class PasswordHistoryData {\n password: string;\n lastUsedDate: string;\n\n constructor(response?: PasswordHistoryResponse) {\n if (response == null) {\n return;\n }\n\n this.password = response.password;\n this.lastUsedDate = response.lastUsedDate;\n }\n}\n","import { View } from './view';\n\nimport { Attachment } from '../domain/attachment';\nimport { SymmetricCryptoKey } from '../domain/symmetricCryptoKey';\n\nexport class AttachmentView implements View {\n id: string = null;\n url: string = null;\n size: string = null;\n sizeName: string = null;\n fileName: string = null;\n key: SymmetricCryptoKey = null;\n\n constructor(a?: Attachment) {\n if (!a) {\n return;\n }\n\n this.id = a.id;\n this.url = a.url;\n this.size = a.size;\n this.sizeName = a.sizeName;\n }\n\n get fileSize(): number {\n try {\n if (this.size != null) {\n return parseInt(this.size, null);\n }\n } catch { }\n return 0;\n }\n}\n","import { PasswordHistoryData } from '../data/passwordHistoryData';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nimport { PasswordHistoryView } from '../view/passwordHistoryView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Password extends Domain {\n password: CipherString;\n lastUsedDate: Date;\n\n constructor(obj?: PasswordHistoryData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n password: null,\n }, alreadyEncrypted);\n this.lastUsedDate = new Date(obj.lastUsedDate);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new PasswordHistoryView(this), {\n password: null,\n }, orgId, encKey);\n }\n\n toPasswordHistoryData(): PasswordHistoryData {\n const ph = new PasswordHistoryData();\n ph.lastUsedDate = this.lastUsedDate.toISOString();\n this.buildDataModel(this, ph, {\n password: null,\n });\n return ph;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherCreateRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class CardApi extends BaseResponse {\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.cardholderName = this.getResponseProperty('CardholderName');\n this.brand = this.getResponseProperty('Brand');\n this.number = this.getResponseProperty('Number');\n this.expMonth = this.getResponseProperty('ExpMonth');\n this.expYear = this.getResponseProperty('ExpYear');\n this.code = this.getResponseProperty('Code');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { FieldType } from '../../enums/fieldType';\n\nexport class FieldApi extends BaseResponse {\n name: string;\n value: string;\n type: FieldType;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.value = this.getResponseProperty('Value');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class IdentityApi extends BaseResponse {\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.title = this.getResponseProperty('Title');\n this.firstName = this.getResponseProperty('FirstName');\n this.middleName = this.getResponseProperty('MiddleName');\n this.lastName = this.getResponseProperty('LastName');\n this.address1 = this.getResponseProperty('Address1');\n this.address2 = this.getResponseProperty('Address2');\n this.address3 = this.getResponseProperty('Address3');\n this.city = this.getResponseProperty('City');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.country = this.getResponseProperty('Country');\n this.company = this.getResponseProperty('Company');\n this.email = this.getResponseProperty('Email');\n this.phone = this.getResponseProperty('Phone');\n this.ssn = this.getResponseProperty('SSN');\n this.username = this.getResponseProperty('Username');\n this.passportNumber = this.getResponseProperty('PassportNumber');\n this.licenseNumber = this.getResponseProperty('LicenseNumber');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { LoginUriApi } from './loginUriApi';\n\nexport class LoginApi extends BaseResponse {\n uris: LoginUriApi[];\n username: string;\n password: string;\n passwordRevisionDate: string;\n totp: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.username = this.getResponseProperty('Username');\n this.password = this.getResponseProperty('Password');\n this.passwordRevisionDate = this.getResponseProperty('PasswordRevisionDate');\n this.totp = this.getResponseProperty('Totp');\n\n const uris = this.getResponseProperty('Uris');\n if (uris != null) {\n this.uris = uris.map((u: any) => new LoginUriApi(u));\n }\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { UriMatchType } from '../../enums/uriMatchType';\n\nexport class LoginUriApi extends BaseResponse {\n uri: string;\n match: UriMatchType = null;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.uri = this.getResponseProperty('Uri');\n const match = this.getResponseProperty('Match');\n this.match = match != null ? match : null;\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { SecureNoteType } from '../../enums/secureNoteType';\n\nexport class SecureNoteApi extends BaseResponse {\n type: SecureNoteType;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.type = this.getResponseProperty('Type');\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[appFallbackSrc]',\n})\nexport class FallbackSrcDirective {\n @Input('appFallbackSrc') appFallbackSrc: string;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('error') onError() {\n this.el.nativeElement.src = this.appFallbackSrc;\n }\n}\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { ImportService } from 'jslib/abstractions/import.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { ImportComponent as BaseImportComponent } from '../../tools/import.component';\n\n@Component({\n selector: 'app-org-import',\n templateUrl: '../../tools/import.component.html',\n})\nexport class ImportComponent extends BaseImportComponent {\n organizationName: string;\n\n constructor(i18nService: I18nService, analytics: Angulartics2,\n toasterService: ToasterService, importService: ImportService,\n router: Router, private route: ActivatedRoute,\n platformUtilsService: PlatformUtilsService,\n private userService: UserService) {\n super(i18nService, analytics, toasterService, importService, router, platformUtilsService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n this.successNavigate = ['organizations', this.organizationId, 'vault'];\n super.ngOnInit();\n });\n const organization = await this.userService.getOrganization(this.organizationId);\n this.organizationName = organization.name;\n }\n\n async submit() {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('importWarning', this.organizationName),\n this.i18nService.t('warning'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n super.submit();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n InactiveTwoFactorReportComponent as BaseInactiveTwoFactorReportComponent,\n} from '../../tools/inactive-two-factor-report.component';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-inactive-two-factor-report',\n templateUrl: '../../tools/inactive-two-factor-report.component.html',\n})\nexport class InactiveTwoFactorReportComponent extends BaseInactiveTwoFactorReportComponent {\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport {\n ReusedPasswordsReportComponent as BaseReusedPasswordsReportComponent,\n} from '../../tools/reused-passwords-report.component';\n\n@Component({\n selector: 'app-reused-passwords-report',\n templateUrl: '../../tools/reused-passwords-report.component.html',\n})\nexport class ReusedPasswordsReportComponent extends BaseReusedPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-org-tools',\n templateUrl: 'tools.component.html',\n})\nexport class ToolsComponent {\n organization: Organization;\n accessReports = false;\n loading = true;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private messagingService: MessagingService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now\n // since all paid plans include useTotp\n this.accessReports = this.organization.useTotp;\n this.loading = false;\n });\n }\n\n upgradeOrganization() {\n this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n UnsecuredWebsitesReportComponent as BaseUnsecuredWebsitesReportComponent,\n} from '../../tools/unsecured-websites-report.component';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-unsecured-websites-report',\n templateUrl: '../../tools/unsecured-websites-report.component.html',\n})\nexport class UnsecuredWebsitesReportComponent extends BaseUnsecuredWebsitesReportComponent {\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport {\n WeakPasswordsReportComponent as BaseWeakPasswordsReportComponent,\n} from '../../tools/weak-passwords-report.component';\n\n@Component({\n selector: 'app-weak-passwords-report',\n templateUrl: '../../tools/weak-passwords-report.component.html',\n})\nexport class WeakPasswordsReportComponent extends BaseWeakPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, passwordGenerationService: PasswordGenerationService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService, private route: ActivatedRoute) {\n super(cipherService, passwordGenerationService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { ModalComponent } from '../../modal.component';\n\nimport { EntityEventsComponent } from '../manage/entity-events.component';\nimport { AddEditComponent } from './add-edit.component';\nimport { AttachmentsComponent } from './attachments.component';\nimport { CiphersComponent } from './ciphers.component';\nimport { CollectionsComponent } from './collections.component';\nimport { GroupingsComponent } from './groupings.component';\n\nconst BroadcasterSubscriptionId = 'OrgVaultComponent';\n\n@Component({\n selector: 'app-org-vault',\n templateUrl: 'vault.component.html',\n})\nexport class VaultComponent implements OnInit, OnDestroy {\n @ViewChild(GroupingsComponent, { static: true }) groupingsComponent: GroupingsComponent;\n @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('collections', { read: ViewContainerRef, static: true }) collectionsModalRef: ViewContainerRef;\n @ViewChild('eventsTemplate', { read: ViewContainerRef, static: true }) eventsModalRef: ViewContainerRef;\n\n organization: Organization;\n collectionId: string = null;\n type: CipherType = null;\n deleted: boolean = false;\n\n modal: ModalComponent = null;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private router: Router, private changeDetectorRef: ChangeDetectorRef,\n private syncService: SyncService, private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver, private messagingService: MessagingService,\n private broadcasterService: BroadcasterService, private ngZone: NgZone) { }\n\n ngOnInit() {\n const queryParams = this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.groupingsComponent.organization = this.organization;\n this.ciphersComponent.organization = this.organization;\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.ciphersComponent.searchText = this.groupingsComponent.searchText = qParams.search;\n if (!this.organization.canManageAllCollections) {\n await this.syncService.fullSync(false);\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await Promise.all([\n this.groupingsComponent.load(),\n this.ciphersComponent.refresh(),\n ]);\n this.changeDetectorRef.detectChanges();\n }\n break;\n }\n });\n });\n }\n await this.groupingsComponent.load();\n\n if (qParams == null) {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n } else {\n if (qParams.deleted) {\n this.groupingsComponent.selectedTrash = true;\n await this.filterDeleted(true);\n } else if (qParams.type) {\n const t = parseInt(qParams.type, null);\n this.groupingsComponent.selectedType = t;\n await this.filterCipherType(t, true);\n } else if (qParams.collectionId) {\n this.groupingsComponent.selectedCollectionId = qParams.collectionId;\n await this.filterCollection(qParams.collectionId, true);\n } else {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n }\n }\n\n if (qParams.viewEvents != null) {\n const cipher = this.ciphersComponent.ciphers.filter(c => c.id === qParams.viewEvents);\n if (cipher.length > 0) {\n this.viewEvents(cipher[0]);\n }\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n if (queryParams != null) {\n queryParams.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async clearGroupingFilters() {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchVault');\n await this.ciphersComponent.applyFilter();\n this.clearFilters();\n this.go();\n }\n\n async filterCipherType(type: CipherType, load = false) {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchType');\n const filter = (c: CipherView) => c.type === type;\n if (load) {\n await this.ciphersComponent.reload(filter);\n } else {\n await this.ciphersComponent.applyFilter(filter);\n }\n this.clearFilters();\n this.type = type;\n this.go();\n }\n\n async filterCollection(collectionId: string, load = false) {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchCollection');\n const filter = (c: CipherView) => {\n if (collectionId === 'unassigned') {\n return c.collectionIds == null || c.collectionIds.length === 0;\n } else {\n return c.collectionIds != null && c.collectionIds.indexOf(collectionId) > -1;\n }\n };\n if (load) {\n await this.ciphersComponent.reload(filter);\n } else {\n await this.ciphersComponent.applyFilter(filter);\n }\n this.clearFilters();\n this.collectionId = collectionId;\n this.go();\n }\n\n async filterDeleted(load: boolean = false) {\n this.ciphersComponent.showAddNew = false;\n this.ciphersComponent.deleted = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchTrash');\n if (load) {\n await this.ciphersComponent.reload(null, true);\n } else {\n await this.ciphersComponent.applyFilter(null);\n }\n this.clearFilters();\n this.deleted = true;\n this.go();\n }\n\n filterSearchText(searchText: string) {\n this.ciphersComponent.searchText = searchText;\n this.ciphersComponent.search(200);\n }\n\n editCipherAttachments(cipher: CipherView) {\n if (this.organization.maxStorageGb == null || this.organization.maxStorageGb === 0) {\n this.messagingService.send('upgradeOrganization', { organizationId: cipher.organizationId });\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher.id;\n let madeAttachmentChanges = false;\n childComponent.onUploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onDeletedAttachment.subscribe(() => madeAttachmentChanges = true);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n if (madeAttachmentChanges) {\n await this.ciphersComponent.refresh();\n }\n madeAttachmentChanges = false;\n });\n }\n\n editCipherCollections(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.collectionsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(CollectionsComponent, this.collectionsModalRef);\n\n if (this.organization.canManageAllCollections) {\n childComponent.collectionIds = cipher.collectionIds;\n childComponent.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher.id;\n childComponent.onSavedCollections.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n addCipher() {\n const component = this.editCipher(null);\n component.organizationId = this.organization.id;\n component.type = this.type;\n if (this.organization.canManageAllCollections) {\n component.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n if (this.collectionId != null) {\n component.collectionIds = [this.collectionId];\n }\n }\n\n editCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n cloneCipher(cipher: CipherView) {\n const component = this.editCipher(cipher);\n component.cloneMode = true;\n component.organizationId = this.organization.id;\n if (this.organization.canManageAllCollections) {\n component.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n // Regardless of Admin state, the collection Ids need to passed manually as they are not assigned value\n // in the add-edit componenet\n component.collectionIds = cipher.collectionIds;\n }\n\n async viewEvents(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.eventsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityEventsComponent, this.eventsModalRef);\n\n childComponent.name = cipher.name;\n childComponent.organizationId = this.organization.id;\n childComponent.entityId = cipher.id;\n childComponent.showUser = true;\n childComponent.entity = 'cipher';\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private clearFilters() {\n this.collectionId = null;\n this.type = null;\n this.deleted = false;\n }\n\n private go(queryParams: any = null) {\n if (queryParams == null) {\n queryParams = {\n type: this.type,\n collectionId: this.collectionId,\n deleted: this.deleted ? true : null,\n };\n }\n\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: queryParams,\n replaceUrl: true,\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n

\n {{'vault' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n \n \n
\n
\n \n \n
\n
\n
\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from '../../vault/attachments.component';\n\n@Component({\n selector: 'app-org-vault-attachments',\n templateUrl: '../../vault/attachments.component.html',\n})\nexport class AttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = false;\n organization: Organization;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService, private apiService: ApiService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService);\n }\n\n protected async reupload(attachment: AttachmentView) {\n if (this.organization.canManageAllCollections && this.showFixOldAttachments(attachment)) {\n await super.reuploadCipherAttachment(attachment, true);\n }\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n return new Cipher(new CipherData(response));\n }\n\n protected saveCipherAttachment(file: File) {\n return this.cipherService.saveAttachmentWithServer(this.cipherDomain, file, this.organization.canManageAllCollections);\n }\n\n protected deleteCipherAttachment(attachmentId: string) {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipherAttachment(attachmentId);\n }\n return this.apiService.deleteCipherAttachmentAdmin(this.cipherId, attachmentId);\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return attachment.key == null && this.organization.canManageAllCollections;\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Cipher } from '../../models/domain/cipher';\n\nimport { AttachmentView } from '../../models/view/attachmentView';\nimport { CipherView } from '../../models/view/cipherView';\n\n@Directive()\nexport class AttachmentsComponent implements OnInit {\n @Input() cipherId: string;\n @Output() onUploadedAttachment = new EventEmitter();\n @Output() onDeletedAttachment = new EventEmitter();\n @Output() onReuploadedAttachment = new EventEmitter();\n\n cipher: CipherView;\n cipherDomain: Cipher;\n hasUpdatedKey: boolean;\n canAccessAttachments: boolean;\n formPromise: Promise;\n deletePromises: { [id: string]: Promise; } = {};\n reuploadPromises: { [id: string]: Promise; } = {};\n\n constructor(protected cipherService: CipherService, protected i18nService: I18nService,\n protected cryptoService: CryptoService, protected userService: UserService,\n protected platformUtilsService: PlatformUtilsService, protected win: Window) { }\n\n async ngOnInit() {\n await this.init();\n }\n\n async submit() {\n if (!this.hasUpdatedKey) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('updateKey'));\n return;\n }\n\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n if (files[0].size > 104857600) { // 100 MB\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('maxFileSize'));\n return;\n }\n\n try {\n this.formPromise = this.saveCipherAttachment(files[0]);\n this.cipherDomain = await this.formPromise;\n this.cipher = await this.cipherDomain.decrypt();\n this.platformUtilsService.eventTrack('Added Attachment');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('attachmentSaved'));\n this.onUploadedAttachment.emit();\n } catch { }\n\n // reset file input\n // ref: https://stackoverflow.com/a/20552042\n fileEl.type = '';\n fileEl.type = 'file';\n fileEl.value = '';\n }\n\n async delete(attachment: AttachmentView) {\n if (this.deletePromises[attachment.id] != null) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteAttachmentConfirmation'), this.i18nService.t('deleteAttachment'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.deletePromises[attachment.id] = this.deleteCipherAttachment(attachment.id);\n await this.deletePromises[attachment.id];\n this.platformUtilsService.eventTrack('Deleted Attachment');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedAttachment'));\n const i = this.cipher.attachments.indexOf(attachment);\n if (i > -1) {\n this.cipher.attachments.splice(i, 1);\n }\n } catch { }\n\n this.deletePromises[attachment.id] = null;\n this.onDeletedAttachment.emit();\n }\n\n async download(attachment: AttachmentView) {\n const a = (attachment as any);\n if (a.downloading) {\n return;\n }\n\n if (!this.canAccessAttachments) {\n this.platformUtilsService.showToast('error', this.i18nService.t('premiumRequired'),\n this.i18nService.t('premiumRequiredDesc'));\n return;\n }\n\n a.downloading = true;\n const response = await fetch(new Request(attachment.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n a.downloading = false;\n return;\n }\n\n try {\n const buf = await response.arrayBuffer();\n const key = attachment.key != null ? attachment.key :\n await this.cryptoService.getOrgKey(this.cipher.organizationId);\n const decBuf = await this.cryptoService.decryptFromBytes(buf, key);\n this.platformUtilsService.saveFile(this.win, decBuf, null, attachment.fileName);\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n a.downloading = false;\n }\n\n protected async init() {\n this.cipherDomain = await this.loadCipher();\n this.cipher = await this.cipherDomain.decrypt();\n\n this.hasUpdatedKey = await this.cryptoService.hasEncKey();\n const canAccessPremium = await this.userService.canAccessPremium();\n this.canAccessAttachments = canAccessPremium || this.cipher.organizationId != null;\n\n if (!this.canAccessAttachments) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.platformUtilsService.launchUri('https://vault.bitwarden.com/#/?premium=purchase');\n }\n } else if (!this.hasUpdatedKey) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('updateKey'), this.i18nService.t('featureUnavailable'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'), 'warning');\n if (confirmed) {\n this.platformUtilsService.launchUri('https://help.bitwarden.com/article/update-encryption-key/');\n }\n }\n }\n\n protected async reuploadCipherAttachment(attachment: AttachmentView, admin: boolean) {\n const a = (attachment as any);\n if (attachment.key != null || a.downloading || this.reuploadPromises[attachment.id] != null) {\n return;\n }\n\n try {\n this.reuploadPromises[attachment.id] = Promise.resolve().then(async () => {\n // 1. Download\n a.downloading = true;\n const response = await fetch(new Request(attachment.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n a.downloading = false;\n return;\n }\n\n try {\n // 2. Resave\n const buf = await response.arrayBuffer();\n const key = attachment.key != null ? attachment.key :\n await this.cryptoService.getOrgKey(this.cipher.organizationId);\n const decBuf = await this.cryptoService.decryptFromBytes(buf, key);\n this.cipherDomain = await this.cipherService.saveAttachmentRawWithServer(\n this.cipherDomain, attachment.fileName, decBuf, admin);\n this.cipher = await this.cipherDomain.decrypt();\n\n // 3. Delete old\n this.deletePromises[attachment.id] = this.deleteCipherAttachment(attachment.id);\n await this.deletePromises[attachment.id];\n const foundAttachment = this.cipher.attachments.filter(a2 => a2.id === attachment.id);\n if (foundAttachment.length > 0) {\n const i = this.cipher.attachments.indexOf(foundAttachment[0]);\n if (i > -1) {\n this.cipher.attachments.splice(i, 1);\n }\n }\n\n this.platformUtilsService.eventTrack('Reuploaded Attachment');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('attachmentSaved'));\n this.onReuploadedAttachment.emit();\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n a.downloading = false;\n });\n await this.reuploadPromises[attachment.id];\n } catch { }\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected saveCipherAttachment(file: File) {\n return this.cipherService.saveAttachmentWithServer(this.cipherDomain, file);\n }\n\n protected deleteCipherAttachment(attachmentId: string) {\n return this.cipherService.deleteAttachmentWithServer(this.cipher.id, attachmentId);\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherCollectionsRequest } from 'jslib/models/request/cipherCollectionsRequest';\n\nimport { CollectionsComponent as BaseCollectionsComponent } from '../../vault/collections.component';\n\n@Component({\n selector: 'app-org-vault-collections',\n templateUrl: '../../vault/collections.component.html',\n})\nexport class CollectionsComponent extends BaseCollectionsComponent {\n organization: Organization;\n\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, cipherService: CipherService,\n private apiService: ApiService) {\n super(collectionService, platformUtilsService, i18nService, cipherService);\n this.allowSelectNone = true;\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n return new Cipher(new CipherData(response));\n }\n\n protected loadCipherCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCipherCollections();\n }\n return this.collectionIds;\n }\n\n protected loadCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCollections();\n }\n return Promise.resolve(this.collections);\n }\n\n protected saveCollections() {\n if (this.organization.canManageAllCollections) {\n const request = new CipherCollectionsRequest(this.cipherDomain.collectionIds);\n return this.apiService.putCipherCollectionsAdmin(this.cipherId, request);\n } else {\n return super.saveCollections();\n }\n }\n}\n","export class CipherCollectionsRequest {\n collectionIds: string[];\n\n constructor(collectionIds: string[]) {\n this.collectionIds = collectionIds == null ? [] : collectionIds;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherBulkDeleteRequest } from 'jslib/models/request/cipherBulkDeleteRequest';\n\n@Component({\n selector: 'app-vault-bulk-delete',\n templateUrl: 'bulk-delete.component.html',\n})\nexport class BulkDeleteComponent {\n @Input() cipherIds: string[] = [];\n @Input() permanent: boolean = false;\n @Input() organization: Organization;\n @Output() onDeleted = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private analytics: Angulartics2, private cipherService: CipherService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private apiService: ApiService) { }\n\n async submit() {\n if (!this.organization || !this.organization.canManageAllCollections) {\n await this.deleteCiphers();\n } else {\n await this.deleteCiphersAdmin();\n }\n\n await this.formPromise;\n\n this.onDeleted.emit();\n this.analytics.eventTrack.next({ action: 'Bulk Deleted Items' });\n this.toasterService.popAsync('success', null, this.i18nService.t(this.permanent ? 'permanentlyDeletedItems'\n : 'deletedItems'));\n }\n\n private async deleteCiphers() {\n if (this.permanent) {\n this.formPromise = await this.cipherService.deleteManyWithServer(this.cipherIds);\n } else {\n this.formPromise = await this.cipherService.softDeleteManyWithServer(this.cipherIds);\n }\n }\n\n private async deleteCiphersAdmin() {\n const deleteRequest = new CipherBulkDeleteRequest(this.cipherIds, this.organization.id);\n if (this.permanent) {\n this.formPromise = await this.apiService.deleteManyCiphersAdmin(deleteRequest);\n } else {\n this.formPromise = await this.apiService.putDeleteManyCiphersAdmin(deleteRequest);\n }\n }\n}\n","
\n
\n
\n
\n

\n {{(permanent ? 'permanentlyDeleteSelected' : 'deleteSelected') | i18n}}\n

\n \n
\n
\n {{(permanent ? 'permanentlyDeleteSelectedItemsDesc' : 'deleteSelectedItemsDesc') | i18n: cipherIds.length}}\n
\n
\n \n \n
\n
\n
\n
\n","export class CipherBulkDeleteRequest {\n ids: string[];\n organizationId: string;\n\n constructor(ids: string[], organizationId?: string) {\n this.ids = ids == null ? [] : ids;\n this.organizationId = organizationId;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { FolderView } from 'jslib/models/view/folderView';\n\n@Component({\n selector: 'app-vault-bulk-move',\n templateUrl: 'bulk-move.component.html',\n})\nexport class BulkMoveComponent implements OnInit {\n @Input() cipherIds: string[] = [];\n @Output() onMoved = new EventEmitter();\n\n folderId: string = null;\n folders: FolderView[] = [];\n formPromise: Promise;\n\n constructor(private analytics: Angulartics2, private cipherService: CipherService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private folderService: FolderService) { }\n\n async ngOnInit() {\n this.folders = await this.folderService.getAllDecrypted();\n this.folderId = this.folders[0].id;\n }\n\n async submit() {\n this.formPromise = this.cipherService.moveManyWithServer(this.cipherIds, this.folderId);\n await this.formPromise;\n this.onMoved.emit();\n this.analytics.eventTrack.next({ action: 'Bulk Moved Items' });\n this.toasterService.popAsync('success', null, this.i18nService.t('movedItems'));\n }\n}\n","
\n
\n
\n
\n

\n {{'moveSelected' | i18n}}\n

\n \n
\n
\n

{{'moveSelectedItemsDesc' | i18n: cipherIds.length}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-vault-bulk-restore',\n templateUrl: 'bulk-restore.component.html',\n})\nexport class BulkRestoreComponent {\n @Input() cipherIds: string[] = [];\n @Output() onRestored = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private analytics: Angulartics2, private cipherService: CipherService,\n private toasterService: ToasterService, private i18nService: I18nService) { }\n\n async submit() {\n this.formPromise = this.cipherService.restoreManyWithServer(this.cipherIds);\n await this.formPromise;\n this.onRestored.emit();\n this.analytics.eventTrack.next({ action: 'Bulk Restored Items' });\n this.toasterService.popAsync('success', null, this.i18nService.t('restoredItems'));\n }\n}\n","
\n
\n
\n
\n

\n {{'restoreSelected' | i18n}}\n

\n \n
\n
\n {{'restoreSelectedItemsDesc' | i18n: cipherIds.length}}\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-vault-bulk-share',\n templateUrl: 'bulk-share.component.html',\n})\nexport class BulkShareComponent implements OnInit {\n @Input() ciphers: CipherView[] = [];\n @Input() organizationId: string;\n @Output() onShared = new EventEmitter();\n\n nonShareableCount = 0;\n collections: CollectionView[] = [];\n organizations: Organization[] = [];\n shareableCiphers: CipherView[] = [];\n formPromise: Promise;\n\n private writeableCollections: CollectionView[] = [];\n\n constructor(private analytics: Angulartics2, private cipherService: CipherService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private collectionService: CollectionService, private userService: UserService) { }\n\n async ngOnInit() {\n this.shareableCiphers = this.ciphers.filter(c => !c.hasOldAttachments && c.organizationId == null);\n this.nonShareableCount = this.ciphers.length - this.shareableCiphers.length;\n const allCollections = await this.collectionService.getAllDecrypted();\n this.writeableCollections = allCollections.filter(c => !c.readOnly);\n this.organizations = await this.userService.getAllOrganizations();\n if (this.organizationId == null && this.organizations.length > 0) {\n this.organizationId = this.organizations[0].id;\n }\n this.filterCollections();\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n filterCollections() {\n this.selectAll(false);\n if (this.organizationId == null || this.writeableCollections.length === 0) {\n this.collections = [];\n } else {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.organizationId);\n }\n }\n\n async submit() {\n const checkedCollectionIds = this.collections.filter(c => (c as any).checked).map(c => c.id);\n try {\n this.formPromise = this.cipherService.shareManyWithServer(this.shareableCiphers, this.organizationId,\n checkedCollectionIds);\n await this.formPromise;\n this.onShared.emit();\n this.analytics.eventTrack.next({ action: 'Bulk Shared Items' });\n this.toasterService.popAsync('success', null, this.i18nService.t('sharedItems'));\n } catch { }\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n const collections = select ? this.collections : this.writeableCollections;\n collections.forEach(c => this.check(c, select));\n }\n\n get canSave() {\n if (this.shareableCiphers != null && this.shareableCiphers.length > 0 && this.collections != null) {\n for (let i = 0; i < this.collections.length; i++) {\n if ((this.collections[i] as any).checked) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","
\n
\n
\n
\n

\n {{'shareSelected' | i18n}}\n

\n \n
\n
\n

{{'shareManyDesc' | i18n}}

\n

{{'shareSelectedItemsCountDesc' | i18n: this.ciphers.length : shareableCiphers.length : nonShareableCount}}\n

\n
\n \n \n
\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { SendAccess } from 'jslib/models/domain/sendAccess';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\n\nimport { SendAccessView } from 'jslib/models/view/sendAccessView';\n\nimport { SendType } from 'jslib/enums/sendType';\nimport { SendAccessRequest } from 'jslib/models/request/sendAccessRequest';\nimport { ErrorResponse } from 'jslib/models/response/errorResponse';\n\nimport { SendAccessResponse } from 'jslib/models/response/sendAccessResponse';\n\n@Component({\n selector: 'app-send-access',\n templateUrl: 'access.component.html',\n})\nexport class AccessComponent implements OnInit {\n send: SendAccessView;\n sendType = SendType;\n downloading = false;\n loading = true;\n passwordRequired = false;\n formPromise: Promise;\n password: string;\n showText = false;\n unavailable = false;\n error = false;\n\n private id: string;\n private key: string;\n private decKey: SymmetricCryptoKey;\n private accessRequest: SendAccessRequest;\n\n constructor(private i18nService: I18nService, private cryptoFunctionService: CryptoFunctionService,\n private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private route: ActivatedRoute, private cryptoService: CryptoService) {\n }\n\n get sendText() {\n if (this.send == null || this.send.text == null) {\n return null;\n }\n return this.showText ? this.send.text.text : this.send.text.maskedText;\n }\n\n get expirationDate() {\n if (this.send == null || this.send.expirationDate == null) {\n return null;\n }\n return this.send.expirationDate;\n }\n\n get creatorIdentifier() {\n if (this.send == null || this.send.creatorIdentifier == null) {\n return null;\n }\n return this.send.creatorIdentifier;\n }\n\n ngOnInit() {\n this.route.params.subscribe(async params => {\n this.id = params.sendId;\n this.key = params.key;\n if (this.key == null || this.id == null) {\n return;\n }\n await this.load();\n });\n }\n\n async download() {\n if (this.send == null || this.decKey == null) {\n return;\n }\n\n if (this.downloading) {\n return;\n }\n\n\n const downloadData = await this.apiService.getSendFileDownloadData(this.send, this.accessRequest);\n\n if (Utils.isNullOrWhitespace(downloadData.url)) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('missingSendFile'));\n return;\n }\n\n this.downloading = true;\n const response = await fetch(new Request(downloadData.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n this.downloading = false;\n return;\n }\n\n try {\n const buf = await response.arrayBuffer();\n const decBuf = await this.cryptoService.decryptFromBytes(buf, this.decKey);\n this.platformUtilsService.saveFile(window, decBuf, null, this.send.file.fileName);\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n this.downloading = false;\n }\n\n copyText() {\n this.platformUtilsService.copyToClipboard(this.send.text.text);\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('valueCopied', this.i18nService.t('sendTypeText')));\n }\n\n toggleText() {\n this.showText = !this.showText;\n }\n\n async load() {\n this.unavailable = false;\n this.error = false;\n const keyArray = Utils.fromUrlB64ToArray(this.key);\n this.accessRequest = new SendAccessRequest();\n if (this.password != null) {\n const passwordHash = await this.cryptoFunctionService.pbkdf2(this.password, keyArray, 'sha256', 100000);\n this.accessRequest.password = Utils.fromBufferToB64(passwordHash);\n }\n try {\n let sendResponse: SendAccessResponse = null;\n if (this.loading) {\n sendResponse = await this.apiService.postSendAccess(this.id, this.accessRequest);\n } else {\n this.formPromise = this.apiService.postSendAccess(this.id, this.accessRequest);\n sendResponse = await this.formPromise;\n }\n this.passwordRequired = false;\n const sendAccess = new SendAccess(sendResponse);\n this.decKey = await this.cryptoService.makeSendKey(keyArray);\n this.send = await sendAccess.decrypt(this.decKey);\n this.showText = this.send.text != null ? !this.send.text.hidden : true;\n } catch (e) {\n if (e instanceof ErrorResponse) {\n if (e.statusCode === 401) {\n this.passwordRequired = true;\n } else if (e.statusCode === 404) {\n this.unavailable = true;\n } else {\n this.error = true;\n }\n }\n }\n this.loading = false;\n }\n}\n","
\n
\n
\n

Bitwarden Send

\n
\n
\n

{{'sendCreatorIdentifier' | i18n: creatorIdentifier }}

\n
\n
\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'sendProtectedPassword' | i18n}}

\n

{{'sendProtectedPasswordDontKnow' | i18n}}

\n
\n \n \n
\n
\n \n
\n
\n
\n {{'sendAccessUnavailable' | i18n}}\n
\n
\n {{'unexpectedError' | i18n}}\n
\n
\n

{{send.name}}

\n
\n \n \n {{'sendHiddenByDefault' | i18n}}\n
\n \n
\n \n \n
\n \n \n

{{send.file.fileName}}

\n \n \n
\n

Expires:\n {{expirationDate | date: 'medium'}}

\n
\n
\n
\n
\n

{{'sendAccessTaglineProductDesc' | i18n}}
\n {{'sendAccessTaglineLearnMore' | i18n}} Bitwarden Send\n {{'sendAccessTaglineOr' | i18n}} {{'sendAccessTaglineSignUp' | i18n}}\n {{'sendAccessTaglineTryToday' | i18n}}\n

\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n NgZone,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { SendView } from 'jslib/models/view/sendView';\n\nimport { SendComponent as BaseSendComponent } from 'jslib/angular/components/send/send.component';\n\nimport { AddEditComponent } from './add-edit.component';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { SendService } from 'jslib/abstractions/send.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'SendComponent';\n\n@Component({\n selector: 'app-send',\n templateUrl: 'send.component.html',\n})\nexport class SendComponent extends BaseSendComponent {\n @ViewChild('sendAddEdit', { read: ViewContainerRef, static: true }) sendAddEditModalRef: ViewContainerRef;\n\n modal: ModalComponent = null;\n\n constructor(sendService: SendService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, environmentService: EnvironmentService,\n ngZone: NgZone, searchService: SearchService, policyService: PolicyService, userService: UserService,\n private componentFactoryResolver: ComponentFactoryResolver, private broadcasterService: BroadcasterService) {\n super(sendService, i18nService, platformUtilsService, environmentService, ngZone, searchService,\n policyService, userService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n await this.load();\n\n // Broadcaster subscription - load if sync completes in the background\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await this.load();\n }\n break;\n }\n });\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n addSend() {\n if (this.disableSend) {\n return;\n }\n\n const component = this.editSend(null);\n component.type = this.type;\n }\n\n editSend(send: SendView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.sendAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n AddEditComponent, this.sendAddEditModalRef);\n\n childComponent.sendId = send == null ? null : send.id;\n childComponent.onSavedSend.subscribe(async (s: SendView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onDeletedSend.subscribe(async (s: SendView) => {\n this.modal.close();\n await this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n}\n","
\n
\n
\n {{'sendDisabled' | i18n}}\n
\n
\n {{'sendDisabledWarning' | i18n}}\n
\n
\n
\n
\n
\n
\n {{'filters' | i18n}}\n
\n
\n \n \n

{{'types' | i18n}}

\n \n
\n
\n
\n
\n
\n

\n {{'send' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n {{s.name}}\n \n \n {{'disabled' | i18n}}\n \n \n \n {{'password' | i18n}}\n \n \n \n {{'maxAccessCountReached' | i18n}}\n \n \n \n {{'expired' | i18n}}\n \n \n \n {{'pendingDeletion' | i18n}}\n \n
\n {{s.deletionDate | date:'medium'}}\n
\n \n
\n
\n \n \n {{'loading' | i18n}}\n \n \n

{{'noSendsInList' | i18n}}

\n \n
\n
\n
\n
\n
\n\n","import { DatePipe } from '@angular/common';\n\nimport { Component } from '@angular/core';\n\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SendService } from 'jslib/abstractions/send.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/send/add-edit.component';\n\n@Component({\n selector: 'app-send-add-edit',\n templateUrl: 'add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n constructor(i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n environmentService: EnvironmentService, datePipe: DatePipe,\n sendService: SendService, userService: UserService,\n messagingService: MessagingService, policyService: PolicyService) {\n super(i18nService, platformUtilsService, environmentService, datePipe, sendService, userService,\n messagingService, policyService);\n }\n\n copyLinkToClipboard(link: string) {\n // Copy function on web depends on the modal being open or not. Since this event occurs during a transition\n // of the modal closing we need to add a small delay to make sure state of the DOM is consistent.\n window.setTimeout(() => super.copyLinkToClipboard(link), 500);\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'sendDisabledWarning' | i18n}}\n \n
\n
\n \n \n {{'sendNameDesc' | i18n}}\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n \n \n {{'sendTextDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n {{'file' | i18n}}\n {{send.file.fileName}} ({{send.file.sizeName}})\n
\n
\n \n \n {{'sendFileDesc' | i18n}} {{'maxFileSize' |\n i18n}}\n
\n
\n
\n

{{'share' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n

{{'options' | i18n}}

\n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
{{'deletionDateDesc' | i18n}}
\n
\n
\n
\n \n \n {{'clear' | i18n}}\n \n
\n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
{{'expirationDateDesc' | i18n}}
\n
\n
\n
\n
\n \n \n
{{'maxAccessCountDesc' | i18n}}
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n \n
\n
\n
{{'sendPasswordDesc' | i18n}}
\n
\n
\n
\n \n \n
{{'sendNotesDesc' | i18n}}
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n","import { SendType } from '../../enums/sendType';\nimport { Utils } from '../../misc/utils';\n\nimport { Send } from '../domain/send';\nimport { SymmetricCryptoKey } from '../domain/symmetricCryptoKey';\n\nimport { SendFileView } from './sendFileView';\nimport { SendTextView } from './sendTextView';\nimport { View } from './view';\n\nexport class SendView implements View {\n id: string = null;\n accessId: string = null;\n name: string = null;\n notes: string = null;\n key: ArrayBuffer;\n cryptoKey: SymmetricCryptoKey;\n type: SendType = null;\n text = new SendTextView();\n file = new SendFileView();\n maxAccessCount?: number = null;\n accessCount: number = 0;\n revisionDate: Date = null;\n deletionDate: Date = null;\n expirationDate: Date = null;\n password: string = null;\n disabled: boolean = false;\n\n constructor(s?: Send) {\n if (!s) {\n return;\n }\n\n this.id = s.id;\n this.accessId = s.accessId;\n this.type = s.type;\n this.maxAccessCount = s.maxAccessCount;\n this.accessCount = s.accessCount;\n this.revisionDate = s.revisionDate;\n this.deletionDate = s.deletionDate;\n this.expirationDate = s.expirationDate;\n this.disabled = s.disabled;\n this.password = s.password;\n }\n\n get urlB64Key(): string {\n return Utils.fromBufferToUrlB64(this.key);\n }\n\n get maxAccessCountReached(): boolean {\n if (this.maxAccessCount == null) {\n return false;\n }\n return this.accessCount >= this.maxAccessCount;\n }\n\n get expired(): boolean {\n if (this.expirationDate == null) {\n return false;\n }\n return this.expirationDate <= new Date();\n }\n\n get pendingDelete(): boolean {\n return this.deletionDate <= new Date();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ModalComponent } from '../modal.component';\nimport { ApiKeyComponent } from './api-key.component';\nimport { DeauthorizeSessionsComponent } from './deauthorize-sessions.component';\nimport { DeleteAccountComponent } from './delete-account.component';\nimport { PurgeVaultComponent } from './purge-vault.component';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-account',\n templateUrl: 'account.component.html',\n})\nexport class AccountComponent {\n @ViewChild('deauthorizeSessionsTemplate', { read: ViewContainerRef, static: true }) deauthModalRef: ViewContainerRef;\n @ViewChild('purgeVaultTemplate', { read: ViewContainerRef, static: true }) purgeModalRef: ViewContainerRef;\n @ViewChild('deleteAccountTemplate', { read: ViewContainerRef, static: true }) deleteModalRef: ViewContainerRef;\n @ViewChild('viewUserApiKeyTemplate', { read: ViewContainerRef, static: true }) viewUserApiKeyModalRef: ViewContainerRef;\n @ViewChild('rotateUserApiKeyTemplate', { read: ViewContainerRef, static: true }) rotateUserApiKeyModalRef: ViewContainerRef;\n\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private apiService: ApiService,\n private userService: UserService) { }\n\n deauthorizeSessions() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deauthModalRef.createComponent(factory).instance;\n this.modal.show(DeauthorizeSessionsComponent, this.deauthModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n purgeVault() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.purgeModalRef.createComponent(factory).instance;\n this.modal.show(PurgeVaultComponent, this.purgeModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n deleteAccount() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deleteModalRef.createComponent(factory).instance;\n this.modal.show(DeleteAccountComponent, this.deleteModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async viewUserApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.viewUserApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.viewUserApiKeyModalRef);\n childComponent.keyType = 'user';\n childComponent.entityId = await this.userService.getUserId();\n childComponent.postKey = this.apiService.postUserApiKey.bind(this.apiService);\n childComponent.scope = 'api';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'userApiKeyWarning';\n childComponent.apiKeyDescription = 'userApiKeyDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async rotateUserApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.rotateUserApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.rotateUserApiKeyModalRef);\n childComponent.keyType = 'user';\n childComponent.isRotation = true;\n childComponent.entityId = await this.userService.getUserId();\n childComponent.postKey = this.apiService.postUserRotateApiKey.bind(this.apiService);\n childComponent.scope = 'api';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'userApiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyRotateDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n}\n","
\n

{{'myAccount' | i18n}}

\n
\n\n
\n

{{'changeEmail' | i18n}}

\n
\n\n
\n

{{'changeMasterPassword' | i18n}}

\n
\n\n
\n

{{'encKeySettings' | i18n}}

\n
\n\n
\n

{{'apiKey' | i18n}}

\n
\n

\n {{'userApiKeyDesc' | i18n}}\n

\n\n\n
\n

{{'dangerZone' | i18n}}

\n
\n
\n
\n

{{'dangerZoneDesc' | i18n}}

\n \n \n \n
\n
\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-deauthorize-sessions',\n templateUrl: 'deauthorize-sessions.component.html',\n})\nexport class DeauthorizeSessionsComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postSecurityStamp(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Deauthorized Sessions' });\n this.toasterService.popAsync('success', this.i18nService.t('sessionsDeauthorized'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deauthorizeSessions' | i18n}}

\n \n
\n
\n

{{'deauthorizeSessionsDesc' | i18n}}

\n {{'deauthorizeSessionsWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-delete-account',\n templateUrl: 'delete-account.component.html',\n})\nexport class DeleteAccountComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.deleteAccount(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Deleted Account' });\n this.toasterService.popAsync('success', this.i18nService.t('accountDeleted'),\n this.i18nService.t('accountDeletedDesc'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deleteAccount' | i18n}}

\n \n
\n
\n

{{'deleteAccountDesc' | i18n}}

\n {{'deleteAccountWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { UpdateProfileRequest } from 'jslib/models/request/updateProfileRequest';\n\nimport { ProfileResponse } from 'jslib/models/response/profileResponse';\n\n@Component({\n selector: 'app-profile',\n templateUrl: 'profile.component.html',\n})\nexport class ProfileComponent implements OnInit {\n loading = true;\n profile: ProfileResponse;\n fingerprint: string;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private userService: UserService, private cryptoService: CryptoService) { }\n\n async ngOnInit() {\n this.profile = await this.apiService.getProfile();\n this.loading = false;\n const fingerprint = await this.cryptoService.getFingerprint(await this.userService.getUserId());\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n\n async submit() {\n try {\n const request = new UpdateProfileRequest(this.profile.name, this.profile.masterPasswordHint);\n this.formPromise = this.apiService.putProfile(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Updated Profile' });\n this.toasterService.popAsync('success', null, this.i18nService.t('accountUpdated'));\n } catch { }\n }\n}\n","
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n

\n {{'yourAccountsFingerprint' | i18n}}:\n \n
\n {{fingerprint}}\n

\n
\n
\n \n
\n","import {\n Component,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EmailRequest } from 'jslib/models/request/emailRequest';\nimport { EmailTokenRequest } from 'jslib/models/request/emailTokenRequest';\n\n@Component({\n selector: 'app-change-email',\n templateUrl: 'change-email.component.html',\n})\nexport class ChangeEmailComponent {\n masterPassword: string;\n newEmail: string;\n token: string;\n tokenSent = false;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService,\n private userService: UserService) { }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.toasterService.popAsync('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n this.newEmail = this.newEmail.trim().toLowerCase();\n if (!this.tokenSent) {\n const request = new EmailTokenRequest();\n request.newEmail = this.newEmail;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postEmailToken(request);\n await this.formPromise;\n this.tokenSent = true;\n } catch { }\n } else {\n const request = new EmailRequest();\n request.token = this.token;\n request.newEmail = this.newEmail;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const kdf = await this.userService.getKdf();\n const kdfIterations = await this.userService.getKdfIterations();\n const newKey = await this.cryptoService.makeKey(this.masterPassword, this.newEmail, kdf, kdfIterations);\n request.newMasterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, newKey);\n const newEncKey = await this.cryptoService.remakeEncKey(newKey);\n request.key = newEncKey[1].encryptedString;\n try {\n this.formPromise = this.apiService.postEmail(request);\n await this.formPromise;\n this.reset();\n this.analytics.eventTrack.next({ action: 'Changed Email' });\n this.toasterService.popAsync('success', this.i18nService.t('emailChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n }\n\n reset() {\n this.token = this.newEmail = this.masterPassword = null;\n this.tokenSent = false;\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n

{{'changeEmailDesc' | i18n : newEmail}}

\n {{'loggedOutWarning' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class EmailTokenRequest extends PasswordVerificationRequest {\n newEmail: string;\n masterPasswordHash: string;\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n ChangePasswordComponent as BaseChangePasswordComponent,\n} from 'jslib/angular/components/change-password.component';\n\nimport { EmergencyAccessStatusType } from 'jslib/enums/emergencyAccessStatusType';\nimport { Utils } from 'jslib/misc/utils';\n\nimport { CipherString } from 'jslib/models/domain/cipherString';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\n\nimport { CipherWithIdRequest } from 'jslib/models/request/cipherWithIdRequest';\nimport { EmergencyAccessUpdateRequest } from 'jslib/models/request/emergencyAccessUpdateRequest';\nimport { FolderWithIdRequest } from 'jslib/models/request/folderWithIdRequest';\nimport { PasswordRequest } from 'jslib/models/request/passwordRequest';\nimport { UpdateKeyRequest } from 'jslib/models/request/updateKeyRequest';\n\n@Component({\n selector: 'app-change-password',\n templateUrl: 'change-password.component.html',\n})\nexport class ChangePasswordComponent extends BaseChangePasswordComponent {\n rotateEncKey = false;\n currentMasterPassword: string;\n\n constructor(i18nService: I18nService,\n cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService,\n private folderService: FolderService, private cipherService: CipherService,\n private syncService: SyncService, private apiService: ApiService ) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async rotateEncKeyClicked() {\n if (this.rotateEncKey) {\n const ciphers = await this.cipherService.getAllDecrypted();\n let hasOldAttachments = false;\n if (ciphers != null) {\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId == null && ciphers[i].hasOldAttachments) {\n hasOldAttachments = true;\n break;\n }\n }\n }\n\n if (hasOldAttachments) {\n const learnMore = await this.platformUtilsService.showDialog(\n this.i18nService.t('oldAttachmentsNeedFixDesc'), null,\n this.i18nService.t('learnMore'), this.i18nService.t('close'), 'warning');\n if (learnMore) {\n this.platformUtilsService.launchUri(\n 'https://help.bitwarden.com/article/attachments/#fixing-old-attachments');\n }\n this.rotateEncKey = false;\n return;\n }\n\n const result = await this.platformUtilsService.showDialog(\n this.i18nService.t('updateEncryptionKeyWarning') + ' ' +\n this.i18nService.t('updateEncryptionKeyExportWarning') + ' ' +\n this.i18nService.t('rotateEncKeyConfirmation'), this.i18nService.t('rotateEncKeyTitle'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!result) {\n this.rotateEncKey = false;\n }\n }\n }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n await super.submit();\n }\n\n async setupSubmitActions() {\n if (this.currentMasterPassword == null || this.currentMasterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return false;\n }\n\n if (this.rotateEncKey) {\n await this.syncService.fullSync(true);\n }\n\n return super.setupSubmitActions();\n }\n\n async performSubmitActions(newMasterPasswordHash: string, newKey: SymmetricCryptoKey,\n newEncKey: [SymmetricCryptoKey, CipherString]) {\n const request = new PasswordRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.currentMasterPassword, null);\n request.newMasterPasswordHash = newMasterPasswordHash;\n request.key = newEncKey[1].encryptedString;\n\n try {\n if (this.rotateEncKey) {\n this.formPromise = this.apiService.postPassword(request).then(() => {\n return this.updateKey(newKey, request.newMasterPasswordHash);\n });\n } else {\n this.formPromise = this.apiService.postPassword(request);\n }\n\n await this.formPromise;\n\n this.platformUtilsService.showToast('success', this.i18nService.t('masterPasswordChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n }\n\n private async updateKey(key: SymmetricCryptoKey, masterPasswordHash: string) {\n const encKey = await this.cryptoService.makeEncKey(key);\n const privateKey = await this.cryptoService.getPrivateKey();\n let encPrivateKey: CipherString = null;\n if (privateKey != null) {\n encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]);\n }\n const request = new UpdateKeyRequest();\n request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHash = masterPasswordHash;\n\n const folders = await this.folderService.getAllDecrypted();\n for (let i = 0; i < folders.length; i++) {\n if (folders[i].id == null) {\n continue;\n }\n const folder = await this.folderService.encrypt(folders[i], encKey[0]);\n request.folders.push(new FolderWithIdRequest(folder));\n }\n\n const ciphers = await this.cipherService.getAllDecrypted();\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId != null) {\n continue;\n }\n\n const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]);\n request.ciphers.push(new CipherWithIdRequest(cipher));\n }\n\n await this.apiService.postAccountKey(request);\n\n await this.updateEmergencyAccesses(encKey[0]);\n }\n\n private async updateEmergencyAccesses(encKey: SymmetricCryptoKey) {\n const emergencyAccess = await this.apiService.getEmergencyAccessTrusted();\n const allowedStatuses = [\n EmergencyAccessStatusType.Confirmed,\n EmergencyAccessStatusType.RecoveryInitiated,\n EmergencyAccessStatusType.RecoveryApproved,\n ];\n\n const filteredAccesses = emergencyAccess.data.filter(d => allowedStatuses.includes(d.status));\n\n for (const details of filteredAccesses) {\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);\n\n const updateRequest = new EmergencyAccessUpdateRequest();\n updateRequest.type = details.type;\n updateRequest.waitTimeDays = details.waitTimeDays;\n updateRequest.keyEncrypted = encryptedKey.encryptedString;\n\n await this.apiService.putEmergencyAccess(details.id, updateRequest);\n }\n }\n}\n","{{'loggedOutWarning' | i18n}}\n\n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • {{'policyInEffectUppercase' | i18n}}
  • \n
  • {{'policyInEffectLowercase' | i18n}}
  • \n
  • {{'policyInEffectNumbers' | i18n}}
  • \n
  • {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n \n
\n","export enum EmergencyAccessStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n RecoveryInitiated = 3,\n RecoveryApproved = 4,\n}\n","import { EmergencyAccessType } from '../../enums/emergencyAccessType';\n\nexport class EmergencyAccessUpdateRequest {\n type: EmergencyAccessType;\n waitTimeDays: number;\n keyEncrypted?: string;\n}\n","import { FolderRequest } from './folderRequest';\n\nimport { Folder } from '../domain/folder';\n\nexport class FolderWithIdRequest extends FolderRequest {\n id: string;\n\n constructor(folder: Folder) {\n super(folder);\n this.id = folder.id;\n }\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class PasswordRequest extends PasswordVerificationRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import { CipherWithIdRequest } from './cipherWithIdRequest';\nimport { FolderWithIdRequest } from './folderWithIdRequest';\n\nexport class UpdateKeyRequest {\n ciphers: CipherWithIdRequest[] = [];\n folders: FolderWithIdRequest[] = [];\n masterPasswordHash: string;\n privateKey: string;\n key: string;\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { KdfRequest } from 'jslib/models/request/kdfRequest';\n\nimport { KdfType } from 'jslib/enums/kdfType';\n\n@Component({\n selector: 'app-change-kdf',\n templateUrl: 'change-kdf.component.html',\n})\nexport class ChangeKdfComponent implements OnInit {\n masterPassword: string;\n kdfIterations: number;\n kdf = KdfType.PBKDF2_SHA256;\n kdfOptions: any[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService,\n private userService: UserService) {\n this.kdfOptions = [\n { name: 'PBKDF2 SHA-256', value: KdfType.PBKDF2_SHA256 },\n ];\n }\n\n async ngOnInit() {\n this.kdf = await this.userService.getKdf();\n this.kdfIterations = await this.userService.getKdfIterations();\n }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.toasterService.popAsync('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n const request = new KdfRequest();\n request.kdf = this.kdf;\n request.kdfIterations = this.kdfIterations;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const email = await this.userService.getEmail();\n const newKey = await this.cryptoService.makeKey(this.masterPassword, email, this.kdf, this.kdfIterations);\n request.newMasterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, newKey);\n const newEncKey = await this.cryptoService.remakeEncKey(newKey);\n request.key = newEncKey[1].encryptedString;\n try {\n this.formPromise = this.apiService.postAccountKdf(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Changed KDF' });\n this.toasterService.popAsync('success', this.i18nService.t('encKeySettingsChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","{{'loggedOutWarning' | i18n}}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n

{{'kdfIterationsDesc' | i18n : (100000 | number)}}

\n {{'warning' | i18n}}: {{'kdfIterationsWarning' | i18n : (50000 | number)}}\n
\n
\n
\n
\n \n
\n","import {\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PlanType } from 'jslib/enums/planType';\nimport { ProductType } from 'jslib/enums/productType';\n\nimport { OrganizationPlansComponent } from './organization-plans.component';\n\n@Component({\n selector: 'app-create-organization',\n templateUrl: 'create-organization.component.html',\n})\nexport class CreateOrganizationComponent implements OnInit {\n @ViewChild(OrganizationPlansComponent, { static: true }) orgPlansComponent: OrganizationPlansComponent;\n\n constructor(private route: ActivatedRoute) { }\n\n ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.plan === 'families') {\n this.orgPlansComponent.plan = PlanType.FamiliesAnnually;\n this.orgPlansComponent.product = ProductType.Families;\n } else if (qParams.plan === 'teams') {\n this.orgPlansComponent.plan = PlanType.TeamsAnnually;\n this.orgPlansComponent.product = ProductType.Teams;\n } else if (qParams.plan === 'enterprise') {\n this.orgPlansComponent.plan = PlanType.EnterpriseAnnually;\n this.orgPlansComponent.product = ProductType.Enterprise;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n}\n","
\n

{{'newOrganization' | i18n}}

\n
\n

{{'newOrganizationDesc' | i18n}}

\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { UpdateDomainsRequest } from 'jslib/models/request/updateDomainsRequest';\n\n@Component({\n selector: 'app-domain-rules',\n templateUrl: 'domain-rules.component.html',\n})\nexport class DomainRulesComponent implements OnInit {\n loading = true;\n custom: string[] = [];\n global: any[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const response = await this.apiService.getSettingsDomains();\n this.loading = false;\n if (response.equivalentDomains != null) {\n this.custom = response.equivalentDomains.map(d => d.join(', '));\n }\n if (response.globalEquivalentDomains != null) {\n this.global = response.globalEquivalentDomains.map(d => {\n return {\n domains: d.domains.join(', '),\n excluded: d.excluded,\n key: d.type,\n };\n });\n }\n }\n\n toggleExcluded(globalDomain: any) {\n globalDomain.excluded = !globalDomain.excluded;\n }\n\n customize(globalDomain: any) {\n globalDomain.excluded = true;\n this.custom.push(globalDomain.domains);\n }\n\n remove(index: number) {\n this.custom.splice(index, 1);\n }\n\n add() {\n this.custom.push('');\n }\n\n async submit() {\n const request = new UpdateDomainsRequest();\n request.excludedGlobalEquivalentDomains = this.global.filter(d => d.excluded)\n .map(d => d.key);\n if (request.excludedGlobalEquivalentDomains.length === 0) {\n request.excludedGlobalEquivalentDomains = null;\n }\n request.equivalentDomains = this.custom.filter(d => d != null && d.trim() !== '')\n .map(d => d.split(',').map(d2 => d2.trim()));\n if (request.equivalentDomains.length === 0) {\n request.equivalentDomains = null;\n }\n\n try {\n this.formPromise = this.apiService.putSettingsDomains(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Saved Equivalent Domains' });\n this.toasterService.popAsync('success', null, this.i18nService.t('domainsUpdated'));\n } catch { }\n }\n\n indexTrackBy(index: number, obj: any): any {\n return index;\n }\n}\n","
\n

{{'domainRules' | i18n}}

\n
\n

{{'domainRulesDesc' | i18n}}

\n
\n

{{'customEqDomains' | i18n}}

\n

\n \n {{'loading' | i18n}}\n

\n \n
\n
\n \n \n
\n \n
\n \n {{'newCustomDomainDesc' | i18n}}\n
\n \n

{{'globalEqDomains' | i18n}}

\n

\n \n {{'loading' | i18n}}\n

\n 0\">\n \n \n \n \n \n \n
{{d.domains}}\n \n
\n \n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-options',\n templateUrl: 'options.component.html',\n})\nexport class OptionsComponent implements OnInit {\n vaultTimeout: number = null;\n vaultTimeoutAction: string = 'lock';\n disableIcons: boolean;\n enableGravatars: boolean;\n enableFullWidth: boolean;\n locale: string;\n vaultTimeouts: any[];\n localeOptions: any[];\n\n private startingLocale: string;\n\n constructor(private storageService: StorageService, private stateService: StateService,\n private analytics: Angulartics2, private i18nService: I18nService,\n private toasterService: ToasterService, private vaultTimeoutService: VaultTimeoutService,\n private platformUtilsService: PlatformUtilsService, private messagingService: MessagingService) {\n this.vaultTimeouts = [\n { name: i18nService.t('oneMinute'), value: 1 },\n { name: i18nService.t('fiveMinutes'), value: 5 },\n { name: i18nService.t('fifteenMinutes'), value: 15 },\n { name: i18nService.t('thirtyMinutes'), value: 30 },\n { name: i18nService.t('oneHour'), value: 60 },\n { name: i18nService.t('fourHours'), value: 240 },\n { name: i18nService.t('onRefresh'), value: -1 },\n ];\n if (this.platformUtilsService.isDev()) {\n this.vaultTimeouts.push({ name: i18nService.t('never'), value: null });\n }\n\n const localeOptions: any[] = [];\n i18nService.supportedTranslationLocales.forEach(locale => {\n let name = locale;\n if (i18nService.localeNames.has(locale)) {\n name += (' - ' + i18nService.localeNames.get(locale));\n }\n localeOptions.push({ name: name, value: locale });\n });\n localeOptions.sort(Utils.getSortFunction(i18nService, 'name'));\n localeOptions.splice(0, 0, { name: i18nService.t('default'), value: null });\n this.localeOptions = localeOptions;\n }\n\n async ngOnInit() {\n this.vaultTimeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n this.vaultTimeoutAction = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n this.disableIcons = await this.storageService.get(ConstantsService.disableFaviconKey);\n this.enableGravatars = await this.storageService.get('enableGravatars');\n this.enableFullWidth = await this.storageService.get('enableFullWidth');\n this.locale = this.startingLocale = await this.storageService.get(ConstantsService.localeKey);\n }\n\n async submit() {\n await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout != null ? this.vaultTimeout : null,\n this.vaultTimeoutAction);\n await this.storageService.save(ConstantsService.disableFaviconKey, this.disableIcons);\n await this.stateService.save(ConstantsService.disableFaviconKey, this.disableIcons);\n await this.storageService.save('enableGravatars', this.enableGravatars);\n await this.stateService.save('enableGravatars', this.enableGravatars);\n await this.storageService.save('enableFullWidth', this.enableFullWidth);\n this.messagingService.send('setFullWidth');\n await this.storageService.save(ConstantsService.localeKey, this.locale);\n this.analytics.eventTrack.next({ action: 'Saved Options' });\n if (this.locale !== this.startingLocale) {\n window.location.reload();\n } else {\n this.toasterService.popAsync('success', null, this.i18nService.t('optionsUpdated'));\n }\n }\n\n async vaultTimeoutActionChanged(newValue: string) {\n if (newValue === 'logOut') {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('vaultTimeoutLogOutConfirmation'),\n this.i18nService.t('vaultTimeoutLogOutConfirmationTitle'),\n this.i18nService.t('yes'), this.i18nService.t('cancel'), 'warning');\n if (!confirmed) {\n this.vaultTimeoutAction = 'lock';\n return;\n }\n }\n this.vaultTimeoutAction = newValue;\n }\n}\n","
\n

{{'options' | i18n}}

\n
\n

{{'optionsDesc' | i18n}}

\n
\n
\n
\n
\n \n \n {{'vaultTimeoutDesc' | i18n}}\n
\n
\n
\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n \n {{'languageDesc' | i18n}}\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n {{'disableIconsDesc' | i18n}}\n
\n
\n
\n \n \n \n \n \n
\n {{'enableGravatarsDesc' | i18n}}\n
\n\t
\n
\n \n \n
\n {{'enableFullWidthDesc' | i18n}}\n
\n \n
\n","import {\n AfterContentInit,\n Component,\n Input,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { SsoComponent } from 'jslib/angular/components/sso.component';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-link-sso',\n templateUrl: 'link-sso.component.html',\n})\nexport class LinkSsoComponent extends SsoComponent implements AfterContentInit {\n @Input() organization: Organization;\n returnUri: string = '/settings/organizations';\n\n constructor(platformUtilsService: PlatformUtilsService, i18nService: I18nService,\n apiService: ApiService, authService: AuthService,\n router: Router, route: ActivatedRoute,\n cryptoFunctionService: CryptoFunctionService, passwordGenerationService: PasswordGenerationService,\n storageService: StorageService, stateService: StateService) {\n super(authService, router,\n i18nService, route,\n storageService, stateService,\n platformUtilsService, apiService,\n cryptoFunctionService, passwordGenerationService);\n\n this.returnUri = '/settings/organizations';\n this.redirectUri = window.location.origin + '/sso-connector.html';\n this.clientId = 'web';\n }\n\n async ngAfterContentInit() {\n this.identifier = this.organization.identifier;\n }\n}\n","\n \n {{'linkSso' | i18n}}\n\n","import {\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\n@Component({\n selector: 'app-premium',\n templateUrl: 'premium.component.html',\n})\nexport class PremiumComponent implements OnInit {\n @ViewChild(PaymentComponent) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent) taxInfoComponent: TaxInfoComponent;\n\n canAccessPremium = false;\n selfHosted = false;\n premiumPrice = 10;\n storageGbPrice = 4;\n additionalStorage = 0;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService, private tokenService: TokenService,\n private router: Router, private messagingService: MessagingService,\n private syncService: SyncService, private userService: UserService) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n const premium = await this.tokenService.getPremium();\n if (premium) {\n this.router.navigate(['/settings/subscription']);\n return;\n }\n }\n\n async submit() {\n let files: FileList = null;\n if (this.selfHosted) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n }\n\n try {\n if (this.selfHosted) {\n if (!this.tokenService.getEmailVerified()) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('verifyEmailFirst'));\n return;\n }\n\n const fd = new FormData();\n fd.append('license', files[0]);\n this.formPromise = this.apiService.postAccountLicense(fd).then(() => {\n return this.finalizePremium();\n });\n } else {\n this.formPromise = this.paymentComponent.createPaymentToken().then(result => {\n const fd = new FormData();\n fd.append('paymentMethodType', result[1].toString());\n if (result[0] != null) {\n fd.append('paymentToken', result[0]);\n }\n fd.append('additionalStorageGb', (this.additionalStorage || 0).toString());\n fd.append('country', this.taxInfoComponent.taxInfo.country);\n fd.append('postalCode', this.taxInfoComponent.taxInfo.postalCode);\n return this.apiService.postPremium(fd);\n }).then(paymentResponse => {\n if (!paymentResponse.success && paymentResponse.paymentIntentClientSecret != null) {\n return this.paymentComponent.handleStripeCardPayment(paymentResponse.paymentIntentClientSecret,\n () => this.finalizePremium());\n } else {\n return this.finalizePremium();\n }\n });\n }\n await this.formPromise;\n } catch { }\n }\n\n async finalizePremium() {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n this.analytics.eventTrack.next({ action: 'Signed Up Premium' });\n this.toasterService.popAsync('success', null, this.i18nService.t('premiumUpdated'));\n this.messagingService.send('purchasedPremium');\n this.router.navigate(['/settings/subscription']);\n }\n\n get additionalStorageTotal(): number {\n return this.storageGbPrice * Math.abs(this.additionalStorage || 0);\n }\n\n get subtotal(): number {\n return this.premiumPrice + this.additionalStorageTotal;\n }\n\n get taxCharges(): number {\n return this.taxInfoComponent != null && this.taxInfoComponent.taxRate != null ?\n (this.taxInfoComponent.taxRate / 100) * this.subtotal :\n 0;\n }\n\n get total(): number {\n return (this.subtotal + this.taxCharges) || 0;\n }\n}\n","
\n

{{'goPremium' | i18n}}

\n
\n\n {{'alreadyPremiumFromOrg' | i18n}}\n\n\n

{{'premiumUpgradeUnlockFeatures' | i18n}}

\n
    \n
  • \n \n {{'premiumSignUpStorage' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpTwoStep' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpEmergency' |i18n}}\n
  • \n
  • \n \n {{'premiumSignUpReports' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpTotp' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpSupport' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpFuture' | i18n}}\n
  • \n
\n

{{'premiumPrice' | i18n : (premiumPrice | currency:'$')}}

\n \n {{'purchasePremium' | i18n}}\n \n
\n\n

{{'uploadLicenseFilePremium' | i18n}}

\n
\n
\n \n \n {{'licenseFileDesc' | i18n : 'bitwarden_premium_license.json'}}\n
\n \n
\n
\n
\n

{{'addons' | i18n}}

\n
\n
\n \n \n {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (storageGbPrice | currency:'$') : ('year' | i18n)}}\n
\n
\n

{{'summary' | i18n}}

\n {{'premiumMembership' | i18n}}: {{premiumPrice | currency:'$'}}\n
{{'additionalStorageGb' | i18n}}: {{additionalStorage || 0}} GB × {{storageGbPrice | currency:'$'}} = {{additionalStorageTotal\n | currency:'$'}}\n
\n

{{'paymentInformation' | i18n}}

\n \n \n
\n
\n {{ 'planPrice' | i18n }}: {{ subtotal | currency: 'USD $' }}\n
\n \n {{ 'estimatedTax' | i18n }}: {{ taxCharges | currency: 'USD $' }}\n \n
\n
\n

{{'total' | i18n}}:\n {{total | currency:'USD $'}}/{{'year' | i18n}}

\n
\n {{'paymentChargedAnnually' | i18n}}\n \n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'SettingsComponent';\n\n@Component({\n selector: 'app-settings',\n templateUrl: 'settings.component.html',\n})\nexport class SettingsComponent implements OnInit, OnDestroy {\n premium: boolean;\n selfHosted: boolean;\n\n constructor(private tokenService: TokenService, private broadcasterService: BroadcasterService,\n private ngZone: NgZone, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'purchasedPremium':\n await this.load();\n break;\n default:\n }\n });\n });\n\n this.selfHosted = await this.platformUtilsService.isSelfHost();\n await this.load();\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async load() {\n this.premium = await this.tokenService.getPremium();\n }\n}\n","\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { SubscriptionResponse } from 'jslib/models/response/subscriptionResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\n@Component({\n selector: 'app-user-subscription',\n templateUrl: 'user-subscription.component.html',\n})\nexport class UserSubscriptionComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n adjustStorageAdd = true;\n showAdjustStorage = false;\n showUpdateLicense = false;\n sub: SubscriptionResponse;\n selfHosted = false;\n\n cancelPromise: Promise;\n reinstatePromise: Promise;\n\n constructor(private tokenService: TokenService, private apiService: ApiService,\n private platformUtilsService: PlatformUtilsService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private router: Router) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n await this.load();\n this.firstLoaded = true;\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n\n if (this.tokenService.getPremium()) {\n this.loading = true;\n this.sub = await this.apiService.getUserSubscription();\n } else {\n this.router.navigate(['/settings/premium']);\n return;\n }\n\n this.loading = false;\n }\n\n async reinstate() {\n if (this.loading) {\n return;\n }\n\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('manageSubscriptionFromStore'),\n this.i18nService.t('cancelSubscription'), null, null, 'warning');\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('reinstateConfirmation'),\n this.i18nService.t('reinstateSubscription'), this.i18nService.t('yes'), this.i18nService.t('cancel'));\n if (!confirmed) {\n return;\n }\n\n try {\n this.reinstatePromise = this.apiService.postReinstatePremium();\n await this.reinstatePromise;\n this.analytics.eventTrack.next({ action: 'Reinstated Premium' });\n this.toasterService.popAsync('success', null, this.i18nService.t('reinstated'));\n this.load();\n } catch { }\n }\n\n async cancel() {\n if (this.loading) {\n return;\n }\n\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('manageSubscriptionFromStore'),\n this.i18nService.t('cancelSubscription'), null, null, 'warning');\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('cancelConfirmation'),\n this.i18nService.t('cancelSubscription'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.cancelPromise = this.apiService.postCancelPremium();\n await this.cancelPromise;\n this.analytics.eventTrack.next({ action: 'Canceled Premium' });\n this.toasterService.popAsync('success', null, this.i18nService.t('canceledSubscription'));\n this.load();\n } catch { }\n }\n\n downloadLicense() {\n if (this.loading) {\n return;\n }\n\n const licenseString = JSON.stringify(this.sub.license, null, 2);\n this.platformUtilsService.saveFile(window, licenseString, null, 'bitwarden_premium_license.json');\n }\n\n updateLicense() {\n if (this.loading) {\n return;\n }\n this.showUpdateLicense = true;\n }\n\n closeUpdateLicense(load: boolean) {\n this.showUpdateLicense = false;\n if (load) {\n this.load();\n }\n }\n\n adjustStorage(add: boolean) {\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t(add ? 'addStorage' : 'removeStorage'), null, null, 'warning');\n return;\n }\n this.adjustStorageAdd = add;\n this.showAdjustStorage = true;\n }\n\n closeStorage(load: boolean) {\n this.showAdjustStorage = false;\n if (load) {\n this.load();\n }\n }\n\n get subscriptionMarkedForCancel() {\n return this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate;\n }\n\n get subscription() {\n return this.sub != null ? this.sub.subscription : null;\n }\n\n get nextInvoice() {\n return this.sub != null ? this.sub.upcomingInvoice : null;\n }\n\n get storagePercentage() {\n return this.sub != null && this.sub.maxStorageGb ?\n +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) : 0;\n }\n\n get storageProgressWidth() {\n return this.storagePercentage < 5 ? 5 : 0;\n }\n\n get usingInAppPurchase() {\n return this.sub != null ? this.sub.usingInAppPurchase : false;\n }\n}\n","
\n

\n {{'premiumMembership' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n {{'subscriptionCanceled' | i18n}}\n \n

{{'subscriptionPendingCanceled' | i18n}}

\n \n
\n
\n
{{'expiration' | i18n}}
\n
{{sub.expiration | date:'mediumDate'}}
\n
{{'neverExpires' | i18n}}
\n
\n
\n
\n
\n
{{'status' | i18n}}
\n
\n {{(subscription && subscription.status) || '-'}}\n {{'pendingCancellation' | i18n}}\n
\n
{{'nextCharge' | i18n}}
\n
{{nextInvoice ? ((nextInvoice.date | date: 'mediumDate') + ', ' + (nextInvoice.amount | currency:'$')) :\n '-'}}\n
\n
\n
\n
\n {{'details' | i18n}}\n \n \n \n \n \n \n \n
\n {{i.name}} {{i.quantity > 1 ? '×' + i.quantity : ''}} @ {{i.amount | currency:'$'}}\n \n {{(i.quantity * i.amount) | currency:'$'}} /{{i.interval | i18n}}\n
\n
\n
\n \n
\n \n \n {{'manageSubscription' | i18n}}\n \n
\n
\n
\n \n

{{'updateLicense' | i18n}}

\n \n \n
\n
\n
\n \n
\n \n \n
\n

{{'storage' | i18n}}

\n

{{'subscriptionStorage' | i18n : sub.maxStorageGb || 0 : sub.storageName || '0 MB'}}

\n
\n
\n {{(storagePercentage / 100) | percent}}
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { BreachAccountResponse } from 'jslib/models/response/breachAccountResponse';\n\n@Component({\n selector: 'app-breach-report',\n templateUrl: 'breach-report.component.html',\n})\nexport class BreachReportComponent implements OnInit {\n error = false;\n username: string;\n checkedUsername: string;\n breachedAccounts: BreachAccountResponse[] = [];\n formPromise: Promise;\n\n constructor(private auditService: AuditService, private userService: UserService) { }\n\n async ngOnInit() {\n this.username = await this.userService.getEmail();\n }\n\n async submit() {\n this.error = false;\n this.username = this.username.toLowerCase();\n try {\n this.formPromise = this.auditService.breachedAccounts(this.username);\n this.breachedAccounts = await this.formPromise;\n } catch {\n this.error = true;\n }\n this.checkedUsername = this.username;\n }\n}\n","
\n

{{'dataBreachReport' | i18n}}

\n
\n

{{'breachDesc' | i18n}}

\n
\n
\n
\n \n \n {{'breachCheckUsernameEmail' | i18n}}\n
\n
\n \n
\n
\n

{{'reportError' | i18n}}...

\n \n \n {{'breachUsernameNotFound' | i18n : checkedUsername}}\n \n \n {{'breachUsernameFound' | i18n : checkedUsername : breachedAccounts.length}}\n \n
    \n
  • \n
    \n
    \n \"\"\n
    \n
    \n

    {{a.title}}

    \n

    \n

    {{'compromisedData' | i18n}}:

    \n
      \n
    • {{d}}
    • \n
    \n
    \n
    \n
    \n
    {{'website' | i18n}}
    \n
    {{a.domain}}
    \n
    {{'affectedUsers' | i18n}}
    \n
    {{a.pwnCount | number}}
    \n
    {{'breachOccurred' | i18n}}
    \n
    {{a.breachDate | date: 'mediumDate'}}
    \n
    {{'breachReported' | i18n}}
    \n
    {{a.addedDate | date: 'mediumDate'}}
    \n
    \n
    \n
    \n
  • \n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n PasswordGeneratorComponent as BasePasswordGeneratorComponent,\n} from 'jslib/angular/components/password-generator.component';\n\nimport { ModalComponent } from '../modal.component';\nimport { PasswordGeneratorHistoryComponent } from './password-generator-history.component';\n\n@Component({\n selector: 'app-password-generator',\n templateUrl: 'password-generator.component.html',\n})\nexport class PasswordGeneratorComponent extends BasePasswordGeneratorComponent {\n @ViewChild('historyTemplate', { read: ViewContainerRef, static: true }) historyModalRef: ViewContainerRef;\n\n private modal: ModalComponent = null;\n\n constructor(passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver) {\n super(passwordGenerationService, platformUtilsService, i18nService, window);\n }\n\n history() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.historyModalRef.createComponent(factory).instance;\n this.modal.show(PasswordGeneratorHistoryComponent, this.historyModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n lengthChanged() {\n document.getElementById('length').focus();\n }\n\n minNumberChanged() {\n document.getElementById('min-number').focus();\n }\n\n minSpecialChanged() {\n document.getElementById('min-special').focus();\n }\n}\n","
\n

{{'passwordGenerator' | i18n}}

\n
\n\n {{'passwordGeneratorPolicyInEffect' | i18n}}\n\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n PasswordGeneratorHistoryComponent as BasePasswordGeneratorHistoryComponent,\n} from 'jslib/angular/components/password-generator-history.component';\n\n@Component({\n selector: 'app-password-generator-history',\n templateUrl: 'password-generator-history.component.html',\n})\nexport class PasswordGeneratorHistoryComponent extends BasePasswordGeneratorHistoryComponent {\n constructor(passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService) {\n super(passwordGenerationService, platformUtilsService, i18nService, window);\n }\n}\n","
\n
\n
\n
\n

{{'passwordHistory' | i18n}}

\n \n
\n
    \n
  • \n
    \n
    \n {{h.date | date:'medium'}}\n
    \n
    \n \n
    \n
  • \n
\n
\n {{'noPasswordsInList' | i18n}}\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-tools',\n templateUrl: 'tools.component.html',\n})\nexport class ToolsComponent implements OnInit {\n canAccessPremium = false;\n\n constructor(private userService: UserService, private messagingService: MessagingService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n }\n\n premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n}\n","\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { OrganizationsComponent } from '../settings/organizations.component';\nimport { UpdateKeyComponent } from '../settings/update-key.component';\nimport { AddEditComponent } from './add-edit.component';\nimport { AttachmentsComponent } from './attachments.component';\nimport { CiphersComponent } from './ciphers.component';\nimport { CollectionsComponent } from './collections.component';\nimport { FolderAddEditComponent } from './folder-add-edit.component';\nimport { GroupingsComponent } from './groupings.component';\nimport { ShareComponent } from './share.component';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'VaultComponent';\n\n@Component({\n selector: 'app-vault',\n templateUrl: 'vault.component.html',\n})\nexport class VaultComponent implements OnInit, OnDestroy {\n @ViewChild(GroupingsComponent, { static: true }) groupingsComponent: GroupingsComponent;\n @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent;\n @ViewChild(OrganizationsComponent, { static: true }) organizationsComponent: OrganizationsComponent;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n @ViewChild('folderAddEdit', { read: ViewContainerRef, static: true }) folderAddEditModalRef: ViewContainerRef;\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('share', { read: ViewContainerRef, static: true }) shareModalRef: ViewContainerRef;\n @ViewChild('collections', { read: ViewContainerRef, static: true }) collectionsModalRef: ViewContainerRef;\n @ViewChild('updateKeyTemplate', { read: ViewContainerRef, static: true }) updateKeyModalRef: ViewContainerRef;\n\n favorites: boolean = false;\n type: CipherType = null;\n folderId: string = null;\n collectionId: string = null;\n showVerifyEmail = false;\n showBrowserOutdated = false;\n showUpdateKey = false;\n showPremiumCallout = false;\n deleted: boolean = false;\n\n modal: ModalComponent = null;\n\n constructor(private syncService: SyncService, private route: ActivatedRoute,\n private router: Router, private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private tokenService: TokenService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private userService: UserService,\n private platformUtilsService: PlatformUtilsService, private broadcasterService: BroadcasterService,\n private ngZone: NgZone) { }\n\n async ngOnInit() {\n this.showVerifyEmail = !(await this.tokenService.getEmailVerified());\n this.showBrowserOutdated = window.navigator.userAgent.indexOf('MSIE') !== -1;\n\n const queryParamsSub = this.route.queryParams.subscribe(async params => {\n await this.syncService.fullSync(false);\n\n this.showUpdateKey = !(await this.cryptoService.hasEncKey());\n const canAccessPremium = await this.userService.canAccessPremium();\n this.showPremiumCallout = !this.showVerifyEmail && !canAccessPremium &&\n !this.platformUtilsService.isSelfHost();\n\n await Promise.all([\n this.groupingsComponent.load(),\n this.organizationsComponent.load(),\n ]);\n\n if (params == null) {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n } else {\n if (params.deleted) {\n this.groupingsComponent.selectedTrash = true;\n await this.filterDeleted();\n } else if (params.favorites) {\n this.groupingsComponent.selectedFavorites = true;\n await this.filterFavorites();\n } else if (params.type) {\n const t = parseInt(params.type, null);\n this.groupingsComponent.selectedType = t;\n await this.filterCipherType(t);\n } else if (params.folderId) {\n this.groupingsComponent.selectedFolder = true;\n this.groupingsComponent.selectedFolderId = params.folderId;\n await this.filterFolder(params.folderId);\n } else if (params.collectionId) {\n this.groupingsComponent.selectedCollectionId = params.collectionId;\n await this.filterCollection(params.collectionId);\n } else {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n }\n }\n\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await Promise.all([\n this.groupingsComponent.load(),\n this.organizationsComponent.load(),\n this.ciphersComponent.load(this.ciphersComponent.filter),\n ]);\n this.changeDetectorRef.detectChanges();\n }\n break;\n }\n });\n });\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async clearGroupingFilters() {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchVault');\n await this.ciphersComponent.reload();\n this.clearFilters();\n this.go();\n }\n\n async filterFavorites() {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchFavorites');\n await this.ciphersComponent.reload(c => c.favorite);\n this.clearFilters();\n this.favorites = true;\n this.go();\n }\n\n async filterDeleted() {\n this.ciphersComponent.showAddNew = false;\n this.ciphersComponent.deleted = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchTrash');\n await this.ciphersComponent.reload(null, true);\n this.clearFilters();\n this.deleted = true;\n this.go();\n }\n\n async filterCipherType(type: CipherType) {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchType');\n await this.ciphersComponent.reload(c => c.type === type);\n this.clearFilters();\n this.type = type;\n this.go();\n }\n\n async filterFolder(folderId: string) {\n this.ciphersComponent.showAddNew = true;\n folderId = folderId === 'none' ? null : folderId;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchFolder');\n await this.ciphersComponent.reload(c => c.folderId === folderId);\n this.clearFilters();\n this.folderId = folderId == null ? 'none' : folderId;\n this.go();\n }\n\n async filterCollection(collectionId: string) {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchCollection');\n await this.ciphersComponent.reload(c => c.collectionIds != null &&\n c.collectionIds.indexOf(collectionId) > -1);\n this.clearFilters();\n this.collectionId = collectionId;\n this.go();\n }\n\n filterSearchText(searchText: string) {\n this.ciphersComponent.searchText = searchText;\n this.ciphersComponent.search(200);\n }\n\n async editCipherAttachments(cipher: CipherView) {\n const canAccessPremium = await this.userService.canAccessPremium();\n if (cipher.organizationId == null && !canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n } else if (cipher.organizationId != null) {\n const org = await this.userService.getOrganization(cipher.organizationId);\n if (org != null && (org.maxStorageGb == null || org.maxStorageGb === 0)) {\n this.messagingService.send('upgradeOrganization', { organizationId: cipher.organizationId });\n return;\n }\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.cipherId = cipher.id;\n let madeAttachmentChanges = false;\n childComponent.onUploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onDeletedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onReuploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n if (madeAttachmentChanges) {\n await this.ciphersComponent.refresh();\n }\n madeAttachmentChanges = false;\n });\n }\n\n shareCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.shareModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ShareComponent, this.shareModalRef);\n\n childComponent.cipherId = cipher.id;\n childComponent.onSharedCipher.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n editCipherCollections(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.collectionsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(CollectionsComponent, this.collectionsModalRef);\n\n childComponent.cipherId = cipher.id;\n childComponent.onSavedCollections.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async addFolder() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.folderAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n FolderAddEditComponent, this.folderAddEditModalRef);\n\n childComponent.folderId = null;\n childComponent.onSavedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async editFolder(folderId: string) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.folderAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n FolderAddEditComponent, this.folderAddEditModalRef);\n\n childComponent.folderId = folderId;\n childComponent.onSavedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n });\n childComponent.onDeletedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n await this.filterFolder('none');\n this.groupingsComponent.selectedFolderId = null;\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n addCipher() {\n const component = this.editCipher(null);\n component.type = this.type;\n component.folderId = this.folderId === 'none' ? null : this.folderId;\n if (this.collectionId != null) {\n const collection = this.groupingsComponent.collections.filter(c => c.id === this.collectionId);\n if (collection.length > 0) {\n component.organizationId = collection[0].organizationId;\n component.collectionIds = [this.collectionId];\n }\n }\n }\n\n editCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n AddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n cloneCipher(cipher: CipherView) {\n const component = this.editCipher(cipher);\n component.cloneMode = true;\n }\n\n updateKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.updateKeyModalRef.createComponent(factory).instance;\n this.modal.show(UpdateKeyComponent, this.updateKeyModalRef);\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private clearFilters() {\n this.folderId = null;\n this.collectionId = null;\n this.favorites = false;\n this.type = null;\n this.deleted = false;\n }\n\n private go(queryParams: any = null) {\n if (queryParams == null) {\n queryParams = {\n favorites: this.favorites ? true : null,\n type: this.type,\n folderId: this.folderId,\n collectionId: this.collectionId,\n deleted: this.deleted ? true : null,\n };\n }\n\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: queryParams,\n replaceUrl: true,\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n

\n {{'myVault' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n \n \n
\n
\n \n \n
\n
\n
\n
\n {{'updateKeyTitle' | i18n}}\n
\n
\n

{{'updateEncryptionKeyShortDesc' | i18n}}

\n \n
\n
\n \n \n
\n
\n {{'updateBrowser' | i18n}}\n
\n
\n

{{'updateBrowserDesc' | i18n}}

\n \n {{'updateBrowser' | i18n}}\n \n
\n
\n
\n
\n {{'goPremium' | i18n}}\n
\n
\n

{{'premiumUpgradeUnlockFeatures' | i18n}}

\n \n {{'goPremium' | i18n}}\n \n
\n
\n
\n
\n {{'organizations' | i18n}}\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\n\nimport { CipherString } from 'jslib/models/domain/cipherString';\n\nimport { CipherWithIdRequest } from 'jslib/models/request/cipherWithIdRequest';\nimport { FolderWithIdRequest } from 'jslib/models/request/folderWithIdRequest';\nimport { UpdateKeyRequest } from 'jslib/models/request/updateKeyRequest';\n\n@Component({\n selector: 'app-update-key',\n templateUrl: 'update-key.component.html',\n})\nexport class UpdateKeyComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService,\n private syncService: SyncService, private folderService: FolderService,\n private cipherService: CipherService) { }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (hasEncKey) {\n return;\n }\n\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n try {\n this.formPromise = this.makeRequest().then(request => {\n return this.apiService.postAccountKey(request);\n });\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Key Updated' });\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('keyUpdated'),\n body: this.i18nService.t('logBackInOthersToo'),\n timeout: 15000,\n };\n this.toasterService.popAsync(toast);\n this.messagingService.send('logout');\n } catch { }\n }\n\n private async makeRequest(): Promise {\n const key = await this.cryptoService.getKey();\n const encKey = await this.cryptoService.makeEncKey(key);\n const privateKey = await this.cryptoService.getPrivateKey();\n let encPrivateKey: CipherString = null;\n if (privateKey != null) {\n encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]);\n }\n const request = new UpdateKeyRequest();\n request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n\n await this.syncService.fullSync(true);\n\n const folders = await this.folderService.getAllDecrypted();\n for (let i = 0; i < folders.length; i++) {\n if (folders[i].id == null) {\n continue;\n }\n const folder = await this.folderService.encrypt(folders[i], encKey[0]);\n request.folders.push(new FolderWithIdRequest(folder));\n }\n\n const ciphers = await this.cipherService.getAllDecrypted();\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId != null) {\n continue;\n }\n const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]);\n request.ciphers.push(new CipherWithIdRequest(cipher));\n }\n\n return request;\n }\n}\n","
\n
\n
\n
\n

{{'updateEncryptionKey' | i18n}}

\n \n
\n
\n

{{'updateEncryptionKeyShortDesc' | i18n}} {{'updateEncryptionKeyDesc' | i18n}}\n {{'learnMore' | i18n}}\n

\n {{'updateEncryptionKeyWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n FolderAddEditComponent as BaseFolderAddEditComponent,\n} from 'jslib/angular/components/folder-add-edit.component';\n\n@Component({\n selector: 'app-folder-add-edit',\n templateUrl: 'folder-add-edit.component.html',\n})\nexport class FolderAddEditComponent extends BaseFolderAddEditComponent {\n constructor(folderService: FolderService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService) {\n super(folderService, i18nService, platformUtilsService);\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { ShareComponent as BaseShareComponent } from 'jslib/angular/components/share.component';\n\n@Component({\n selector: 'app-vault-share',\n templateUrl: 'share.component.html',\n})\nexport class ShareComponent extends BaseShareComponent implements OnDestroy {\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, userService: UserService,\n cipherService: CipherService) {\n super(collectionService, platformUtilsService, i18nService, userService, cipherService);\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n const collections = select ? this.collections : this.writeableCollections;\n collections.forEach(c => this.check(c, select));\n }\n}\n","
\n
\n
\n
\n

\n {{'share' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n {{'noOrganizationsList' | i18n}}\n
\n
\n

{{'shareDesc' | i18n}}

\n
\n \n \n
\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n {{'newOrganization' | i18n}}\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-send-info',\n templateUrl: 'send-info.component.html',\n})\nexport class SendInfoComponent { }\n","
\n \n
\n {{'sendVaultCardProductDesc' | i18n}}\n {{'sendVaultCardLearnMore' |\n i18n}},\n {{'sendVaultCardSee' | i18n}}\n {{'sendVaultCardHowItWorks' | i18n}},\n {{'sendVaultCardOr' | i18n}}\n {{'sendVaultCardTryItNow' | i18n}}.\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-verify-email',\n templateUrl: 'verify-email.component.html',\n})\nexport class VerifyEmailComponent {\n actionPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async send() {\n if (this.actionPromise != null) {\n return;\n }\n try {\n this.actionPromise = this.apiService.postAccountVerifyEmail();\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Sent Verification Email' });\n this.toasterService.popAsync('success', null, this.i18nService.t('checkInboxForVerification'));\n } catch { }\n this.actionPromise = null;\n }\n}\n","
\n
\n {{'verifyEmail' | i18n}}\n
\n
\n

{{'verifyEmailDesc' | i18n}}

\n \n
\n
\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Injectable()\nexport class OrganizationGuardService implements CanActivate {\n constructor(private userService: UserService, private router: Router,\n private toasterService: ToasterService, private i18nService: I18nService) { }\n\n async canActivate(route: ActivatedRouteSnapshot) {\n const org = await this.userService.getOrganization(route.params.organizationId);\n if (org == null) {\n this.router.navigate(['/']);\n return false;\n }\n if (!org.isOwner && !org.enabled) {\n this.toasterService.popAsync('error', null, this.i18nService.t('organizationIsDisabled'));\n this.router.navigate(['/']);\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Permissions } from 'jslib/enums/permissions';\n\n@Injectable()\nexport class OrganizationTypeGuardService implements CanActivate {\n constructor(private userService: UserService, private router: Router) { }\n\n async canActivate(route: ActivatedRouteSnapshot) {\n const org = await this.userService.getOrganization(route.params.organizationId);\n const permissions = route.data == null ? null : route.data.permissions as Permissions[];\n\n if (\n (permissions.indexOf(Permissions.AccessBusinessPortal) !== -1 && org.canAccessBusinessPortal) ||\n (permissions.indexOf(Permissions.AccessEventLogs) !== -1 && org.canAccessEventLogs) ||\n (permissions.indexOf(Permissions.AccessImportExport) !== -1 && org.canAccessImportExport) ||\n (permissions.indexOf(Permissions.AccessReports) !== -1 && org.canAccessReports) ||\n (permissions.indexOf(Permissions.ManageAllCollections) !== -1 && org.canManageAllCollections) ||\n (permissions.indexOf(Permissions.ManageAssignedCollections) !== -1 && org.canManageAssignedCollections) ||\n (permissions.indexOf(Permissions.ManageGroups) !== -1 && org.canManageGroups) ||\n (permissions.indexOf(Permissions.ManageOrganization) !== -1 && org.isOwner) ||\n (permissions.indexOf(Permissions.ManagePolicies) !== -1 && org.canManagePolicies) ||\n (permissions.indexOf(Permissions.ManageUsers) !== -1 && org.canManageUsers)\n ) {\n return true;\n }\n\n this.router.navigate(['/organizations', org.id]);\n return false;\n }\n}\n","export enum Permissions {\n AccessBusinessPortal,\n AccessEventLogs,\n AccessImportExport,\n AccessReports,\n ManageAllCollections,\n ManageAssignedCollections,\n ManageGroups,\n ManageOrganization,\n ManagePolicies,\n ManageUsers,\n}\n","import { Injectable } from '@angular/core';\nimport {\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class UnauthGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router) { }\n\n async canActivate() {\n const isAuthed = await this.userService.isAuthenticated();\n if (isAuthed) {\n const locked = await this.vaultTimeoutService.isLocked();\n if (locked) {\n this.router.navigate(['lock']);\n } else {\n this.router.navigate(['vault']);\n }\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\n\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class AuthGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router, private messagingService: MessagingService) { }\n\n async canActivate(route: ActivatedRouteSnapshot, routerState: RouterStateSnapshot) {\n const isAuthed = await this.userService.isAuthenticated();\n if (!isAuthed) {\n this.messagingService.send('authBlocked');\n return false;\n }\n\n const locked = await this.vaultTimeoutService.isLocked();\n if (locked) {\n if (routerState != null) {\n this.messagingService.send('lockedUrl', { url: routerState.url });\n }\n this.router.navigate(['lock'], { queryParams: { promptBiometric: true }});\n return false;\n }\n\n return true;\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\n\nimport { CipherData } from 'jslib/models/data';\nimport { Cipher, SymmetricCryptoKey } from 'jslib/models/domain';\nimport { EmergencyAccessViewResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { EmergencyAccessAttachmentsComponent } from './emergency-access-attachments.component';\nimport { EmergencyAddEditComponent } from './emergency-add-edit.component';\n\n@Component({\n selector: 'emergency-access-view',\n templateUrl: 'emergency-access-view.component.html',\n})\nexport class EmergencyAccessViewComponent implements OnInit {\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n\n id: string;\n ciphers: CipherView[] = [];\n\n private modal: ModalComponent = null;\n\n constructor(private cipherService: CipherService, private cryptoService: CryptoService,\n private componentFactoryResolver: ComponentFactoryResolver, private router: Router,\n private route: ActivatedRoute, private apiService: ApiService) { }\n\n ngOnInit() {\n this.route.params.subscribe(qParams => {\n if (qParams.id == null) {\n return this.router.navigate(['settings/emergency-access']);\n }\n\n this.id = qParams.id;\n\n this.load();\n });\n }\n\n selectCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(EmergencyAddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.cipher = cipher;\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n async load() {\n const response = await this.apiService.postEmergencyAccessView(this.id);\n this.ciphers = await this.getAllCiphers(response);\n }\n\n async viewAttachments(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(EmergencyAccessAttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.cipher = cipher;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n protected async getAllCiphers(response: EmergencyAccessViewResponse): Promise {\n const ciphers = response.ciphers;\n\n const decCiphers: CipherView[] = [];\n const oldKeyBuffer = await this.cryptoService.rsaDecrypt(response.keyEncrypted);\n const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer);\n\n const promises: any[] = [];\n ciphers.forEach(cipherResponse => {\n const cipherData = new CipherData(cipherResponse);\n const cipher = new Cipher(cipherData);\n promises.push(cipher.decrypt(oldEncKey).then(c => decCiphers.push(c)));\n });\n\n await Promise.all(promises);\n decCiphers.sort(this.cipherService.getLocaleSortingFunction());\n\n return decCiphers;\n }\n}\n","
\n

{{'vault' | i18n}}

\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n
\n
\n
\n\n\n","import { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class EncryptedObject {\n iv: ArrayBuffer;\n data: ArrayBuffer;\n mac: ArrayBuffer;\n key: SymmetricCryptoKey;\n}\n","export class EnvironmentUrls {\n base: string;\n api: string;\n identity: string;\n events: string;\n}\n","export class GeneratedPasswordHistory {\n password: string;\n date: number;\n\n constructor(password: string, date: number) {\n this.password = password;\n this.date = date;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from 'jslib/angular/components/attachments.component';\n\n@Component({\n selector: 'emergency-access-attachments',\n templateUrl: '../vault/attachments.component.html',\n})\nexport class EmergencyAccessAttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = true;\n canAccessAttachments = true;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, window);\n }\n\n protected async init() {\n // Do nothing since cipher is already decoded\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return false;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { AddEditComponent as BaseAddEditComponent } from '../vault/add-edit.component';\n\n@Component({\n selector: 'app-org-vault-add-edit',\n templateUrl: '../vault/add-edit.component.html',\n})\nexport class EmergencyAddEditComponent extends BaseAddEditComponent {\n originalCipher: Cipher = null;\n viewOnly = true;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n totpService: TotpService, passwordGenerationService: PasswordGenerationService,\n messagingService: MessagingService, eventService: EventService, policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, totpService, passwordGenerationService, messagingService,\n eventService, policyService);\n }\n\n async load() {\n this.title = this.i18nService.t('viewItem');\n }\n\n protected async loadCipher() {\n return Promise.resolve(this.originalCipher);\n }\n}\n","import { Component, ComponentFactoryResolver, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EmergencyAccessStatusType } from 'jslib/enums/emergencyAccessStatusType';\nimport { EmergencyAccessType } from 'jslib/enums/emergencyAccessType';\nimport { Utils } from 'jslib/misc/utils';\nimport { EmergencyAccessConfirmRequest } from 'jslib/models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessGranteeDetailsResponse, EmergencyAccessGrantorDetailsResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ModalComponent } from '../modal.component';\nimport { EmergencyAccessAddEditComponent } from './emergency-access-add-edit.component';\nimport { EmergencyAccessConfirmComponent } from './emergency-access-confirm.component';\nimport { EmergencyAccessTakeoverComponent } from './emergency-access-takeover.component';\n\n@Component({\n selector: 'emergency-access',\n templateUrl: 'emergency-access.component.html',\n})\nexport class EmergencyAccessComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('takeoverTemplate', { read: ViewContainerRef, static: true}) takeoverModalRef: ViewContainerRef;\n @ViewChild('confirmTemplate', { read: ViewContainerRef, static: true }) confirmModalRef: ViewContainerRef;\n\n canAccessPremium: boolean;\n trustedContacts: EmergencyAccessGranteeDetailsResponse[];\n grantedContacts: EmergencyAccessGrantorDetailsResponse[];\n emergencyAccessType = EmergencyAccessType;\n emergencyAccessStatusType = EmergencyAccessStatusType;\n actionPromise: Promise;\n isOrganizationOwner: boolean;\n\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private storageService: StorageService, private userService: UserService,\n private messagingService: MessagingService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n const orgs = await this.userService.getAllOrganizations();\n this.isOrganizationOwner = orgs.some(o => o.isOwner);\n this.load();\n }\n\n async load() {\n this.trustedContacts = (await this.apiService.getEmergencyAccessTrusted()).data;\n this.grantedContacts = (await this.apiService.getEmergencyAccessGranted()).data;\n }\n\n async premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n edit(details: EmergencyAccessGranteeDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessAddEditComponent, this.addEditModalRef);\n\n childComponent.name = details?.name ?? details?.email;\n childComponent.emergencyAccessId = details?.id;\n childComponent.readOnly = !this.canAccessPremium;\n childComponent.onSaved.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeleted.subscribe(() => {\n this.modal.close();\n this.remove(details);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n invite() {\n this.edit(null);\n }\n\n async reinvite(contact: EmergencyAccessGranteeDetailsResponse) {\n if (this.actionPromise != null) {\n return;\n }\n this.actionPromise = this.apiService.postEmergencyAccessReinvite(contact.id);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenReinvited', contact.email));\n this.actionPromise = null;\n }\n\n async confirm(contact: EmergencyAccessGranteeDetailsResponse) {\n function updateUser() {\n contact.status = EmergencyAccessStatusType.Confirmed;\n }\n\n if (this.actionPromise != null) {\n return;\n }\n\n const autoConfirm = await this.storageService.get(ConstantsService.autoConfirmFingerprints);\n if (autoConfirm == null || !autoConfirm) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.confirmModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessConfirmComponent, this.confirmModalRef);\n\n childComponent.name = contact?.name ?? contact?.email;\n childComponent.emergencyAccessId = contact.id;\n childComponent.userId = contact?.granteeId;\n childComponent.onConfirmed.subscribe(async () => {\n this.modal.close();\n\n childComponent.formPromise = this.doConfirmation(contact);\n await childComponent.formPromise;\n\n updateUser();\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', contact.name || contact.email));\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return;\n }\n\n this.actionPromise = this.doConfirmation(contact);\n await this.actionPromise;\n updateUser();\n\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', contact.name || contact.email));\n this.actionPromise = null;\n }\n\n async remove(details: EmergencyAccessGranteeDetailsResponse | EmergencyAccessGrantorDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), details.name || details.email,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteEmergencyAccess(details.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', details.name || details.email));\n\n if (details instanceof EmergencyAccessGranteeDetailsResponse) {\n this.removeGrantee(details);\n } else {\n this.removeGrantor(details);\n }\n } catch { }\n }\n\n async requestAccess(details: EmergencyAccessGrantorDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('requestAccessConfirmation', details.waitTimeDays.toString()),\n details.name || details.email,\n this.i18nService.t('requestAccess'),\n this.i18nService.t('no'),\n 'warning',\n );\n\n if (!confirmed) {\n return false;\n }\n\n await this.apiService.postEmergencyAccessInitiate(details.id);\n\n details.status = EmergencyAccessStatusType.RecoveryInitiated;\n this.toasterService.popAsync('success', null, this.i18nService.t('requestSent', details.name || details.email));\n }\n\n async approve(details: EmergencyAccessGranteeDetailsResponse) {\n const type = this.i18nService.t(details.type === EmergencyAccessType.View ? 'view' : 'takeover');\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('approveAccessConfirmation', details.name || details.email, type),\n details.name || details.email,\n this.i18nService.t('approve'),\n this.i18nService.t('no'),\n 'warning',\n );\n\n if (!confirmed) {\n return false;\n }\n\n await this.apiService.postEmergencyAccessApprove(details.id);\n details.status = EmergencyAccessStatusType.RecoveryApproved;\n\n this.toasterService.popAsync('success', null, this.i18nService.t('emergencyApproved', details.name || details.email));\n }\n\n async reject(details: EmergencyAccessGranteeDetailsResponse) {\n await this.apiService.postEmergencyAccessReject(details.id);\n details.status = EmergencyAccessStatusType.Confirmed;\n\n this.toasterService.popAsync('success', null, this.i18nService.t('emergencyRejected', details.name || details.email));\n }\n\n async takeover(details: EmergencyAccessGrantorDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessTakeoverComponent, this.takeoverModalRef);\n\n childComponent.name = details != null ? details.name || details.email : null;\n childComponent.email = details.email;\n childComponent.emergencyAccessId = details != null ? details.id : null;\n\n childComponent.onDone.subscribe(() => {\n this.modal.close();\n this.toasterService.popAsync('success', null, this.i18nService.t('passwordResetFor', details.name || details.email));\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private removeGrantee(details: EmergencyAccessGranteeDetailsResponse) {\n const index = this.trustedContacts.indexOf(details);\n if (index > -1) {\n this.trustedContacts.splice(index, 1);\n }\n }\n\n private removeGrantor(details: EmergencyAccessGrantorDetailsResponse) {\n const index = this.grantedContacts.indexOf(details);\n if (index > -1) {\n this.grantedContacts.splice(index, 1);\n }\n }\n\n // Encrypt the master password hash using the grantees public key, and send it to bitwarden for escrow.\n private async doConfirmation(details: EmergencyAccessGranteeDetailsResponse) {\n const encKey = await this.cryptoService.getEncKey();\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n try {\n // tslint:disable-next-line\n console.log('User\\'s fingerprint: ' +\n (await this.cryptoService.getFingerprint(details.granteeId, publicKey.buffer)).join('-'));\n } catch { }\n\n const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);\n const request = new EmergencyAccessConfirmRequest();\n request.key = encryptedKey.encryptedString;\n await this.apiService.postEmergencyAccessConfirm(details.id, request);\n }\n}\n","
\n

{{'emergencyAccess' | i18n}}

\n
\n

\n {{'emergencyAccessDesc' | i18n}}\n \n {{'learnMore' | i18n}}.\n \n

\n\n

\n {{'warning' | i18n }}: {{'emergencyAccessOwnerWarning' | i18n}}\n

\n\n
\n

\n {{'trustedEmergencyContacts' | i18n}}\n \n {{'premium' | i18n}}\n \n

\n
\n \n
\n
\n\n\n \n \n \n \n \n \n \n
\n \n \n {{c.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{'emergencyAccessRecoveryInitiated' | i18n}}\n {{'emergencyAccessRecoveryApproved' | i18n}}\n \n {{'view' | i18n}}\n {{'takeover' | i18n}}\n\n {{c.name}}\n \n \n
\n\n

{{'noTrustedContacts' | i18n}}

\n\n
\n

{{'designatedEmergencyContacts' | i18n}}

\n
\n\n\n \n \n \n \n \n \n \n
\n \n \n {{c.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{'emergencyAccessRecoveryInitiated' | i18n}}\n {{'emergencyAccessRecoveryApproved' | i18n}}\n \n {{'view' | i18n}}\n {{'takeover' | i18n}}\n\n {{c.name}}\n \n \n
\n\n

{{'noGrantedAccess' | i18n}}

\n\n\n\n\n","export enum EmergencyAccessType\n{\n View = 0,\n Takeover = 1,\n}\n","import { EmergencyAccessStatusType } from '../../enums/emergencyAccessStatusType';\nimport { EmergencyAccessType } from '../../enums/emergencyAccessType';\nimport { KdfType } from '../../enums/kdfType';\nimport { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\n\nexport class EmergencyAccessGranteeDetailsResponse extends BaseResponse {\n id: string;\n granteeId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.granteeId = this.getResponseProperty('GranteeId');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.waitTimeDays = this.getResponseProperty('WaitTimeDays');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n\nexport class EmergencyAccessGrantorDetailsResponse extends BaseResponse {\n id: string;\n grantorId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.grantorId = this.getResponseProperty('GrantorId');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.waitTimeDays = this.getResponseProperty('WaitTimeDays');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n\nexport class EmergencyAccessTakeoverResponse extends BaseResponse {\n keyEncrypted: string;\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty('KeyEncrypted');\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n\nexport class EmergencyAccessViewResponse extends BaseResponse {\n keyEncrypted: string;\n ciphers: CipherResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty('KeyEncrypted');\n\n const ciphers = this.getResponseProperty('Ciphers');\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { EmergencyAccessType } from 'jslib/enums/emergencyAccessType';\nimport { EmergencyAccessInviteRequest } from 'jslib/models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessUpdateRequest } from 'jslib/models/request/emergencyAccessUpdateRequest';\n\n@Component({\n selector: 'emergency-access-add-edit',\n templateUrl: 'emergency-access-add-edit.component.html',\n})\nexport class EmergencyAccessAddEditComponent implements OnInit {\n @Input() name: string;\n @Input() emergencyAccessId: string;\n @Output() onSaved = new EventEmitter();\n @Output() onDeleted = new EventEmitter();\n\n loading = true;\n readOnly: boolean = false;\n editMode: boolean = false;\n title: string;\n email: string;\n type: EmergencyAccessType = EmergencyAccessType.View;\n\n formPromise: Promise;\n\n emergencyAccessType = EmergencyAccessType;\n waitTimes: { name: string; value: number; }[];\n waitTime: number;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.emergencyAccessId != null;\n\n this.waitTimes = [\n { name: this.i18nService.t('oneDay'), value: 1 },\n { name: this.i18nService.t('days', '2'), value: 2 },\n { name: this.i18nService.t('days', '7'), value: 7 },\n { name: this.i18nService.t('days', '14'), value: 14 },\n { name: this.i18nService.t('days', '30'), value: 30 },\n { name: this.i18nService.t('days', '90'), value: 90 },\n ];\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editEmergencyContact');\n try {\n const emergencyAccess = await this.apiService.getEmergencyAccess(this.emergencyAccessId);\n this.type = emergencyAccess.type;\n this.waitTime = emergencyAccess.waitTimeDays;\n } catch { }\n } else {\n this.title = this.i18nService.t('inviteEmergencyContact');\n this.waitTime = this.waitTimes[2].value;\n }\n\n this.loading = false;\n }\n\n async submit() {\n try {\n if (this.editMode) {\n const request = new EmergencyAccessUpdateRequest();\n request.type = this.type;\n request.waitTimeDays = this.waitTime;\n\n this.formPromise = this.apiService.putEmergencyAccess(this.emergencyAccessId, request);\n } else {\n const request = new EmergencyAccessInviteRequest();\n request.email = this.email.trim();\n request.type = this.type;\n request.waitTimeDays = this.waitTime;\n\n this.formPromise = this.apiService.postEmergencyAccessInvite(request);\n }\n\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedUserId' : 'invitedUsers', this.name));\n this.onSaved.emit();\n } catch { }\n }\n\n async delete() {\n this.onDeleted.emit();\n }\n}\n","
\n
\n
\n
\n

\n {{'premium' | i18n}}\n {{title}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n \n

{{'inviteEmergencyContactDesc' | i18n}}

\n
\n \n \n
\n
\n

\n {{'userAccess' | i18n}}\n \n \n \n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{'waitTimeDesc' | i18n}}\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'emergency-access-confirm',\n templateUrl: 'emergency-access-confirm.component.html',\n})\nexport class EmergencyAccessConfirmComponent implements OnInit {\n @Input() name: string;\n @Input() userId: string;\n @Input() emergencyAccessId: string;\n @Input() formPromise: Promise;\n @Output() onConfirmed = new EventEmitter();\n\n dontAskAgain = false;\n loading = true;\n fingerprint: string;\n\n constructor(private apiService: ApiService, private cryptoService: CryptoService,\n private storageService: StorageService) { }\n\n async ngOnInit() {\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId);\n if (publicKeyResponse != null) {\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n const fingerprint = await this.cryptoService.getFingerprint(this.userId, publicKey.buffer);\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n } catch { }\n this.loading = false;\n }\n\n async submit() {\n if (this.loading) {\n return;\n }\n\n if (this.dontAskAgain) {\n await this.storageService.save(ConstantsService.autoConfirmFingerprints, true);\n }\n\n try {\n this.onConfirmed.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'confirmUser' | i18n}}\n {{name}}\n

\n \n
\n
\n

\n {{'fingerprintEnsureIntegrityVerify' | i18n}}\n \n {{'learnMore' | i18n}}\n

\n

{{fingerprint}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { ChangePasswordComponent } from 'jslib/angular/components/change-password.component';\n\nimport { KdfType } from 'jslib/enums/kdfType';\nimport { PolicyData } from 'jslib/models/data/policyData';\nimport { Policy } from 'jslib/models/domain/policy';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\nimport { EmergencyAccessPasswordRequest } from 'jslib/models/request/emergencyAccessPasswordRequest';\nimport { ListResponse } from 'jslib/models/response';\nimport { EmergencyAccessTakeoverResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\n@Component({\n selector: 'emergency-access-takeover',\n templateUrl: 'emergency-access-takeover.component.html',\n})\nexport class EmergencyAccessTakeoverComponent extends ChangePasswordComponent implements OnInit {\n @Output() onDone = new EventEmitter();\n @Input() emergencyAccessId: string;\n @Input() name: string;\n @Input() email: string;\n @Input() kdf: KdfType;\n @Input() kdfIterations: number;\n\n formPromise: Promise;\n\n constructor(i18nService: I18nService, cryptoService: CryptoService,\n messagingService: MessagingService, userService: UserService,\n passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService,\n private apiService: ApiService, private toasterService: ToasterService) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async ngOnInit() {\n const response = await this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId);\n if (response.data != null && response.data.length > 0) {\n const policies = response.data.map((policyResponse: PolicyResponse) => new Policy(new PolicyData(policyResponse)));\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(policies);\n }\n }\n\n async submit() {\n if (!await this.strongPassword()) {\n return;\n }\n\n const takeoverResponse = await this.apiService.postEmergencyAccessTakeover(this.emergencyAccessId);\n\n const oldKeyBuffer = await this.cryptoService.rsaDecrypt(takeoverResponse.keyEncrypted);\n const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer);\n\n if (oldEncKey == null) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), this.i18nService.t('unexpectedError'));\n return;\n }\n\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, takeoverResponse.kdf, takeoverResponse.kdfIterations);\n const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n const encKey = await this.cryptoService.remakeEncKey(key, oldEncKey);\n\n const request = new EmergencyAccessPasswordRequest();\n request.newMasterPasswordHash = masterPasswordHash;\n request.key = encKey[1].encryptedString;\n\n this.apiService.postEmergencyAccessPassword(this.emergencyAccessId, request);\n\n try {\n this.onDone.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'takeover' | i18n}}\n {{name}}\n

\n \n
\n
\n {{'loggedOutWarning' | i18n}}\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { DeviceType } from '../enums/deviceType';\nimport { PolicyType } from '../enums/policyType';\n\nimport { ApiService as ApiServiceAbstraction } from '../abstractions/api.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { TokenService } from '../abstractions/token.service';\n\nimport { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { BitPayInvoiceRequest } from '../models/request/bitPayInvoiceRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { DeleteRecoverRequest } from '../models/request/deleteRecoverRequest';\nimport { EmailRequest } from '../models/request/emailRequest';\nimport { EmailTokenRequest } from '../models/request/emailTokenRequest';\nimport { EmergencyAccessAcceptRequest } from '../models/request/emergencyAccessAcceptRequest';\nimport { EmergencyAccessConfirmRequest } from '../models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessInviteRequest } from '../models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessPasswordRequest } from '../models/request/emergencyAccessPasswordRequest';\nimport { EmergencyAccessUpdateRequest } from '../models/request/emergencyAccessUpdateRequest';\nimport { EventRequest } from '../models/request/eventRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { GroupRequest } from '../models/request/groupRequest';\nimport { IapCheckRequest } from '../models/request/iapCheckRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportDirectoryRequest } from '../models/request/importDirectoryRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KdfRequest } from '../models/request/kdfRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { OrganizationCreateRequest } from '../models/request/organizationCreateRequest';\nimport { OrganizationTaxInfoUpdateRequest } from '../models/request/organizationTaxInfoUpdateRequest';\nimport { OrganizationUpdateRequest } from '../models/request/organizationUpdateRequest';\nimport { OrganizationUpgradeRequest } from '../models/request/organizationUpgradeRequest';\nimport { OrganizationUserAcceptRequest } from '../models/request/organizationUserAcceptRequest';\nimport { OrganizationUserConfirmRequest } from '../models/request/organizationUserConfirmRequest';\nimport { OrganizationUserInviteRequest } from '../models/request/organizationUserInviteRequest';\nimport { OrganizationUserUpdateGroupsRequest } from '../models/request/organizationUserUpdateGroupsRequest';\nimport { OrganizationUserUpdateRequest } from '../models/request/organizationUserUpdateRequest';\nimport { PasswordHintRequest } from '../models/request/passwordHintRequest';\nimport { PasswordRequest } from '../models/request/passwordRequest';\nimport { PasswordVerificationRequest } from '../models/request/passwordVerificationRequest';\nimport { PaymentRequest } from '../models/request/paymentRequest';\nimport { PolicyRequest } from '../models/request/policyRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { RegisterRequest } from '../models/request/registerRequest';\nimport { SeatRequest } from '../models/request/seatRequest';\nimport { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';\nimport { SendAccessRequest } from '../models/request/sendAccessRequest';\nimport { SendRequest } from '../models/request/sendRequest';\nimport { SetPasswordRequest } from '../models/request/setPasswordRequest';\nimport { StorageRequest } from '../models/request/storageRequest';\nimport { TaxInfoUpdateRequest } from '../models/request/taxInfoUpdateRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\nimport { TwoFactorEmailRequest } from '../models/request/twoFactorEmailRequest';\nimport { TwoFactorProviderRequest } from '../models/request/twoFactorProviderRequest';\nimport { TwoFactorRecoveryRequest } from '../models/request/twoFactorRecoveryRequest';\nimport { UpdateDomainsRequest } from '../models/request/updateDomainsRequest';\nimport { UpdateKeyRequest } from '../models/request/updateKeyRequest';\nimport { UpdateProfileRequest } from '../models/request/updateProfileRequest';\nimport { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';\nimport { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';\nimport { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';\nimport { UpdateTwoFactorU2fDeleteRequest } from '../models/request/updateTwoFactorU2fDeleteRequest';\nimport { UpdateTwoFactorU2fRequest } from '../models/request/updateTwoFactorU2fRequest';\nimport { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';\nimport { VerifyBankRequest } from '../models/request/verifyBankRequest';\nimport { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest';\nimport { VerifyEmailRequest } from '../models/request/verifyEmailRequest';\n\nimport { Utils } from '../misc/utils';\nimport { ApiKeyResponse } from '../models/response/apiKeyResponse';\nimport { BillingResponse } from '../models/response/billingResponse';\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport {\n CollectionGroupDetailsResponse,\n CollectionResponse,\n} from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse\n} from '../models/response/emergencyAccessResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { EventResponse } from '../models/response/eventResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n GroupDetailsResponse,\n GroupResponse,\n} from '../models/response/groupResponse';\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\nimport { ListResponse } from '../models/response/listResponse';\nimport { OrganizationResponse } from '../models/response/organizationResponse';\nimport { OrganizationSubscriptionResponse } from '../models/response/organizationSubscriptionResponse';\nimport {\n OrganizationUserDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from '../models/response/organizationUserResponse';\nimport { PaymentResponse } from '../models/response/paymentResponse';\nimport { PlanResponse } from '../models/response/planResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { PreloginResponse } from '../models/response/preloginResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';\nimport { SendAccessResponse } from '../models/response/sendAccessResponse';\nimport { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';\nimport { SendResponse } from '../models/response/sendResponse';\nimport { SubscriptionResponse } from '../models/response/subscriptionResponse';\nimport { SyncResponse } from '../models/response/syncResponse';\nimport { TaxInfoResponse } from '../models/response/taxInfoResponse';\nimport { TaxRateResponse } from '../models/response/taxRateResponse';\nimport { TwoFactorAuthenticatorResponse } from '../models/response/twoFactorAuthenticatorResponse';\nimport { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';\nimport { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';\nimport { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';\nimport { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';\nimport {\n ChallengeResponse,\n TwoFactorU2fResponse,\n} from '../models/response/twoFactorU2fResponse';\nimport { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';\nimport { UserKeyResponse } from '../models/response/userKeyResponse';\n\nimport { SendAccessView } from '../models/view/sendAccessView';\n\nexport class ApiService implements ApiServiceAbstraction {\n urlsSet: boolean = false;\n apiBaseUrl: string;\n identityBaseUrl: string;\n eventsBaseUrl: string;\n\n private device: DeviceType;\n private deviceType: string;\n private isWebClient = false;\n private isDesktopClient = false;\n private usingBaseUrl = false;\n\n constructor(private tokenService: TokenService, private platformUtilsService: PlatformUtilsService,\n private logoutCallback: (expired: boolean) => Promise, private customUserAgent: string = null) {\n this.device = platformUtilsService.getDevice();\n this.deviceType = this.device.toString();\n this.isWebClient = this.device === DeviceType.IEBrowser || this.device === DeviceType.ChromeBrowser ||\n this.device === DeviceType.EdgeBrowser || this.device === DeviceType.FirefoxBrowser ||\n this.device === DeviceType.OperaBrowser || this.device === DeviceType.SafariBrowser ||\n this.device === DeviceType.UnknownBrowser || this.device === DeviceType.VivaldiBrowser;\n this.isDesktopClient = this.device === DeviceType.WindowsDesktop || this.device === DeviceType.MacOsDesktop ||\n this.device === DeviceType.LinuxDesktop;\n }\n\n setUrls(urls: EnvironmentUrls): void {\n this.urlsSet = true;\n\n if (urls.base != null) {\n this.usingBaseUrl = true;\n this.apiBaseUrl = urls.base + '/api';\n this.identityBaseUrl = urls.base + '/identity';\n this.eventsBaseUrl = urls.base + '/events';\n return;\n }\n\n this.apiBaseUrl = urls.api;\n this.identityBaseUrl = urls.identity;\n this.eventsBaseUrl = urls.events;\n\n // Production\n if (this.apiBaseUrl == null) {\n this.apiBaseUrl = 'https://api.bitwarden.com';\n }\n if (this.identityBaseUrl == null) {\n this.identityBaseUrl = 'https://identity.bitwarden.com';\n }\n if (this.eventsBaseUrl == null) {\n this.eventsBaseUrl = 'https://events.bitwarden.com';\n }\n }\n\n // Auth APIs\n\n async postIdentityToken(request: TokenRequest): Promise {\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n const response = await this.fetch(new Request(this.identityBaseUrl + '/connect/token', {\n body: this.qsStringify(request.toIdentityToken(request.clientId ?? this.platformUtilsService.identityClientId)),\n credentials: this.getCredentials(),\n cache: 'no-store',\n headers: headers,\n method: 'POST',\n }));\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n }\n\n if (responseJson != null) {\n if (response.status === 200) {\n return new IdentityTokenResponse(responseJson);\n } else if (response.status === 400 && responseJson.TwoFactorProviders2 &&\n Object.keys(responseJson.TwoFactorProviders2).length) {\n await this.tokenService.clearTwoFactorToken(request.email);\n return new IdentityTwoFactorResponse(responseJson);\n }\n }\n\n return Promise.reject(new ErrorResponse(responseJson, response.status, true));\n }\n\n async refreshIdentityToken(): Promise {\n try {\n await this.doRefreshToken();\n } catch (e) {\n return Promise.reject(null);\n }\n }\n\n // Account APIs\n\n async getProfile(): Promise {\n const r = await this.send('GET', '/accounts/profile', null, true, true);\n return new ProfileResponse(r);\n }\n\n async getUserBilling(): Promise {\n const r = await this.send('GET', '/accounts/billing', null, true, true);\n return new BillingResponse(r);\n }\n\n async getUserSubscription(): Promise {\n const r = await this.send('GET', '/accounts/subscription', null, true, true);\n return new SubscriptionResponse(r);\n }\n\n async getTaxInfo(): Promise {\n const r = await this.send('GET', '/accounts/tax', null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async putProfile(request: UpdateProfileRequest): Promise {\n const r = await this.send('PUT', '/accounts/profile', request, true, true);\n return new ProfileResponse(r);\n }\n\n putTaxInfo(request: TaxInfoUpdateRequest): Promise {\n return this.send('PUT', '/accounts/tax', request, true, false);\n }\n\n async postPrelogin(request: PreloginRequest): Promise {\n const r = await this.send('POST', '/accounts/prelogin', request, false, true);\n return new PreloginResponse(r);\n }\n\n postEmailToken(request: EmailTokenRequest): Promise {\n return this.send('POST', '/accounts/email-token', request, true, false);\n }\n\n postEmail(request: EmailRequest): Promise {\n return this.send('POST', '/accounts/email', request, true, false);\n }\n\n postPassword(request: PasswordRequest): Promise {\n return this.send('POST', '/accounts/password', request, true, false);\n }\n\n setPassword(request: SetPasswordRequest): Promise {\n return this.send('POST', '/accounts/set-password', request, true, false);\n }\n\n postSecurityStamp(request: PasswordVerificationRequest): Promise {\n return this.send('POST', '/accounts/security-stamp', request, true, false);\n }\n\n deleteAccount(request: PasswordVerificationRequest): Promise {\n return this.send('DELETE', '/accounts', request, true, false);\n }\n\n async getAccountRevisionDate(): Promise {\n const r = await this.send('GET', '/accounts/revision-date', null, true, true);\n return r as number;\n }\n\n postPasswordHint(request: PasswordHintRequest): Promise {\n return this.send('POST', '/accounts/password-hint', request, false, false);\n }\n\n postRegister(request: RegisterRequest): Promise {\n return this.send('POST', '/accounts/register', request, false, false);\n }\n\n async postPremium(data: FormData): Promise {\n const r = await this.send('POST', '/accounts/premium', data, true, true);\n return new PaymentResponse(r);\n }\n\n async postIapCheck(request: IapCheckRequest): Promise {\n return this.send('POST', '/accounts/iap-check', request, true, false);\n }\n\n postReinstatePremium(): Promise {\n return this.send('POST', '/accounts/reinstate-premium', null, true, false);\n }\n\n postCancelPremium(): Promise {\n return this.send('POST', '/accounts/cancel-premium', null, true, false);\n }\n\n async postAccountStorage(request: StorageRequest): Promise {\n const r = await this.send('POST', '/accounts/storage', request, true, true);\n return new PaymentResponse(r);\n }\n\n postAccountPayment(request: PaymentRequest): Promise {\n return this.send('POST', '/accounts/payment', request, true, false);\n }\n\n postAccountLicense(data: FormData): Promise {\n return this.send('POST', '/accounts/license', data, true, false);\n }\n\n postAccountKeys(request: KeysRequest): Promise {\n return this.send('POST', '/accounts/keys', request, true, false);\n }\n\n postAccountKey(request: UpdateKeyRequest): Promise {\n return this.send('POST', '/accounts/key', request, true, false);\n }\n\n postAccountVerifyEmail(): Promise {\n return this.send('POST', '/accounts/verify-email', null, true, false);\n }\n\n postAccountVerifyEmailToken(request: VerifyEmailRequest): Promise {\n return this.send('POST', '/accounts/verify-email-token', request, false, false);\n }\n\n postAccountVerifyPassword(request: PasswordVerificationRequest): Promise {\n return this.send('POST', '/accounts/verify-password', request, true, false);\n }\n\n postAccountRecoverDelete(request: DeleteRecoverRequest): Promise {\n return this.send('POST', '/accounts/delete-recover', request, false, false);\n }\n\n postAccountRecoverDeleteToken(request: VerifyDeleteRecoverRequest): Promise {\n return this.send('POST', '/accounts/delete-recover-token', request, false, false);\n }\n\n postAccountKdf(request: KdfRequest): Promise {\n return this.send('POST', '/accounts/kdf', request, true, false);\n }\n\n async getEnterprisePortalSignInToken(): Promise {\n const r = await this.send('GET', '/accounts/enterprise-portal-signin-token', null, true, true);\n return r as string;\n }\n\n async deleteSsoUser(organizationId: string): Promise {\n return this.send('DELETE', '/accounts/sso/' + organizationId, null, true, false);\n }\n\n async getSsoUserIdentifier(): Promise {\n return this.send('GET', '/accounts/sso/user-identifier', null, true, true);\n }\n\n async postUserApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/accounts/api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postUserRotateApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/accounts/rotate-api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n // Folder APIs\n\n async getFolder(id: string): Promise {\n const r = await this.send('GET', '/folders/' + id, null, true, true);\n return new FolderResponse(r);\n }\n\n async postFolder(request: FolderRequest): Promise {\n const r = await this.send('POST', '/folders', request, true, true);\n return new FolderResponse(r);\n }\n\n async putFolder(id: string, request: FolderRequest): Promise {\n const r = await this.send('PUT', '/folders/' + id, request, true, true);\n return new FolderResponse(r);\n }\n\n deleteFolder(id: string): Promise {\n return this.send('DELETE', '/folders/' + id, null, true, false);\n }\n\n // Send APIs\n\n async getSend(id: string): Promise {\n const r = await this.send('GET', '/sends/' + id, null, true, true);\n return new SendResponse(r);\n }\n\n async postSendAccess(id: string, request: SendAccessRequest, apiUrl?: string): Promise {\n const r = await this.send('POST', '/sends/access/' + id, request, false, true, apiUrl);\n return new SendAccessResponse(r);\n }\n\n\n async getSendFileDownloadData(send: SendAccessView, request: SendAccessRequest): Promise {\n const r = await this.send('POST', '/sends/' + send.id + '/access/file/' + send.file.id, request, false, true);\n return new SendFileDownloadDataResponse(r);\n }\n\n async getSends(): Promise> {\n const r = await this.send('GET', '/sends', null, true, true);\n return new ListResponse(r, SendResponse);\n }\n\n async postSend(request: SendRequest): Promise {\n const r = await this.send('POST', '/sends', request, true, true);\n return new SendResponse(r);\n }\n\n async postSendFile(data: FormData): Promise {\n const r = await this.send('POST', '/sends/file', data, true, true);\n return new SendResponse(r);\n }\n\n async putSend(id: string, request: SendRequest): Promise {\n const r = await this.send('PUT', '/sends/' + id, request, true, true);\n return new SendResponse(r);\n }\n\n async putSendRemovePassword(id: string): Promise {\n const r = await this.send('PUT', '/sends/' + id + '/remove-password', null, true, true);\n return new SendResponse(r);\n }\n\n deleteSend(id: string): Promise {\n return this.send('DELETE', '/sends/' + id, null, true, false);\n }\n\n // Cipher APIs\n\n async getCipher(id: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id, null, true, true);\n return new CipherResponse(r);\n }\n\n async getCipherAdmin(id: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id + '/admin', null, true, true);\n return new CipherResponse(r);\n }\n\n async getCiphersOrganization(organizationId: string): Promise> {\n const r = await this.send('GET', '/ciphers/organization-details?organizationId=' + organizationId,\n null, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n async postCipher(request: CipherRequest): Promise {\n const r = await this.send('POST', '/ciphers', request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherCreate(request: CipherCreateRequest): Promise {\n const r = await this.send('POST', '/ciphers/create', request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherAdmin(request: CipherCreateRequest): Promise {\n const r = await this.send('POST', '/ciphers/admin', request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipher(id: string, request: CipherRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id, request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipherAdmin(id: string, request: CipherRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/admin', request, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipher(id: string): Promise {\n return this.send('DELETE', '/ciphers/' + id, null, true, false);\n }\n\n deleteCipherAdmin(id: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/admin', null, true, false);\n }\n\n deleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send('DELETE', '/ciphers', request, true, false);\n }\n\n deleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send('DELETE', '/ciphers/admin', request, true, false);\n }\n\n putMoveCiphers(request: CipherBulkMoveRequest): Promise {\n return this.send('PUT', '/ciphers/move', request, true, false);\n }\n\n async putShareCipher(id: string, request: CipherShareRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/share', request, true, true);\n return new CipherResponse(r);\n }\n\n putShareCiphers(request: CipherBulkShareRequest): Promise {\n return this.send('PUT', '/ciphers/share', request, true, false);\n }\n\n putCipherCollections(id: string, request: CipherCollectionsRequest): Promise {\n return this.send('PUT', '/ciphers/' + id + '/collections', request, true, false);\n }\n\n putCipherCollectionsAdmin(id: string, request: CipherCollectionsRequest): Promise {\n return this.send('PUT', '/ciphers/' + id + '/collections-admin', request, true, false);\n }\n\n postPurgeCiphers(request: PasswordVerificationRequest, organizationId: string = null): Promise {\n let path = '/ciphers/purge';\n if (organizationId != null) {\n path += '?organizationId=' + organizationId;\n }\n return this.send('POST', path, request, true, false);\n }\n\n postImportCiphers(request: ImportCiphersRequest): Promise {\n return this.send('POST', '/ciphers/import', request, true, false);\n }\n\n postImportOrganizationCiphers(organizationId: string, request: ImportOrganizationCiphersRequest): Promise {\n return this.send('POST', '/ciphers/import-organization?organizationId=' + organizationId, request, true, false);\n }\n\n putDeleteCipher(id: string): Promise {\n return this.send('PUT', '/ciphers/' + id + '/delete', null, true, false);\n }\n\n putDeleteCipherAdmin(id: string): Promise {\n return this.send('PUT', '/ciphers/' + id + '/delete-admin', null, true, false);\n }\n\n putDeleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send('PUT', '/ciphers/delete', request, true, false);\n }\n\n putDeleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send('PUT', '/ciphers/delete-admin', request, true, false);\n }\n\n async putRestoreCipher(id: string): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/restore', null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreCipherAdmin(id: string): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/restore-admin', null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreManyCiphers(request: CipherBulkDeleteRequest): Promise> {\n const r = await this.send('PUT', '/ciphers/restore', request, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n // Attachments APIs\n\n async postCipherAttachment(id: string, data: FormData): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment', data, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherAttachmentAdmin(id: string, data: FormData): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment-admin', data, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipherAttachment(id: string, attachmentId: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/attachment/' + attachmentId, null, true, false);\n }\n\n deleteCipherAttachmentAdmin(id: string, attachmentId: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/attachment/' + attachmentId + '/admin', null, true, false);\n }\n\n postShareCipherAttachment(id: string, attachmentId: string, data: FormData,\n organizationId: string): Promise {\n return this.send('POST', '/ciphers/' + id + '/attachment/' +\n attachmentId + '/share?organizationId=' + organizationId, data, true, false);\n }\n\n // Collections APIs\n\n async getCollectionDetails(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections/' + id + '/details',\n null, true, true);\n return new CollectionGroupDetailsResponse(r);\n }\n\n async getUserCollections(): Promise> {\n const r = await this.send('GET', '/collections', null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollections(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections', null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollectionUsers(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections/' + id + '/users',\n null, true, true);\n return r.map((dr: any) => new SelectionReadOnlyResponse(dr));\n }\n\n async postCollection(organizationId: string, request: CollectionRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/collections', request, true, true);\n return new CollectionResponse(r);\n }\n\n async putCollection(organizationId: string, id: string, request: CollectionRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/collections/' + id,\n request, true, true);\n return new CollectionResponse(r);\n }\n\n async putCollectionUsers(organizationId: string, id: string, request: SelectionReadOnlyRequest[]): Promise {\n await this.send('PUT', '/organizations/' + organizationId + '/collections/' + id + '/users',\n request, true, false);\n }\n\n deleteCollection(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/collections/' + id, null, true, false);\n }\n\n deleteCollectionUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send('DELETE',\n '/organizations/' + organizationId + '/collections/' + id + '/user/' + organizationUserId,\n null, true, false);\n }\n\n // Groups APIs\n\n async getGroupDetails(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups/' + id + '/details',\n null, true, true);\n return new GroupDetailsResponse(r);\n }\n\n async getGroups(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups', null, true, true);\n return new ListResponse(r, GroupResponse);\n }\n\n async getGroupUsers(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups/' + id + '/users',\n null, true, true);\n return r;\n }\n\n async postGroup(organizationId: string, request: GroupRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/groups', request, true, true);\n return new GroupResponse(r);\n }\n\n async putGroup(organizationId: string, id: string, request: GroupRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/groups/' + id, request, true, true);\n return new GroupResponse(r);\n }\n\n async putGroupUsers(organizationId: string, id: string, request: string[]): Promise {\n await this.send('PUT', '/organizations/' + organizationId + '/groups/' + id + '/users', request, true, false);\n }\n\n deleteGroup(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/groups/' + id, null, true, false);\n }\n\n deleteGroupUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send('DELETE',\n '/organizations/' + organizationId + '/groups/' + id + '/user/' + organizationUserId, null, true, false);\n }\n\n // Policy APIs\n\n async getPolicy(organizationId: string, type: PolicyType): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies/' + type, null, true, true);\n return new PolicyResponse(r);\n }\n\n async getPolicies(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies', null, true, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n async getPoliciesByToken(organizationId: string, token: string, email: string, organizationUserId: string):\n Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies/token?' +\n 'token=' + encodeURIComponent(token) + '&email=' + encodeURIComponent(email) +\n '&organizationUserId=' + organizationUserId, null, false, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n async putPolicy(organizationId: string, type: PolicyType, request: PolicyRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/policies/' + type, request, true, true);\n return new PolicyResponse(r);\n }\n\n // Organization User APIs\n\n async getOrganizationUser(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users/' + id, null, true, true);\n return new OrganizationUserDetailsResponse(r);\n }\n\n async getOrganizationUserGroups(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users/' + id + '/groups',\n null, true, true);\n return r;\n }\n\n async getOrganizationUsers(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users', null, true, true);\n return new ListResponse(r, OrganizationUserUserDetailsResponse);\n }\n\n postOrganizationUserInvite(organizationId: string, request: OrganizationUserInviteRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/invite', request, true, false);\n }\n\n postOrganizationUserReinvite(organizationId: string, id: string): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/reinvite', null, true, false);\n }\n\n postOrganizationUserAccept(organizationId: string, id: string,\n request: OrganizationUserAcceptRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/accept', request, true, false);\n }\n\n postOrganizationUserConfirm(organizationId: string, id: string,\n request: OrganizationUserConfirmRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/confirm',\n request, true, false);\n }\n\n putOrganizationUser(organizationId: string, id: string, request: OrganizationUserUpdateRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + id, request, true, false);\n }\n\n putOrganizationUserGroups(organizationId: string, id: string,\n request: OrganizationUserUpdateGroupsRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + id + '/groups', request, true, false);\n }\n\n deleteOrganizationUser(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/users/' + id, null, true, false);\n }\n\n // Plan APIs\n\n async getPlans(): Promise> {\n const r = await this.send('GET', '/plans/', null, true, true);\n return new ListResponse(r, PlanResponse);\n }\n\n async postImportDirectory(organizationId: string, request: ImportDirectoryRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/import', request, true, false);\n }\n\n async getTaxRates(): Promise> {\n const r = await this.send('GET', '/plans/sales-tax-rates/', null, true, true);\n return new ListResponse(r, TaxRateResponse);\n }\n\n // Settings APIs\n\n async getSettingsDomains(): Promise {\n const r = await this.send('GET', '/settings/domains', null, true, true);\n return new DomainsResponse(r);\n }\n\n async putSettingsDomains(request: UpdateDomainsRequest): Promise {\n const r = await this.send('PUT', '/settings/domains', request, true, true);\n return new DomainsResponse(r);\n }\n\n // Sync APIs\n\n async getSync(): Promise {\n const path = this.isDesktopClient || this.isWebClient ? '/sync?excludeDomains=true' : '/sync';\n const r = await this.send('GET', path, null, true, true);\n return new SyncResponse(r);\n }\n\n // Two-factor APIs\n\n async getTwoFactorProviders(): Promise> {\n const r = await this.send('GET', '/two-factor', null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorOrganizationProviders(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/two-factor', null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorAuthenticator(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-authenticator', request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async getTwoFactorEmail(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-email', request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async getTwoFactorDuo(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorOrganizationDuo(organizationId: string,\n request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/two-factor/get-duo',\n request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorYubiKey(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-yubikey', request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async getTwoFactorU2f(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-u2f', request, true, true);\n return new TwoFactorU2fResponse(r);\n }\n\n async getTwoFactorU2fChallenge(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-u2f-challenge', request, true, true);\n return new ChallengeResponse(r);\n }\n\n async getTwoFactorRecover(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-recover', request, true, true);\n return new TwoFactorRecoverResponse(r);\n }\n\n async putTwoFactorAuthenticator(\n request: UpdateTwoFactorAuthenticatorRequest): Promise {\n const r = await this.send('PUT', '/two-factor/authenticator', request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async putTwoFactorEmail(request: UpdateTwoFactorEmailRequest): Promise {\n const r = await this.send('PUT', '/two-factor/email', request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async putTwoFactorDuo(request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send('PUT', '/two-factor/duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorOrganizationDuo(organizationId: string,\n request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/two-factor/duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorYubiKey(request: UpdateTwoFactorYubioOtpRequest): Promise {\n const r = await this.send('PUT', '/two-factor/yubikey', request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async putTwoFactorU2f(request: UpdateTwoFactorU2fRequest): Promise {\n const r = await this.send('PUT', '/two-factor/u2f', request, true, true);\n return new TwoFactorU2fResponse(r);\n }\n\n async deleteTwoFactorU2f(request: UpdateTwoFactorU2fDeleteRequest): Promise {\n const r = await this.send('DELETE', '/two-factor/u2f', request, true, true);\n return new TwoFactorU2fResponse(r);\n }\n\n async putTwoFactorDisable(request: TwoFactorProviderRequest): Promise {\n const r = await this.send('PUT', '/two-factor/disable', request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n async putTwoFactorOrganizationDisable(organizationId: string,\n request: TwoFactorProviderRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/two-factor/disable',\n request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n postTwoFactorRecover(request: TwoFactorRecoveryRequest): Promise {\n return this.send('POST', '/two-factor/recover', request, false, false);\n }\n\n postTwoFactorEmailSetup(request: TwoFactorEmailRequest): Promise {\n return this.send('POST', '/two-factor/send-email', request, true, false);\n }\n\n postTwoFactorEmail(request: TwoFactorEmailRequest): Promise {\n return this.send('POST', '/two-factor/send-email-login', request, false, false);\n }\n\n // Emergency Access APIs\n\n async getEmergencyAccessTrusted(): Promise> {\n const r = await this.send('GET', '/emergency-access/trusted', null, true, true);\n return new ListResponse(r, EmergencyAccessGranteeDetailsResponse);\n }\n\n async getEmergencyAccessGranted(): Promise> {\n const r = await this.send('GET', '/emergency-access/granted', null, true, true);\n return new ListResponse(r, EmergencyAccessGrantorDetailsResponse);\n }\n\n async getEmergencyAccess(id: string): Promise {\n const r = await this.send('GET', '/emergency-access/' + id, null, true, true);\n return new EmergencyAccessGranteeDetailsResponse(r);\n }\n\n async getEmergencyGrantorPolicies(id: string): Promise> {\n const r = await this.send('GET', '/emergency-access/' + id + '/policies', null, true, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n putEmergencyAccess(id: string, request: EmergencyAccessUpdateRequest): Promise {\n return this.send('PUT', '/emergency-access/' + id, request, true, false);\n }\n\n deleteEmergencyAccess(id: string): Promise {\n return this.send('DELETE', '/emergency-access/' + id, null, true, false);\n }\n\n postEmergencyAccessInvite(request: EmergencyAccessInviteRequest): Promise {\n return this.send('POST', '/emergency-access/invite', request, true, false);\n }\n\n postEmergencyAccessReinvite(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/reinvite', null, true, false);\n }\n\n postEmergencyAccessAccept(id: string, request: EmergencyAccessAcceptRequest): Promise {\n return this.send('POST', '/emergency-access/' + id + '/accept', request, true, false);\n }\n\n postEmergencyAccessConfirm(id: string, request: EmergencyAccessConfirmRequest): Promise {\n return this.send('POST', '/emergency-access/' + id + '/confirm', request, true, false);\n }\n\n postEmergencyAccessInitiate(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/initiate', null, true, false);\n }\n\n postEmergencyAccessApprove(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/approve', null, true, false);\n }\n\n postEmergencyAccessReject(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/reject', null, true, false);\n }\n\n async postEmergencyAccessTakeover(id: string): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/takeover', null, true, true);\n return new EmergencyAccessTakeoverResponse(r);\n }\n\n async postEmergencyAccessPassword(id: string, request: EmergencyAccessPasswordRequest): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/password', request, true, true);\n }\n\n async postEmergencyAccessView(id: string): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/view', null, true, true);\n return new EmergencyAccessViewResponse(r);\n }\n\n // Organization APIs\n\n async getOrganization(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id, null, true, true);\n return new OrganizationResponse(r);\n }\n\n async getOrganizationBilling(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/billing', null, true, true);\n return new BillingResponse(r);\n }\n\n async getOrganizationSubscription(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/subscription', null, true, true);\n return new OrganizationSubscriptionResponse(r);\n }\n\n async getOrganizationLicense(id: string, installationId: string): Promise {\n return this.send('GET', '/organizations/' + id + '/license?installationId=' + installationId,\n null, true, true);\n }\n\n async getOrganizationTaxInfo(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/tax', null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async postOrganization(request: OrganizationCreateRequest): Promise {\n const r = await this.send('POST', '/organizations', request, true, true);\n return new OrganizationResponse(r);\n }\n\n async putOrganization(id: string, request: OrganizationUpdateRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + id, request, true, true);\n return new OrganizationResponse(r);\n }\n\n async putOrganizationTaxInfo(id: string, request: OrganizationTaxInfoUpdateRequest): Promise {\n return this.send('PUT', '/organizations/' + id + '/tax', request, true, false);\n }\n\n postLeaveOrganization(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/leave', null, true, false);\n }\n\n async postOrganizationLicense(data: FormData): Promise {\n const r = await this.send('POST', '/organizations/license', data, true, true);\n return new OrganizationResponse(r);\n }\n\n async postOrganizationLicenseUpdate(id: string, data: FormData): Promise {\n return this.send('POST', '/organizations/' + id + '/license', data, true, false);\n }\n\n async postOrganizationApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postOrganizationRotateApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/rotate-api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postOrganizationUpgrade(id: string, request: OrganizationUpgradeRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/upgrade', request, true, true);\n return new PaymentResponse(r);\n }\n\n async postOrganizationSeat(id: string, request: SeatRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/seat', request, true, true);\n return new PaymentResponse(r);\n }\n\n async postOrganizationStorage(id: string, request: StorageRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/storage', request, true, true);\n return new PaymentResponse(r);\n }\n\n postOrganizationPayment(id: string, request: PaymentRequest): Promise {\n return this.send('POST', '/organizations/' + id + '/payment', request, true, false);\n }\n\n postOrganizationVerifyBank(id: string, request: VerifyBankRequest): Promise {\n return this.send('POST', '/organizations/' + id + '/verify-bank', request, true, false);\n }\n\n postOrganizationCancel(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/cancel', null, true, false);\n }\n\n postOrganizationReinstate(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/reinstate', null, true, false);\n }\n\n deleteOrganization(id: string, request: PasswordVerificationRequest): Promise {\n return this.send('DELETE', '/organizations/' + id, request, true, false);\n }\n\n // Event APIs\n\n async getEvents(start: string, end: string, token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/events', start, end, token), null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsCipher(id: string, start: string, end: string,\n token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/ciphers/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganization(id: string, start: string, end: string,\n token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/organizations/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganizationUser(organizationId: string, id: string,\n start: string, end: string, token: string): Promise> {\n const r = await this.send('GET',\n this.addEventParameters('/organizations/' + organizationId + '/users/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async postEventsCollect(request: EventRequest[]): Promise {\n const authHeader = await this.getActiveBearerToken();\n const headers = new Headers({\n 'Device-Type': this.deviceType,\n 'Authorization': 'Bearer ' + authHeader,\n 'Content-Type': 'application/json; charset=utf-8',\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n const response = await this.fetch(new Request(this.eventsBaseUrl + '/collect', {\n cache: 'no-store',\n credentials: this.getCredentials(),\n method: 'POST',\n body: JSON.stringify(request),\n headers: headers,\n }));\n if (response.status !== 200) {\n return Promise.reject('Event post failed.');\n }\n }\n\n // User APIs\n\n async getUserPublicKey(id: string): Promise {\n const r = await this.send('GET', '/users/' + id + '/public-key', null, true, true);\n return new UserKeyResponse(r);\n }\n\n // HIBP APIs\n\n async getHibpBreach(username: string): Promise {\n const r = await this.send('GET', '/hibp/breach?username=' + username, null, true, true);\n return r.map((a: any) => new BreachAccountResponse(a));\n }\n\n // Misc\n\n async postBitPayInvoice(request: BitPayInvoiceRequest): Promise {\n const r = await this.send('POST', '/bitpay-invoice', request, true, true);\n return r as string;\n }\n\n async postSetupPayment(): Promise {\n const r = await this.send('POST', '/setup-payment', null, true, true);\n return r as string;\n }\n\n // Helpers\n\n async getActiveBearerToken(): Promise {\n let accessToken = await this.tokenService.getToken();\n if (this.tokenService.tokenNeedsRefresh()) {\n const tokenResponse = await this.doRefreshToken();\n accessToken = tokenResponse.accessToken;\n }\n return accessToken;\n }\n\n fetch(request: Request): Promise {\n if (request.method === 'GET') {\n request.headers.set('Cache-Control', 'no-store');\n request.headers.set('Pragma', 'no-cache');\n }\n return this.nativeFetch(request);\n }\n\n nativeFetch(request: Request): Promise {\n return fetch(request);\n }\n\n async preValidateSso(identifier: string): Promise {\n if (identifier == null || identifier === '') {\n throw new Error('Organization Identifier was not provided.');\n }\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const path = `/account/prevalidate?domainHint=${encodeURIComponent(identifier)}`;\n const response = await this.fetch(new Request(this.identityBaseUrl + path, {\n cache: 'no-store',\n credentials: this.getCredentials(),\n headers: headers,\n method: 'GET',\n }));\n\n if (response.status === 200) {\n return true;\n } else {\n const error = await this.handleError(response, false, true);\n return Promise.reject(error);\n }\n }\n\n private async send(method: 'GET' | 'POST' | 'PUT' | 'DELETE', path: string, body: any,\n authed: boolean, hasResponse: boolean, apiUrl?: string): Promise {\n apiUrl = Utils.isNullOrWhitespace(apiUrl) ? this.apiBaseUrl : apiUrl;\n const headers = new Headers({\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const requestInit: RequestInit = {\n cache: 'no-store',\n credentials: this.getCredentials(),\n method: method,\n };\n\n if (authed) {\n const authHeader = await this.getActiveBearerToken();\n headers.set('Authorization', 'Bearer ' + authHeader);\n }\n if (body != null) {\n if (typeof body === 'string') {\n requestInit.body = body;\n headers.set('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');\n } else if (typeof body === 'object') {\n if (body instanceof FormData) {\n requestInit.body = body;\n } else {\n headers.set('Content-Type', 'application/json; charset=utf-8');\n requestInit.body = JSON.stringify(body);\n }\n }\n }\n if (hasResponse) {\n headers.set('Accept', 'application/json');\n }\n\n requestInit.headers = headers;\n const response = await this.fetch(new Request(apiUrl + path, requestInit));\n\n if (hasResponse && response.status === 200) {\n const responseJson = await response.json();\n return responseJson;\n } else if (response.status !== 200) {\n const error = await this.handleError(response, false, authed);\n return Promise.reject(error);\n }\n }\n\n private async handleError(response: Response, tokenError: boolean, authed: boolean): Promise {\n if (authed && ((tokenError && response.status === 400) || response.status === 401 || response.status === 403)) {\n await this.logoutCallback(true);\n return null;\n }\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n } else if (this.isTextResponse(response)) {\n responseJson = {Message: await response.text()};\n }\n\n return new ErrorResponse(responseJson, response.status, tokenError);\n }\n\n private async doRefreshToken(): Promise {\n const refreshToken = await this.tokenService.getRefreshToken();\n if (refreshToken == null || refreshToken === '') {\n throw new Error();\n }\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const decodedToken = this.tokenService.decodeToken();\n const response = await this.fetch(new Request(this.identityBaseUrl + '/connect/token', {\n body: this.qsStringify({\n grant_type: 'refresh_token',\n client_id: decodedToken.client_id,\n refresh_token: refreshToken,\n }),\n cache: 'no-store',\n credentials: this.getCredentials(),\n headers: headers,\n method: 'POST',\n }));\n\n if (response.status === 200) {\n const responseJson = await response.json();\n const tokenResponse = new IdentityTokenResponse(responseJson);\n await this.tokenService.setTokens(tokenResponse.accessToken, tokenResponse.refreshToken);\n return tokenResponse;\n } else {\n const error = await this.handleError(response, true, true);\n return Promise.reject(error);\n }\n }\n\n private qsStringify(params: any): string {\n return Object.keys(params).map(key => {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n\n private getCredentials(): RequestCredentials {\n if (!this.isWebClient || this.usingBaseUrl) {\n return 'include';\n }\n return undefined;\n }\n\n private addEventParameters(base: string, start: string, end: string, token: string) {\n if (start != null) {\n base += ('?start=' + start);\n }\n if (end != null) {\n base += (base.indexOf('?') > -1 ? '&' : '?');\n base += ('end=' + end);\n }\n if (token != null) {\n base += (base.indexOf('?') > -1 ? '&' : '?');\n base += ('continuationToken=' + token);\n }\n return base;\n }\n\n private isJsonResponse(response: Response): boolean {\n const typeHeader = response.headers.get('content-type');\n return typeHeader != null && typeHeader.indexOf('application/json') > -1;\n }\n\n private isTextResponse(response: Response): boolean {\n const typeHeader = response.headers.get('content-type');\n return typeHeader != null && typeHeader.indexOf('text') > -1;\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nexport class CollectionResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.name = this.getResponseProperty('Name');\n this.externalId = this.getResponseProperty('ExternalId');\n }\n}\n\nexport class CollectionDetailsResponse extends CollectionResponse {\n readOnly: boolean;\n\n constructor(response: any) {\n super(response);\n this.readOnly = this.getResponseProperty('ReadOnly') || false;\n }\n}\n\nexport class CollectionGroupDetailsResponse extends CollectionResponse {\n groups: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const groups = this.getResponseProperty('Groups');\n if (groups != null) {\n this.groups = groups.map((g: any) => new SelectionReadOnlyResponse(g));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { GlobalDomainResponse } from './globalDomainResponse';\n\nexport class DomainsResponse extends BaseResponse {\n equivalentDomains: string[][];\n globalEquivalentDomains: GlobalDomainResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.equivalentDomains = this.getResponseProperty('EquivalentDomains');\n const globalEquivalentDomains = this.getResponseProperty('GlobalEquivalentDomains');\n if (globalEquivalentDomains != null) {\n this.globalEquivalentDomains = globalEquivalentDomains.map((d: any) => new GlobalDomainResponse(d));\n } else {\n this.globalEquivalentDomains = [];\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class FolderResponse extends BaseResponse {\n id: string;\n name: string;\n revisionDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { PlanResponse } from './planResponse';\n\nimport { PlanType } from '../../enums/planType';\n\nexport class OrganizationResponse extends BaseResponse {\n id: string;\n identifier: string;\n name: string;\n businessName: string;\n businessAddress1: string;\n businessAddress2: string;\n businessAddress3: string;\n businessCountry: string;\n businessTaxNumber: string;\n billingEmail: string;\n plan: PlanResponse;\n planType: PlanType;\n seats: number;\n maxCollections: number;\n maxStorageGb: number;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.identifier = this.getResponseProperty('Identifier');\n this.name = this.getResponseProperty('Name');\n this.businessName = this.getResponseProperty('BusinessName');\n this.businessAddress1 = this.getResponseProperty('BusinessAddress1');\n this.businessAddress2 = this.getResponseProperty('BusinessAddress2');\n this.businessAddress3 = this.getResponseProperty('BusinessAddress3');\n this.businessCountry = this.getResponseProperty('BusinessCountry');\n this.businessTaxNumber = this.getResponseProperty('BusinessTaxNumber');\n this.billingEmail = this.getResponseProperty('BillingEmail');\n const plan = this.getResponseProperty('Plan');\n this.plan = plan == null ? null : new PlanResponse(plan);\n this.planType = this.getResponseProperty('PlanType');\n this.seats = this.getResponseProperty('Seats');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.useGroups = this.getResponseProperty('UseGroups');\n this.useDirectory = this.getResponseProperty('UseDirectory');\n this.useEvents = this.getResponseProperty('UseEvents');\n this.useTotp = this.getResponseProperty('UseTotp');\n this.use2fa = this.getResponseProperty('Use2fa');\n this.useApi = this.getResponseProperty('UseApi');\n }\n}\n","import { PlanType } from '../../enums/planType';\nimport { ProductType } from '../../enums/productType';\n\nimport { BaseResponse } from './baseResponse';\n\nexport class PlanResponse extends BaseResponse {\n type: PlanType;\n product: ProductType;\n name: string;\n isAnnual: boolean;\n nameLocalizationKey: string;\n descriptionLocalizationKey: string;\n canBeUsedByBusiness: boolean;\n baseSeats: number;\n baseStorageGb: number;\n maxCollections: number;\n maxUsers: number;\n\n hasAdditionalSeatsOption: boolean;\n maxAdditionalSeats: number;\n hasAdditionalStorageOption: boolean;\n maxAdditionalStorage: number;\n hasPremiumAccessOption: boolean;\n trialPeriodDays: number;\n\n hasSelfHost: boolean;\n hasPolicies: boolean;\n hasGroups: boolean;\n hasDirectory: boolean;\n hasEvents: boolean;\n hasTotp: boolean;\n has2fa: boolean;\n hasApi: boolean;\n hasSso: boolean;\n usersGetPremium: boolean;\n\n upgradeSortOrder: number;\n displaySortOrder: number;\n legacyYear: number;\n disabled: boolean;\n\n stripePlanId: string;\n stripeSeatPlanId: string;\n stripeStoragePlanId: string;\n stripePremiumAccessPlanId: string;\n basePrice: number;\n seatPrice: number;\n additionalStoragePricePerGb: number;\n premiumAccessOptionPrice: number;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.product = this.getResponseProperty('Product');\n this.name = this.getResponseProperty('Name');\n this.isAnnual = this.getResponseProperty('IsAnnual');\n this.nameLocalizationKey = this.getResponseProperty('NameLocalizationKey');\n this.descriptionLocalizationKey = this.getResponseProperty('DescriptionLocalizationKey');\n this.canBeUsedByBusiness = this.getResponseProperty('CanBeUsedByBusiness');\n this.baseSeats = this.getResponseProperty('BaseSeats');\n this.baseStorageGb = this.getResponseProperty('BaseStorageGb');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxUsers = this.getResponseProperty('MaxUsers');\n this.hasAdditionalSeatsOption = this.getResponseProperty('HasAdditionalSeatsOption');\n this.maxAdditionalSeats = this.getResponseProperty('MaxAdditionalSeats');\n this.hasAdditionalStorageOption = this.getResponseProperty('HasAdditionalStorageOption');\n this.maxAdditionalStorage = this.getResponseProperty('MaxAdditionalStorage');\n this.hasPremiumAccessOption = this.getResponseProperty('HasPremiumAccessOption');\n this.trialPeriodDays = this.getResponseProperty('TrialPeriodDays');\n this.hasSelfHost = this.getResponseProperty('HasSelfHost');\n this.hasPolicies = this.getResponseProperty('HasPolicies');\n this.hasGroups = this.getResponseProperty('HasGroups');\n this.hasDirectory = this.getResponseProperty('HasDirectory');\n this.hasEvents = this.getResponseProperty('HasEvents');\n this.hasTotp = this.getResponseProperty('HasTotp');\n this.has2fa = this.getResponseProperty('Has2fa');\n this.hasApi = this.getResponseProperty('HasApi');\n this.hasSso = this.getResponseProperty('HasSso');\n this.usersGetPremium = this.getResponseProperty('UsersGetPremium');\n this.upgradeSortOrder = this.getResponseProperty('UpgradeSortOrder');\n this.displaySortOrder = this.getResponseProperty('SortOrder');\n this.legacyYear = this.getResponseProperty('LegacyYear');\n this.disabled = this.getResponseProperty('Disabled');\n this.stripePlanId = this.getResponseProperty('StripePlanId');\n this.stripeSeatPlanId = this.getResponseProperty('StripeSeatPlanId');\n this.stripeStoragePlanId = this.getResponseProperty('StripeStoragePlanId');\n this.stripePremiumAccessPlanId = this.getResponseProperty('StripePremiumAccessPlanId');\n this.basePrice = this.getResponseProperty('BasePrice');\n this.seatPrice = this.getResponseProperty('SeatPrice');\n this.additionalStoragePricePerGb = this.getResponseProperty('AdditionalStoragePricePerGb');\n this.premiumAccessOptionPrice = this.getResponseProperty('PremiumAccessOptionPrice');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SubscriptionResponse extends BaseResponse {\n storageName: string;\n storageGb: number;\n maxStorageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n license: any;\n expiration: string;\n usingInAppPurchase: boolean;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty('StorageName');\n this.storageGb = this.getResponseProperty('StorageGb');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.license = this.getResponseProperty('License');\n this.expiration = this.getResponseProperty('Expiration');\n this.usingInAppPurchase = this.getResponseProperty('UsingInAppPurchase');\n const subscription = this.getResponseProperty('Subscription');\n const upcomingInvoice = this.getResponseProperty('UpcomingInvoice');\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n this.upcomingInvoice = upcomingInvoice == null ? null :\n new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n }\n}\n\nexport class BillingSubscriptionResponse extends BaseResponse {\n trialStartDate: string;\n trialEndDate: string;\n periodStartDate: string;\n periodEndDate: string;\n cancelledDate: string;\n cancelAtEndDate: boolean;\n status: string;\n cancelled: boolean;\n items: BillingSubscriptionItemResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.trialEndDate = this.getResponseProperty('TrialStartDate');\n this.trialEndDate = this.getResponseProperty('TrialEndDate');\n this.periodStartDate = this.getResponseProperty('PeriodStartDate');\n this.periodEndDate = this.getResponseProperty('PeriodEndDate');\n this.cancelledDate = this.getResponseProperty('CancelledDate');\n this.cancelAtEndDate = this.getResponseProperty('CancelAtEndDate');\n this.status = this.getResponseProperty('Status');\n this.cancelled = this.getResponseProperty('Cancelled');\n const items = this.getResponseProperty('Items');\n if (items != null) {\n this.items = items.map((i: any) => new BillingSubscriptionItemResponse(i));\n }\n }\n}\n\nexport class BillingSubscriptionItemResponse extends BaseResponse {\n name: string;\n amount: number;\n quantity: number;\n interval: string;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.amount = this.getResponseProperty('Amount');\n this.quantity = this.getResponseProperty('Quantity');\n this.interval = this.getResponseProperty('Interval');\n }\n}\n\nexport class BillingSubscriptionUpcomingInvoiceResponse extends BaseResponse {\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.date = this.getResponseProperty('Date');\n this.amount = this.getResponseProperty('Amount');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class PolicyResponse extends BaseResponse {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.type = this.getResponseProperty('Type');\n this.data = this.getResponseProperty('Data');\n this.enabled = this.getResponseProperty('Enabled');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nexport class SendResponse extends BaseResponse {\n id: string;\n accessId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileApi;\n text: SendTextApi;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disable: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.accessId = this.getResponseProperty('AccessId');\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.notes = this.getResponseProperty('Notes');\n this.key = this.getResponseProperty('Key');\n this.maxAccessCount = this.getResponseProperty('MaxAccessCount');\n this.accessCount = this.getResponseProperty('AccessCount');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n this.expirationDate = this.getResponseProperty('ExpirationDate');\n this.deletionDate = this.getResponseProperty('DeletionDate');\n this.password = this.getResponseProperty('Password');\n this.disable = this.getResponseProperty('Disabled') || false;\n\n const text = this.getResponseProperty('Text');\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty('File');\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n }\n}\n","import { Utils } from '../misc/utils';\n\nimport { AppIdService as AppIdServiceAbstraction } from '../abstractions/appId.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nexport class AppIdService implements AppIdServiceAbstraction {\n constructor(private storageService: StorageService) {\n }\n\n getAppId(): Promise {\n return this.makeAndGetAppId('appId');\n }\n\n getAnonymousAppId(): Promise {\n return this.makeAndGetAppId('anonymousAppId');\n }\n\n private async makeAndGetAppId(key: string) {\n const existingId = await this.storageService.get(key);\n if (existingId != null) {\n return existingId;\n }\n\n const guid = Utils.newGuid();\n await this.storageService.save(key, guid);\n return guid;\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { AuditService as AuditServiceAbstraction } from '../abstractions/audit.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\n\nimport { throttle } from '../misc/throttle';\nimport { Utils } from '../misc/utils';\n\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\n\nconst PwnedPasswordsApi = 'https://api.pwnedpasswords.com/range/';\n\nexport class AuditService implements AuditServiceAbstraction {\n constructor(private cryptoFunctionService: CryptoFunctionService, private apiService: ApiService) { }\n\n @throttle(100, () => 'passwordLeaked')\n async passwordLeaked(password: string): Promise {\n const hashBytes = await this.cryptoFunctionService.hash(password, 'sha1');\n const hash = Utils.fromBufferToHex(hashBytes).toUpperCase();\n const hashStart = hash.substr(0, 5);\n const hashEnding = hash.substr(5);\n\n const response = await this.apiService.nativeFetch(new Request(PwnedPasswordsApi + hashStart));\n const leakedHashes = await response.text();\n const match = leakedHashes.split(/\\r?\\n/).find(v => {\n return v.split(':')[0] === hashEnding;\n });\n\n return match != null ? parseInt(match.split(':')[1], 10) : 0;\n }\n\n async breachedAccounts(username: string): Promise {\n try {\n return await this.apiService.getHibpBreach(username);\n } catch (e) {\n const error = e as ErrorResponse;\n if (error.statusCode === 404) {\n return [];\n }\n throw new Error();\n }\n }\n}\n","import { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { UriMatchType } from '../enums/uriMatchType';\n\nimport { CipherData } from '../models/data/cipherData';\n\nimport { Attachment } from '../models/domain/attachment';\nimport { Card } from '../models/domain/card';\nimport { Cipher } from '../models/domain/cipher';\nimport { CipherString } from '../models/domain/cipherString';\nimport Domain from '../models/domain/domainBase';\nimport { Field } from '../models/domain/field';\nimport { Identity } from '../models/domain/identity';\nimport { Login } from '../models/domain/login';\nimport { LoginUri } from '../models/domain/loginUri';\nimport { Password } from '../models/domain/password';\nimport { SecureNote } from '../models/domain/secureNote';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkRestoreRequest } from '../models/request/cipherBulkRestoreRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\n\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\n\nimport { AttachmentView } from '../models/view/attachmentView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FieldView } from '../models/view/fieldView';\nimport { PasswordHistoryView } from '../models/view/passwordHistoryView';\nimport { View } from '../models/view/view';\n\nimport { SortedCiphersCache } from '../models/domain/sortedCiphersCache';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService as CipherServiceAbstraction } from '../abstractions/cipher.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { SearchService } from '../abstractions/search.service';\nimport { SettingsService } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ConstantsService } from './constants.service';\n\nimport { sequentialize } from '../misc/sequentialize';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n ciphersPrefix: 'ciphers_',\n localData: 'sitesLocalData',\n neverDomains: 'neverDomains',\n};\n\nconst DomainMatchBlacklist = new Map>([\n ['google.com', new Set(['script.google.com'])],\n]);\n\nexport class CipherService implements CipherServiceAbstraction {\n // tslint:disable-next-line\n _decryptedCipherCache: CipherView[];\n\n private sortedCiphersCache: SortedCiphersCache = new SortedCiphersCache(this.sortCiphersByLastUsed);\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private settingsService: SettingsService, private apiService: ApiService,\n private storageService: StorageService, private i18nService: I18nService,\n private searchService: () => SearchService) {\n }\n\n get decryptedCipherCache() {\n return this._decryptedCipherCache;\n }\n set decryptedCipherCache(value: CipherView[]) {\n this._decryptedCipherCache = value;\n if (this.searchService != null) {\n if (value == null) {\n this.searchService().clearIndex();\n } else {\n this.searchService().indexCiphers();\n }\n }\n }\n\n clearCache(): void {\n this.decryptedCipherCache = null;\n this.sortedCiphersCache.clear();\n }\n\n async encrypt(model: CipherView, key?: SymmetricCryptoKey, originalCipher: Cipher = null): Promise {\n // Adjust password history\n if (model.id != null) {\n if (originalCipher == null) {\n originalCipher = await this.get(model.id);\n }\n if (originalCipher != null) {\n const existingCipher = await originalCipher.decrypt();\n model.passwordHistory = existingCipher.passwordHistory || [];\n if (model.type === CipherType.Login && existingCipher.type === CipherType.Login) {\n if (existingCipher.login.password != null && existingCipher.login.password !== '' &&\n existingCipher.login.password !== model.login.password) {\n const ph = new PasswordHistoryView();\n ph.password = existingCipher.login.password;\n ph.lastUsedDate = model.login.passwordRevisionDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n } else {\n model.login.passwordRevisionDate = existingCipher.login.passwordRevisionDate;\n }\n }\n if (existingCipher.hasFields) {\n const existingHiddenFields = existingCipher.fields.filter(f => f.type === FieldType.Hidden &&\n f.name != null && f.name !== '' && f.value != null && f.value !== '');\n const hiddenFields = model.fields == null ? [] :\n model.fields.filter(f => f.type === FieldType.Hidden && f.name != null && f.name !== '');\n existingHiddenFields.forEach(ef => {\n const matchedField = hiddenFields.find(f => f.name === ef.name);\n if (matchedField == null || matchedField.value !== ef.value) {\n const ph = new PasswordHistoryView();\n ph.password = ef.name + ': ' + ef.value;\n ph.lastUsedDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n }\n });\n }\n }\n if (model.passwordHistory != null && model.passwordHistory.length === 0) {\n model.passwordHistory = null;\n } else if (model.passwordHistory != null && model.passwordHistory.length > 5) {\n // only save last 5 history\n model.passwordHistory = model.passwordHistory.slice(0, 5);\n }\n }\n\n const cipher = new Cipher();\n cipher.id = model.id;\n cipher.folderId = model.folderId;\n cipher.favorite = model.favorite;\n cipher.organizationId = model.organizationId;\n cipher.type = model.type;\n cipher.collectionIds = model.collectionIds;\n cipher.revisionDate = model.revisionDate;\n\n if (key == null && cipher.organizationId != null) {\n key = await this.cryptoService.getOrgKey(cipher.organizationId);\n if (key == null) {\n throw new Error('Cannot encrypt cipher for organization. No key.');\n }\n }\n await Promise.all([\n this.encryptObjProperty(model, cipher, {\n name: null,\n notes: null,\n }, key),\n this.encryptCipherData(cipher, model, key),\n this.encryptFields(model.fields, key).then(fields => {\n cipher.fields = fields;\n }),\n this.encryptPasswordHistories(model.passwordHistory, key).then(ph => {\n cipher.passwordHistory = ph;\n }),\n this.encryptAttachments(model.attachments, key).then(attachments => {\n cipher.attachments = attachments;\n }),\n ]);\n\n return cipher;\n }\n\n async encryptAttachments(attachmentsModel: AttachmentView[], key: SymmetricCryptoKey): Promise {\n if (attachmentsModel == null || attachmentsModel.length === 0) {\n return null;\n }\n\n const promises: Promise[] = [];\n const encAttachments: Attachment[] = [];\n attachmentsModel.forEach(async model => {\n const attachment = new Attachment();\n attachment.id = model.id;\n attachment.size = model.size;\n attachment.sizeName = model.sizeName;\n attachment.url = model.url;\n const promise = this.encryptObjProperty(model, attachment, {\n fileName: null,\n }, key).then(async () => {\n if (model.key != null) {\n attachment.key = await this.cryptoService.encrypt(model.key.key, key);\n }\n encAttachments.push(attachment);\n });\n promises.push(promise);\n });\n\n await Promise.all(promises);\n return encAttachments;\n }\n\n async encryptFields(fieldsModel: FieldView[], key: SymmetricCryptoKey): Promise {\n if (!fieldsModel || !fieldsModel.length) {\n return null;\n }\n\n const self = this;\n const encFields: Field[] = [];\n await fieldsModel.reduce((promise, field) => {\n return promise.then(() => {\n return self.encryptField(field, key);\n }).then((encField: Field) => {\n encFields.push(encField);\n });\n }, Promise.resolve());\n\n return encFields;\n }\n\n async encryptField(fieldModel: FieldView, key: SymmetricCryptoKey): Promise {\n const field = new Field();\n field.type = fieldModel.type;\n // normalize boolean type field values\n if (fieldModel.type === FieldType.Boolean && fieldModel.value !== 'true') {\n fieldModel.value = 'false';\n }\n\n await this.encryptObjProperty(fieldModel, field, {\n name: null,\n value: null,\n }, key);\n\n return field;\n }\n\n async encryptPasswordHistories(phModels: PasswordHistoryView[], key: SymmetricCryptoKey): Promise {\n if (!phModels || !phModels.length) {\n return null;\n }\n\n const self = this;\n const encPhs: Password[] = [];\n await phModels.reduce((promise, ph) => {\n return promise.then(() => {\n return self.encryptPasswordHistory(ph, key);\n }).then((encPh: Password) => {\n encPhs.push(encPh);\n });\n }, Promise.resolve());\n\n return encPhs;\n }\n\n async encryptPasswordHistory(phModel: PasswordHistoryView, key: SymmetricCryptoKey): Promise {\n const ph = new Password();\n ph.lastUsedDate = phModel.lastUsedDate;\n\n await this.encryptObjProperty(phModel, ph, {\n password: null,\n }, key);\n\n return ph;\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const localData = await this.storageService.get(Keys.localData);\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null || !ciphers.hasOwnProperty(id)) {\n return null;\n }\n\n return new Cipher(ciphers[id], false, localData ? localData[id] : null);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const localData = await this.storageService.get(Keys.localData);\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n const response: Cipher[] = [];\n for (const id in ciphers) {\n if (ciphers.hasOwnProperty(id)) {\n response.push(new Cipher(ciphers[id], false, localData ? localData[id] : null));\n }\n }\n return response;\n }\n\n @sequentialize(() => 'getAllDecrypted')\n async getAllDecrypted(): Promise {\n if (this.decryptedCipherCache != null) {\n return this.decryptedCipherCache;\n }\n\n const decCiphers: CipherView[] = [];\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const promises: any[] = [];\n const ciphers = await this.getAll();\n ciphers.forEach(cipher => {\n promises.push(cipher.decrypt().then(c => decCiphers.push(c)));\n });\n\n await Promise.all(promises);\n decCiphers.sort(this.getLocaleSortingFunction());\n this.decryptedCipherCache = decCiphers;\n return this.decryptedCipherCache;\n }\n\n async getAllDecryptedForGrouping(groupingId: string, folder: boolean = true): Promise {\n const ciphers = await this.getAllDecrypted();\n\n return ciphers.filter(cipher => {\n if (cipher.isDeleted) {\n return false;\n }\n if (folder && cipher.folderId === groupingId) {\n return true;\n } else if (!folder && cipher.collectionIds != null && cipher.collectionIds.indexOf(groupingId) > -1) {\n return true;\n }\n\n return false;\n });\n }\n\n async getAllDecryptedForUrl(url: string, includeOtherTypes?: CipherType[],\n defaultMatch: UriMatchType = null): Promise {\n if (url == null && includeOtherTypes == null) {\n return Promise.resolve([]);\n }\n\n const domain = Utils.getDomain(url);\n const eqDomainsPromise = domain == null ? Promise.resolve([]) :\n this.settingsService.getEquivalentDomains().then((eqDomains: any[][]) => {\n let matches: any[] = [];\n eqDomains.forEach(eqDomain => {\n if (eqDomain.length && eqDomain.indexOf(domain) >= 0) {\n matches = matches.concat(eqDomain);\n }\n });\n\n if (!matches.length) {\n matches.push(domain);\n }\n\n return matches;\n });\n\n const result = await Promise.all([eqDomainsPromise, this.getAllDecrypted()]);\n const matchingDomains = result[0];\n const ciphers = result[1];\n\n if (defaultMatch == null) {\n defaultMatch = await this.storageService.get(ConstantsService.defaultUriMatch);\n if (defaultMatch == null) {\n defaultMatch = UriMatchType.Domain;\n }\n }\n\n return ciphers.filter(cipher => {\n if (cipher.deletedDate != null) {\n return false;\n }\n if (includeOtherTypes != null && includeOtherTypes.indexOf(cipher.type) > -1) {\n return true;\n }\n\n if (url != null && cipher.type === CipherType.Login && cipher.login.uris != null) {\n for (let i = 0; i < cipher.login.uris.length; i++) {\n const u = cipher.login.uris[i];\n if (u.uri == null) {\n continue;\n }\n\n const match = u.match == null ? defaultMatch : u.match;\n switch (match) {\n case UriMatchType.Domain:\n if (domain != null && u.domain != null && matchingDomains.indexOf(u.domain) > -1) {\n if (DomainMatchBlacklist.has(u.domain)) {\n const domainUrlHost = Utils.getHost(url);\n if (!DomainMatchBlacklist.get(u.domain).has(domainUrlHost)) {\n return true;\n }\n } else {\n return true;\n }\n }\n break;\n case UriMatchType.Host:\n const urlHost = Utils.getHost(url);\n if (urlHost != null && urlHost === Utils.getHost(u.uri)) {\n return true;\n }\n break;\n case UriMatchType.Exact:\n if (url === u.uri) {\n return true;\n }\n break;\n case UriMatchType.StartsWith:\n if (url.startsWith(u.uri)) {\n return true;\n }\n break;\n case UriMatchType.RegularExpression:\n try {\n const regex = new RegExp(u.uri, 'i');\n if (regex.test(url)) {\n return true;\n }\n } catch { }\n break;\n case UriMatchType.Never:\n default:\n break;\n }\n }\n }\n\n return false;\n });\n }\n\n async getAllFromApiForOrganization(organizationId: string): Promise {\n const ciphers = await this.apiService.getCiphersOrganization(organizationId);\n if (ciphers != null && ciphers.data != null && ciphers.data.length) {\n const decCiphers: CipherView[] = [];\n const promises: any[] = [];\n ciphers.data.forEach(r => {\n const data = new CipherData(r);\n const cipher = new Cipher(data);\n promises.push(cipher.decrypt().then(c => decCiphers.push(c)));\n });\n await Promise.all(promises);\n decCiphers.sort(this.getLocaleSortingFunction());\n return decCiphers;\n } else {\n return [];\n }\n }\n\n async getLastUsedForUrl(url: string): Promise {\n return this.getCipherForUrl(url, true, false);\n }\n\n async getLastLaunchedForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, true);\n }\n\n async getNextCipherForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, false);\n }\n\n updateLastUsedIndexForUrl(url: string) {\n this.sortedCiphersCache.updateLastUsedIndex(url);\n }\n\n async updateLastUsedDate(id: string): Promise {\n let ciphersLocalData = await this.storageService.get(Keys.localData);\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n if (ciphersLocalData[id]) {\n ciphersLocalData[id].lastUsedDate = new Date().getTime();\n } else {\n ciphersLocalData[id] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.storageService.save(Keys.localData, ciphersLocalData);\n\n if (this.decryptedCipherCache == null) {\n return;\n }\n\n for (let i = 0; i < this.decryptedCipherCache.length; i++) {\n const cached = this.decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id];\n break;\n }\n }\n }\n\n async updateLastLaunchedDate(id: string): Promise {\n let ciphersLocalData = await this.storageService.get(Keys.localData);\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n if (ciphersLocalData[id]) {\n ciphersLocalData[id].lastLaunched = new Date().getTime();\n } else {\n ciphersLocalData[id] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.storageService.save(Keys.localData, ciphersLocalData);\n\n if (this.decryptedCipherCache == null) {\n return;\n }\n\n for (let i = 0; i < this.decryptedCipherCache.length; i++) {\n const cached = this.decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id];\n break;\n }\n }\n }\n\n async saveNeverDomain(domain: string): Promise {\n if (domain == null) {\n return;\n }\n\n let domains = await this.storageService.get<{ [id: string]: any; }>(Keys.neverDomains);\n if (!domains) {\n domains = {};\n }\n domains[domain] = null;\n await this.storageService.save(Keys.neverDomains, domains);\n }\n\n async saveWithServer(cipher: Cipher): Promise {\n let response: CipherResponse;\n if (cipher.id == null) {\n if (cipher.collectionIds != null) {\n const request = new CipherCreateRequest(cipher);\n response = await this.apiService.postCipherCreate(request);\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.postCipher(request);\n }\n cipher.id = response.id;\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.putCipher(cipher.id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new CipherData(response, userId, cipher.collectionIds);\n await this.upsert(data);\n }\n\n async shareWithServer(cipher: CipherView, organizationId: string, collectionIds: string[]): Promise {\n const attachmentPromises: Promise[] = [];\n if (cipher.attachments != null) {\n cipher.attachments.forEach(attachment => {\n if (attachment.key == null) {\n attachmentPromises.push(this.shareAttachmentWithServer(attachment, cipher.id, organizationId));\n }\n });\n }\n await Promise.all(attachmentPromises);\n\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n const encCipher = await this.encrypt(cipher);\n const request = new CipherShareRequest(encCipher);\n const response = await this.apiService.putShareCipher(cipher.id, request);\n const userId = await this.userService.getUserId();\n const data = new CipherData(response, userId, collectionIds);\n await this.upsert(data);\n }\n\n async shareManyWithServer(ciphers: CipherView[], organizationId: string, collectionIds: string[]): Promise {\n const promises: Promise[] = [];\n const encCiphers: Cipher[] = [];\n for (const cipher of ciphers) {\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n promises.push(this.encrypt(cipher).then(c => {\n encCiphers.push(c);\n }));\n }\n await Promise.all(promises);\n const request = new CipherBulkShareRequest(encCiphers, collectionIds);\n await this.apiService.putShareCiphers(request);\n const userId = await this.userService.getUserId();\n await this.upsert(encCiphers.map(c => c.toCipherData(userId)));\n }\n\n saveAttachmentWithServer(cipher: Cipher, unencryptedFile: any, admin = false): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(unencryptedFile);\n reader.onload = async (evt: any) => {\n try {\n const cData = await this.saveAttachmentRawWithServer(cipher,\n unencryptedFile.name, evt.target.result, admin);\n resolve(cData);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = evt => {\n reject('Error reading file.');\n };\n });\n }\n\n async saveAttachmentRawWithServer(cipher: Cipher, filename: string,\n data: ArrayBuffer, admin = false): Promise {\n const key = await this.cryptoService.getOrgKey(cipher.organizationId);\n const encFileName = await this.cryptoService.encrypt(filename, key);\n\n const dataEncKey = await this.cryptoService.makeEncKey(key);\n const encData = await this.cryptoService.encryptToBytes(data, dataEncKey[0]);\n\n const fd = new FormData();\n try {\n const blob = new Blob([encData], { type: 'application/octet-stream' });\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', Buffer.from(encData) as any, {\n filepath: encFileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n let response: CipherResponse;\n try {\n if (admin) {\n response = await this.apiService.postCipherAttachmentAdmin(cipher.id, fd);\n } else {\n response = await this.apiService.postCipherAttachment(cipher.id, fd);\n }\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n\n const userId = await this.userService.getUserId();\n const cData = new CipherData(response, userId, cipher.collectionIds);\n if (!admin) {\n await this.upsert(cData);\n }\n return new Cipher(cData);\n }\n\n async saveCollectionsWithServer(cipher: Cipher): Promise {\n const request = new CipherCollectionsRequest(cipher.collectionIds);\n await this.apiService.putCipherCollections(cipher.id, request);\n const userId = await this.userService.getUserId();\n const data = cipher.toCipherData(userId);\n await this.upsert(data);\n }\n\n async upsert(cipher: CipherData | CipherData[]): Promise {\n const userId = await this.userService.getUserId();\n let ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n ciphers = {};\n }\n\n if (cipher instanceof CipherData) {\n const c = cipher as CipherData;\n ciphers[c.id] = c;\n } else {\n (cipher as CipherData[]).forEach(c => {\n ciphers[c.id] = c;\n });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async replace(ciphers: { [id: string]: CipherData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.ciphersPrefix + userId);\n this.clearCache();\n }\n\n async moveManyWithServer(ids: string[], folderId: string): Promise {\n await this.apiService.putMoveCiphers(new CipherBulkMoveRequest(ids, folderId));\n\n const userId = await this.userService.getUserId();\n let ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n ciphers = {};\n }\n\n ids.forEach(id => {\n if (ciphers.hasOwnProperty(id)) {\n ciphers[id].folderId = folderId;\n }\n });\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (ciphers[id] == null) {\n return;\n }\n delete ciphers[id];\n } else {\n (id as string[]).forEach(i => {\n delete ciphers[i];\n });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteCipher(id);\n await this.delete(id);\n }\n\n async deleteManyWithServer(ids: string[]): Promise {\n await this.apiService.deleteManyCiphers(new CipherBulkDeleteRequest(ids));\n await this.delete(ids);\n }\n\n async deleteAttachment(id: string, attachmentId: string): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n\n if (ciphers == null || !ciphers.hasOwnProperty(id) || ciphers[id].attachments == null) {\n return;\n }\n\n for (let i = 0; i < ciphers[id].attachments.length; i++) {\n if (ciphers[id].attachments[i].id === attachmentId) {\n ciphers[id].attachments.splice(i, 1);\n }\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async deleteAttachmentWithServer(id: string, attachmentId: string): Promise {\n try {\n await this.apiService.deleteCipherAttachment(id, attachmentId);\n } catch (e) {\n return Promise.reject((e as ErrorResponse).getSingleMessage());\n }\n await this.deleteAttachment(id, attachmentId);\n }\n\n sortCiphersByLastUsed(a: CipherView, b: CipherView): number {\n const aLastUsed = a.localData && a.localData.lastUsedDate ? a.localData.lastUsedDate as number : null;\n const bLastUsed = b.localData && b.localData.lastUsedDate ? b.localData.lastUsedDate as number : null;\n\n const bothNotNull = aLastUsed != null && bLastUsed != null;\n if (bothNotNull && aLastUsed < bLastUsed) {\n return 1;\n }\n if (aLastUsed != null && bLastUsed == null) {\n return -1;\n }\n\n if (bothNotNull && aLastUsed > bLastUsed) {\n return -1;\n }\n if (bLastUsed != null && aLastUsed == null) {\n return 1;\n }\n\n return 0;\n }\n\n sortCiphersByLastUsedThenName(a: CipherView, b: CipherView): number {\n const result = this.sortCiphersByLastUsed(a, b);\n if (result !== 0) {\n return result;\n }\n\n return this.getLocaleSortingFunction()(a, b);\n }\n\n getLocaleSortingFunction(): (a: CipherView, b: CipherView) => number {\n return (a, b) => {\n let aName = a.name;\n let bName = b.name;\n\n if (aName == null && bName != null) {\n return -1;\n }\n if (aName != null && bName == null) {\n return 1;\n }\n if (aName == null && bName == null) {\n return 0;\n }\n\n const result = this.i18nService.collator ? this.i18nService.collator.compare(aName, bName) :\n aName.localeCompare(bName);\n\n if (result !== 0 || a.type !== CipherType.Login || b.type !== CipherType.Login) {\n return result;\n }\n\n if (a.login.username != null) {\n aName += a.login.username;\n }\n\n if (b.login.username != null) {\n bName += b.login.username;\n }\n\n return this.i18nService.collator ? this.i18nService.collator.compare(aName, bName) :\n aName.localeCompare(bName);\n };\n }\n\n async softDelete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n const setDeletedDate = (cipherId: string) => {\n if (ciphers[cipherId] == null) {\n return;\n }\n ciphers[cipherId].deletedDate = new Date().toISOString();\n };\n\n if (typeof id === 'string') {\n setDeletedDate(id);\n } else {\n (id as string[]).forEach(setDeletedDate);\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async softDeleteWithServer(id: string): Promise {\n await this.apiService.putDeleteCipher(id);\n await this.softDelete(id);\n }\n\n async softDeleteManyWithServer(ids: string[]): Promise {\n await this.apiService.putDeleteManyCiphers(new CipherBulkDeleteRequest(ids));\n await this.softDelete(ids);\n }\n\n async restore(cipher: { id: string, revisionDate: string; } | { id: string, revisionDate: string; }[]) {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n const clearDeletedDate = (c: { id: string, revisionDate: string; }) => {\n if (ciphers[c.id] == null) {\n return;\n }\n ciphers[c.id].deletedDate = null;\n ciphers[c.id].revisionDate = c.revisionDate;\n };\n\n\n if (cipher.constructor.name === 'Array') {\n (cipher as { id: string, revisionDate: string; }[]).forEach(clearDeletedDate);\n } else {\n clearDeletedDate(cipher as { id: string, revisionDate: string; });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async restoreWithServer(id: string): Promise {\n const response = await this.apiService.putRestoreCipher(id);\n await this.restore({ id: id, revisionDate: response.revisionDate });\n }\n\n async restoreManyWithServer(ids: string[]): Promise {\n const response = await this.apiService.putRestoreManyCiphers(new CipherBulkRestoreRequest(ids));\n const restores: { id: string, revisionDate: string; }[] = [];\n for (const cipher of response.data) {\n restores.push({ id: cipher.id, revisionDate: cipher.revisionDate });\n }\n await this.restore(restores);\n }\n\n // Helpers\n\n private async shareAttachmentWithServer(attachmentView: AttachmentView, cipherId: string,\n organizationId: string): Promise {\n const attachmentResponse = await this.apiService.nativeFetch(\n new Request(attachmentView.url, { cache: 'no-store' }));\n if (attachmentResponse.status !== 200) {\n throw Error('Failed to download attachment: ' + attachmentResponse.status.toString());\n }\n\n const buf = await attachmentResponse.arrayBuffer();\n const decBuf = await this.cryptoService.decryptFromBytes(buf, null);\n const key = await this.cryptoService.getOrgKey(organizationId);\n const encFileName = await this.cryptoService.encrypt(attachmentView.fileName, key);\n\n const dataEncKey = await this.cryptoService.makeEncKey(key);\n const encData = await this.cryptoService.encryptToBytes(decBuf, dataEncKey[0]);\n\n const fd = new FormData();\n try {\n const blob = new Blob([encData], { type: 'application/octet-stream' });\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', Buffer.from(encData) as any, {\n filepath: encFileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n try {\n await this.apiService.postShareCipherAttachment(cipherId, attachmentView.id, fd, organizationId);\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n }\n\n private async encryptObjProperty(model: V, obj: D,\n map: any, key: SymmetricCryptoKey): Promise {\n const promises = [];\n const self = this;\n\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n // tslint:disable-next-line\n (function (theProp, theObj) {\n const p = Promise.resolve().then(() => {\n const modelProp = (model as any)[(map[theProp] || theProp)];\n if (modelProp && modelProp !== '') {\n return self.cryptoService.encrypt(modelProp, key);\n }\n return null;\n }).then((val: CipherString) => {\n (theObj as any)[theProp] = val;\n });\n promises.push(p);\n })(prop, obj);\n }\n\n await Promise.all(promises);\n }\n\n private async encryptCipherData(cipher: Cipher, model: CipherView, key: SymmetricCryptoKey) {\n switch (cipher.type) {\n case CipherType.Login:\n cipher.login = new Login();\n cipher.login.passwordRevisionDate = model.login.passwordRevisionDate;\n await this.encryptObjProperty(model.login, cipher.login, {\n username: null,\n password: null,\n totp: null,\n }, key);\n\n if (model.login.uris != null) {\n cipher.login.uris = [];\n for (let i = 0; i < model.login.uris.length; i++) {\n const loginUri = new LoginUri();\n loginUri.match = model.login.uris[i].match;\n await this.encryptObjProperty(model.login.uris[i], loginUri, {\n uri: null,\n }, key);\n cipher.login.uris.push(loginUri);\n }\n }\n return;\n case CipherType.SecureNote:\n cipher.secureNote = new SecureNote();\n cipher.secureNote.type = model.secureNote.type;\n return;\n case CipherType.Card:\n cipher.card = new Card();\n await this.encryptObjProperty(model.card, cipher.card, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, key);\n return;\n case CipherType.Identity:\n cipher.identity = new Identity();\n await this.encryptObjProperty(model.identity, cipher.identity, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, key);\n return;\n default:\n throw new Error('Unknown cipher type.');\n }\n }\n\n private async getCipherForUrl(url: string, lastUsed: boolean, lastLaunched: boolean): Promise {\n if (!this.sortedCiphersCache.isCached(url)) {\n const ciphers = await this.getAllDecryptedForUrl(url);\n if (!ciphers) {\n return null;\n }\n this.sortedCiphersCache.addCiphers(url, ciphers);\n }\n\n if (lastLaunched) {\n return this.sortedCiphersCache.getLastLaunched(url);\n } else if (lastUsed) {\n return this.sortedCiphersCache.getLastUsed(url);\n } else {\n return this.sortedCiphersCache.getNext(url);\n }\n }\n}\n","/**\n * Use as a Decorator on async functions, it will prevent multiple 'active' calls as the same time\n *\n * If a promise was returned from a previous call to this function, that hasn't yet resolved it will\n * be returned, instead of calling the original function again\n *\n * Results are not cached, once the promise has returned, the next call will result in a fresh call\n *\n * Read more at https://github.com/bitwarden/jslib/pull/7\n */\nexport function sequentialize(cacheKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod: () => Promise = descriptor.value;\n const caches = new Map>>();\n\n const getCache = (obj: any) => {\n let cache = caches.get(obj);\n if (cache != null) {\n return cache;\n }\n cache = new Map>();\n caches.set(obj, cache);\n return cache;\n };\n\n return {\n value: function(...args: any[]) {\n const cache = getCache(this);\n const argsCacheKey = cacheKey(args);\n let response = cache.get(argsCacheKey);\n if (response != null) {\n return response;\n }\n\n const onFinally = () => {\n cache.delete(argsCacheKey);\n if (cache.size === 0) {\n caches.delete(this);\n }\n };\n response = originalMethod.apply(this, args).then((val: any) => {\n onFinally();\n return val;\n }).catch((err: any) => {\n onFinally();\n throw err;\n });\n\n cache.set(argsCacheKey, response);\n return response;\n },\n };\n };\n}\n","import { CollectionData } from '../models/data/collectionData';\n\nimport { Collection } from '../models/domain/collection';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nimport { CollectionService as CollectionServiceAbstraction } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ServiceUtils } from '../misc/serviceUtils';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n collectionsPrefix: 'collections_',\n};\nconst NestingDelimiter = '/';\n\nexport class CollectionService implements CollectionServiceAbstraction {\n decryptedCollectionCache: CollectionView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private storageService: StorageService, private i18nService: I18nService) {\n }\n\n clearCache(): void {\n this.decryptedCollectionCache = null;\n }\n\n async encrypt(model: CollectionView): Promise {\n if (model.organizationId == null) {\n throw new Error('Collection has no organization id.');\n }\n const key = await this.cryptoService.getOrgKey(model.organizationId);\n if (key == null) {\n throw new Error('No key for this collection\\'s organization.');\n }\n const collection = new Collection();\n collection.id = model.id;\n collection.organizationId = model.organizationId;\n collection.readOnly = model.readOnly;\n collection.name = await this.cryptoService.encrypt(model.name, key);\n return collection;\n }\n\n async decryptMany(collections: Collection[]): Promise {\n if (collections == null) {\n return [];\n }\n const decCollections: CollectionView[] = [];\n const promises: Promise[] = [];\n collections.forEach(collection => {\n promises.push(collection.decrypt().then(c => decCollections.push(c)));\n });\n await Promise.all(promises);\n return decCollections.sort(Utils.getSortFunction(this.i18nService, 'name'));\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null || !collections.hasOwnProperty(id)) {\n return null;\n }\n\n return new Collection(collections[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n const response: Collection[] = [];\n for (const id in collections) {\n if (collections.hasOwnProperty(id)) {\n response.push(new Collection(collections[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedCollectionCache != null) {\n return this.decryptedCollectionCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const collections = await this.getAll();\n this.decryptedCollectionCache = await this.decryptMany(collections);\n return this.decryptedCollectionCache;\n }\n\n async getAllNested(collections: CollectionView[] = null): Promise[]> {\n if (collections == null) {\n collections = await this.getAllDecrypted();\n }\n const nodes: TreeNode[] = [];\n collections.forEach(c => {\n const collectionCopy = new CollectionView();\n collectionCopy.id = c.id;\n collectionCopy.organizationId = c.organizationId;\n const parts = c.name != null ? c.name.replace(/^\\/+|\\/+$/g, '').split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, collectionCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n async getNested(id: string): Promise> {\n const collections = await this.getAllNested();\n return ServiceUtils.getTreeNodeObject(collections, id) as TreeNode;\n }\n\n async upsert(collection: CollectionData | CollectionData[]): Promise {\n const userId = await this.userService.getUserId();\n let collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null) {\n collections = {};\n }\n\n if (collection instanceof CollectionData) {\n const c = collection as CollectionData;\n collections[c.id] = c;\n } else {\n (collection as CollectionData[]).forEach(c => {\n collections[c.id] = c;\n });\n }\n\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n\n async replace(collections: { [id: string]: CollectionData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.collectionsPrefix + userId);\n this.decryptedCollectionCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null) {\n return;\n }\n\n if (typeof id === 'string') {\n const i = id as string;\n delete collections[id];\n } else {\n (id as string[]).forEach(i => {\n delete collections[i];\n });\n }\n\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n}\n","import {\n ITreeNodeObject,\n TreeNode,\n} from '../models/domain/treeNode';\n\nexport class ServiceUtils {\n static nestedTraverse(nodeTree: TreeNode[], partIndex: number, parts: string[],\n obj: ITreeNodeObject, parent: ITreeNodeObject, delimiter: string) {\n if (parts.length <= partIndex) {\n return;\n }\n\n const end = partIndex === parts.length - 1;\n const partName = parts[partIndex];\n\n for (let i = 0; i < nodeTree.length; i++) {\n if (nodeTree[i].node.name !== parts[partIndex]) {\n continue;\n }\n if (end && nodeTree[i].node.id !== obj.id) {\n // Another node with the same name.\n nodeTree.push(new TreeNode(obj, partName, parent));\n return;\n }\n ServiceUtils.nestedTraverse(nodeTree[i].children, partIndex + 1, parts,\n obj, nodeTree[i].node, delimiter);\n return;\n }\n\n if (nodeTree.filter(n => n.node.name === partName).length === 0) {\n if (end) {\n nodeTree.push(new TreeNode(obj, partName, parent));\n return;\n }\n const newPartName = parts[partIndex] + delimiter + parts[partIndex + 1];\n ServiceUtils.nestedTraverse(nodeTree, 0, [newPartName, ...parts.slice(partIndex + 2)],\n obj, parent, delimiter);\n }\n }\n\n static getTreeNodeObject(nodeTree: TreeNode[], id: string): TreeNode {\n for (let i = 0; i < nodeTree.length; i++) {\n if (nodeTree[i].node.id === id) {\n return nodeTree[i];\n } else if (nodeTree[i].children != null) {\n const node = ServiceUtils.getTreeNodeObject(nodeTree[i].children, id);\n if (node !== null) {\n return node;\n }\n }\n }\n return null;\n }\n}\n","import { CryptoService } from '../abstractions/crypto.service';\n\nexport class ContainerService {\n constructor(private cryptoService: CryptoService) {\n }\n\n // deprecated, use attachToGlobal instead\n attachToWindow(win: any) {\n this.attachToGlobal(win);\n }\n\n attachToGlobal(global: any) {\n if (!global.bitwardenContainerService) {\n global.bitwardenContainerService = this;\n }\n }\n\n getCryptoService(): CryptoService {\n return this.cryptoService;\n }\n}\n","import * as bigInt from 'big-integer';\n\nimport { EncryptionType } from '../enums/encryptionType';\nimport { KdfType } from '../enums/kdfType';\n\nimport { CipherString } from '../models/domain/cipherString';\nimport { EncryptedObject } from '../models/domain/encryptedObject';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';\n\nimport { CryptoService as CryptoServiceAbstraction } from '../abstractions/crypto.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { LogService } from '../abstractions/log.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { ConstantsService } from './constants.service';\n\nimport { sequentialize } from '../misc/sequentialize';\nimport { Utils } from '../misc/utils';\nimport { EEFLongWordList } from '../misc/wordlist';\n\nconst Keys = {\n key: 'key', // Master Key\n encOrgKeys: 'encOrgKeys',\n encPrivateKey: 'encPrivateKey',\n encKey: 'encKey', // Generated Symmetric Key\n keyHash: 'keyHash',\n};\n\nexport class CryptoService implements CryptoServiceAbstraction {\n private key: SymmetricCryptoKey;\n private encKey: SymmetricCryptoKey;\n private legacyEtmKey: SymmetricCryptoKey;\n private keyHash: string;\n private publicKey: ArrayBuffer;\n private privateKey: ArrayBuffer;\n private orgKeys: Map;\n\n constructor(private storageService: StorageService, private secureStorageService: StorageService,\n private cryptoFunctionService: CryptoFunctionService, private platformUtilService: PlatformUtilsService,\n private logService: LogService) {\n }\n\n async setKey(key: SymmetricCryptoKey): Promise {\n this.key = key;\n\n const option = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const biometric = await this.storageService.get(ConstantsService.biometricUnlockKey);\n if (option != null && !(biometric && this.platformUtilService.supportsSecureStorage())) {\n // if we have a lock option set, we do not store the key\n return;\n }\n\n return this.secureStorageService.save(Keys.key, key.keyB64);\n }\n\n setKeyHash(keyHash: string): Promise<{}> {\n this.keyHash = keyHash;\n return this.storageService.save(Keys.keyHash, keyHash);\n }\n\n async setEncKey(encKey: string): Promise<{}> {\n if (encKey == null) {\n return;\n }\n\n await this.storageService.save(Keys.encKey, encKey);\n this.encKey = null;\n }\n\n async setEncPrivateKey(encPrivateKey: string): Promise<{}> {\n if (encPrivateKey == null) {\n return;\n }\n\n await this.storageService.save(Keys.encPrivateKey, encPrivateKey);\n this.privateKey = null;\n }\n\n setOrgKeys(orgs: ProfileOrganizationResponse[]): Promise<{}> {\n const orgKeys: any = {};\n orgs.forEach(org => {\n orgKeys[org.id] = org.key;\n });\n\n this.orgKeys = null;\n return this.storageService.save(Keys.encOrgKeys, orgKeys);\n }\n\n async getKey(): Promise {\n if (this.key != null) {\n return this.key;\n }\n\n const key = await this.secureStorageService.get(Keys.key);\n if (key != null) {\n this.key = new SymmetricCryptoKey(Utils.fromB64ToArray(key).buffer);\n }\n\n return key == null ? null : this.key;\n }\n\n async getKeyHash(): Promise {\n if (this.keyHash != null) {\n return this.keyHash;\n }\n\n const keyHash = await this.storageService.get(Keys.keyHash);\n if (keyHash != null) {\n this.keyHash = keyHash;\n }\n\n return keyHash == null ? null : this.keyHash;\n }\n\n @sequentialize(() => 'getEncKey')\n async getEncKey(key: SymmetricCryptoKey = null): Promise {\n if (this.encKey != null) {\n return this.encKey;\n }\n\n const encKey = await this.storageService.get(Keys.encKey);\n if (encKey == null) {\n return null;\n }\n\n if (key == null) {\n key = await this.getKey();\n }\n if (key == null) {\n return null;\n }\n\n let decEncKey: ArrayBuffer;\n const encKeyCipher = new CipherString(encKey);\n if (encKeyCipher.encryptionType === EncryptionType.AesCbc256_B64) {\n decEncKey = await this.decryptToBytes(encKeyCipher, key);\n } else if (encKeyCipher.encryptionType === EncryptionType.AesCbc256_HmacSha256_B64) {\n const newKey = await this.stretchKey(key);\n decEncKey = await this.decryptToBytes(encKeyCipher, newKey);\n } else {\n throw new Error('Unsupported encKey type.');\n }\n\n if (decEncKey == null) {\n return null;\n }\n this.encKey = new SymmetricCryptoKey(decEncKey);\n return this.encKey;\n }\n\n async getPublicKey(): Promise {\n if (this.publicKey != null) {\n return this.publicKey;\n }\n\n const privateKey = await this.getPrivateKey();\n if (privateKey == null) {\n return null;\n }\n\n this.publicKey = await this.cryptoFunctionService.rsaExtractPublicKey(privateKey);\n return this.publicKey;\n }\n\n async getPrivateKey(): Promise {\n if (this.privateKey != null) {\n return this.privateKey;\n }\n\n const encPrivateKey = await this.storageService.get(Keys.encPrivateKey);\n if (encPrivateKey == null) {\n return null;\n }\n\n this.privateKey = await this.decryptToBytes(new CipherString(encPrivateKey), null);\n return this.privateKey;\n }\n\n async getFingerprint(userId: string, publicKey?: ArrayBuffer): Promise {\n if (publicKey == null) {\n publicKey = await this.getPublicKey();\n }\n if (publicKey === null) {\n throw new Error('No public key available.');\n }\n const keyFingerprint = await this.cryptoFunctionService.hash(publicKey, 'sha256');\n const userFingerprint = await this.cryptoFunctionService.hkdfExpand(keyFingerprint, userId, 32, 'sha256');\n return this.hashPhrase(userFingerprint);\n }\n\n @sequentialize(() => 'getOrgKeys')\n async getOrgKeys(): Promise> {\n if (this.orgKeys != null && this.orgKeys.size > 0) {\n return this.orgKeys;\n }\n\n const encOrgKeys = await this.storageService.get(Keys.encOrgKeys);\n if (encOrgKeys == null) {\n return null;\n }\n\n const orgKeys: Map = new Map();\n let setKey = false;\n\n for (const orgId in encOrgKeys) {\n if (!encOrgKeys.hasOwnProperty(orgId)) {\n continue;\n }\n\n const decValue = await this.rsaDecrypt(encOrgKeys[orgId]);\n orgKeys.set(orgId, new SymmetricCryptoKey(decValue));\n setKey = true;\n }\n\n if (setKey) {\n this.orgKeys = orgKeys;\n }\n\n return this.orgKeys;\n }\n\n async getOrgKey(orgId: string): Promise {\n if (orgId == null) {\n return null;\n }\n\n const orgKeys = await this.getOrgKeys();\n if (orgKeys == null || !orgKeys.has(orgId)) {\n return null;\n }\n\n return orgKeys.get(orgId);\n }\n\n async hasKey(): Promise {\n return (await this.getKey()) != null;\n }\n\n async hasEncKey(): Promise {\n const encKey = await this.storageService.get(Keys.encKey);\n return encKey != null;\n }\n\n clearKey(): Promise {\n this.key = this.legacyEtmKey = null;\n return this.secureStorageService.remove(Keys.key);\n }\n\n clearKeyHash(): Promise {\n this.keyHash = null;\n return this.storageService.remove(Keys.keyHash);\n }\n\n clearEncKey(memoryOnly?: boolean): Promise {\n this.encKey = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encKey);\n }\n\n clearKeyPair(memoryOnly?: boolean): Promise {\n this.privateKey = null;\n this.publicKey = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encPrivateKey);\n }\n\n clearOrgKeys(memoryOnly?: boolean): Promise {\n this.orgKeys = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encOrgKeys);\n }\n\n clearPinProtectedKey(): Promise {\n return this.storageService.remove(ConstantsService.pinProtectedKey);\n }\n\n clearKeys(): Promise {\n return Promise.all([\n this.clearKey(),\n this.clearKeyHash(),\n this.clearOrgKeys(),\n this.clearEncKey(),\n this.clearKeyPair(),\n this.clearPinProtectedKey(),\n ]);\n }\n\n async toggleKey(): Promise {\n const key = await this.getKey();\n const option = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const biometric = await this.storageService.get(ConstantsService.biometricUnlockKey);\n if ((!biometric && this.platformUtilService.supportsSecureStorage()) && (option != null || option === 0)) {\n // if we have a lock option set, clear the key\n await this.clearKey();\n this.key = key;\n return;\n }\n\n await this.setKey(key);\n }\n\n async makeKey(password: string, salt: string, kdf: KdfType, kdfIterations: number):\n Promise {\n let key: ArrayBuffer = null;\n if (kdf == null || kdf === KdfType.PBKDF2_SHA256) {\n if (kdfIterations == null) {\n kdfIterations = 5000;\n } else if (kdfIterations < 5000) {\n throw new Error('PBKDF2 iteration minimum is 5000.');\n }\n key = await this.cryptoFunctionService.pbkdf2(password, salt, 'sha256', kdfIterations);\n } else {\n throw new Error('Unknown Kdf.');\n }\n return new SymmetricCryptoKey(key);\n }\n\n async makeKeyFromPin(pin: string, salt: string, kdf: KdfType, kdfIterations: number,\n protectedKeyCs: CipherString = null):\n Promise {\n if (protectedKeyCs == null) {\n const pinProtectedKey = await this.storageService.get(ConstantsService.pinProtectedKey);\n if (pinProtectedKey == null) {\n throw new Error('No PIN protected key found.');\n }\n protectedKeyCs = new CipherString(pinProtectedKey);\n }\n const pinKey = await this.makePinKey(pin, salt, kdf, kdfIterations);\n const decKey = await this.decryptToBytes(protectedKeyCs, pinKey);\n return new SymmetricCryptoKey(decKey);\n }\n\n async makeShareKey(): Promise<[CipherString, SymmetricCryptoKey]> {\n const shareKey = await this.cryptoFunctionService.randomBytes(64);\n const publicKey = await this.getPublicKey();\n const encShareKey = await this.rsaEncrypt(shareKey, publicKey);\n return [encShareKey, new SymmetricCryptoKey(shareKey)];\n }\n\n async makeKeyPair(key?: SymmetricCryptoKey): Promise<[string, CipherString]> {\n const keyPair = await this.cryptoFunctionService.rsaGenerateKeyPair(2048);\n const publicB64 = Utils.fromBufferToB64(keyPair[0]);\n const privateEnc = await this.encrypt(keyPair[1], key);\n return [publicB64, privateEnc];\n }\n\n async makePinKey(pin: string, salt: string, kdf: KdfType, kdfIterations: number): Promise {\n const pinKey = await this.makeKey(pin, salt, kdf, kdfIterations);\n return await this.stretchKey(pinKey);\n }\n\n async makeSendKey(keyMaterial: ArrayBuffer): Promise {\n const sendKey = await this.cryptoFunctionService.hkdf(keyMaterial, 'bitwarden-send', 'send', 64, 'sha256');\n return new SymmetricCryptoKey(sendKey);\n }\n\n async hashPassword(password: string, key: SymmetricCryptoKey): Promise {\n if (key == null) {\n key = await this.getKey();\n }\n if (password == null || key == null) {\n throw new Error('Invalid parameters.');\n }\n\n const hash = await this.cryptoFunctionService.pbkdf2(key.key, password, 'sha256', 1);\n return Utils.fromBufferToB64(hash);\n }\n\n async makeEncKey(key: SymmetricCryptoKey): Promise<[SymmetricCryptoKey, CipherString]> {\n const theKey = await this.getKeyForEncryption(key);\n const encKey = await this.cryptoFunctionService.randomBytes(64);\n return this.buildEncKey(theKey, encKey);\n }\n\n async remakeEncKey(key: SymmetricCryptoKey, encKey?: SymmetricCryptoKey): Promise<[SymmetricCryptoKey, CipherString]> {\n if (encKey == null) {\n encKey = await this.getEncKey();\n }\n return this.buildEncKey(key, encKey.key);\n }\n\n async encrypt(plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey): Promise {\n if (plainValue == null) {\n return Promise.resolve(null);\n }\n\n let plainBuf: ArrayBuffer;\n if (typeof (plainValue) === 'string') {\n plainBuf = Utils.fromUtf8ToArray(plainValue).buffer;\n } else {\n plainBuf = plainValue;\n }\n\n const encObj = await this.aesEncrypt(plainBuf, key);\n const iv = Utils.fromBufferToB64(encObj.iv);\n const data = Utils.fromBufferToB64(encObj.data);\n const mac = encObj.mac != null ? Utils.fromBufferToB64(encObj.mac) : null;\n return new CipherString(encObj.key.encType, data, iv, mac);\n }\n\n async encryptToBytes(plainValue: ArrayBuffer, key?: SymmetricCryptoKey): Promise {\n const encValue = await this.aesEncrypt(plainValue, key);\n let macLen = 0;\n if (encValue.mac != null) {\n macLen = encValue.mac.byteLength;\n }\n\n const encBytes = new Uint8Array(1 + encValue.iv.byteLength + macLen + encValue.data.byteLength);\n encBytes.set([encValue.key.encType]);\n encBytes.set(new Uint8Array(encValue.iv), 1);\n if (encValue.mac != null) {\n encBytes.set(new Uint8Array(encValue.mac), 1 + encValue.iv.byteLength);\n }\n\n encBytes.set(new Uint8Array(encValue.data), 1 + encValue.iv.byteLength + macLen);\n return encBytes.buffer;\n }\n\n async rsaEncrypt(data: ArrayBuffer, publicKey?: ArrayBuffer): Promise {\n if (publicKey == null) {\n publicKey = await this.getPublicKey();\n }\n if (publicKey == null) {\n throw new Error('Public key unavailable.');\n }\n\n const encBytes = await this.cryptoFunctionService.rsaEncrypt(data, publicKey, 'sha1');\n return new CipherString(EncryptionType.Rsa2048_OaepSha1_B64, Utils.fromBufferToB64(encBytes));\n }\n\n async rsaDecrypt(encValue: string): Promise {\n const headerPieces = encValue.split('.');\n let encType: EncryptionType = null;\n let encPieces: string[];\n\n if (headerPieces.length === 1) {\n encType = EncryptionType.Rsa2048_OaepSha256_B64;\n encPieces = [headerPieces[0]];\n } else if (headerPieces.length === 2) {\n try {\n encType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split('|');\n } catch (e) { }\n }\n\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n // HmacSha256 types are deprecated\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error('encType unavailable.');\n }\n\n if (encPieces == null || encPieces.length <= 0) {\n throw new Error('encPieces unavailable.');\n }\n\n const data = Utils.fromB64ToArray(encPieces[0]).buffer;\n const privateKey = await this.getPrivateKey();\n if (privateKey == null) {\n throw new Error('No private key.');\n }\n\n let alg: 'sha1' | 'sha256' = 'sha1';\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n alg = 'sha256';\n break;\n case EncryptionType.Rsa2048_OaepSha1_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error('encType unavailable.');\n }\n\n return this.cryptoFunctionService.rsaDecrypt(data, privateKey, alg);\n }\n\n async decryptToBytes(cipherString: CipherString, key?: SymmetricCryptoKey): Promise {\n const iv = Utils.fromB64ToArray(cipherString.iv).buffer;\n const data = Utils.fromB64ToArray(cipherString.data).buffer;\n const mac = cipherString.mac ? Utils.fromB64ToArray(cipherString.mac).buffer : null;\n const decipher = await this.aesDecryptToBytes(cipherString.encryptionType, data, iv, mac, key);\n if (decipher == null) {\n return null;\n }\n\n return decipher;\n }\n\n async decryptToUtf8(cipherString: CipherString, key?: SymmetricCryptoKey): Promise {\n return await this.aesDecryptToUtf8(cipherString.encryptionType, cipherString.data,\n cipherString.iv, cipherString.mac, key);\n }\n\n async decryptFromBytes(encBuf: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n if (encBuf == null) {\n throw new Error('no encBuf.');\n }\n\n const encBytes = new Uint8Array(encBuf);\n const encType = encBytes[0];\n let ctBytes: Uint8Array = null;\n let ivBytes: Uint8Array = null;\n let macBytes: Uint8Array = null;\n\n switch (encType) {\n case EncryptionType.AesCbc128_HmacSha256_B64:\n case EncryptionType.AesCbc256_HmacSha256_B64:\n if (encBytes.length <= 49) { // 1 + 16 + 32 + ctLength\n return null;\n }\n\n ivBytes = encBytes.slice(1, 17);\n macBytes = encBytes.slice(17, 49);\n ctBytes = encBytes.slice(49);\n break;\n case EncryptionType.AesCbc256_B64:\n if (encBytes.length <= 17) { // 1 + 16 + ctLength\n return null;\n }\n\n ivBytes = encBytes.slice(1, 17);\n ctBytes = encBytes.slice(17);\n break;\n default:\n return null;\n }\n\n return await this.aesDecryptToBytes(encType, ctBytes.buffer, ivBytes.buffer,\n macBytes != null ? macBytes.buffer : null, key);\n }\n\n // EFForg/OpenWireless\n // ref https://github.com/EFForg/OpenWireless/blob/master/app/js/diceware.js\n async randomNumber(min: number, max: number): Promise {\n let rval = 0;\n const range = max - min + 1;\n const bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error('We cannot generate numbers larger than 53 bits.');\n }\n\n const bytesNeeded = Math.ceil(bitsNeeded / 8);\n const mask = Math.pow(2, bitsNeeded) - 1;\n // 7776 -> (2^13 = 8192) -1 == 8191 or 0x00001111 11111111\n\n // Fill a byte array with N random numbers\n const byteArray = new Uint8Array(await this.cryptoFunctionService.randomBytes(bytesNeeded));\n\n let p = (bytesNeeded - 1) * 8;\n for (let i = 0; i < bytesNeeded; i++) {\n rval += byteArray[i] * Math.pow(2, p);\n p -= 8;\n }\n\n // Use & to apply the mask and reduce the number of recursive lookups\n // tslint:disable-next-line\n rval = rval & mask;\n\n if (rval >= range) {\n // Integer out of acceptable range\n return this.randomNumber(min, max);\n }\n\n // Return an integer that falls within the range\n return min + rval;\n }\n\n // Helpers\n\n private async aesEncrypt(data: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n const obj = new EncryptedObject();\n obj.key = await this.getKeyForEncryption(key);\n obj.iv = await this.cryptoFunctionService.randomBytes(16);\n obj.data = await this.cryptoFunctionService.aesEncrypt(data, obj.iv, obj.key.encKey);\n\n if (obj.key.macKey != null) {\n const macData = new Uint8Array(obj.iv.byteLength + obj.data.byteLength);\n macData.set(new Uint8Array(obj.iv), 0);\n macData.set(new Uint8Array(obj.data), obj.iv.byteLength);\n obj.mac = await this.cryptoFunctionService.hmac(macData.buffer, obj.key.macKey, 'sha256');\n }\n\n return obj;\n }\n\n private async aesDecryptToUtf8(encType: EncryptionType, data: string, iv: string, mac: string,\n key: SymmetricCryptoKey): Promise {\n const keyForEnc = await this.getKeyForEncryption(key);\n const theKey = this.resolveLegacyKey(encType, keyForEnc);\n\n if (theKey.macKey != null && mac == null) {\n this.logService.error('mac required.');\n return null;\n }\n\n if (theKey.encType !== encType) {\n this.logService.error('encType unavailable.');\n return null;\n }\n\n const fastParams = this.cryptoFunctionService.aesDecryptFastParameters(data, iv, mac, theKey);\n if (fastParams.macKey != null && fastParams.mac != null) {\n const computedMac = await this.cryptoFunctionService.hmacFast(fastParams.macData,\n fastParams.macKey, 'sha256');\n const macsEqual = await this.cryptoFunctionService.compareFast(fastParams.mac, computedMac);\n if (!macsEqual) {\n this.logService.error('mac failed.');\n return null;\n }\n }\n\n return this.cryptoFunctionService.aesDecryptFast(fastParams);\n }\n\n private async aesDecryptToBytes(encType: EncryptionType, data: ArrayBuffer, iv: ArrayBuffer,\n mac: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n const keyForEnc = await this.getKeyForEncryption(key);\n const theKey = this.resolveLegacyKey(encType, keyForEnc);\n\n if (theKey.macKey != null && mac == null) {\n return null;\n }\n\n if (theKey.encType !== encType) {\n return null;\n }\n\n if (theKey.macKey != null && mac != null) {\n const macData = new Uint8Array(iv.byteLength + data.byteLength);\n macData.set(new Uint8Array(iv), 0);\n macData.set(new Uint8Array(data), iv.byteLength);\n const computedMac = await this.cryptoFunctionService.hmac(macData.buffer, theKey.macKey, 'sha256');\n if (computedMac === null) {\n return null;\n }\n\n const macsMatch = await this.cryptoFunctionService.compare(mac, computedMac);\n if (!macsMatch) {\n this.logService.error('mac failed.');\n return null;\n }\n }\n\n return await this.cryptoFunctionService.aesDecrypt(data, iv, theKey.encKey);\n }\n\n private async getKeyForEncryption(key?: SymmetricCryptoKey): Promise {\n if (key != null) {\n return key;\n }\n\n const encKey = await this.getEncKey();\n if (encKey != null) {\n return encKey;\n }\n\n return await this.getKey();\n }\n\n private resolveLegacyKey(encType: EncryptionType, key: SymmetricCryptoKey): SymmetricCryptoKey {\n if (encType === EncryptionType.AesCbc128_HmacSha256_B64 &&\n key.encType === EncryptionType.AesCbc256_B64) {\n // Old encrypt-then-mac scheme, make a new key\n if (this.legacyEtmKey == null) {\n this.legacyEtmKey = new SymmetricCryptoKey(key.key, EncryptionType.AesCbc128_HmacSha256_B64);\n }\n return this.legacyEtmKey;\n }\n\n return key;\n }\n\n private async stretchKey(key: SymmetricCryptoKey): Promise {\n const newKey = new Uint8Array(64);\n const encKey = await this.cryptoFunctionService.hkdfExpand(key.key, 'enc', 32, 'sha256');\n const macKey = await this.cryptoFunctionService.hkdfExpand(key.key, 'mac', 32, 'sha256');\n newKey.set(new Uint8Array(encKey));\n newKey.set(new Uint8Array(macKey), 32);\n return new SymmetricCryptoKey(newKey.buffer);\n }\n\n private async hashPhrase(hash: ArrayBuffer, minimumEntropy: number = 64) {\n const entropyPerWord = Math.log(EEFLongWordList.length) / Math.log(2);\n let numWords = Math.ceil(minimumEntropy / entropyPerWord);\n\n const hashArr = Array.from(new Uint8Array(hash));\n const entropyAvailable = hashArr.length * 4;\n if (numWords * entropyPerWord > entropyAvailable) {\n throw new Error('Output entropy of hash function is too small');\n }\n\n const phrase: string[] = [];\n let hashNumber = bigInt.fromArray(hashArr, 256);\n while (numWords--) {\n const remainder = hashNumber.mod(EEFLongWordList.length);\n hashNumber = hashNumber.divide(EEFLongWordList.length);\n phrase.push(EEFLongWordList[remainder as any]);\n }\n return phrase;\n }\n\n private async buildEncKey(key: SymmetricCryptoKey, encKey: ArrayBuffer)\n : Promise<[SymmetricCryptoKey, CipherString]> {\n let encKeyEnc: CipherString = null;\n if (key.key.byteLength === 32) {\n const newKey = await this.stretchKey(key);\n encKeyEnc = await this.encrypt(encKey, newKey);\n } else if (key.key.byteLength === 64) {\n encKeyEnc = await this.encrypt(encKey, key);\n } else {\n throw new Error('Invalid key size.');\n }\n return [new SymmetricCryptoKey(encKey), encKeyEnc];\n }\n}\n","// EFF's Long Wordlist from https://www.eff.org/dice\nexport const EEFLongWordList = [\n 'abacus',\n 'abdomen',\n 'abdominal',\n 'abide',\n 'abiding',\n 'ability',\n 'ablaze',\n 'able',\n 'abnormal',\n 'abrasion',\n 'abrasive',\n 'abreast',\n 'abridge',\n 'abroad',\n 'abruptly',\n 'absence',\n 'absentee',\n 'absently',\n 'absinthe',\n 'absolute',\n 'absolve',\n 'abstain',\n 'abstract',\n 'absurd',\n 'accent',\n 'acclaim',\n 'acclimate',\n 'accompany',\n 'account',\n 'accuracy',\n 'accurate',\n 'accustom',\n 'acetone',\n 'achiness',\n 'aching',\n 'acid',\n 'acorn',\n 'acquaint',\n 'acquire',\n 'acre',\n 'acrobat',\n 'acronym',\n 'acting',\n 'action',\n 'activate',\n 'activator',\n 'active',\n 'activism',\n 'activist',\n 'activity',\n 'actress',\n 'acts',\n 'acutely',\n 'acuteness',\n 'aeration',\n 'aerobics',\n 'aerosol',\n 'aerospace',\n 'afar',\n 'affair',\n 'affected',\n 'affecting',\n 'affection',\n 'affidavit',\n 'affiliate',\n 'affirm',\n 'affix',\n 'afflicted',\n 'affluent',\n 'afford',\n 'affront',\n 'aflame',\n 'afloat',\n 'aflutter',\n 'afoot',\n 'afraid',\n 'afterglow',\n 'afterlife',\n 'aftermath',\n 'aftermost',\n 'afternoon',\n 'aged',\n 'ageless',\n 'agency',\n 'agenda',\n 'agent',\n 'aggregate',\n 'aghast',\n 'agile',\n 'agility',\n 'aging',\n 'agnostic',\n 'agonize',\n 'agonizing',\n 'agony',\n 'agreeable',\n 'agreeably',\n 'agreed',\n 'agreeing',\n 'agreement',\n 'aground',\n 'ahead',\n 'ahoy',\n 'aide',\n 'aids',\n 'aim',\n 'ajar',\n 'alabaster',\n 'alarm',\n 'albatross',\n 'album',\n 'alfalfa',\n 'algebra',\n 'algorithm',\n 'alias',\n 'alibi',\n 'alienable',\n 'alienate',\n 'aliens',\n 'alike',\n 'alive',\n 'alkaline',\n 'alkalize',\n 'almanac',\n 'almighty',\n 'almost',\n 'aloe',\n 'aloft',\n 'aloha',\n 'alone',\n 'alongside',\n 'aloof',\n 'alphabet',\n 'alright',\n 'although',\n 'altitude',\n 'alto',\n 'aluminum',\n 'alumni',\n 'always',\n 'amaretto',\n 'amaze',\n 'amazingly',\n 'amber',\n 'ambiance',\n 'ambiguity',\n 'ambiguous',\n 'ambition',\n 'ambitious',\n 'ambulance',\n 'ambush',\n 'amendable',\n 'amendment',\n 'amends',\n 'amenity',\n 'amiable',\n 'amicably',\n 'amid',\n 'amigo',\n 'amino',\n 'amiss',\n 'ammonia',\n 'ammonium',\n 'amnesty',\n 'amniotic',\n 'among',\n 'amount',\n 'amperage',\n 'ample',\n 'amplifier',\n 'amplify',\n 'amply',\n 'amuck',\n 'amulet',\n 'amusable',\n 'amused',\n 'amusement',\n 'amuser',\n 'amusing',\n 'anaconda',\n 'anaerobic',\n 'anagram',\n 'anatomist',\n 'anatomy',\n 'anchor',\n 'anchovy',\n 'ancient',\n 'android',\n 'anemia',\n 'anemic',\n 'aneurism',\n 'anew',\n 'angelfish',\n 'angelic',\n 'anger',\n 'angled',\n 'angler',\n 'angles',\n 'angling',\n 'angrily',\n 'angriness',\n 'anguished',\n 'angular',\n 'animal',\n 'animate',\n 'animating',\n 'animation',\n 'animator',\n 'anime',\n 'animosity',\n 'ankle',\n 'annex',\n 'annotate',\n 'announcer',\n 'annoying',\n 'annually',\n 'annuity',\n 'anointer',\n 'another',\n 'answering',\n 'antacid',\n 'antarctic',\n 'anteater',\n 'antelope',\n 'antennae',\n 'anthem',\n 'anthill',\n 'anthology',\n 'antibody',\n 'antics',\n 'antidote',\n 'antihero',\n 'antiquely',\n 'antiques',\n 'antiquity',\n 'antirust',\n 'antitoxic',\n 'antitrust',\n 'antiviral',\n 'antivirus',\n 'antler',\n 'antonym',\n 'antsy',\n 'anvil',\n 'anybody',\n 'anyhow',\n 'anymore',\n 'anyone',\n 'anyplace',\n 'anything',\n 'anytime',\n 'anyway',\n 'anywhere',\n 'aorta',\n 'apache',\n 'apostle',\n 'appealing',\n 'appear',\n 'appease',\n 'appeasing',\n 'appendage',\n 'appendix',\n 'appetite',\n 'appetizer',\n 'applaud',\n 'applause',\n 'apple',\n 'appliance',\n 'applicant',\n 'applied',\n 'apply',\n 'appointee',\n 'appraisal',\n 'appraiser',\n 'apprehend',\n 'approach',\n 'approval',\n 'approve',\n 'apricot',\n 'april',\n 'apron',\n 'aptitude',\n 'aptly',\n 'aqua',\n 'aqueduct',\n 'arbitrary',\n 'arbitrate',\n 'ardently',\n 'area',\n 'arena',\n 'arguable',\n 'arguably',\n 'argue',\n 'arise',\n 'armadillo',\n 'armband',\n 'armchair',\n 'armed',\n 'armful',\n 'armhole',\n 'arming',\n 'armless',\n 'armoire',\n 'armored',\n 'armory',\n 'armrest',\n 'army',\n 'aroma',\n 'arose',\n 'around',\n 'arousal',\n 'arrange',\n 'array',\n 'arrest',\n 'arrival',\n 'arrive',\n 'arrogance',\n 'arrogant',\n 'arson',\n 'art',\n 'ascend',\n 'ascension',\n 'ascent',\n 'ascertain',\n 'ashamed',\n 'ashen',\n 'ashes',\n 'ashy',\n 'aside',\n 'askew',\n 'asleep',\n 'asparagus',\n 'aspect',\n 'aspirate',\n 'aspire',\n 'aspirin',\n 'astonish',\n 'astound',\n 'astride',\n 'astrology',\n 'astronaut',\n 'astronomy',\n 'astute',\n 'atlantic',\n 'atlas',\n 'atom',\n 'atonable',\n 'atop',\n 'atrium',\n 'atrocious',\n 'atrophy',\n 'attach',\n 'attain',\n 'attempt',\n 'attendant',\n 'attendee',\n 'attention',\n 'attentive',\n 'attest',\n 'attic',\n 'attire',\n 'attitude',\n 'attractor',\n 'attribute',\n 'atypical',\n 'auction',\n 'audacious',\n 'audacity',\n 'audible',\n 'audibly',\n 'audience',\n 'audio',\n 'audition',\n 'augmented',\n 'august',\n 'authentic',\n 'author',\n 'autism',\n 'autistic',\n 'autograph',\n 'automaker',\n 'automated',\n 'automatic',\n 'autopilot',\n 'available',\n 'avalanche',\n 'avatar',\n 'avenge',\n 'avenging',\n 'avenue',\n 'average',\n 'aversion',\n 'avert',\n 'aviation',\n 'aviator',\n 'avid',\n 'avoid',\n 'await',\n 'awaken',\n 'award',\n 'aware',\n 'awhile',\n 'awkward',\n 'awning',\n 'awoke',\n 'awry',\n 'axis',\n 'babble',\n 'babbling',\n 'babied',\n 'baboon',\n 'backache',\n 'backboard',\n 'backboned',\n 'backdrop',\n 'backed',\n 'backer',\n 'backfield',\n 'backfire',\n 'backhand',\n 'backing',\n 'backlands',\n 'backlash',\n 'backless',\n 'backlight',\n 'backlit',\n 'backlog',\n 'backpack',\n 'backpedal',\n 'backrest',\n 'backroom',\n 'backshift',\n 'backside',\n 'backslid',\n 'backspace',\n 'backspin',\n 'backstab',\n 'backstage',\n 'backtalk',\n 'backtrack',\n 'backup',\n 'backward',\n 'backwash',\n 'backwater',\n 'backyard',\n 'bacon',\n 'bacteria',\n 'bacterium',\n 'badass',\n 'badge',\n 'badland',\n 'badly',\n 'badness',\n 'baffle',\n 'baffling',\n 'bagel',\n 'bagful',\n 'baggage',\n 'bagged',\n 'baggie',\n 'bagginess',\n 'bagging',\n 'baggy',\n 'bagpipe',\n 'baguette',\n 'baked',\n 'bakery',\n 'bakeshop',\n 'baking',\n 'balance',\n 'balancing',\n 'balcony',\n 'balmy',\n 'balsamic',\n 'bamboo',\n 'banana',\n 'banish',\n 'banister',\n 'banjo',\n 'bankable',\n 'bankbook',\n 'banked',\n 'banker',\n 'banking',\n 'banknote',\n 'bankroll',\n 'banner',\n 'bannister',\n 'banshee',\n 'banter',\n 'barbecue',\n 'barbed',\n 'barbell',\n 'barber',\n 'barcode',\n 'barge',\n 'bargraph',\n 'barista',\n 'baritone',\n 'barley',\n 'barmaid',\n 'barman',\n 'barn',\n 'barometer',\n 'barrack',\n 'barracuda',\n 'barrel',\n 'barrette',\n 'barricade',\n 'barrier',\n 'barstool',\n 'bartender',\n 'barterer',\n 'bash',\n 'basically',\n 'basics',\n 'basil',\n 'basin',\n 'basis',\n 'basket',\n 'batboy',\n 'batch',\n 'bath',\n 'baton',\n 'bats',\n 'battalion',\n 'battered',\n 'battering',\n 'battery',\n 'batting',\n 'battle',\n 'bauble',\n 'bazooka',\n 'blabber',\n 'bladder',\n 'blade',\n 'blah',\n 'blame',\n 'blaming',\n 'blanching',\n 'blandness',\n 'blank',\n 'blaspheme',\n 'blasphemy',\n 'blast',\n 'blatancy',\n 'blatantly',\n 'blazer',\n 'blazing',\n 'bleach',\n 'bleak',\n 'bleep',\n 'blemish',\n 'blend',\n 'bless',\n 'blighted',\n 'blimp',\n 'bling',\n 'blinked',\n 'blinker',\n 'blinking',\n 'blinks',\n 'blip',\n 'blissful',\n 'blitz',\n 'blizzard',\n 'bloated',\n 'bloating',\n 'blob',\n 'blog',\n 'bloomers',\n 'blooming',\n 'blooper',\n 'blot',\n 'blouse',\n 'blubber',\n 'bluff',\n 'bluish',\n 'blunderer',\n 'blunt',\n 'blurb',\n 'blurred',\n 'blurry',\n 'blurt',\n 'blush',\n 'blustery',\n 'boaster',\n 'boastful',\n 'boasting',\n 'boat',\n 'bobbed',\n 'bobbing',\n 'bobble',\n 'bobcat',\n 'bobsled',\n 'bobtail',\n 'bodacious',\n 'body',\n 'bogged',\n 'boggle',\n 'bogus',\n 'boil',\n 'bok',\n 'bolster',\n 'bolt',\n 'bonanza',\n 'bonded',\n 'bonding',\n 'bondless',\n 'boned',\n 'bonehead',\n 'boneless',\n 'bonelike',\n 'boney',\n 'bonfire',\n 'bonnet',\n 'bonsai',\n 'bonus',\n 'bony',\n 'boogeyman',\n 'boogieman',\n 'book',\n 'boondocks',\n 'booted',\n 'booth',\n 'bootie',\n 'booting',\n 'bootlace',\n 'bootleg',\n 'boots',\n 'boozy',\n 'borax',\n 'boring',\n 'borough',\n 'borrower',\n 'borrowing',\n 'boss',\n 'botanical',\n 'botanist',\n 'botany',\n 'botch',\n 'both',\n 'bottle',\n 'bottling',\n 'bottom',\n 'bounce',\n 'bouncing',\n 'bouncy',\n 'bounding',\n 'boundless',\n 'bountiful',\n 'bovine',\n 'boxcar',\n 'boxer',\n 'boxing',\n 'boxlike',\n 'boxy',\n 'breach',\n 'breath',\n 'breeches',\n 'breeching',\n 'breeder',\n 'breeding',\n 'breeze',\n 'breezy',\n 'brethren',\n 'brewery',\n 'brewing',\n 'briar',\n 'bribe',\n 'brick',\n 'bride',\n 'bridged',\n 'brigade',\n 'bright',\n 'brilliant',\n 'brim',\n 'bring',\n 'brink',\n 'brisket',\n 'briskly',\n 'briskness',\n 'bristle',\n 'brittle',\n 'broadband',\n 'broadcast',\n 'broaden',\n 'broadly',\n 'broadness',\n 'broadside',\n 'broadways',\n 'broiler',\n 'broiling',\n 'broken',\n 'broker',\n 'bronchial',\n 'bronco',\n 'bronze',\n 'bronzing',\n 'brook',\n 'broom',\n 'brought',\n 'browbeat',\n 'brownnose',\n 'browse',\n 'browsing',\n 'bruising',\n 'brunch',\n 'brunette',\n 'brunt',\n 'brush',\n 'brussels',\n 'brute',\n 'brutishly',\n 'bubble',\n 'bubbling',\n 'bubbly',\n 'buccaneer',\n 'bucked',\n 'bucket',\n 'buckle',\n 'buckshot',\n 'buckskin',\n 'bucktooth',\n 'buckwheat',\n 'buddhism',\n 'buddhist',\n 'budding',\n 'buddy',\n 'budget',\n 'buffalo',\n 'buffed',\n 'buffer',\n 'buffing',\n 'buffoon',\n 'buggy',\n 'bulb',\n 'bulge',\n 'bulginess',\n 'bulgur',\n 'bulk',\n 'bulldog',\n 'bulldozer',\n 'bullfight',\n 'bullfrog',\n 'bullhorn',\n 'bullion',\n 'bullish',\n 'bullpen',\n 'bullring',\n 'bullseye',\n 'bullwhip',\n 'bully',\n 'bunch',\n 'bundle',\n 'bungee',\n 'bunion',\n 'bunkbed',\n 'bunkhouse',\n 'bunkmate',\n 'bunny',\n 'bunt',\n 'busboy',\n 'bush',\n 'busily',\n 'busload',\n 'bust',\n 'busybody',\n 'buzz',\n 'cabana',\n 'cabbage',\n 'cabbie',\n 'cabdriver',\n 'cable',\n 'caboose',\n 'cache',\n 'cackle',\n 'cacti',\n 'cactus',\n 'caddie',\n 'caddy',\n 'cadet',\n 'cadillac',\n 'cadmium',\n 'cage',\n 'cahoots',\n 'cake',\n 'calamari',\n 'calamity',\n 'calcium',\n 'calculate',\n 'calculus',\n 'caliber',\n 'calibrate',\n 'calm',\n 'caloric',\n 'calorie',\n 'calzone',\n 'camcorder',\n 'cameo',\n 'camera',\n 'camisole',\n 'camper',\n 'campfire',\n 'camping',\n 'campsite',\n 'campus',\n 'canal',\n 'canary',\n 'cancel',\n 'candied',\n 'candle',\n 'candy',\n 'cane',\n 'canine',\n 'canister',\n 'cannabis',\n 'canned',\n 'canning',\n 'cannon',\n 'cannot',\n 'canola',\n 'canon',\n 'canopener',\n 'canopy',\n 'canteen',\n 'canyon',\n 'capable',\n 'capably',\n 'capacity',\n 'cape',\n 'capillary',\n 'capital',\n 'capitol',\n 'capped',\n 'capricorn',\n 'capsize',\n 'capsule',\n 'caption',\n 'captivate',\n 'captive',\n 'captivity',\n 'capture',\n 'caramel',\n 'carat',\n 'caravan',\n 'carbon',\n 'cardboard',\n 'carded',\n 'cardiac',\n 'cardigan',\n 'cardinal',\n 'cardstock',\n 'carefully',\n 'caregiver',\n 'careless',\n 'caress',\n 'caretaker',\n 'cargo',\n 'caring',\n 'carless',\n 'carload',\n 'carmaker',\n 'carnage',\n 'carnation',\n 'carnival',\n 'carnivore',\n 'carol',\n 'carpenter',\n 'carpentry',\n 'carpool',\n 'carport',\n 'carried',\n 'carrot',\n 'carrousel',\n 'carry',\n 'cartel',\n 'cartload',\n 'carton',\n 'cartoon',\n 'cartridge',\n 'cartwheel',\n 'carve',\n 'carving',\n 'carwash',\n 'cascade',\n 'case',\n 'cash',\n 'casing',\n 'casino',\n 'casket',\n 'cassette',\n 'casually',\n 'casualty',\n 'catacomb',\n 'catalog',\n 'catalyst',\n 'catalyze',\n 'catapult',\n 'cataract',\n 'catatonic',\n 'catcall',\n 'catchable',\n 'catcher',\n 'catching',\n 'catchy',\n 'caterer',\n 'catering',\n 'catfight',\n 'catfish',\n 'cathedral',\n 'cathouse',\n 'catlike',\n 'catnap',\n 'catnip',\n 'catsup',\n 'cattail',\n 'cattishly',\n 'cattle',\n 'catty',\n 'catwalk',\n 'caucasian',\n 'caucus',\n 'causal',\n 'causation',\n 'cause',\n 'causing',\n 'cauterize',\n 'caution',\n 'cautious',\n 'cavalier',\n 'cavalry',\n 'caviar',\n 'cavity',\n 'cedar',\n 'celery',\n 'celestial',\n 'celibacy',\n 'celibate',\n 'celtic',\n 'cement',\n 'census',\n 'ceramics',\n 'ceremony',\n 'certainly',\n 'certainty',\n 'certified',\n 'certify',\n 'cesarean',\n 'cesspool',\n 'chafe',\n 'chaffing',\n 'chain',\n 'chair',\n 'chalice',\n 'challenge',\n 'chamber',\n 'chamomile',\n 'champion',\n 'chance',\n 'change',\n 'channel',\n 'chant',\n 'chaos',\n 'chaperone',\n 'chaplain',\n 'chapped',\n 'chaps',\n 'chapter',\n 'character',\n 'charbroil',\n 'charcoal',\n 'charger',\n 'charging',\n 'chariot',\n 'charity',\n 'charm',\n 'charred',\n 'charter',\n 'charting',\n 'chase',\n 'chasing',\n 'chaste',\n 'chastise',\n 'chastity',\n 'chatroom',\n 'chatter',\n 'chatting',\n 'chatty',\n 'cheating',\n 'cheddar',\n 'cheek',\n 'cheer',\n 'cheese',\n 'cheesy',\n 'chef',\n 'chemicals',\n 'chemist',\n 'chemo',\n 'cherisher',\n 'cherub',\n 'chess',\n 'chest',\n 'chevron',\n 'chevy',\n 'chewable',\n 'chewer',\n 'chewing',\n 'chewy',\n 'chief',\n 'chihuahua',\n 'childcare',\n 'childhood',\n 'childish',\n 'childless',\n 'childlike',\n 'chili',\n 'chill',\n 'chimp',\n 'chip',\n 'chirping',\n 'chirpy',\n 'chitchat',\n 'chivalry',\n 'chive',\n 'chloride',\n 'chlorine',\n 'choice',\n 'chokehold',\n 'choking',\n 'chomp',\n 'chooser',\n 'choosing',\n 'choosy',\n 'chop',\n 'chosen',\n 'chowder',\n 'chowtime',\n 'chrome',\n 'chubby',\n 'chuck',\n 'chug',\n 'chummy',\n 'chump',\n 'chunk',\n 'churn',\n 'chute',\n 'cider',\n 'cilantro',\n 'cinch',\n 'cinema',\n 'cinnamon',\n 'circle',\n 'circling',\n 'circular',\n 'circulate',\n 'circus',\n 'citable',\n 'citadel',\n 'citation',\n 'citizen',\n 'citric',\n 'citrus',\n 'city',\n 'civic',\n 'civil',\n 'clad',\n 'claim',\n 'clambake',\n 'clammy',\n 'clamor',\n 'clamp',\n 'clamshell',\n 'clang',\n 'clanking',\n 'clapped',\n 'clapper',\n 'clapping',\n 'clarify',\n 'clarinet',\n 'clarity',\n 'clash',\n 'clasp',\n 'class',\n 'clatter',\n 'clause',\n 'clavicle',\n 'claw',\n 'clay',\n 'clean',\n 'clear',\n 'cleat',\n 'cleaver',\n 'cleft',\n 'clench',\n 'clergyman',\n 'clerical',\n 'clerk',\n 'clever',\n 'clicker',\n 'client',\n 'climate',\n 'climatic',\n 'cling',\n 'clinic',\n 'clinking',\n 'clip',\n 'clique',\n 'cloak',\n 'clobber',\n 'clock',\n 'clone',\n 'cloning',\n 'closable',\n 'closure',\n 'clothes',\n 'clothing',\n 'cloud',\n 'clover',\n 'clubbed',\n 'clubbing',\n 'clubhouse',\n 'clump',\n 'clumsily',\n 'clumsy',\n 'clunky',\n 'clustered',\n 'clutch',\n 'clutter',\n 'coach',\n 'coagulant',\n 'coastal',\n 'coaster',\n 'coasting',\n 'coastland',\n 'coastline',\n 'coat',\n 'coauthor',\n 'cobalt',\n 'cobbler',\n 'cobweb',\n 'cocoa',\n 'coconut',\n 'cod',\n 'coeditor',\n 'coerce',\n 'coexist',\n 'coffee',\n 'cofounder',\n 'cognition',\n 'cognitive',\n 'cogwheel',\n 'coherence',\n 'coherent',\n 'cohesive',\n 'coil',\n 'coke',\n 'cola',\n 'cold',\n 'coleslaw',\n 'coliseum',\n 'collage',\n 'collapse',\n 'collar',\n 'collected',\n 'collector',\n 'collide',\n 'collie',\n 'collision',\n 'colonial',\n 'colonist',\n 'colonize',\n 'colony',\n 'colossal',\n 'colt',\n 'coma',\n 'come',\n 'comfort',\n 'comfy',\n 'comic',\n 'coming',\n 'comma',\n 'commence',\n 'commend',\n 'comment',\n 'commerce',\n 'commode',\n 'commodity',\n 'commodore',\n 'common',\n 'commotion',\n 'commute',\n 'commuting',\n 'compacted',\n 'compacter',\n 'compactly',\n 'compactor',\n 'companion',\n 'company',\n 'compare',\n 'compel',\n 'compile',\n 'comply',\n 'component',\n 'composed',\n 'composer',\n 'composite',\n 'compost',\n 'composure',\n 'compound',\n 'compress',\n 'comprised',\n 'computer',\n 'computing',\n 'comrade',\n 'concave',\n 'conceal',\n 'conceded',\n 'concept',\n 'concerned',\n 'concert',\n 'conch',\n 'concierge',\n 'concise',\n 'conclude',\n 'concrete',\n 'concur',\n 'condense',\n 'condiment',\n 'condition',\n 'condone',\n 'conducive',\n 'conductor',\n 'conduit',\n 'cone',\n 'confess',\n 'confetti',\n 'confidant',\n 'confident',\n 'confider',\n 'confiding',\n 'configure',\n 'confined',\n 'confining',\n 'confirm',\n 'conflict',\n 'conform',\n 'confound',\n 'confront',\n 'confused',\n 'confusing',\n 'confusion',\n 'congenial',\n 'congested',\n 'congrats',\n 'congress',\n 'conical',\n 'conjoined',\n 'conjure',\n 'conjuror',\n 'connected',\n 'connector',\n 'consensus',\n 'consent',\n 'console',\n 'consoling',\n 'consonant',\n 'constable',\n 'constant',\n 'constrain',\n 'constrict',\n 'construct',\n 'consult',\n 'consumer',\n 'consuming',\n 'contact',\n 'container',\n 'contempt',\n 'contend',\n 'contented',\n 'contently',\n 'contents',\n 'contest',\n 'context',\n 'contort',\n 'contour',\n 'contrite',\n 'control',\n 'contusion',\n 'convene',\n 'convent',\n 'copartner',\n 'cope',\n 'copied',\n 'copier',\n 'copilot',\n 'coping',\n 'copious',\n 'copper',\n 'copy',\n 'coral',\n 'cork',\n 'cornball',\n 'cornbread',\n 'corncob',\n 'cornea',\n 'corned',\n 'corner',\n 'cornfield',\n 'cornflake',\n 'cornhusk',\n 'cornmeal',\n 'cornstalk',\n 'corny',\n 'coronary',\n 'coroner',\n 'corporal',\n 'corporate',\n 'corral',\n 'correct',\n 'corridor',\n 'corrode',\n 'corroding',\n 'corrosive',\n 'corsage',\n 'corset',\n 'cortex',\n 'cosigner',\n 'cosmetics',\n 'cosmic',\n 'cosmos',\n 'cosponsor',\n 'cost',\n 'cottage',\n 'cotton',\n 'couch',\n 'cough',\n 'could',\n 'countable',\n 'countdown',\n 'counting',\n 'countless',\n 'country',\n 'county',\n 'courier',\n 'covenant',\n 'cover',\n 'coveted',\n 'coveting',\n 'coyness',\n 'cozily',\n 'coziness',\n 'cozy',\n 'crabbing',\n 'crabgrass',\n 'crablike',\n 'crabmeat',\n 'cradle',\n 'cradling',\n 'crafter',\n 'craftily',\n 'craftsman',\n 'craftwork',\n 'crafty',\n 'cramp',\n 'cranberry',\n 'crane',\n 'cranial',\n 'cranium',\n 'crank',\n 'crate',\n 'crave',\n 'craving',\n 'crawfish',\n 'crawlers',\n 'crawling',\n 'crayfish',\n 'crayon',\n 'crazed',\n 'crazily',\n 'craziness',\n 'crazy',\n 'creamed',\n 'creamer',\n 'creamlike',\n 'crease',\n 'creasing',\n 'creatable',\n 'create',\n 'creation',\n 'creative',\n 'creature',\n 'credible',\n 'credibly',\n 'credit',\n 'creed',\n 'creme',\n 'creole',\n 'crepe',\n 'crept',\n 'crescent',\n 'crested',\n 'cresting',\n 'crestless',\n 'crevice',\n 'crewless',\n 'crewman',\n 'crewmate',\n 'crib',\n 'cricket',\n 'cried',\n 'crier',\n 'crimp',\n 'crimson',\n 'cringe',\n 'cringing',\n 'crinkle',\n 'crinkly',\n 'crisped',\n 'crisping',\n 'crisply',\n 'crispness',\n 'crispy',\n 'criteria',\n 'critter',\n 'croak',\n 'crock',\n 'crook',\n 'croon',\n 'crop',\n 'cross',\n 'crouch',\n 'crouton',\n 'crowbar',\n 'crowd',\n 'crown',\n 'crucial',\n 'crudely',\n 'crudeness',\n 'cruelly',\n 'cruelness',\n 'cruelty',\n 'crumb',\n 'crummiest',\n 'crummy',\n 'crumpet',\n 'crumpled',\n 'cruncher',\n 'crunching',\n 'crunchy',\n 'crusader',\n 'crushable',\n 'crushed',\n 'crusher',\n 'crushing',\n 'crust',\n 'crux',\n 'crying',\n 'cryptic',\n 'crystal',\n 'cubbyhole',\n 'cube',\n 'cubical',\n 'cubicle',\n 'cucumber',\n 'cuddle',\n 'cuddly',\n 'cufflink',\n 'culinary',\n 'culminate',\n 'culpable',\n 'culprit',\n 'cultivate',\n 'cultural',\n 'culture',\n 'cupbearer',\n 'cupcake',\n 'cupid',\n 'cupped',\n 'cupping',\n 'curable',\n 'curator',\n 'curdle',\n 'cure',\n 'curfew',\n 'curing',\n 'curled',\n 'curler',\n 'curliness',\n 'curling',\n 'curly',\n 'curry',\n 'curse',\n 'cursive',\n 'cursor',\n 'curtain',\n 'curtly',\n 'curtsy',\n 'curvature',\n 'curve',\n 'curvy',\n 'cushy',\n 'cusp',\n 'cussed',\n 'custard',\n 'custodian',\n 'custody',\n 'customary',\n 'customer',\n 'customize',\n 'customs',\n 'cut',\n 'cycle',\n 'cyclic',\n 'cycling',\n 'cyclist',\n 'cylinder',\n 'cymbal',\n 'cytoplasm',\n 'cytoplast',\n 'dab',\n 'dad',\n 'daffodil',\n 'dagger',\n 'daily',\n 'daintily',\n 'dainty',\n 'dairy',\n 'daisy',\n 'dallying',\n 'dance',\n 'dancing',\n 'dandelion',\n 'dander',\n 'dandruff',\n 'dandy',\n 'danger',\n 'dangle',\n 'dangling',\n 'daredevil',\n 'dares',\n 'daringly',\n 'darkened',\n 'darkening',\n 'darkish',\n 'darkness',\n 'darkroom',\n 'darling',\n 'darn',\n 'dart',\n 'darwinism',\n 'dash',\n 'dastardly',\n 'data',\n 'datebook',\n 'dating',\n 'daughter',\n 'daunting',\n 'dawdler',\n 'dawn',\n 'daybed',\n 'daybreak',\n 'daycare',\n 'daydream',\n 'daylight',\n 'daylong',\n 'dayroom',\n 'daytime',\n 'dazzler',\n 'dazzling',\n 'deacon',\n 'deafening',\n 'deafness',\n 'dealer',\n 'dealing',\n 'dealmaker',\n 'dealt',\n 'dean',\n 'debatable',\n 'debate',\n 'debating',\n 'debit',\n 'debrief',\n 'debtless',\n 'debtor',\n 'debug',\n 'debunk',\n 'decade',\n 'decaf',\n 'decal',\n 'decathlon',\n 'decay',\n 'deceased',\n 'deceit',\n 'deceiver',\n 'deceiving',\n 'december',\n 'decency',\n 'decent',\n 'deception',\n 'deceptive',\n 'decibel',\n 'decidable',\n 'decimal',\n 'decimeter',\n 'decipher',\n 'deck',\n 'declared',\n 'decline',\n 'decode',\n 'decompose',\n 'decorated',\n 'decorator',\n 'decoy',\n 'decrease',\n 'decree',\n 'dedicate',\n 'dedicator',\n 'deduce',\n 'deduct',\n 'deed',\n 'deem',\n 'deepen',\n 'deeply',\n 'deepness',\n 'deface',\n 'defacing',\n 'defame',\n 'default',\n 'defeat',\n 'defection',\n 'defective',\n 'defendant',\n 'defender',\n 'defense',\n 'defensive',\n 'deferral',\n 'deferred',\n 'defiance',\n 'defiant',\n 'defile',\n 'defiling',\n 'define',\n 'definite',\n 'deflate',\n 'deflation',\n 'deflator',\n 'deflected',\n 'deflector',\n 'defog',\n 'deforest',\n 'defraud',\n 'defrost',\n 'deftly',\n 'defuse',\n 'defy',\n 'degraded',\n 'degrading',\n 'degrease',\n 'degree',\n 'dehydrate',\n 'deity',\n 'dejected',\n 'delay',\n 'delegate',\n 'delegator',\n 'delete',\n 'deletion',\n 'delicacy',\n 'delicate',\n 'delicious',\n 'delighted',\n 'delirious',\n 'delirium',\n 'deliverer',\n 'delivery',\n 'delouse',\n 'delta',\n 'deluge',\n 'delusion',\n 'deluxe',\n 'demanding',\n 'demeaning',\n 'demeanor',\n 'demise',\n 'democracy',\n 'democrat',\n 'demote',\n 'demotion',\n 'demystify',\n 'denatured',\n 'deniable',\n 'denial',\n 'denim',\n 'denote',\n 'dense',\n 'density',\n 'dental',\n 'dentist',\n 'denture',\n 'deny',\n 'deodorant',\n 'deodorize',\n 'departed',\n 'departure',\n 'depict',\n 'deplete',\n 'depletion',\n 'deplored',\n 'deploy',\n 'deport',\n 'depose',\n 'depraved',\n 'depravity',\n 'deprecate',\n 'depress',\n 'deprive',\n 'depth',\n 'deputize',\n 'deputy',\n 'derail',\n 'deranged',\n 'derby',\n 'derived',\n 'desecrate',\n 'deserve',\n 'deserving',\n 'designate',\n 'designed',\n 'designer',\n 'designing',\n 'deskbound',\n 'desktop',\n 'deskwork',\n 'desolate',\n 'despair',\n 'despise',\n 'despite',\n 'destiny',\n 'destitute',\n 'destruct',\n 'detached',\n 'detail',\n 'detection',\n 'detective',\n 'detector',\n 'detention',\n 'detergent',\n 'detest',\n 'detonate',\n 'detonator',\n 'detoxify',\n 'detract',\n 'deuce',\n 'devalue',\n 'deviancy',\n 'deviant',\n 'deviate',\n 'deviation',\n 'deviator',\n 'device',\n 'devious',\n 'devotedly',\n 'devotee',\n 'devotion',\n 'devourer',\n 'devouring',\n 'devoutly',\n 'dexterity',\n 'dexterous',\n 'diabetes',\n 'diabetic',\n 'diabolic',\n 'diagnoses',\n 'diagnosis',\n 'diagram',\n 'dial',\n 'diameter',\n 'diaper',\n 'diaphragm',\n 'diary',\n 'dice',\n 'dicing',\n 'dictate',\n 'dictation',\n 'dictator',\n 'difficult',\n 'diffused',\n 'diffuser',\n 'diffusion',\n 'diffusive',\n 'dig',\n 'dilation',\n 'diligence',\n 'diligent',\n 'dill',\n 'dilute',\n 'dime',\n 'diminish',\n 'dimly',\n 'dimmed',\n 'dimmer',\n 'dimness',\n 'dimple',\n 'diner',\n 'dingbat',\n 'dinghy',\n 'dinginess',\n 'dingo',\n 'dingy',\n 'dining',\n 'dinner',\n 'diocese',\n 'dioxide',\n 'diploma',\n 'dipped',\n 'dipper',\n 'dipping',\n 'directed',\n 'direction',\n 'directive',\n 'directly',\n 'directory',\n 'direness',\n 'dirtiness',\n 'disabled',\n 'disagree',\n 'disallow',\n 'disarm',\n 'disarray',\n 'disaster',\n 'disband',\n 'disbelief',\n 'disburse',\n 'discard',\n 'discern',\n 'discharge',\n 'disclose',\n 'discolor',\n 'discount',\n 'discourse',\n 'discover',\n 'discuss',\n 'disdain',\n 'disengage',\n 'disfigure',\n 'disgrace',\n 'dish',\n 'disinfect',\n 'disjoin',\n 'disk',\n 'dislike',\n 'disliking',\n 'dislocate',\n 'dislodge',\n 'disloyal',\n 'dismantle',\n 'dismay',\n 'dismiss',\n 'dismount',\n 'disobey',\n 'disorder',\n 'disown',\n 'disparate',\n 'disparity',\n 'dispatch',\n 'dispense',\n 'dispersal',\n 'dispersed',\n 'disperser',\n 'displace',\n 'display',\n 'displease',\n 'disposal',\n 'dispose',\n 'disprove',\n 'dispute',\n 'disregard',\n 'disrupt',\n 'dissuade',\n 'distance',\n 'distant',\n 'distaste',\n 'distill',\n 'distinct',\n 'distort',\n 'distract',\n 'distress',\n 'district',\n 'distrust',\n 'ditch',\n 'ditto',\n 'ditzy',\n 'dividable',\n 'divided',\n 'dividend',\n 'dividers',\n 'dividing',\n 'divinely',\n 'diving',\n 'divinity',\n 'divisible',\n 'divisibly',\n 'division',\n 'divisive',\n 'divorcee',\n 'dizziness',\n 'dizzy',\n 'doable',\n 'docile',\n 'dock',\n 'doctrine',\n 'document',\n 'dodge',\n 'dodgy',\n 'doily',\n 'doing',\n 'dole',\n 'dollar',\n 'dollhouse',\n 'dollop',\n 'dolly',\n 'dolphin',\n 'domain',\n 'domelike',\n 'domestic',\n 'dominion',\n 'dominoes',\n 'donated',\n 'donation',\n 'donator',\n 'donor',\n 'donut',\n 'doodle',\n 'doorbell',\n 'doorframe',\n 'doorknob',\n 'doorman',\n 'doormat',\n 'doornail',\n 'doorpost',\n 'doorstep',\n 'doorstop',\n 'doorway',\n 'doozy',\n 'dork',\n 'dormitory',\n 'dorsal',\n 'dosage',\n 'dose',\n 'dotted',\n 'doubling',\n 'douche',\n 'dove',\n 'down',\n 'dowry',\n 'doze',\n 'drab',\n 'dragging',\n 'dragonfly',\n 'dragonish',\n 'dragster',\n 'drainable',\n 'drainage',\n 'drained',\n 'drainer',\n 'drainpipe',\n 'dramatic',\n 'dramatize',\n 'drank',\n 'drapery',\n 'drastic',\n 'draw',\n 'dreaded',\n 'dreadful',\n 'dreadlock',\n 'dreamboat',\n 'dreamily',\n 'dreamland',\n 'dreamless',\n 'dreamlike',\n 'dreamt',\n 'dreamy',\n 'drearily',\n 'dreary',\n 'drench',\n 'dress',\n 'drew',\n 'dribble',\n 'dried',\n 'drier',\n 'drift',\n 'driller',\n 'drilling',\n 'drinkable',\n 'drinking',\n 'dripping',\n 'drippy',\n 'drivable',\n 'driven',\n 'driver',\n 'driveway',\n 'driving',\n 'drizzle',\n 'drizzly',\n 'drone',\n 'drool',\n 'droop',\n 'drop-down',\n 'dropbox',\n 'dropkick',\n 'droplet',\n 'dropout',\n 'dropper',\n 'drove',\n 'drown',\n 'drowsily',\n 'drudge',\n 'drum',\n 'dry',\n 'dubbed',\n 'dubiously',\n 'duchess',\n 'duckbill',\n 'ducking',\n 'duckling',\n 'ducktail',\n 'ducky',\n 'duct',\n 'dude',\n 'duffel',\n 'dugout',\n 'duh',\n 'duke',\n 'duller',\n 'dullness',\n 'duly',\n 'dumping',\n 'dumpling',\n 'dumpster',\n 'duo',\n 'dupe',\n 'duplex',\n 'duplicate',\n 'duplicity',\n 'durable',\n 'durably',\n 'duration',\n 'duress',\n 'during',\n 'dusk',\n 'dust',\n 'dutiful',\n 'duty',\n 'duvet',\n 'dwarf',\n 'dweeb',\n 'dwelled',\n 'dweller',\n 'dwelling',\n 'dwindle',\n 'dwindling',\n 'dynamic',\n 'dynamite',\n 'dynasty',\n 'dyslexia',\n 'dyslexic',\n 'each',\n 'eagle',\n 'earache',\n 'eardrum',\n 'earflap',\n 'earful',\n 'earlobe',\n 'early',\n 'earmark',\n 'earmuff',\n 'earphone',\n 'earpiece',\n 'earplugs',\n 'earring',\n 'earshot',\n 'earthen',\n 'earthlike',\n 'earthling',\n 'earthly',\n 'earthworm',\n 'earthy',\n 'earwig',\n 'easeful',\n 'easel',\n 'easiest',\n 'easily',\n 'easiness',\n 'easing',\n 'eastbound',\n 'eastcoast',\n 'easter',\n 'eastward',\n 'eatable',\n 'eaten',\n 'eatery',\n 'eating',\n 'eats',\n 'ebay',\n 'ebony',\n 'ebook',\n 'ecard',\n 'eccentric',\n 'echo',\n 'eclair',\n 'eclipse',\n 'ecologist',\n 'ecology',\n 'economic',\n 'economist',\n 'economy',\n 'ecosphere',\n 'ecosystem',\n 'edge',\n 'edginess',\n 'edging',\n 'edgy',\n 'edition',\n 'editor',\n 'educated',\n 'education',\n 'educator',\n 'eel',\n 'effective',\n 'effects',\n 'efficient',\n 'effort',\n 'eggbeater',\n 'egging',\n 'eggnog',\n 'eggplant',\n 'eggshell',\n 'egomaniac',\n 'egotism',\n 'egotistic',\n 'either',\n 'eject',\n 'elaborate',\n 'elastic',\n 'elated',\n 'elbow',\n 'eldercare',\n 'elderly',\n 'eldest',\n 'electable',\n 'election',\n 'elective',\n 'elephant',\n 'elevate',\n 'elevating',\n 'elevation',\n 'elevator',\n 'eleven',\n 'elf',\n 'eligible',\n 'eligibly',\n 'eliminate',\n 'elite',\n 'elitism',\n 'elixir',\n 'elk',\n 'ellipse',\n 'elliptic',\n 'elm',\n 'elongated',\n 'elope',\n 'eloquence',\n 'eloquent',\n 'elsewhere',\n 'elude',\n 'elusive',\n 'elves',\n 'email',\n 'embargo',\n 'embark',\n 'embassy',\n 'embattled',\n 'embellish',\n 'ember',\n 'embezzle',\n 'emblaze',\n 'emblem',\n 'embody',\n 'embolism',\n 'emboss',\n 'embroider',\n 'emcee',\n 'emerald',\n 'emergency',\n 'emission',\n 'emit',\n 'emote',\n 'emoticon',\n 'emotion',\n 'empathic',\n 'empathy',\n 'emperor',\n 'emphases',\n 'emphasis',\n 'emphasize',\n 'emphatic',\n 'empirical',\n 'employed',\n 'employee',\n 'employer',\n 'emporium',\n 'empower',\n 'emptier',\n 'emptiness',\n 'empty',\n 'emu',\n 'enable',\n 'enactment',\n 'enamel',\n 'enchanted',\n 'enchilada',\n 'encircle',\n 'enclose',\n 'enclosure',\n 'encode',\n 'encore',\n 'encounter',\n 'encourage',\n 'encroach',\n 'encrust',\n 'encrypt',\n 'endanger',\n 'endeared',\n 'endearing',\n 'ended',\n 'ending',\n 'endless',\n 'endnote',\n 'endocrine',\n 'endorphin',\n 'endorse',\n 'endowment',\n 'endpoint',\n 'endurable',\n 'endurance',\n 'enduring',\n 'energetic',\n 'energize',\n 'energy',\n 'enforced',\n 'enforcer',\n 'engaged',\n 'engaging',\n 'engine',\n 'engorge',\n 'engraved',\n 'engraver',\n 'engraving',\n 'engross',\n 'engulf',\n 'enhance',\n 'enigmatic',\n 'enjoyable',\n 'enjoyably',\n 'enjoyer',\n 'enjoying',\n 'enjoyment',\n 'enlarged',\n 'enlarging',\n 'enlighten',\n 'enlisted',\n 'enquirer',\n 'enrage',\n 'enrich',\n 'enroll',\n 'enslave',\n 'ensnare',\n 'ensure',\n 'entail',\n 'entangled',\n 'entering',\n 'entertain',\n 'enticing',\n 'entire',\n 'entitle',\n 'entity',\n 'entomb',\n 'entourage',\n 'entrap',\n 'entree',\n 'entrench',\n 'entrust',\n 'entryway',\n 'entwine',\n 'enunciate',\n 'envelope',\n 'enviable',\n 'enviably',\n 'envious',\n 'envision',\n 'envoy',\n 'envy',\n 'enzyme',\n 'epic',\n 'epidemic',\n 'epidermal',\n 'epidermis',\n 'epidural',\n 'epilepsy',\n 'epileptic',\n 'epilogue',\n 'epiphany',\n 'episode',\n 'equal',\n 'equate',\n 'equation',\n 'equator',\n 'equinox',\n 'equipment',\n 'equity',\n 'equivocal',\n 'eradicate',\n 'erasable',\n 'erased',\n 'eraser',\n 'erasure',\n 'ergonomic',\n 'errand',\n 'errant',\n 'erratic',\n 'error',\n 'erupt',\n 'escalate',\n 'escalator',\n 'escapable',\n 'escapade',\n 'escapist',\n 'escargot',\n 'eskimo',\n 'esophagus',\n 'espionage',\n 'espresso',\n 'esquire',\n 'essay',\n 'essence',\n 'essential',\n 'establish',\n 'estate',\n 'esteemed',\n 'estimate',\n 'estimator',\n 'estranged',\n 'estrogen',\n 'etching',\n 'eternal',\n 'eternity',\n 'ethanol',\n 'ether',\n 'ethically',\n 'ethics',\n 'euphemism',\n 'evacuate',\n 'evacuee',\n 'evade',\n 'evaluate',\n 'evaluator',\n 'evaporate',\n 'evasion',\n 'evasive',\n 'even',\n 'everglade',\n 'evergreen',\n 'everybody',\n 'everyday',\n 'everyone',\n 'evict',\n 'evidence',\n 'evident',\n 'evil',\n 'evoke',\n 'evolution',\n 'evolve',\n 'exact',\n 'exalted',\n 'example',\n 'excavate',\n 'excavator',\n 'exceeding',\n 'exception',\n 'excess',\n 'exchange',\n 'excitable',\n 'exciting',\n 'exclaim',\n 'exclude',\n 'excluding',\n 'exclusion',\n 'exclusive',\n 'excretion',\n 'excretory',\n 'excursion',\n 'excusable',\n 'excusably',\n 'excuse',\n 'exemplary',\n 'exemplify',\n 'exemption',\n 'exerciser',\n 'exert',\n 'exes',\n 'exfoliate',\n 'exhale',\n 'exhaust',\n 'exhume',\n 'exile',\n 'existing',\n 'exit',\n 'exodus',\n 'exonerate',\n 'exorcism',\n 'exorcist',\n 'expand',\n 'expanse',\n 'expansion',\n 'expansive',\n 'expectant',\n 'expedited',\n 'expediter',\n 'expel',\n 'expend',\n 'expenses',\n 'expensive',\n 'expert',\n 'expire',\n 'expiring',\n 'explain',\n 'expletive',\n 'explicit',\n 'explode',\n 'exploit',\n 'explore',\n 'exploring',\n 'exponent',\n 'exporter',\n 'exposable',\n 'expose',\n 'exposure',\n 'express',\n 'expulsion',\n 'exquisite',\n 'extended',\n 'extending',\n 'extent',\n 'extenuate',\n 'exterior',\n 'external',\n 'extinct',\n 'extortion',\n 'extradite',\n 'extras',\n 'extrovert',\n 'extrude',\n 'extruding',\n 'exuberant',\n 'fable',\n 'fabric',\n 'fabulous',\n 'facebook',\n 'facecloth',\n 'facedown',\n 'faceless',\n 'facelift',\n 'faceplate',\n 'faceted',\n 'facial',\n 'facility',\n 'facing',\n 'facsimile',\n 'faction',\n 'factoid',\n 'factor',\n 'factsheet',\n 'factual',\n 'faculty',\n 'fade',\n 'fading',\n 'failing',\n 'falcon',\n 'fall',\n 'false',\n 'falsify',\n 'fame',\n 'familiar',\n 'family',\n 'famine',\n 'famished',\n 'fanatic',\n 'fancied',\n 'fanciness',\n 'fancy',\n 'fanfare',\n 'fang',\n 'fanning',\n 'fantasize',\n 'fantastic',\n 'fantasy',\n 'fascism',\n 'fastball',\n 'faster',\n 'fasting',\n 'fastness',\n 'faucet',\n 'favorable',\n 'favorably',\n 'favored',\n 'favoring',\n 'favorite',\n 'fax',\n 'feast',\n 'federal',\n 'fedora',\n 'feeble',\n 'feed',\n 'feel',\n 'feisty',\n 'feline',\n 'felt-tip',\n 'feminine',\n 'feminism',\n 'feminist',\n 'feminize',\n 'femur',\n 'fence',\n 'fencing',\n 'fender',\n 'ferment',\n 'fernlike',\n 'ferocious',\n 'ferocity',\n 'ferret',\n 'ferris',\n 'ferry',\n 'fervor',\n 'fester',\n 'festival',\n 'festive',\n 'festivity',\n 'fetal',\n 'fetch',\n 'fever',\n 'fiber',\n 'fiction',\n 'fiddle',\n 'fiddling',\n 'fidelity',\n 'fidgeting',\n 'fidgety',\n 'fifteen',\n 'fifth',\n 'fiftieth',\n 'fifty',\n 'figment',\n 'figure',\n 'figurine',\n 'filing',\n 'filled',\n 'filler',\n 'filling',\n 'film',\n 'filter',\n 'filth',\n 'filtrate',\n 'finale',\n 'finalist',\n 'finalize',\n 'finally',\n 'finance',\n 'financial',\n 'finch',\n 'fineness',\n 'finer',\n 'finicky',\n 'finished',\n 'finisher',\n 'finishing',\n 'finite',\n 'finless',\n 'finlike',\n 'fiscally',\n 'fit',\n 'five',\n 'flaccid',\n 'flagman',\n 'flagpole',\n 'flagship',\n 'flagstick',\n 'flagstone',\n 'flail',\n 'flakily',\n 'flaky',\n 'flame',\n 'flammable',\n 'flanked',\n 'flanking',\n 'flannels',\n 'flap',\n 'flaring',\n 'flashback',\n 'flashbulb',\n 'flashcard',\n 'flashily',\n 'flashing',\n 'flashy',\n 'flask',\n 'flatbed',\n 'flatfoot',\n 'flatly',\n 'flatness',\n 'flatten',\n 'flattered',\n 'flatterer',\n 'flattery',\n 'flattop',\n 'flatware',\n 'flatworm',\n 'flavored',\n 'flavorful',\n 'flavoring',\n 'flaxseed',\n 'fled',\n 'fleshed',\n 'fleshy',\n 'flick',\n 'flier',\n 'flight',\n 'flinch',\n 'fling',\n 'flint',\n 'flip',\n 'flirt',\n 'float',\n 'flock',\n 'flogging',\n 'flop',\n 'floral',\n 'florist',\n 'floss',\n 'flounder',\n 'flyable',\n 'flyaway',\n 'flyer',\n 'flying',\n 'flyover',\n 'flypaper',\n 'foam',\n 'foe',\n 'fog',\n 'foil',\n 'folic',\n 'folk',\n 'follicle',\n 'follow',\n 'fondling',\n 'fondly',\n 'fondness',\n 'fondue',\n 'font',\n 'food',\n 'fool',\n 'footage',\n 'football',\n 'footbath',\n 'footboard',\n 'footer',\n 'footgear',\n 'foothill',\n 'foothold',\n 'footing',\n 'footless',\n 'footman',\n 'footnote',\n 'footpad',\n 'footpath',\n 'footprint',\n 'footrest',\n 'footsie',\n 'footsore',\n 'footwear',\n 'footwork',\n 'fossil',\n 'foster',\n 'founder',\n 'founding',\n 'fountain',\n 'fox',\n 'foyer',\n 'fraction',\n 'fracture',\n 'fragile',\n 'fragility',\n 'fragment',\n 'fragrance',\n 'fragrant',\n 'frail',\n 'frame',\n 'framing',\n 'frantic',\n 'fraternal',\n 'frayed',\n 'fraying',\n 'frays',\n 'freckled',\n 'freckles',\n 'freebase',\n 'freebee',\n 'freebie',\n 'freedom',\n 'freefall',\n 'freehand',\n 'freeing',\n 'freeload',\n 'freely',\n 'freemason',\n 'freeness',\n 'freestyle',\n 'freeware',\n 'freeway',\n 'freewill',\n 'freezable',\n 'freezing',\n 'freight',\n 'french',\n 'frenzied',\n 'frenzy',\n 'frequency',\n 'frequent',\n 'fresh',\n 'fretful',\n 'fretted',\n 'friction',\n 'friday',\n 'fridge',\n 'fried',\n 'friend',\n 'frighten',\n 'frightful',\n 'frigidity',\n 'frigidly',\n 'frill',\n 'fringe',\n 'frisbee',\n 'frisk',\n 'fritter',\n 'frivolous',\n 'frolic',\n 'from',\n 'front',\n 'frostbite',\n 'frosted',\n 'frostily',\n 'frosting',\n 'frostlike',\n 'frosty',\n 'froth',\n 'frown',\n 'frozen',\n 'fructose',\n 'frugality',\n 'frugally',\n 'fruit',\n 'frustrate',\n 'frying',\n 'gab',\n 'gaffe',\n 'gag',\n 'gainfully',\n 'gaining',\n 'gains',\n 'gala',\n 'gallantly',\n 'galleria',\n 'gallery',\n 'galley',\n 'gallon',\n 'gallows',\n 'gallstone',\n 'galore',\n 'galvanize',\n 'gambling',\n 'game',\n 'gaming',\n 'gamma',\n 'gander',\n 'gangly',\n 'gangrene',\n 'gangway',\n 'gap',\n 'garage',\n 'garbage',\n 'garden',\n 'gargle',\n 'garland',\n 'garlic',\n 'garment',\n 'garnet',\n 'garnish',\n 'garter',\n 'gas',\n 'gatherer',\n 'gathering',\n 'gating',\n 'gauging',\n 'gauntlet',\n 'gauze',\n 'gave',\n 'gawk',\n 'gazing',\n 'gear',\n 'gecko',\n 'geek',\n 'geiger',\n 'gem',\n 'gender',\n 'generic',\n 'generous',\n 'genetics',\n 'genre',\n 'gentile',\n 'gentleman',\n 'gently',\n 'gents',\n 'geography',\n 'geologic',\n 'geologist',\n 'geology',\n 'geometric',\n 'geometry',\n 'geranium',\n 'gerbil',\n 'geriatric',\n 'germicide',\n 'germinate',\n 'germless',\n 'germproof',\n 'gestate',\n 'gestation',\n 'gesture',\n 'getaway',\n 'getting',\n 'getup',\n 'giant',\n 'gibberish',\n 'giblet',\n 'giddily',\n 'giddiness',\n 'giddy',\n 'gift',\n 'gigabyte',\n 'gigahertz',\n 'gigantic',\n 'giggle',\n 'giggling',\n 'giggly',\n 'gigolo',\n 'gilled',\n 'gills',\n 'gimmick',\n 'girdle',\n 'giveaway',\n 'given',\n 'giver',\n 'giving',\n 'gizmo',\n 'gizzard',\n 'glacial',\n 'glacier',\n 'glade',\n 'gladiator',\n 'gladly',\n 'glamorous',\n 'glamour',\n 'glance',\n 'glancing',\n 'glandular',\n 'glare',\n 'glaring',\n 'glass',\n 'glaucoma',\n 'glazing',\n 'gleaming',\n 'gleeful',\n 'glider',\n 'gliding',\n 'glimmer',\n 'glimpse',\n 'glisten',\n 'glitch',\n 'glitter',\n 'glitzy',\n 'gloater',\n 'gloating',\n 'gloomily',\n 'gloomy',\n 'glorified',\n 'glorifier',\n 'glorify',\n 'glorious',\n 'glory',\n 'gloss',\n 'glove',\n 'glowing',\n 'glowworm',\n 'glucose',\n 'glue',\n 'gluten',\n 'glutinous',\n 'glutton',\n 'gnarly',\n 'gnat',\n 'goal',\n 'goatskin',\n 'goes',\n 'goggles',\n 'going',\n 'goldfish',\n 'goldmine',\n 'goldsmith',\n 'golf',\n 'goliath',\n 'gonad',\n 'gondola',\n 'gone',\n 'gong',\n 'good',\n 'gooey',\n 'goofball',\n 'goofiness',\n 'goofy',\n 'google',\n 'goon',\n 'gopher',\n 'gore',\n 'gorged',\n 'gorgeous',\n 'gory',\n 'gosling',\n 'gossip',\n 'gothic',\n 'gotten',\n 'gout',\n 'gown',\n 'grab',\n 'graceful',\n 'graceless',\n 'gracious',\n 'gradation',\n 'graded',\n 'grader',\n 'gradient',\n 'grading',\n 'gradually',\n 'graduate',\n 'graffiti',\n 'grafted',\n 'grafting',\n 'grain',\n 'granddad',\n 'grandkid',\n 'grandly',\n 'grandma',\n 'grandpa',\n 'grandson',\n 'granite',\n 'granny',\n 'granola',\n 'grant',\n 'granular',\n 'grape',\n 'graph',\n 'grapple',\n 'grappling',\n 'grasp',\n 'grass',\n 'gratified',\n 'gratify',\n 'grating',\n 'gratitude',\n 'gratuity',\n 'gravel',\n 'graveness',\n 'graves',\n 'graveyard',\n 'gravitate',\n 'gravity',\n 'gravy',\n 'gray',\n 'grazing',\n 'greasily',\n 'greedily',\n 'greedless',\n 'greedy',\n 'green',\n 'greeter',\n 'greeting',\n 'grew',\n 'greyhound',\n 'grid',\n 'grief',\n 'grievance',\n 'grieving',\n 'grievous',\n 'grill',\n 'grimace',\n 'grimacing',\n 'grime',\n 'griminess',\n 'grimy',\n 'grinch',\n 'grinning',\n 'grip',\n 'gristle',\n 'grit',\n 'groggily',\n 'groggy',\n 'groin',\n 'groom',\n 'groove',\n 'grooving',\n 'groovy',\n 'grope',\n 'ground',\n 'grouped',\n 'grout',\n 'grove',\n 'grower',\n 'growing',\n 'growl',\n 'grub',\n 'grudge',\n 'grudging',\n 'grueling',\n 'gruffly',\n 'grumble',\n 'grumbling',\n 'grumbly',\n 'grumpily',\n 'grunge',\n 'grunt',\n 'guacamole',\n 'guidable',\n 'guidance',\n 'guide',\n 'guiding',\n 'guileless',\n 'guise',\n 'gulf',\n 'gullible',\n 'gully',\n 'gulp',\n 'gumball',\n 'gumdrop',\n 'gumminess',\n 'gumming',\n 'gummy',\n 'gurgle',\n 'gurgling',\n 'guru',\n 'gush',\n 'gusto',\n 'gusty',\n 'gutless',\n 'guts',\n 'gutter',\n 'guy',\n 'guzzler',\n 'gyration',\n 'habitable',\n 'habitant',\n 'habitat',\n 'habitual',\n 'hacked',\n 'hacker',\n 'hacking',\n 'hacksaw',\n 'had',\n 'haggler',\n 'haiku',\n 'half',\n 'halogen',\n 'halt',\n 'halved',\n 'halves',\n 'hamburger',\n 'hamlet',\n 'hammock',\n 'hamper',\n 'hamster',\n 'hamstring',\n 'handbag',\n 'handball',\n 'handbook',\n 'handbrake',\n 'handcart',\n 'handclap',\n 'handclasp',\n 'handcraft',\n 'handcuff',\n 'handed',\n 'handful',\n 'handgrip',\n 'handgun',\n 'handheld',\n 'handiness',\n 'handiwork',\n 'handlebar',\n 'handled',\n 'handler',\n 'handling',\n 'handmade',\n 'handoff',\n 'handpick',\n 'handprint',\n 'handrail',\n 'handsaw',\n 'handset',\n 'handsfree',\n 'handshake',\n 'handstand',\n 'handwash',\n 'handwork',\n 'handwoven',\n 'handwrite',\n 'handyman',\n 'hangnail',\n 'hangout',\n 'hangover',\n 'hangup',\n 'hankering',\n 'hankie',\n 'hanky',\n 'haphazard',\n 'happening',\n 'happier',\n 'happiest',\n 'happily',\n 'happiness',\n 'happy',\n 'harbor',\n 'hardcopy',\n 'hardcore',\n 'hardcover',\n 'harddisk',\n 'hardened',\n 'hardener',\n 'hardening',\n 'hardhat',\n 'hardhead',\n 'hardiness',\n 'hardly',\n 'hardness',\n 'hardship',\n 'hardware',\n 'hardwired',\n 'hardwood',\n 'hardy',\n 'harmful',\n 'harmless',\n 'harmonica',\n 'harmonics',\n 'harmonize',\n 'harmony',\n 'harness',\n 'harpist',\n 'harsh',\n 'harvest',\n 'hash',\n 'hassle',\n 'haste',\n 'hastily',\n 'hastiness',\n 'hasty',\n 'hatbox',\n 'hatchback',\n 'hatchery',\n 'hatchet',\n 'hatching',\n 'hatchling',\n 'hate',\n 'hatless',\n 'hatred',\n 'haunt',\n 'haven',\n 'hazard',\n 'hazelnut',\n 'hazily',\n 'haziness',\n 'hazing',\n 'hazy',\n 'headache',\n 'headband',\n 'headboard',\n 'headcount',\n 'headdress',\n 'headed',\n 'header',\n 'headfirst',\n 'headgear',\n 'heading',\n 'headlamp',\n 'headless',\n 'headlock',\n 'headphone',\n 'headpiece',\n 'headrest',\n 'headroom',\n 'headscarf',\n 'headset',\n 'headsman',\n 'headstand',\n 'headstone',\n 'headway',\n 'headwear',\n 'heap',\n 'heat',\n 'heave',\n 'heavily',\n 'heaviness',\n 'heaving',\n 'hedge',\n 'hedging',\n 'heftiness',\n 'hefty',\n 'helium',\n 'helmet',\n 'helper',\n 'helpful',\n 'helping',\n 'helpless',\n 'helpline',\n 'hemlock',\n 'hemstitch',\n 'hence',\n 'henchman',\n 'henna',\n 'herald',\n 'herbal',\n 'herbicide',\n 'herbs',\n 'heritage',\n 'hermit',\n 'heroics',\n 'heroism',\n 'herring',\n 'herself',\n 'hertz',\n 'hesitancy',\n 'hesitant',\n 'hesitate',\n 'hexagon',\n 'hexagram',\n 'hubcap',\n 'huddle',\n 'huddling',\n 'huff',\n 'hug',\n 'hula',\n 'hulk',\n 'hull',\n 'human',\n 'humble',\n 'humbling',\n 'humbly',\n 'humid',\n 'humiliate',\n 'humility',\n 'humming',\n 'hummus',\n 'humongous',\n 'humorist',\n 'humorless',\n 'humorous',\n 'humpback',\n 'humped',\n 'humvee',\n 'hunchback',\n 'hundredth',\n 'hunger',\n 'hungrily',\n 'hungry',\n 'hunk',\n 'hunter',\n 'hunting',\n 'huntress',\n 'huntsman',\n 'hurdle',\n 'hurled',\n 'hurler',\n 'hurling',\n 'hurray',\n 'hurricane',\n 'hurried',\n 'hurry',\n 'hurt',\n 'husband',\n 'hush',\n 'husked',\n 'huskiness',\n 'hut',\n 'hybrid',\n 'hydrant',\n 'hydrated',\n 'hydration',\n 'hydrogen',\n 'hydroxide',\n 'hyperlink',\n 'hypertext',\n 'hyphen',\n 'hypnoses',\n 'hypnosis',\n 'hypnotic',\n 'hypnotism',\n 'hypnotist',\n 'hypnotize',\n 'hypocrisy',\n 'hypocrite',\n 'ibuprofen',\n 'ice',\n 'iciness',\n 'icing',\n 'icky',\n 'icon',\n 'icy',\n 'idealism',\n 'idealist',\n 'idealize',\n 'ideally',\n 'idealness',\n 'identical',\n 'identify',\n 'identity',\n 'ideology',\n 'idiocy',\n 'idiom',\n 'idly',\n 'igloo',\n 'ignition',\n 'ignore',\n 'iguana',\n 'illicitly',\n 'illusion',\n 'illusive',\n 'image',\n 'imaginary',\n 'imagines',\n 'imaging',\n 'imbecile',\n 'imitate',\n 'imitation',\n 'immature',\n 'immerse',\n 'immersion',\n 'imminent',\n 'immobile',\n 'immodest',\n 'immorally',\n 'immortal',\n 'immovable',\n 'immovably',\n 'immunity',\n 'immunize',\n 'impaired',\n 'impale',\n 'impart',\n 'impatient',\n 'impeach',\n 'impeding',\n 'impending',\n 'imperfect',\n 'imperial',\n 'impish',\n 'implant',\n 'implement',\n 'implicate',\n 'implicit',\n 'implode',\n 'implosion',\n 'implosive',\n 'imply',\n 'impolite',\n 'important',\n 'importer',\n 'impose',\n 'imposing',\n 'impotence',\n 'impotency',\n 'impotent',\n 'impound',\n 'imprecise',\n 'imprint',\n 'imprison',\n 'impromptu',\n 'improper',\n 'improve',\n 'improving',\n 'improvise',\n 'imprudent',\n 'impulse',\n 'impulsive',\n 'impure',\n 'impurity',\n 'iodine',\n 'iodize',\n 'ion',\n 'ipad',\n 'iphone',\n 'ipod',\n 'irate',\n 'irk',\n 'iron',\n 'irregular',\n 'irrigate',\n 'irritable',\n 'irritably',\n 'irritant',\n 'irritate',\n 'islamic',\n 'islamist',\n 'isolated',\n 'isolating',\n 'isolation',\n 'isotope',\n 'issue',\n 'issuing',\n 'italicize',\n 'italics',\n 'item',\n 'itinerary',\n 'itunes',\n 'ivory',\n 'ivy',\n 'jab',\n 'jackal',\n 'jacket',\n 'jackknife',\n 'jackpot',\n 'jailbird',\n 'jailbreak',\n 'jailer',\n 'jailhouse',\n 'jalapeno',\n 'jam',\n 'janitor',\n 'january',\n 'jargon',\n 'jarring',\n 'jasmine',\n 'jaundice',\n 'jaunt',\n 'java',\n 'jawed',\n 'jawless',\n 'jawline',\n 'jaws',\n 'jaybird',\n 'jaywalker',\n 'jazz',\n 'jeep',\n 'jeeringly',\n 'jellied',\n 'jelly',\n 'jersey',\n 'jester',\n 'jet',\n 'jiffy',\n 'jigsaw',\n 'jimmy',\n 'jingle',\n 'jingling',\n 'jinx',\n 'jitters',\n 'jittery',\n 'job',\n 'jockey',\n 'jockstrap',\n 'jogger',\n 'jogging',\n 'john',\n 'joining',\n 'jokester',\n 'jokingly',\n 'jolliness',\n 'jolly',\n 'jolt',\n 'jot',\n 'jovial',\n 'joyfully',\n 'joylessly',\n 'joyous',\n 'joyride',\n 'joystick',\n 'jubilance',\n 'jubilant',\n 'judge',\n 'judgingly',\n 'judicial',\n 'judiciary',\n 'judo',\n 'juggle',\n 'juggling',\n 'jugular',\n 'juice',\n 'juiciness',\n 'juicy',\n 'jujitsu',\n 'jukebox',\n 'july',\n 'jumble',\n 'jumbo',\n 'jump',\n 'junction',\n 'juncture',\n 'june',\n 'junior',\n 'juniper',\n 'junkie',\n 'junkman',\n 'junkyard',\n 'jurist',\n 'juror',\n 'jury',\n 'justice',\n 'justifier',\n 'justify',\n 'justly',\n 'justness',\n 'juvenile',\n 'kabob',\n 'kangaroo',\n 'karaoke',\n 'karate',\n 'karma',\n 'kebab',\n 'keenly',\n 'keenness',\n 'keep',\n 'keg',\n 'kelp',\n 'kennel',\n 'kept',\n 'kerchief',\n 'kerosene',\n 'kettle',\n 'kick',\n 'kiln',\n 'kilobyte',\n 'kilogram',\n 'kilometer',\n 'kilowatt',\n 'kilt',\n 'kimono',\n 'kindle',\n 'kindling',\n 'kindly',\n 'kindness',\n 'kindred',\n 'kinetic',\n 'kinfolk',\n 'king',\n 'kinship',\n 'kinsman',\n 'kinswoman',\n 'kissable',\n 'kisser',\n 'kissing',\n 'kitchen',\n 'kite',\n 'kitten',\n 'kitty',\n 'kiwi',\n 'kleenex',\n 'knapsack',\n 'knee',\n 'knelt',\n 'knickers',\n 'knoll',\n 'koala',\n 'kooky',\n 'kosher',\n 'krypton',\n 'kudos',\n 'kung',\n 'labored',\n 'laborer',\n 'laboring',\n 'laborious',\n 'labrador',\n 'ladder',\n 'ladies',\n 'ladle',\n 'ladybug',\n 'ladylike',\n 'lagged',\n 'lagging',\n 'lagoon',\n 'lair',\n 'lake',\n 'lance',\n 'landed',\n 'landfall',\n 'landfill',\n 'landing',\n 'landlady',\n 'landless',\n 'landline',\n 'landlord',\n 'landmark',\n 'landmass',\n 'landmine',\n 'landowner',\n 'landscape',\n 'landside',\n 'landslide',\n 'language',\n 'lankiness',\n 'lanky',\n 'lantern',\n 'lapdog',\n 'lapel',\n 'lapped',\n 'lapping',\n 'laptop',\n 'lard',\n 'large',\n 'lark',\n 'lash',\n 'lasso',\n 'last',\n 'latch',\n 'late',\n 'lather',\n 'latitude',\n 'latrine',\n 'latter',\n 'latticed',\n 'launch',\n 'launder',\n 'laundry',\n 'laurel',\n 'lavender',\n 'lavish',\n 'laxative',\n 'lazily',\n 'laziness',\n 'lazy',\n 'lecturer',\n 'left',\n 'legacy',\n 'legal',\n 'legend',\n 'legged',\n 'leggings',\n 'legible',\n 'legibly',\n 'legislate',\n 'lego',\n 'legroom',\n 'legume',\n 'legwarmer',\n 'legwork',\n 'lemon',\n 'lend',\n 'length',\n 'lens',\n 'lent',\n 'leotard',\n 'lesser',\n 'letdown',\n 'lethargic',\n 'lethargy',\n 'letter',\n 'lettuce',\n 'level',\n 'leverage',\n 'levers',\n 'levitate',\n 'levitator',\n 'liability',\n 'liable',\n 'liberty',\n 'librarian',\n 'library',\n 'licking',\n 'licorice',\n 'lid',\n 'life',\n 'lifter',\n 'lifting',\n 'liftoff',\n 'ligament',\n 'likely',\n 'likeness',\n 'likewise',\n 'liking',\n 'lilac',\n 'lilly',\n 'lily',\n 'limb',\n 'limeade',\n 'limelight',\n 'limes',\n 'limit',\n 'limping',\n 'limpness',\n 'line',\n 'lingo',\n 'linguini',\n 'linguist',\n 'lining',\n 'linked',\n 'linoleum',\n 'linseed',\n 'lint',\n 'lion',\n 'lip',\n 'liquefy',\n 'liqueur',\n 'liquid',\n 'lisp',\n 'list',\n 'litigate',\n 'litigator',\n 'litmus',\n 'litter',\n 'little',\n 'livable',\n 'lived',\n 'lively',\n 'liver',\n 'livestock',\n 'lividly',\n 'living',\n 'lizard',\n 'lubricant',\n 'lubricate',\n 'lucid',\n 'luckily',\n 'luckiness',\n 'luckless',\n 'lucrative',\n 'ludicrous',\n 'lugged',\n 'lukewarm',\n 'lullaby',\n 'lumber',\n 'luminance',\n 'luminous',\n 'lumpiness',\n 'lumping',\n 'lumpish',\n 'lunacy',\n 'lunar',\n 'lunchbox',\n 'luncheon',\n 'lunchroom',\n 'lunchtime',\n 'lung',\n 'lurch',\n 'lure',\n 'luridness',\n 'lurk',\n 'lushly',\n 'lushness',\n 'luster',\n 'lustfully',\n 'lustily',\n 'lustiness',\n 'lustrous',\n 'lusty',\n 'luxurious',\n 'luxury',\n 'lying',\n 'lyrically',\n 'lyricism',\n 'lyricist',\n 'lyrics',\n 'macarena',\n 'macaroni',\n 'macaw',\n 'mace',\n 'machine',\n 'machinist',\n 'magazine',\n 'magenta',\n 'maggot',\n 'magical',\n 'magician',\n 'magma',\n 'magnesium',\n 'magnetic',\n 'magnetism',\n 'magnetize',\n 'magnifier',\n 'magnify',\n 'magnitude',\n 'magnolia',\n 'mahogany',\n 'maimed',\n 'majestic',\n 'majesty',\n 'majorette',\n 'majority',\n 'makeover',\n 'maker',\n 'makeshift',\n 'making',\n 'malformed',\n 'malt',\n 'mama',\n 'mammal',\n 'mammary',\n 'mammogram',\n 'manager',\n 'managing',\n 'manatee',\n 'mandarin',\n 'mandate',\n 'mandatory',\n 'mandolin',\n 'manger',\n 'mangle',\n 'mango',\n 'mangy',\n 'manhandle',\n 'manhole',\n 'manhood',\n 'manhunt',\n 'manicotti',\n 'manicure',\n 'manifesto',\n 'manila',\n 'mankind',\n 'manlike',\n 'manliness',\n 'manly',\n 'manmade',\n 'manned',\n 'mannish',\n 'manor',\n 'manpower',\n 'mantis',\n 'mantra',\n 'manual',\n 'many',\n 'map',\n 'marathon',\n 'marauding',\n 'marbled',\n 'marbles',\n 'marbling',\n 'march',\n 'mardi',\n 'margarine',\n 'margarita',\n 'margin',\n 'marigold',\n 'marina',\n 'marine',\n 'marital',\n 'maritime',\n 'marlin',\n 'marmalade',\n 'maroon',\n 'married',\n 'marrow',\n 'marry',\n 'marshland',\n 'marshy',\n 'marsupial',\n 'marvelous',\n 'marxism',\n 'mascot',\n 'masculine',\n 'mashed',\n 'mashing',\n 'massager',\n 'masses',\n 'massive',\n 'mastiff',\n 'matador',\n 'matchbook',\n 'matchbox',\n 'matcher',\n 'matching',\n 'matchless',\n 'material',\n 'maternal',\n 'maternity',\n 'math',\n 'mating',\n 'matriarch',\n 'matrimony',\n 'matrix',\n 'matron',\n 'matted',\n 'matter',\n 'maturely',\n 'maturing',\n 'maturity',\n 'mauve',\n 'maverick',\n 'maximize',\n 'maximum',\n 'maybe',\n 'mayday',\n 'mayflower',\n 'moaner',\n 'moaning',\n 'mobile',\n 'mobility',\n 'mobilize',\n 'mobster',\n 'mocha',\n 'mocker',\n 'mockup',\n 'modified',\n 'modify',\n 'modular',\n 'modulator',\n 'module',\n 'moisten',\n 'moistness',\n 'moisture',\n 'molar',\n 'molasses',\n 'mold',\n 'molecular',\n 'molecule',\n 'molehill',\n 'mollusk',\n 'mom',\n 'monastery',\n 'monday',\n 'monetary',\n 'monetize',\n 'moneybags',\n 'moneyless',\n 'moneywise',\n 'mongoose',\n 'mongrel',\n 'monitor',\n 'monkhood',\n 'monogamy',\n 'monogram',\n 'monologue',\n 'monopoly',\n 'monorail',\n 'monotone',\n 'monotype',\n 'monoxide',\n 'monsieur',\n 'monsoon',\n 'monstrous',\n 'monthly',\n 'monument',\n 'moocher',\n 'moodiness',\n 'moody',\n 'mooing',\n 'moonbeam',\n 'mooned',\n 'moonlight',\n 'moonlike',\n 'moonlit',\n 'moonrise',\n 'moonscape',\n 'moonshine',\n 'moonstone',\n 'moonwalk',\n 'mop',\n 'morale',\n 'morality',\n 'morally',\n 'morbidity',\n 'morbidly',\n 'morphine',\n 'morphing',\n 'morse',\n 'mortality',\n 'mortally',\n 'mortician',\n 'mortified',\n 'mortify',\n 'mortuary',\n 'mosaic',\n 'mossy',\n 'most',\n 'mothball',\n 'mothproof',\n 'motion',\n 'motivate',\n 'motivator',\n 'motive',\n 'motocross',\n 'motor',\n 'motto',\n 'mountable',\n 'mountain',\n 'mounted',\n 'mounting',\n 'mourner',\n 'mournful',\n 'mouse',\n 'mousiness',\n 'moustache',\n 'mousy',\n 'mouth',\n 'movable',\n 'move',\n 'movie',\n 'moving',\n 'mower',\n 'mowing',\n 'much',\n 'muck',\n 'mud',\n 'mug',\n 'mulberry',\n 'mulch',\n 'mule',\n 'mulled',\n 'mullets',\n 'multiple',\n 'multiply',\n 'multitask',\n 'multitude',\n 'mumble',\n 'mumbling',\n 'mumbo',\n 'mummified',\n 'mummify',\n 'mummy',\n 'mumps',\n 'munchkin',\n 'mundane',\n 'municipal',\n 'muppet',\n 'mural',\n 'murkiness',\n 'murky',\n 'murmuring',\n 'muscular',\n 'museum',\n 'mushily',\n 'mushiness',\n 'mushroom',\n 'mushy',\n 'music',\n 'musket',\n 'muskiness',\n 'musky',\n 'mustang',\n 'mustard',\n 'muster',\n 'mustiness',\n 'musty',\n 'mutable',\n 'mutate',\n 'mutation',\n 'mute',\n 'mutilated',\n 'mutilator',\n 'mutiny',\n 'mutt',\n 'mutual',\n 'muzzle',\n 'myself',\n 'myspace',\n 'mystified',\n 'mystify',\n 'myth',\n 'nacho',\n 'nag',\n 'nail',\n 'name',\n 'naming',\n 'nanny',\n 'nanometer',\n 'nape',\n 'napkin',\n 'napped',\n 'napping',\n 'nappy',\n 'narrow',\n 'nastily',\n 'nastiness',\n 'national',\n 'native',\n 'nativity',\n 'natural',\n 'nature',\n 'naturist',\n 'nautical',\n 'navigate',\n 'navigator',\n 'navy',\n 'nearby',\n 'nearest',\n 'nearly',\n 'nearness',\n 'neatly',\n 'neatness',\n 'nebula',\n 'nebulizer',\n 'nectar',\n 'negate',\n 'negation',\n 'negative',\n 'neglector',\n 'negligee',\n 'negligent',\n 'negotiate',\n 'nemeses',\n 'nemesis',\n 'neon',\n 'nephew',\n 'nerd',\n 'nervous',\n 'nervy',\n 'nest',\n 'net',\n 'neurology',\n 'neuron',\n 'neurosis',\n 'neurotic',\n 'neuter',\n 'neutron',\n 'never',\n 'next',\n 'nibble',\n 'nickname',\n 'nicotine',\n 'niece',\n 'nifty',\n 'nimble',\n 'nimbly',\n 'nineteen',\n 'ninetieth',\n 'ninja',\n 'nintendo',\n 'ninth',\n 'nuclear',\n 'nuclei',\n 'nucleus',\n 'nugget',\n 'nullify',\n 'number',\n 'numbing',\n 'numbly',\n 'numbness',\n 'numeral',\n 'numerate',\n 'numerator',\n 'numeric',\n 'numerous',\n 'nuptials',\n 'nursery',\n 'nursing',\n 'nurture',\n 'nutcase',\n 'nutlike',\n 'nutmeg',\n 'nutrient',\n 'nutshell',\n 'nuttiness',\n 'nutty',\n 'nuzzle',\n 'nylon',\n 'oaf',\n 'oak',\n 'oasis',\n 'oat',\n 'obedience',\n 'obedient',\n 'obituary',\n 'object',\n 'obligate',\n 'obliged',\n 'oblivion',\n 'oblivious',\n 'oblong',\n 'obnoxious',\n 'oboe',\n 'obscure',\n 'obscurity',\n 'observant',\n 'observer',\n 'observing',\n 'obsessed',\n 'obsession',\n 'obsessive',\n 'obsolete',\n 'obstacle',\n 'obstinate',\n 'obstruct',\n 'obtain',\n 'obtrusive',\n 'obtuse',\n 'obvious',\n 'occultist',\n 'occupancy',\n 'occupant',\n 'occupier',\n 'occupy',\n 'ocean',\n 'ocelot',\n 'octagon',\n 'octane',\n 'october',\n 'octopus',\n 'ogle',\n 'oil',\n 'oink',\n 'ointment',\n 'okay',\n 'old',\n 'olive',\n 'olympics',\n 'omega',\n 'omen',\n 'ominous',\n 'omission',\n 'omit',\n 'omnivore',\n 'onboard',\n 'oncoming',\n 'ongoing',\n 'onion',\n 'online',\n 'onlooker',\n 'only',\n 'onscreen',\n 'onset',\n 'onshore',\n 'onslaught',\n 'onstage',\n 'onto',\n 'onward',\n 'onyx',\n 'oops',\n 'ooze',\n 'oozy',\n 'opacity',\n 'opal',\n 'open',\n 'operable',\n 'operate',\n 'operating',\n 'operation',\n 'operative',\n 'operator',\n 'opium',\n 'opossum',\n 'opponent',\n 'oppose',\n 'opposing',\n 'opposite',\n 'oppressed',\n 'oppressor',\n 'opt',\n 'opulently',\n 'osmosis',\n 'other',\n 'otter',\n 'ouch',\n 'ought',\n 'ounce',\n 'outage',\n 'outback',\n 'outbid',\n 'outboard',\n 'outbound',\n 'outbreak',\n 'outburst',\n 'outcast',\n 'outclass',\n 'outcome',\n 'outdated',\n 'outdoors',\n 'outer',\n 'outfield',\n 'outfit',\n 'outflank',\n 'outgoing',\n 'outgrow',\n 'outhouse',\n 'outing',\n 'outlast',\n 'outlet',\n 'outline',\n 'outlook',\n 'outlying',\n 'outmatch',\n 'outmost',\n 'outnumber',\n 'outplayed',\n 'outpost',\n 'outpour',\n 'output',\n 'outrage',\n 'outrank',\n 'outreach',\n 'outright',\n 'outscore',\n 'outsell',\n 'outshine',\n 'outshoot',\n 'outsider',\n 'outskirts',\n 'outsmart',\n 'outsource',\n 'outspoken',\n 'outtakes',\n 'outthink',\n 'outward',\n 'outweigh',\n 'outwit',\n 'oval',\n 'ovary',\n 'oven',\n 'overact',\n 'overall',\n 'overarch',\n 'overbid',\n 'overbill',\n 'overbite',\n 'overblown',\n 'overboard',\n 'overbook',\n 'overbuilt',\n 'overcast',\n 'overcoat',\n 'overcome',\n 'overcook',\n 'overcrowd',\n 'overdraft',\n 'overdrawn',\n 'overdress',\n 'overdrive',\n 'overdue',\n 'overeager',\n 'overeater',\n 'overexert',\n 'overfed',\n 'overfeed',\n 'overfill',\n 'overflow',\n 'overfull',\n 'overgrown',\n 'overhand',\n 'overhang',\n 'overhaul',\n 'overhead',\n 'overhear',\n 'overheat',\n 'overhung',\n 'overjoyed',\n 'overkill',\n 'overlabor',\n 'overlaid',\n 'overlap',\n 'overlay',\n 'overload',\n 'overlook',\n 'overlord',\n 'overlying',\n 'overnight',\n 'overpass',\n 'overpay',\n 'overplant',\n 'overplay',\n 'overpower',\n 'overprice',\n 'overrate',\n 'overreach',\n 'overreact',\n 'override',\n 'overripe',\n 'overrule',\n 'overrun',\n 'overshoot',\n 'overshot',\n 'oversight',\n 'oversized',\n 'oversleep',\n 'oversold',\n 'overspend',\n 'overstate',\n 'overstay',\n 'overstep',\n 'overstock',\n 'overstuff',\n 'oversweet',\n 'overtake',\n 'overthrow',\n 'overtime',\n 'overtly',\n 'overtone',\n 'overture',\n 'overturn',\n 'overuse',\n 'overvalue',\n 'overview',\n 'overwrite',\n 'owl',\n 'oxford',\n 'oxidant',\n 'oxidation',\n 'oxidize',\n 'oxidizing',\n 'oxygen',\n 'oxymoron',\n 'oyster',\n 'ozone',\n 'paced',\n 'pacemaker',\n 'pacific',\n 'pacifier',\n 'pacifism',\n 'pacifist',\n 'pacify',\n 'padded',\n 'padding',\n 'paddle',\n 'paddling',\n 'padlock',\n 'pagan',\n 'pager',\n 'paging',\n 'pajamas',\n 'palace',\n 'palatable',\n 'palm',\n 'palpable',\n 'palpitate',\n 'paltry',\n 'pampered',\n 'pamperer',\n 'pampers',\n 'pamphlet',\n 'panama',\n 'pancake',\n 'pancreas',\n 'panda',\n 'pandemic',\n 'pang',\n 'panhandle',\n 'panic',\n 'panning',\n 'panorama',\n 'panoramic',\n 'panther',\n 'pantomime',\n 'pantry',\n 'pants',\n 'pantyhose',\n 'paparazzi',\n 'papaya',\n 'paper',\n 'paprika',\n 'papyrus',\n 'parabola',\n 'parachute',\n 'parade',\n 'paradox',\n 'paragraph',\n 'parakeet',\n 'paralegal',\n 'paralyses',\n 'paralysis',\n 'paralyze',\n 'paramedic',\n 'parameter',\n 'paramount',\n 'parasail',\n 'parasite',\n 'parasitic',\n 'parcel',\n 'parched',\n 'parchment',\n 'pardon',\n 'parish',\n 'parka',\n 'parking',\n 'parkway',\n 'parlor',\n 'parmesan',\n 'parole',\n 'parrot',\n 'parsley',\n 'parsnip',\n 'partake',\n 'parted',\n 'parting',\n 'partition',\n 'partly',\n 'partner',\n 'partridge',\n 'party',\n 'passable',\n 'passably',\n 'passage',\n 'passcode',\n 'passenger',\n 'passerby',\n 'passing',\n 'passion',\n 'passive',\n 'passivism',\n 'passover',\n 'passport',\n 'password',\n 'pasta',\n 'pasted',\n 'pastel',\n 'pastime',\n 'pastor',\n 'pastrami',\n 'pasture',\n 'pasty',\n 'patchwork',\n 'patchy',\n 'paternal',\n 'paternity',\n 'path',\n 'patience',\n 'patient',\n 'patio',\n 'patriarch',\n 'patriot',\n 'patrol',\n 'patronage',\n 'patronize',\n 'pauper',\n 'pavement',\n 'paver',\n 'pavestone',\n 'pavilion',\n 'paving',\n 'pawing',\n 'payable',\n 'payback',\n 'paycheck',\n 'payday',\n 'payee',\n 'payer',\n 'paying',\n 'payment',\n 'payphone',\n 'payroll',\n 'pebble',\n 'pebbly',\n 'pecan',\n 'pectin',\n 'peculiar',\n 'peddling',\n 'pediatric',\n 'pedicure',\n 'pedigree',\n 'pedometer',\n 'pegboard',\n 'pelican',\n 'pellet',\n 'pelt',\n 'pelvis',\n 'penalize',\n 'penalty',\n 'pencil',\n 'pendant',\n 'pending',\n 'penholder',\n 'penknife',\n 'pennant',\n 'penniless',\n 'penny',\n 'penpal',\n 'pension',\n 'pentagon',\n 'pentagram',\n 'pep',\n 'perceive',\n 'percent',\n 'perch',\n 'percolate',\n 'perennial',\n 'perfected',\n 'perfectly',\n 'perfume',\n 'periscope',\n 'perish',\n 'perjurer',\n 'perjury',\n 'perkiness',\n 'perky',\n 'perm',\n 'peroxide',\n 'perpetual',\n 'perplexed',\n 'persecute',\n 'persevere',\n 'persuaded',\n 'persuader',\n 'pesky',\n 'peso',\n 'pessimism',\n 'pessimist',\n 'pester',\n 'pesticide',\n 'petal',\n 'petite',\n 'petition',\n 'petri',\n 'petroleum',\n 'petted',\n 'petticoat',\n 'pettiness',\n 'petty',\n 'petunia',\n 'phantom',\n 'phobia',\n 'phoenix',\n 'phonebook',\n 'phoney',\n 'phonics',\n 'phoniness',\n 'phony',\n 'phosphate',\n 'photo',\n 'phrase',\n 'phrasing',\n 'placard',\n 'placate',\n 'placidly',\n 'plank',\n 'planner',\n 'plant',\n 'plasma',\n 'plaster',\n 'plastic',\n 'plated',\n 'platform',\n 'plating',\n 'platinum',\n 'platonic',\n 'platter',\n 'platypus',\n 'plausible',\n 'plausibly',\n 'playable',\n 'playback',\n 'player',\n 'playful',\n 'playgroup',\n 'playhouse',\n 'playing',\n 'playlist',\n 'playmaker',\n 'playmate',\n 'playoff',\n 'playpen',\n 'playroom',\n 'playset',\n 'plaything',\n 'playtime',\n 'plaza',\n 'pleading',\n 'pleat',\n 'pledge',\n 'plentiful',\n 'plenty',\n 'plethora',\n 'plexiglas',\n 'pliable',\n 'plod',\n 'plop',\n 'plot',\n 'plow',\n 'ploy',\n 'pluck',\n 'plug',\n 'plunder',\n 'plunging',\n 'plural',\n 'plus',\n 'plutonium',\n 'plywood',\n 'poach',\n 'pod',\n 'poem',\n 'poet',\n 'pogo',\n 'pointed',\n 'pointer',\n 'pointing',\n 'pointless',\n 'pointy',\n 'poise',\n 'poison',\n 'poker',\n 'poking',\n 'polar',\n 'police',\n 'policy',\n 'polio',\n 'polish',\n 'politely',\n 'polka',\n 'polo',\n 'polyester',\n 'polygon',\n 'polygraph',\n 'polymer',\n 'poncho',\n 'pond',\n 'pony',\n 'popcorn',\n 'pope',\n 'poplar',\n 'popper',\n 'poppy',\n 'popsicle',\n 'populace',\n 'popular',\n 'populate',\n 'porcupine',\n 'pork',\n 'porous',\n 'porridge',\n 'portable',\n 'portal',\n 'portfolio',\n 'porthole',\n 'portion',\n 'portly',\n 'portside',\n 'poser',\n 'posh',\n 'posing',\n 'possible',\n 'possibly',\n 'possum',\n 'postage',\n 'postal',\n 'postbox',\n 'postcard',\n 'posted',\n 'poster',\n 'posting',\n 'postnasal',\n 'posture',\n 'postwar',\n 'pouch',\n 'pounce',\n 'pouncing',\n 'pound',\n 'pouring',\n 'pout',\n 'powdered',\n 'powdering',\n 'powdery',\n 'power',\n 'powwow',\n 'pox',\n 'praising',\n 'prance',\n 'prancing',\n 'pranker',\n 'prankish',\n 'prankster',\n 'prayer',\n 'praying',\n 'preacher',\n 'preaching',\n 'preachy',\n 'preamble',\n 'precinct',\n 'precise',\n 'precision',\n 'precook',\n 'precut',\n 'predator',\n 'predefine',\n 'predict',\n 'preface',\n 'prefix',\n 'preflight',\n 'preformed',\n 'pregame',\n 'pregnancy',\n 'pregnant',\n 'preheated',\n 'prelaunch',\n 'prelaw',\n 'prelude',\n 'premiere',\n 'premises',\n 'premium',\n 'prenatal',\n 'preoccupy',\n 'preorder',\n 'prepaid',\n 'prepay',\n 'preplan',\n 'preppy',\n 'preschool',\n 'prescribe',\n 'preseason',\n 'preset',\n 'preshow',\n 'president',\n 'presoak',\n 'press',\n 'presume',\n 'presuming',\n 'preteen',\n 'pretended',\n 'pretender',\n 'pretense',\n 'pretext',\n 'pretty',\n 'pretzel',\n 'prevail',\n 'prevalent',\n 'prevent',\n 'preview',\n 'previous',\n 'prewar',\n 'prewashed',\n 'prideful',\n 'pried',\n 'primal',\n 'primarily',\n 'primary',\n 'primate',\n 'primer',\n 'primp',\n 'princess',\n 'print',\n 'prior',\n 'prism',\n 'prison',\n 'prissy',\n 'pristine',\n 'privacy',\n 'private',\n 'privatize',\n 'prize',\n 'proactive',\n 'probable',\n 'probably',\n 'probation',\n 'probe',\n 'probing',\n 'probiotic',\n 'problem',\n 'procedure',\n 'process',\n 'proclaim',\n 'procreate',\n 'procurer',\n 'prodigal',\n 'prodigy',\n 'produce',\n 'product',\n 'profane',\n 'profanity',\n 'professed',\n 'professor',\n 'profile',\n 'profound',\n 'profusely',\n 'progeny',\n 'prognosis',\n 'program',\n 'progress',\n 'projector',\n 'prologue',\n 'prolonged',\n 'promenade',\n 'prominent',\n 'promoter',\n 'promotion',\n 'prompter',\n 'promptly',\n 'prone',\n 'prong',\n 'pronounce',\n 'pronto',\n 'proofing',\n 'proofread',\n 'proofs',\n 'propeller',\n 'properly',\n 'property',\n 'proponent',\n 'proposal',\n 'propose',\n 'props',\n 'prorate',\n 'protector',\n 'protegee',\n 'proton',\n 'prototype',\n 'protozoan',\n 'protract',\n 'protrude',\n 'proud',\n 'provable',\n 'proved',\n 'proven',\n 'provided',\n 'provider',\n 'providing',\n 'province',\n 'proving',\n 'provoke',\n 'provoking',\n 'provolone',\n 'prowess',\n 'prowler',\n 'prowling',\n 'proximity',\n 'proxy',\n 'prozac',\n 'prude',\n 'prudishly',\n 'prune',\n 'pruning',\n 'pry',\n 'psychic',\n 'public',\n 'publisher',\n 'pucker',\n 'pueblo',\n 'pug',\n 'pull',\n 'pulmonary',\n 'pulp',\n 'pulsate',\n 'pulse',\n 'pulverize',\n 'puma',\n 'pumice',\n 'pummel',\n 'punch',\n 'punctual',\n 'punctuate',\n 'punctured',\n 'pungent',\n 'punisher',\n 'punk',\n 'pupil',\n 'puppet',\n 'puppy',\n 'purchase',\n 'pureblood',\n 'purebred',\n 'purely',\n 'pureness',\n 'purgatory',\n 'purge',\n 'purging',\n 'purifier',\n 'purify',\n 'purist',\n 'puritan',\n 'purity',\n 'purple',\n 'purplish',\n 'purposely',\n 'purr',\n 'purse',\n 'pursuable',\n 'pursuant',\n 'pursuit',\n 'purveyor',\n 'pushcart',\n 'pushchair',\n 'pusher',\n 'pushiness',\n 'pushing',\n 'pushover',\n 'pushpin',\n 'pushup',\n 'pushy',\n 'putdown',\n 'putt',\n 'puzzle',\n 'puzzling',\n 'pyramid',\n 'pyromania',\n 'python',\n 'quack',\n 'quadrant',\n 'quail',\n 'quaintly',\n 'quake',\n 'quaking',\n 'qualified',\n 'qualifier',\n 'qualify',\n 'quality',\n 'qualm',\n 'quantum',\n 'quarrel',\n 'quarry',\n 'quartered',\n 'quarterly',\n 'quarters',\n 'quartet',\n 'quench',\n 'query',\n 'quicken',\n 'quickly',\n 'quickness',\n 'quicksand',\n 'quickstep',\n 'quiet',\n 'quill',\n 'quilt',\n 'quintet',\n 'quintuple',\n 'quirk',\n 'quit',\n 'quiver',\n 'quizzical',\n 'quotable',\n 'quotation',\n 'quote',\n 'rabid',\n 'race',\n 'racing',\n 'racism',\n 'rack',\n 'racoon',\n 'radar',\n 'radial',\n 'radiance',\n 'radiantly',\n 'radiated',\n 'radiation',\n 'radiator',\n 'radio',\n 'radish',\n 'raffle',\n 'raft',\n 'rage',\n 'ragged',\n 'raging',\n 'ragweed',\n 'raider',\n 'railcar',\n 'railing',\n 'railroad',\n 'railway',\n 'raisin',\n 'rake',\n 'raking',\n 'rally',\n 'ramble',\n 'rambling',\n 'ramp',\n 'ramrod',\n 'ranch',\n 'rancidity',\n 'random',\n 'ranged',\n 'ranger',\n 'ranging',\n 'ranked',\n 'ranking',\n 'ransack',\n 'ranting',\n 'rants',\n 'rare',\n 'rarity',\n 'rascal',\n 'rash',\n 'rasping',\n 'ravage',\n 'raven',\n 'ravine',\n 'raving',\n 'ravioli',\n 'ravishing',\n 'reabsorb',\n 'reach',\n 'reacquire',\n 'reaction',\n 'reactive',\n 'reactor',\n 'reaffirm',\n 'ream',\n 'reanalyze',\n 'reappear',\n 'reapply',\n 'reappoint',\n 'reapprove',\n 'rearrange',\n 'rearview',\n 'reason',\n 'reassign',\n 'reassure',\n 'reattach',\n 'reawake',\n 'rebalance',\n 'rebate',\n 'rebel',\n 'rebirth',\n 'reboot',\n 'reborn',\n 'rebound',\n 'rebuff',\n 'rebuild',\n 'rebuilt',\n 'reburial',\n 'rebuttal',\n 'recall',\n 'recant',\n 'recapture',\n 'recast',\n 'recede',\n 'recent',\n 'recess',\n 'recharger',\n 'recipient',\n 'recital',\n 'recite',\n 'reckless',\n 'reclaim',\n 'recliner',\n 'reclining',\n 'recluse',\n 'reclusive',\n 'recognize',\n 'recoil',\n 'recollect',\n 'recolor',\n 'reconcile',\n 'reconfirm',\n 'reconvene',\n 'recopy',\n 'record',\n 'recount',\n 'recoup',\n 'recovery',\n 'recreate',\n 'rectal',\n 'rectangle',\n 'rectified',\n 'rectify',\n 'recycled',\n 'recycler',\n 'recycling',\n 'reemerge',\n 'reenact',\n 'reenter',\n 'reentry',\n 'reexamine',\n 'referable',\n 'referee',\n 'reference',\n 'refill',\n 'refinance',\n 'refined',\n 'refinery',\n 'refining',\n 'refinish',\n 'reflected',\n 'reflector',\n 'reflex',\n 'reflux',\n 'refocus',\n 'refold',\n 'reforest',\n 'reformat',\n 'reformed',\n 'reformer',\n 'reformist',\n 'refract',\n 'refrain',\n 'refreeze',\n 'refresh',\n 'refried',\n 'refueling',\n 'refund',\n 'refurbish',\n 'refurnish',\n 'refusal',\n 'refuse',\n 'refusing',\n 'refutable',\n 'refute',\n 'regain',\n 'regalia',\n 'regally',\n 'reggae',\n 'regime',\n 'region',\n 'register',\n 'registrar',\n 'registry',\n 'regress',\n 'regretful',\n 'regroup',\n 'regular',\n 'regulate',\n 'regulator',\n 'rehab',\n 'reheat',\n 'rehire',\n 'rehydrate',\n 'reimburse',\n 'reissue',\n 'reiterate',\n 'rejoice',\n 'rejoicing',\n 'rejoin',\n 'rekindle',\n 'relapse',\n 'relapsing',\n 'relatable',\n 'related',\n 'relation',\n 'relative',\n 'relax',\n 'relay',\n 'relearn',\n 'release',\n 'relenting',\n 'reliable',\n 'reliably',\n 'reliance',\n 'reliant',\n 'relic',\n 'relieve',\n 'relieving',\n 'relight',\n 'relish',\n 'relive',\n 'reload',\n 'relocate',\n 'relock',\n 'reluctant',\n 'rely',\n 'remake',\n 'remark',\n 'remarry',\n 'rematch',\n 'remedial',\n 'remedy',\n 'remember',\n 'reminder',\n 'remindful',\n 'remission',\n 'remix',\n 'remnant',\n 'remodeler',\n 'remold',\n 'remorse',\n 'remote',\n 'removable',\n 'removal',\n 'removed',\n 'remover',\n 'removing',\n 'rename',\n 'renderer',\n 'rendering',\n 'rendition',\n 'renegade',\n 'renewable',\n 'renewably',\n 'renewal',\n 'renewed',\n 'renounce',\n 'renovate',\n 'renovator',\n 'rentable',\n 'rental',\n 'rented',\n 'renter',\n 'reoccupy',\n 'reoccur',\n 'reopen',\n 'reorder',\n 'repackage',\n 'repacking',\n 'repaint',\n 'repair',\n 'repave',\n 'repaying',\n 'repayment',\n 'repeal',\n 'repeated',\n 'repeater',\n 'repent',\n 'rephrase',\n 'replace',\n 'replay',\n 'replica',\n 'reply',\n 'reporter',\n 'repose',\n 'repossess',\n 'repost',\n 'repressed',\n 'reprimand',\n 'reprint',\n 'reprise',\n 'reproach',\n 'reprocess',\n 'reproduce',\n 'reprogram',\n 'reps',\n 'reptile',\n 'reptilian',\n 'repugnant',\n 'repulsion',\n 'repulsive',\n 'repurpose',\n 'reputable',\n 'reputably',\n 'request',\n 'require',\n 'requisite',\n 'reroute',\n 'rerun',\n 'resale',\n 'resample',\n 'rescuer',\n 'reseal',\n 'research',\n 'reselect',\n 'reseller',\n 'resemble',\n 'resend',\n 'resent',\n 'reset',\n 'reshape',\n 'reshoot',\n 'reshuffle',\n 'residence',\n 'residency',\n 'resident',\n 'residual',\n 'residue',\n 'resigned',\n 'resilient',\n 'resistant',\n 'resisting',\n 'resize',\n 'resolute',\n 'resolved',\n 'resonant',\n 'resonate',\n 'resort',\n 'resource',\n 'respect',\n 'resubmit',\n 'result',\n 'resume',\n 'resupply',\n 'resurface',\n 'resurrect',\n 'retail',\n 'retainer',\n 'retaining',\n 'retake',\n 'retaliate',\n 'retention',\n 'rethink',\n 'retinal',\n 'retired',\n 'retiree',\n 'retiring',\n 'retold',\n 'retool',\n 'retorted',\n 'retouch',\n 'retrace',\n 'retract',\n 'retrain',\n 'retread',\n 'retreat',\n 'retrial',\n 'retrieval',\n 'retriever',\n 'retry',\n 'return',\n 'retying',\n 'retype',\n 'reunion',\n 'reunite',\n 'reusable',\n 'reuse',\n 'reveal',\n 'reveler',\n 'revenge',\n 'revenue',\n 'reverb',\n 'revered',\n 'reverence',\n 'reverend',\n 'reversal',\n 'reverse',\n 'reversing',\n 'reversion',\n 'revert',\n 'revisable',\n 'revise',\n 'revision',\n 'revisit',\n 'revivable',\n 'revival',\n 'reviver',\n 'reviving',\n 'revocable',\n 'revoke',\n 'revolt',\n 'revolver',\n 'revolving',\n 'reward',\n 'rewash',\n 'rewind',\n 'rewire',\n 'reword',\n 'rework',\n 'rewrap',\n 'rewrite',\n 'rhyme',\n 'ribbon',\n 'ribcage',\n 'rice',\n 'riches',\n 'richly',\n 'richness',\n 'rickety',\n 'ricotta',\n 'riddance',\n 'ridden',\n 'ride',\n 'riding',\n 'rifling',\n 'rift',\n 'rigging',\n 'rigid',\n 'rigor',\n 'rimless',\n 'rimmed',\n 'rind',\n 'rink',\n 'rinse',\n 'rinsing',\n 'riot',\n 'ripcord',\n 'ripeness',\n 'ripening',\n 'ripping',\n 'ripple',\n 'rippling',\n 'riptide',\n 'rise',\n 'rising',\n 'risk',\n 'risotto',\n 'ritalin',\n 'ritzy',\n 'rival',\n 'riverbank',\n 'riverbed',\n 'riverboat',\n 'riverside',\n 'riveter',\n 'riveting',\n 'roamer',\n 'roaming',\n 'roast',\n 'robbing',\n 'robe',\n 'robin',\n 'robotics',\n 'robust',\n 'rockband',\n 'rocker',\n 'rocket',\n 'rockfish',\n 'rockiness',\n 'rocking',\n 'rocklike',\n 'rockslide',\n 'rockstar',\n 'rocky',\n 'rogue',\n 'roman',\n 'romp',\n 'rope',\n 'roping',\n 'roster',\n 'rosy',\n 'rotten',\n 'rotting',\n 'rotunda',\n 'roulette',\n 'rounding',\n 'roundish',\n 'roundness',\n 'roundup',\n 'roundworm',\n 'routine',\n 'routing',\n 'rover',\n 'roving',\n 'royal',\n 'rubbed',\n 'rubber',\n 'rubbing',\n 'rubble',\n 'rubdown',\n 'ruby',\n 'ruckus',\n 'rudder',\n 'rug',\n 'ruined',\n 'rule',\n 'rumble',\n 'rumbling',\n 'rummage',\n 'rumor',\n 'runaround',\n 'rundown',\n 'runner',\n 'running',\n 'runny',\n 'runt',\n 'runway',\n 'rupture',\n 'rural',\n 'ruse',\n 'rush',\n 'rust',\n 'rut',\n 'sabbath',\n 'sabotage',\n 'sacrament',\n 'sacred',\n 'sacrifice',\n 'sadden',\n 'saddlebag',\n 'saddled',\n 'saddling',\n 'sadly',\n 'sadness',\n 'safari',\n 'safeguard',\n 'safehouse',\n 'safely',\n 'safeness',\n 'saffron',\n 'saga',\n 'sage',\n 'sagging',\n 'saggy',\n 'said',\n 'saint',\n 'sake',\n 'salad',\n 'salami',\n 'salaried',\n 'salary',\n 'saline',\n 'salon',\n 'saloon',\n 'salsa',\n 'salt',\n 'salutary',\n 'salute',\n 'salvage',\n 'salvaging',\n 'salvation',\n 'same',\n 'sample',\n 'sampling',\n 'sanction',\n 'sanctity',\n 'sanctuary',\n 'sandal',\n 'sandbag',\n 'sandbank',\n 'sandbar',\n 'sandblast',\n 'sandbox',\n 'sanded',\n 'sandfish',\n 'sanding',\n 'sandlot',\n 'sandpaper',\n 'sandpit',\n 'sandstone',\n 'sandstorm',\n 'sandworm',\n 'sandy',\n 'sanitary',\n 'sanitizer',\n 'sank',\n 'santa',\n 'sapling',\n 'sappiness',\n 'sappy',\n 'sarcasm',\n 'sarcastic',\n 'sardine',\n 'sash',\n 'sasquatch',\n 'sassy',\n 'satchel',\n 'satiable',\n 'satin',\n 'satirical',\n 'satisfied',\n 'satisfy',\n 'saturate',\n 'saturday',\n 'sauciness',\n 'saucy',\n 'sauna',\n 'savage',\n 'savanna',\n 'saved',\n 'savings',\n 'savior',\n 'savor',\n 'saxophone',\n 'say',\n 'scabbed',\n 'scabby',\n 'scalded',\n 'scalding',\n 'scale',\n 'scaling',\n 'scallion',\n 'scallop',\n 'scalping',\n 'scam',\n 'scandal',\n 'scanner',\n 'scanning',\n 'scant',\n 'scapegoat',\n 'scarce',\n 'scarcity',\n 'scarecrow',\n 'scared',\n 'scarf',\n 'scarily',\n 'scariness',\n 'scarring',\n 'scary',\n 'scavenger',\n 'scenic',\n 'schedule',\n 'schematic',\n 'scheme',\n 'scheming',\n 'schilling',\n 'schnapps',\n 'scholar',\n 'science',\n 'scientist',\n 'scion',\n 'scoff',\n 'scolding',\n 'scone',\n 'scoop',\n 'scooter',\n 'scope',\n 'scorch',\n 'scorebook',\n 'scorecard',\n 'scored',\n 'scoreless',\n 'scorer',\n 'scoring',\n 'scorn',\n 'scorpion',\n 'scotch',\n 'scoundrel',\n 'scoured',\n 'scouring',\n 'scouting',\n 'scouts',\n 'scowling',\n 'scrabble',\n 'scraggly',\n 'scrambled',\n 'scrambler',\n 'scrap',\n 'scratch',\n 'scrawny',\n 'screen',\n 'scribble',\n 'scribe',\n 'scribing',\n 'scrimmage',\n 'script',\n 'scroll',\n 'scrooge',\n 'scrounger',\n 'scrubbed',\n 'scrubber',\n 'scruffy',\n 'scrunch',\n 'scrutiny',\n 'scuba',\n 'scuff',\n 'sculptor',\n 'sculpture',\n 'scurvy',\n 'scuttle',\n 'secluded',\n 'secluding',\n 'seclusion',\n 'second',\n 'secrecy',\n 'secret',\n 'sectional',\n 'sector',\n 'secular',\n 'securely',\n 'security',\n 'sedan',\n 'sedate',\n 'sedation',\n 'sedative',\n 'sediment',\n 'seduce',\n 'seducing',\n 'segment',\n 'seismic',\n 'seizing',\n 'seldom',\n 'selected',\n 'selection',\n 'selective',\n 'selector',\n 'self',\n 'seltzer',\n 'semantic',\n 'semester',\n 'semicolon',\n 'semifinal',\n 'seminar',\n 'semisoft',\n 'semisweet',\n 'senate',\n 'senator',\n 'send',\n 'senior',\n 'senorita',\n 'sensation',\n 'sensitive',\n 'sensitize',\n 'sensually',\n 'sensuous',\n 'sepia',\n 'september',\n 'septic',\n 'septum',\n 'sequel',\n 'sequence',\n 'sequester',\n 'series',\n 'sermon',\n 'serotonin',\n 'serpent',\n 'serrated',\n 'serve',\n 'service',\n 'serving',\n 'sesame',\n 'sessions',\n 'setback',\n 'setting',\n 'settle',\n 'settling',\n 'setup',\n 'sevenfold',\n 'seventeen',\n 'seventh',\n 'seventy',\n 'severity',\n 'shabby',\n 'shack',\n 'shaded',\n 'shadily',\n 'shadiness',\n 'shading',\n 'shadow',\n 'shady',\n 'shaft',\n 'shakable',\n 'shakily',\n 'shakiness',\n 'shaking',\n 'shaky',\n 'shale',\n 'shallot',\n 'shallow',\n 'shame',\n 'shampoo',\n 'shamrock',\n 'shank',\n 'shanty',\n 'shape',\n 'shaping',\n 'share',\n 'sharpener',\n 'sharper',\n 'sharpie',\n 'sharply',\n 'sharpness',\n 'shawl',\n 'sheath',\n 'shed',\n 'sheep',\n 'sheet',\n 'shelf',\n 'shell',\n 'shelter',\n 'shelve',\n 'shelving',\n 'sherry',\n 'shield',\n 'shifter',\n 'shifting',\n 'shiftless',\n 'shifty',\n 'shimmer',\n 'shimmy',\n 'shindig',\n 'shine',\n 'shingle',\n 'shininess',\n 'shining',\n 'shiny',\n 'ship',\n 'shirt',\n 'shivering',\n 'shock',\n 'shone',\n 'shoplift',\n 'shopper',\n 'shopping',\n 'shoptalk',\n 'shore',\n 'shortage',\n 'shortcake',\n 'shortcut',\n 'shorten',\n 'shorter',\n 'shorthand',\n 'shortlist',\n 'shortly',\n 'shortness',\n 'shorts',\n 'shortwave',\n 'shorty',\n 'shout',\n 'shove',\n 'showbiz',\n 'showcase',\n 'showdown',\n 'shower',\n 'showgirl',\n 'showing',\n 'showman',\n 'shown',\n 'showoff',\n 'showpiece',\n 'showplace',\n 'showroom',\n 'showy',\n 'shrank',\n 'shrapnel',\n 'shredder',\n 'shredding',\n 'shrewdly',\n 'shriek',\n 'shrill',\n 'shrimp',\n 'shrine',\n 'shrink',\n 'shrivel',\n 'shrouded',\n 'shrubbery',\n 'shrubs',\n 'shrug',\n 'shrunk',\n 'shucking',\n 'shudder',\n 'shuffle',\n 'shuffling',\n 'shun',\n 'shush',\n 'shut',\n 'shy',\n 'siamese',\n 'siberian',\n 'sibling',\n 'siding',\n 'sierra',\n 'siesta',\n 'sift',\n 'sighing',\n 'silenced',\n 'silencer',\n 'silent',\n 'silica',\n 'silicon',\n 'silk',\n 'silliness',\n 'silly',\n 'silo',\n 'silt',\n 'silver',\n 'similarly',\n 'simile',\n 'simmering',\n 'simple',\n 'simplify',\n 'simply',\n 'sincere',\n 'sincerity',\n 'singer',\n 'singing',\n 'single',\n 'singular',\n 'sinister',\n 'sinless',\n 'sinner',\n 'sinuous',\n 'sip',\n 'siren',\n 'sister',\n 'sitcom',\n 'sitter',\n 'sitting',\n 'situated',\n 'situation',\n 'sixfold',\n 'sixteen',\n 'sixth',\n 'sixties',\n 'sixtieth',\n 'sixtyfold',\n 'sizable',\n 'sizably',\n 'size',\n 'sizing',\n 'sizzle',\n 'sizzling',\n 'skater',\n 'skating',\n 'skedaddle',\n 'skeletal',\n 'skeleton',\n 'skeptic',\n 'sketch',\n 'skewed',\n 'skewer',\n 'skid',\n 'skied',\n 'skier',\n 'skies',\n 'skiing',\n 'skilled',\n 'skillet',\n 'skillful',\n 'skimmed',\n 'skimmer',\n 'skimming',\n 'skimpily',\n 'skincare',\n 'skinhead',\n 'skinless',\n 'skinning',\n 'skinny',\n 'skintight',\n 'skipper',\n 'skipping',\n 'skirmish',\n 'skirt',\n 'skittle',\n 'skydiver',\n 'skylight',\n 'skyline',\n 'skype',\n 'skyrocket',\n 'skyward',\n 'slab',\n 'slacked',\n 'slacker',\n 'slacking',\n 'slackness',\n 'slacks',\n 'slain',\n 'slam',\n 'slander',\n 'slang',\n 'slapping',\n 'slapstick',\n 'slashed',\n 'slashing',\n 'slate',\n 'slather',\n 'slaw',\n 'sled',\n 'sleek',\n 'sleep',\n 'sleet',\n 'sleeve',\n 'slept',\n 'sliceable',\n 'sliced',\n 'slicer',\n 'slicing',\n 'slick',\n 'slider',\n 'slideshow',\n 'sliding',\n 'slighted',\n 'slighting',\n 'slightly',\n 'slimness',\n 'slimy',\n 'slinging',\n 'slingshot',\n 'slinky',\n 'slip',\n 'slit',\n 'sliver',\n 'slobbery',\n 'slogan',\n 'sloped',\n 'sloping',\n 'sloppily',\n 'sloppy',\n 'slot',\n 'slouching',\n 'slouchy',\n 'sludge',\n 'slug',\n 'slum',\n 'slurp',\n 'slush',\n 'sly',\n 'small',\n 'smartly',\n 'smartness',\n 'smasher',\n 'smashing',\n 'smashup',\n 'smell',\n 'smelting',\n 'smile',\n 'smilingly',\n 'smirk',\n 'smite',\n 'smith',\n 'smitten',\n 'smock',\n 'smog',\n 'smoked',\n 'smokeless',\n 'smokiness',\n 'smoking',\n 'smoky',\n 'smolder',\n 'smooth',\n 'smother',\n 'smudge',\n 'smudgy',\n 'smuggler',\n 'smuggling',\n 'smugly',\n 'smugness',\n 'snack',\n 'snagged',\n 'snaking',\n 'snap',\n 'snare',\n 'snarl',\n 'snazzy',\n 'sneak',\n 'sneer',\n 'sneeze',\n 'sneezing',\n 'snide',\n 'sniff',\n 'snippet',\n 'snipping',\n 'snitch',\n 'snooper',\n 'snooze',\n 'snore',\n 'snoring',\n 'snorkel',\n 'snort',\n 'snout',\n 'snowbird',\n 'snowboard',\n 'snowbound',\n 'snowcap',\n 'snowdrift',\n 'snowdrop',\n 'snowfall',\n 'snowfield',\n 'snowflake',\n 'snowiness',\n 'snowless',\n 'snowman',\n 'snowplow',\n 'snowshoe',\n 'snowstorm',\n 'snowsuit',\n 'snowy',\n 'snub',\n 'snuff',\n 'snuggle',\n 'snugly',\n 'snugness',\n 'speak',\n 'spearfish',\n 'spearhead',\n 'spearman',\n 'spearmint',\n 'species',\n 'specimen',\n 'specked',\n 'speckled',\n 'specks',\n 'spectacle',\n 'spectator',\n 'spectrum',\n 'speculate',\n 'speech',\n 'speed',\n 'spellbind',\n 'speller',\n 'spelling',\n 'spendable',\n 'spender',\n 'spending',\n 'spent',\n 'spew',\n 'sphere',\n 'spherical',\n 'sphinx',\n 'spider',\n 'spied',\n 'spiffy',\n 'spill',\n 'spilt',\n 'spinach',\n 'spinal',\n 'spindle',\n 'spinner',\n 'spinning',\n 'spinout',\n 'spinster',\n 'spiny',\n 'spiral',\n 'spirited',\n 'spiritism',\n 'spirits',\n 'spiritual',\n 'splashed',\n 'splashing',\n 'splashy',\n 'splatter',\n 'spleen',\n 'splendid',\n 'splendor',\n 'splice',\n 'splicing',\n 'splinter',\n 'splotchy',\n 'splurge',\n 'spoilage',\n 'spoiled',\n 'spoiler',\n 'spoiling',\n 'spoils',\n 'spoken',\n 'spokesman',\n 'sponge',\n 'spongy',\n 'sponsor',\n 'spoof',\n 'spookily',\n 'spooky',\n 'spool',\n 'spoon',\n 'spore',\n 'sporting',\n 'sports',\n 'sporty',\n 'spotless',\n 'spotlight',\n 'spotted',\n 'spotter',\n 'spotting',\n 'spotty',\n 'spousal',\n 'spouse',\n 'spout',\n 'sprain',\n 'sprang',\n 'sprawl',\n 'spray',\n 'spree',\n 'sprig',\n 'spring',\n 'sprinkled',\n 'sprinkler',\n 'sprint',\n 'sprite',\n 'sprout',\n 'spruce',\n 'sprung',\n 'spry',\n 'spud',\n 'spur',\n 'sputter',\n 'spyglass',\n 'squabble',\n 'squad',\n 'squall',\n 'squander',\n 'squash',\n 'squatted',\n 'squatter',\n 'squatting',\n 'squeak',\n 'squealer',\n 'squealing',\n 'squeamish',\n 'squeegee',\n 'squeeze',\n 'squeezing',\n 'squid',\n 'squiggle',\n 'squiggly',\n 'squint',\n 'squire',\n 'squirt',\n 'squishier',\n 'squishy',\n 'stability',\n 'stabilize',\n 'stable',\n 'stack',\n 'stadium',\n 'staff',\n 'stage',\n 'staging',\n 'stagnant',\n 'stagnate',\n 'stainable',\n 'stained',\n 'staining',\n 'stainless',\n 'stalemate',\n 'staleness',\n 'stalling',\n 'stallion',\n 'stamina',\n 'stammer',\n 'stamp',\n 'stand',\n 'stank',\n 'staple',\n 'stapling',\n 'starboard',\n 'starch',\n 'stardom',\n 'stardust',\n 'starfish',\n 'stargazer',\n 'staring',\n 'stark',\n 'starless',\n 'starlet',\n 'starlight',\n 'starlit',\n 'starring',\n 'starry',\n 'starship',\n 'starter',\n 'starting',\n 'startle',\n 'startling',\n 'startup',\n 'starved',\n 'starving',\n 'stash',\n 'state',\n 'static',\n 'statistic',\n 'statue',\n 'stature',\n 'status',\n 'statute',\n 'statutory',\n 'staunch',\n 'stays',\n 'steadfast',\n 'steadier',\n 'steadily',\n 'steadying',\n 'steam',\n 'steed',\n 'steep',\n 'steerable',\n 'steering',\n 'steersman',\n 'stegosaur',\n 'stellar',\n 'stem',\n 'stench',\n 'stencil',\n 'step',\n 'stereo',\n 'sterile',\n 'sterility',\n 'sterilize',\n 'sterling',\n 'sternness',\n 'sternum',\n 'stew',\n 'stick',\n 'stiffen',\n 'stiffly',\n 'stiffness',\n 'stifle',\n 'stifling',\n 'stillness',\n 'stilt',\n 'stimulant',\n 'stimulate',\n 'stimuli',\n 'stimulus',\n 'stinger',\n 'stingily',\n 'stinging',\n 'stingray',\n 'stingy',\n 'stinking',\n 'stinky',\n 'stipend',\n 'stipulate',\n 'stir',\n 'stitch',\n 'stock',\n 'stoic',\n 'stoke',\n 'stole',\n 'stomp',\n 'stonewall',\n 'stoneware',\n 'stonework',\n 'stoning',\n 'stony',\n 'stood',\n 'stooge',\n 'stool',\n 'stoop',\n 'stoplight',\n 'stoppable',\n 'stoppage',\n 'stopped',\n 'stopper',\n 'stopping',\n 'stopwatch',\n 'storable',\n 'storage',\n 'storeroom',\n 'storewide',\n 'storm',\n 'stout',\n 'stove',\n 'stowaway',\n 'stowing',\n 'straddle',\n 'straggler',\n 'strained',\n 'strainer',\n 'straining',\n 'strangely',\n 'stranger',\n 'strangle',\n 'strategic',\n 'strategy',\n 'stratus',\n 'straw',\n 'stray',\n 'streak',\n 'stream',\n 'street',\n 'strength',\n 'strenuous',\n 'strep',\n 'stress',\n 'stretch',\n 'strewn',\n 'stricken',\n 'strict',\n 'stride',\n 'strife',\n 'strike',\n 'striking',\n 'strive',\n 'striving',\n 'strobe',\n 'strode',\n 'stroller',\n 'strongbox',\n 'strongly',\n 'strongman',\n 'struck',\n 'structure',\n 'strudel',\n 'struggle',\n 'strum',\n 'strung',\n 'strut',\n 'stubbed',\n 'stubble',\n 'stubbly',\n 'stubborn',\n 'stucco',\n 'stuck',\n 'student',\n 'studied',\n 'studio',\n 'study',\n 'stuffed',\n 'stuffing',\n 'stuffy',\n 'stumble',\n 'stumbling',\n 'stump',\n 'stung',\n 'stunned',\n 'stunner',\n 'stunning',\n 'stunt',\n 'stupor',\n 'sturdily',\n 'sturdy',\n 'styling',\n 'stylishly',\n 'stylist',\n 'stylized',\n 'stylus',\n 'suave',\n 'subarctic',\n 'subatomic',\n 'subdivide',\n 'subdued',\n 'subduing',\n 'subfloor',\n 'subgroup',\n 'subheader',\n 'subject',\n 'sublease',\n 'sublet',\n 'sublevel',\n 'sublime',\n 'submarine',\n 'submerge',\n 'submersed',\n 'submitter',\n 'subpanel',\n 'subpar',\n 'subplot',\n 'subprime',\n 'subscribe',\n 'subscript',\n 'subsector',\n 'subside',\n 'subsiding',\n 'subsidize',\n 'subsidy',\n 'subsoil',\n 'subsonic',\n 'substance',\n 'subsystem',\n 'subtext',\n 'subtitle',\n 'subtly',\n 'subtotal',\n 'subtract',\n 'subtype',\n 'suburb',\n 'subway',\n 'subwoofer',\n 'subzero',\n 'succulent',\n 'such',\n 'suction',\n 'sudden',\n 'sudoku',\n 'suds',\n 'sufferer',\n 'suffering',\n 'suffice',\n 'suffix',\n 'suffocate',\n 'suffrage',\n 'sugar',\n 'suggest',\n 'suing',\n 'suitable',\n 'suitably',\n 'suitcase',\n 'suitor',\n 'sulfate',\n 'sulfide',\n 'sulfite',\n 'sulfur',\n 'sulk',\n 'sullen',\n 'sulphate',\n 'sulphuric',\n 'sultry',\n 'superbowl',\n 'superglue',\n 'superhero',\n 'superior',\n 'superjet',\n 'superman',\n 'supermom',\n 'supernova',\n 'supervise',\n 'supper',\n 'supplier',\n 'supply',\n 'support',\n 'supremacy',\n 'supreme',\n 'surcharge',\n 'surely',\n 'sureness',\n 'surface',\n 'surfacing',\n 'surfboard',\n 'surfer',\n 'surgery',\n 'surgical',\n 'surging',\n 'surname',\n 'surpass',\n 'surplus',\n 'surprise',\n 'surreal',\n 'surrender',\n 'surrogate',\n 'surround',\n 'survey',\n 'survival',\n 'survive',\n 'surviving',\n 'survivor',\n 'sushi',\n 'suspect',\n 'suspend',\n 'suspense',\n 'sustained',\n 'sustainer',\n 'swab',\n 'swaddling',\n 'swagger',\n 'swampland',\n 'swan',\n 'swapping',\n 'swarm',\n 'sway',\n 'swear',\n 'sweat',\n 'sweep',\n 'swell',\n 'swept',\n 'swerve',\n 'swifter',\n 'swiftly',\n 'swiftness',\n 'swimmable',\n 'swimmer',\n 'swimming',\n 'swimsuit',\n 'swimwear',\n 'swinger',\n 'swinging',\n 'swipe',\n 'swirl',\n 'switch',\n 'swivel',\n 'swizzle',\n 'swooned',\n 'swoop',\n 'swoosh',\n 'swore',\n 'sworn',\n 'swung',\n 'sycamore',\n 'sympathy',\n 'symphonic',\n 'symphony',\n 'symptom',\n 'synapse',\n 'syndrome',\n 'synergy',\n 'synopses',\n 'synopsis',\n 'synthesis',\n 'synthetic',\n 'syrup',\n 'system',\n 't-shirt',\n 'tabasco',\n 'tabby',\n 'tableful',\n 'tables',\n 'tablet',\n 'tableware',\n 'tabloid',\n 'tackiness',\n 'tacking',\n 'tackle',\n 'tackling',\n 'tacky',\n 'taco',\n 'tactful',\n 'tactical',\n 'tactics',\n 'tactile',\n 'tactless',\n 'tadpole',\n 'taekwondo',\n 'tag',\n 'tainted',\n 'take',\n 'taking',\n 'talcum',\n 'talisman',\n 'tall',\n 'talon',\n 'tamale',\n 'tameness',\n 'tamer',\n 'tamper',\n 'tank',\n 'tanned',\n 'tannery',\n 'tanning',\n 'tantrum',\n 'tapeless',\n 'tapered',\n 'tapering',\n 'tapestry',\n 'tapioca',\n 'tapping',\n 'taps',\n 'tarantula',\n 'target',\n 'tarmac',\n 'tarnish',\n 'tarot',\n 'tartar',\n 'tartly',\n 'tartness',\n 'task',\n 'tassel',\n 'taste',\n 'tastiness',\n 'tasting',\n 'tasty',\n 'tattered',\n 'tattle',\n 'tattling',\n 'tattoo',\n 'taunt',\n 'tavern',\n 'thank',\n 'that',\n 'thaw',\n 'theater',\n 'theatrics',\n 'thee',\n 'theft',\n 'theme',\n 'theology',\n 'theorize',\n 'thermal',\n 'thermos',\n 'thesaurus',\n 'these',\n 'thesis',\n 'thespian',\n 'thicken',\n 'thicket',\n 'thickness',\n 'thieving',\n 'thievish',\n 'thigh',\n 'thimble',\n 'thing',\n 'think',\n 'thinly',\n 'thinner',\n 'thinness',\n 'thinning',\n 'thirstily',\n 'thirsting',\n 'thirsty',\n 'thirteen',\n 'thirty',\n 'thong',\n 'thorn',\n 'those',\n 'thousand',\n 'thrash',\n 'thread',\n 'threaten',\n 'threefold',\n 'thrift',\n 'thrill',\n 'thrive',\n 'thriving',\n 'throat',\n 'throbbing',\n 'throng',\n 'throttle',\n 'throwaway',\n 'throwback',\n 'thrower',\n 'throwing',\n 'thud',\n 'thumb',\n 'thumping',\n 'thursday',\n 'thus',\n 'thwarting',\n 'thyself',\n 'tiara',\n 'tibia',\n 'tidal',\n 'tidbit',\n 'tidiness',\n 'tidings',\n 'tidy',\n 'tiger',\n 'tighten',\n 'tightly',\n 'tightness',\n 'tightrope',\n 'tightwad',\n 'tigress',\n 'tile',\n 'tiling',\n 'till',\n 'tilt',\n 'timid',\n 'timing',\n 'timothy',\n 'tinderbox',\n 'tinfoil',\n 'tingle',\n 'tingling',\n 'tingly',\n 'tinker',\n 'tinkling',\n 'tinsel',\n 'tinsmith',\n 'tint',\n 'tinwork',\n 'tiny',\n 'tipoff',\n 'tipped',\n 'tipper',\n 'tipping',\n 'tiptoeing',\n 'tiptop',\n 'tiring',\n 'tissue',\n 'trace',\n 'tracing',\n 'track',\n 'traction',\n 'tractor',\n 'trade',\n 'trading',\n 'tradition',\n 'traffic',\n 'tragedy',\n 'trailing',\n 'trailside',\n 'train',\n 'traitor',\n 'trance',\n 'tranquil',\n 'transfer',\n 'transform',\n 'translate',\n 'transpire',\n 'transport',\n 'transpose',\n 'trapdoor',\n 'trapeze',\n 'trapezoid',\n 'trapped',\n 'trapper',\n 'trapping',\n 'traps',\n 'trash',\n 'travel',\n 'traverse',\n 'travesty',\n 'tray',\n 'treachery',\n 'treading',\n 'treadmill',\n 'treason',\n 'treat',\n 'treble',\n 'tree',\n 'trekker',\n 'tremble',\n 'trembling',\n 'tremor',\n 'trench',\n 'trend',\n 'trespass',\n 'triage',\n 'trial',\n 'triangle',\n 'tribesman',\n 'tribunal',\n 'tribune',\n 'tributary',\n 'tribute',\n 'triceps',\n 'trickery',\n 'trickily',\n 'tricking',\n 'trickle',\n 'trickster',\n 'tricky',\n 'tricolor',\n 'tricycle',\n 'trident',\n 'tried',\n 'trifle',\n 'trifocals',\n 'trillion',\n 'trilogy',\n 'trimester',\n 'trimmer',\n 'trimming',\n 'trimness',\n 'trinity',\n 'trio',\n 'tripod',\n 'tripping',\n 'triumph',\n 'trivial',\n 'trodden',\n 'trolling',\n 'trombone',\n 'trophy',\n 'tropical',\n 'tropics',\n 'trouble',\n 'troubling',\n 'trough',\n 'trousers',\n 'trout',\n 'trowel',\n 'truce',\n 'truck',\n 'truffle',\n 'trump',\n 'trunks',\n 'trustable',\n 'trustee',\n 'trustful',\n 'trusting',\n 'trustless',\n 'truth',\n 'try',\n 'tubby',\n 'tubeless',\n 'tubular',\n 'tucking',\n 'tuesday',\n 'tug',\n 'tuition',\n 'tulip',\n 'tumble',\n 'tumbling',\n 'tummy',\n 'turban',\n 'turbine',\n 'turbofan',\n 'turbojet',\n 'turbulent',\n 'turf',\n 'turkey',\n 'turmoil',\n 'turret',\n 'turtle',\n 'tusk',\n 'tutor',\n 'tutu',\n 'tux',\n 'tweak',\n 'tweed',\n 'tweet',\n 'tweezers',\n 'twelve',\n 'twentieth',\n 'twenty',\n 'twerp',\n 'twice',\n 'twiddle',\n 'twiddling',\n 'twig',\n 'twilight',\n 'twine',\n 'twins',\n 'twirl',\n 'twistable',\n 'twisted',\n 'twister',\n 'twisting',\n 'twisty',\n 'twitch',\n 'twitter',\n 'tycoon',\n 'tying',\n 'tyke',\n 'udder',\n 'ultimate',\n 'ultimatum',\n 'ultra',\n 'umbilical',\n 'umbrella',\n 'umpire',\n 'unabashed',\n 'unable',\n 'unadorned',\n 'unadvised',\n 'unafraid',\n 'unaired',\n 'unaligned',\n 'unaltered',\n 'unarmored',\n 'unashamed',\n 'unaudited',\n 'unawake',\n 'unaware',\n 'unbaked',\n 'unbalance',\n 'unbeaten',\n 'unbend',\n 'unbent',\n 'unbiased',\n 'unbitten',\n 'unblended',\n 'unblessed',\n 'unblock',\n 'unbolted',\n 'unbounded',\n 'unboxed',\n 'unbraided',\n 'unbridle',\n 'unbroken',\n 'unbuckled',\n 'unbundle',\n 'unburned',\n 'unbutton',\n 'uncanny',\n 'uncapped',\n 'uncaring',\n 'uncertain',\n 'unchain',\n 'unchanged',\n 'uncharted',\n 'uncheck',\n 'uncivil',\n 'unclad',\n 'unclaimed',\n 'unclamped',\n 'unclasp',\n 'uncle',\n 'unclip',\n 'uncloak',\n 'unclog',\n 'unclothed',\n 'uncoated',\n 'uncoiled',\n 'uncolored',\n 'uncombed',\n 'uncommon',\n 'uncooked',\n 'uncork',\n 'uncorrupt',\n 'uncounted',\n 'uncouple',\n 'uncouth',\n 'uncover',\n 'uncross',\n 'uncrown',\n 'uncrushed',\n 'uncured',\n 'uncurious',\n 'uncurled',\n 'uncut',\n 'undamaged',\n 'undated',\n 'undaunted',\n 'undead',\n 'undecided',\n 'undefined',\n 'underage',\n 'underarm',\n 'undercoat',\n 'undercook',\n 'undercut',\n 'underdog',\n 'underdone',\n 'underfed',\n 'underfeed',\n 'underfoot',\n 'undergo',\n 'undergrad',\n 'underhand',\n 'underline',\n 'underling',\n 'undermine',\n 'undermost',\n 'underpaid',\n 'underpass',\n 'underpay',\n 'underrate',\n 'undertake',\n 'undertone',\n 'undertook',\n 'undertow',\n 'underuse',\n 'underwear',\n 'underwent',\n 'underwire',\n 'undesired',\n 'undiluted',\n 'undivided',\n 'undocked',\n 'undoing',\n 'undone',\n 'undrafted',\n 'undress',\n 'undrilled',\n 'undusted',\n 'undying',\n 'unearned',\n 'unearth',\n 'unease',\n 'uneasily',\n 'uneasy',\n 'uneatable',\n 'uneaten',\n 'unedited',\n 'unelected',\n 'unending',\n 'unengaged',\n 'unenvied',\n 'unequal',\n 'unethical',\n 'uneven',\n 'unexpired',\n 'unexposed',\n 'unfailing',\n 'unfair',\n 'unfasten',\n 'unfazed',\n 'unfeeling',\n 'unfiled',\n 'unfilled',\n 'unfitted',\n 'unfitting',\n 'unfixable',\n 'unfixed',\n 'unflawed',\n 'unfocused',\n 'unfold',\n 'unfounded',\n 'unframed',\n 'unfreeze',\n 'unfrosted',\n 'unfrozen',\n 'unfunded',\n 'unglazed',\n 'ungloved',\n 'unglue',\n 'ungodly',\n 'ungraded',\n 'ungreased',\n 'unguarded',\n 'unguided',\n 'unhappily',\n 'unhappy',\n 'unharmed',\n 'unhealthy',\n 'unheard',\n 'unhearing',\n 'unheated',\n 'unhelpful',\n 'unhidden',\n 'unhinge',\n 'unhitched',\n 'unholy',\n 'unhook',\n 'unicorn',\n 'unicycle',\n 'unified',\n 'unifier',\n 'uniformed',\n 'uniformly',\n 'unify',\n 'unimpeded',\n 'uninjured',\n 'uninstall',\n 'uninsured',\n 'uninvited',\n 'union',\n 'uniquely',\n 'unisexual',\n 'unison',\n 'unissued',\n 'unit',\n 'universal',\n 'universe',\n 'unjustly',\n 'unkempt',\n 'unkind',\n 'unknotted',\n 'unknowing',\n 'unknown',\n 'unlaced',\n 'unlatch',\n 'unlawful',\n 'unleaded',\n 'unlearned',\n 'unleash',\n 'unless',\n 'unleveled',\n 'unlighted',\n 'unlikable',\n 'unlimited',\n 'unlined',\n 'unlinked',\n 'unlisted',\n 'unlit',\n 'unlivable',\n 'unloaded',\n 'unloader',\n 'unlocked',\n 'unlocking',\n 'unlovable',\n 'unloved',\n 'unlovely',\n 'unloving',\n 'unluckily',\n 'unlucky',\n 'unmade',\n 'unmanaged',\n 'unmanned',\n 'unmapped',\n 'unmarked',\n 'unmasked',\n 'unmasking',\n 'unmatched',\n 'unmindful',\n 'unmixable',\n 'unmixed',\n 'unmolded',\n 'unmoral',\n 'unmovable',\n 'unmoved',\n 'unmoving',\n 'unnamable',\n 'unnamed',\n 'unnatural',\n 'unneeded',\n 'unnerve',\n 'unnerving',\n 'unnoticed',\n 'unopened',\n 'unopposed',\n 'unpack',\n 'unpadded',\n 'unpaid',\n 'unpainted',\n 'unpaired',\n 'unpaved',\n 'unpeeled',\n 'unpicked',\n 'unpiloted',\n 'unpinned',\n 'unplanned',\n 'unplanted',\n 'unpleased',\n 'unpledged',\n 'unplowed',\n 'unplug',\n 'unpopular',\n 'unproven',\n 'unquote',\n 'unranked',\n 'unrated',\n 'unraveled',\n 'unreached',\n 'unread',\n 'unreal',\n 'unreeling',\n 'unrefined',\n 'unrelated',\n 'unrented',\n 'unrest',\n 'unretired',\n 'unrevised',\n 'unrigged',\n 'unripe',\n 'unrivaled',\n 'unroasted',\n 'unrobed',\n 'unroll',\n 'unruffled',\n 'unruly',\n 'unrushed',\n 'unsaddle',\n 'unsafe',\n 'unsaid',\n 'unsalted',\n 'unsaved',\n 'unsavory',\n 'unscathed',\n 'unscented',\n 'unscrew',\n 'unsealed',\n 'unseated',\n 'unsecured',\n 'unseeing',\n 'unseemly',\n 'unseen',\n 'unselect',\n 'unselfish',\n 'unsent',\n 'unsettled',\n 'unshackle',\n 'unshaken',\n 'unshaved',\n 'unshaven',\n 'unsheathe',\n 'unshipped',\n 'unsightly',\n 'unsigned',\n 'unskilled',\n 'unsliced',\n 'unsmooth',\n 'unsnap',\n 'unsocial',\n 'unsoiled',\n 'unsold',\n 'unsolved',\n 'unsorted',\n 'unspoiled',\n 'unspoken',\n 'unstable',\n 'unstaffed',\n 'unstamped',\n 'unsteady',\n 'unsterile',\n 'unstirred',\n 'unstitch',\n 'unstopped',\n 'unstuck',\n 'unstuffed',\n 'unstylish',\n 'unsubtle',\n 'unsubtly',\n 'unsuited',\n 'unsure',\n 'unsworn',\n 'untagged',\n 'untainted',\n 'untaken',\n 'untamed',\n 'untangled',\n 'untapped',\n 'untaxed',\n 'unthawed',\n 'unthread',\n 'untidy',\n 'untie',\n 'until',\n 'untimed',\n 'untimely',\n 'untitled',\n 'untoasted',\n 'untold',\n 'untouched',\n 'untracked',\n 'untrained',\n 'untreated',\n 'untried',\n 'untrimmed',\n 'untrue',\n 'untruth',\n 'unturned',\n 'untwist',\n 'untying',\n 'unusable',\n 'unused',\n 'unusual',\n 'unvalued',\n 'unvaried',\n 'unvarying',\n 'unveiled',\n 'unveiling',\n 'unvented',\n 'unviable',\n 'unvisited',\n 'unvocal',\n 'unwanted',\n 'unwarlike',\n 'unwary',\n 'unwashed',\n 'unwatched',\n 'unweave',\n 'unwed',\n 'unwelcome',\n 'unwell',\n 'unwieldy',\n 'unwilling',\n 'unwind',\n 'unwired',\n 'unwitting',\n 'unwomanly',\n 'unworldly',\n 'unworn',\n 'unworried',\n 'unworthy',\n 'unwound',\n 'unwoven',\n 'unwrapped',\n 'unwritten',\n 'unzip',\n 'upbeat',\n 'upchuck',\n 'upcoming',\n 'upcountry',\n 'update',\n 'upfront',\n 'upgrade',\n 'upheaval',\n 'upheld',\n 'uphill',\n 'uphold',\n 'uplifted',\n 'uplifting',\n 'upload',\n 'upon',\n 'upper',\n 'upright',\n 'uprising',\n 'upriver',\n 'uproar',\n 'uproot',\n 'upscale',\n 'upside',\n 'upstage',\n 'upstairs',\n 'upstart',\n 'upstate',\n 'upstream',\n 'upstroke',\n 'upswing',\n 'uptake',\n 'uptight',\n 'uptown',\n 'upturned',\n 'upward',\n 'upwind',\n 'uranium',\n 'urban',\n 'urchin',\n 'urethane',\n 'urgency',\n 'urgent',\n 'urging',\n 'urologist',\n 'urology',\n 'usable',\n 'usage',\n 'useable',\n 'used',\n 'uselessly',\n 'user',\n 'usher',\n 'usual',\n 'utensil',\n 'utility',\n 'utilize',\n 'utmost',\n 'utopia',\n 'utter',\n 'vacancy',\n 'vacant',\n 'vacate',\n 'vacation',\n 'vagabond',\n 'vagrancy',\n 'vagrantly',\n 'vaguely',\n 'vagueness',\n 'valiant',\n 'valid',\n 'valium',\n 'valley',\n 'valuables',\n 'value',\n 'vanilla',\n 'vanish',\n 'vanity',\n 'vanquish',\n 'vantage',\n 'vaporizer',\n 'variable',\n 'variably',\n 'varied',\n 'variety',\n 'various',\n 'varmint',\n 'varnish',\n 'varsity',\n 'varying',\n 'vascular',\n 'vaseline',\n 'vastly',\n 'vastness',\n 'veal',\n 'vegan',\n 'veggie',\n 'vehicular',\n 'velcro',\n 'velocity',\n 'velvet',\n 'vendetta',\n 'vending',\n 'vendor',\n 'veneering',\n 'vengeful',\n 'venomous',\n 'ventricle',\n 'venture',\n 'venue',\n 'venus',\n 'verbalize',\n 'verbally',\n 'verbose',\n 'verdict',\n 'verify',\n 'verse',\n 'version',\n 'versus',\n 'vertebrae',\n 'vertical',\n 'vertigo',\n 'very',\n 'vessel',\n 'vest',\n 'veteran',\n 'veto',\n 'vexingly',\n 'viability',\n 'viable',\n 'vibes',\n 'vice',\n 'vicinity',\n 'victory',\n 'video',\n 'viewable',\n 'viewer',\n 'viewing',\n 'viewless',\n 'viewpoint',\n 'vigorous',\n 'village',\n 'villain',\n 'vindicate',\n 'vineyard',\n 'vintage',\n 'violate',\n 'violation',\n 'violator',\n 'violet',\n 'violin',\n 'viper',\n 'viral',\n 'virtual',\n 'virtuous',\n 'virus',\n 'visa',\n 'viscosity',\n 'viscous',\n 'viselike',\n 'visible',\n 'visibly',\n 'vision',\n 'visiting',\n 'visitor',\n 'visor',\n 'vista',\n 'vitality',\n 'vitalize',\n 'vitally',\n 'vitamins',\n 'vivacious',\n 'vividly',\n 'vividness',\n 'vixen',\n 'vocalist',\n 'vocalize',\n 'vocally',\n 'vocation',\n 'voice',\n 'voicing',\n 'void',\n 'volatile',\n 'volley',\n 'voltage',\n 'volumes',\n 'voter',\n 'voting',\n 'voucher',\n 'vowed',\n 'vowel',\n 'voyage',\n 'wackiness',\n 'wad',\n 'wafer',\n 'waffle',\n 'waged',\n 'wager',\n 'wages',\n 'waggle',\n 'wagon',\n 'wake',\n 'waking',\n 'walk',\n 'walmart',\n 'walnut',\n 'walrus',\n 'waltz',\n 'wand',\n 'wannabe',\n 'wanted',\n 'wanting',\n 'wasabi',\n 'washable',\n 'washbasin',\n 'washboard',\n 'washbowl',\n 'washcloth',\n 'washday',\n 'washed',\n 'washer',\n 'washhouse',\n 'washing',\n 'washout',\n 'washroom',\n 'washstand',\n 'washtub',\n 'wasp',\n 'wasting',\n 'watch',\n 'water',\n 'waviness',\n 'waving',\n 'wavy',\n 'whacking',\n 'whacky',\n 'wham',\n 'wharf',\n 'wheat',\n 'whenever',\n 'whiff',\n 'whimsical',\n 'whinny',\n 'whiny',\n 'whisking',\n 'whoever',\n 'whole',\n 'whomever',\n 'whoopee',\n 'whooping',\n 'whoops',\n 'why',\n 'wick',\n 'widely',\n 'widen',\n 'widget',\n 'widow',\n 'width',\n 'wieldable',\n 'wielder',\n 'wife',\n 'wifi',\n 'wikipedia',\n 'wildcard',\n 'wildcat',\n 'wilder',\n 'wildfire',\n 'wildfowl',\n 'wildland',\n 'wildlife',\n 'wildly',\n 'wildness',\n 'willed',\n 'willfully',\n 'willing',\n 'willow',\n 'willpower',\n 'wilt',\n 'wimp',\n 'wince',\n 'wincing',\n 'wind',\n 'wing',\n 'winking',\n 'winner',\n 'winnings',\n 'winter',\n 'wipe',\n 'wired',\n 'wireless',\n 'wiring',\n 'wiry',\n 'wisdom',\n 'wise',\n 'wish',\n 'wisplike',\n 'wispy',\n 'wistful',\n 'wizard',\n 'wobble',\n 'wobbling',\n 'wobbly',\n 'wok',\n 'wolf',\n 'wolverine',\n 'womanhood',\n 'womankind',\n 'womanless',\n 'womanlike',\n 'womanly',\n 'womb',\n 'woof',\n 'wooing',\n 'wool',\n 'woozy',\n 'word',\n 'work',\n 'worried',\n 'worrier',\n 'worrisome',\n 'worry',\n 'worsening',\n 'worshiper',\n 'worst',\n 'wound',\n 'woven',\n 'wow',\n 'wrangle',\n 'wrath',\n 'wreath',\n 'wreckage',\n 'wrecker',\n 'wrecking',\n 'wrench',\n 'wriggle',\n 'wriggly',\n 'wrinkle',\n 'wrinkly',\n 'wrist',\n 'writing',\n 'written',\n 'wrongdoer',\n 'wronged',\n 'wrongful',\n 'wrongly',\n 'wrongness',\n 'wrought',\n 'xbox',\n 'xerox',\n 'yahoo',\n 'yam',\n 'yanking',\n 'yapping',\n 'yard',\n 'yarn',\n 'yeah',\n 'yearbook',\n 'yearling',\n 'yearly',\n 'yearning',\n 'yeast',\n 'yelling',\n 'yelp',\n 'yen',\n 'yesterday',\n 'yiddish',\n 'yield',\n 'yin',\n 'yippee',\n 'yo-yo',\n 'yodel',\n 'yoga',\n 'yogurt',\n 'yonder',\n 'yoyo',\n 'yummy',\n 'zap',\n 'zealous',\n 'zebra',\n 'zen',\n 'zeppelin',\n 'zero',\n 'zestfully',\n 'zesty',\n 'zigzagged',\n 'zipfile',\n 'zipping',\n 'zippy',\n 'zips',\n 'zit',\n 'zodiac',\n 'zombie',\n 'zone',\n 'zoning',\n 'zookeeper',\n 'zoologist',\n 'zoology',\n 'zoom',\n];\n","import { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { ConstantsService } from './constants.service';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { EnvironmentService as EnvironmentServiceAbstraction } from '../abstractions/environment.service';\nimport { NotificationsService } from '../abstractions/notifications.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nexport class EnvironmentService implements EnvironmentServiceAbstraction {\n baseUrl: string;\n webVaultUrl: string;\n apiUrl: string;\n identityUrl: string;\n iconsUrl: string;\n notificationsUrl: string;\n eventsUrl: string;\n enterpriseUrl: string;\n\n constructor(private apiService: ApiService, private storageService: StorageService,\n private notificationsService: NotificationsService) { }\n\n getWebVaultUrl(): string {\n if (this.webVaultUrl != null) {\n return this.webVaultUrl;\n } else if (this.baseUrl) {\n return this.baseUrl;\n }\n return null;\n }\n\n async setUrlsFromStorage(): Promise {\n const urlsObj: any = await this.storageService.get(ConstantsService.environmentUrlsKey);\n const urls = urlsObj || {\n base: null,\n api: null,\n identity: null,\n icons: null,\n notifications: null,\n events: null,\n webVault: null,\n enterprise: null,\n };\n\n const envUrls = new EnvironmentUrls();\n\n if (urls.base) {\n this.baseUrl = envUrls.base = urls.base;\n this.apiService.setUrls(envUrls);\n return;\n }\n\n this.webVaultUrl = urls.webVault;\n this.apiUrl = envUrls.api = urls.api;\n this.identityUrl = envUrls.identity = urls.identity;\n this.iconsUrl = urls.icons;\n this.notificationsUrl = urls.notifications;\n this.eventsUrl = envUrls.events = urls.events;\n this.enterpriseUrl = urls.enterprise;\n this.apiService.setUrls(envUrls);\n }\n\n async setUrls(urls: any): Promise {\n urls.base = this.formatUrl(urls.base);\n urls.webVault = this.formatUrl(urls.webVault);\n urls.api = this.formatUrl(urls.api);\n urls.identity = this.formatUrl(urls.identity);\n urls.icons = this.formatUrl(urls.icons);\n urls.notifications = this.formatUrl(urls.notifications);\n urls.events = this.formatUrl(urls.events);\n urls.enterprise = this.formatUrl(urls.enterprise);\n\n await this.storageService.save(ConstantsService.environmentUrlsKey, {\n base: urls.base,\n api: urls.api,\n identity: urls.identity,\n webVault: urls.webVault,\n icons: urls.icons,\n notifications: urls.notifications,\n events: urls.events,\n enterprise: urls.enterprise,\n });\n\n this.baseUrl = urls.base;\n this.webVaultUrl = urls.webVault;\n this.apiUrl = urls.api;\n this.identityUrl = urls.identity;\n this.iconsUrl = urls.icons;\n this.notificationsUrl = urls.notifications;\n this.eventsUrl = urls.events;\n this.enterpriseUrl = urls.enterprise;\n\n const envUrls = new EnvironmentUrls();\n if (this.baseUrl) {\n envUrls.base = this.baseUrl;\n } else {\n envUrls.api = this.apiUrl;\n envUrls.identity = this.identityUrl;\n envUrls.events = this.eventsUrl;\n }\n\n this.apiService.setUrls(envUrls);\n if (this.notificationsService != null) {\n this.notificationsService.init(this);\n }\n return urls;\n }\n\n private formatUrl(url: string): string {\n if (url == null || url === '') {\n return null;\n }\n\n url = url.replace(/\\/+$/g, '');\n if (!url.startsWith('http://') && !url.startsWith('https://')) {\n url = 'https://' + url;\n }\n\n return url.trim();\n }\n}\n","import { FolderData } from '../models/data/folderData';\n\nimport { Folder } from '../models/domain/folder';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { FolderRequest } from '../models/request/folderRequest';\n\nimport { FolderResponse } from '../models/response/folderResponse';\n\nimport { FolderView } from '../models/view/folderView';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService as FolderServiceAbstraction } from '../abstractions/folder.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\nimport { CipherData } from '../models/data/cipherData';\n\nimport { ServiceUtils } from '../misc/serviceUtils';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n foldersPrefix: 'folders_',\n ciphersPrefix: 'ciphers_',\n};\nconst NestingDelimiter = '/';\n\nexport class FolderService implements FolderServiceAbstraction {\n decryptedFolderCache: FolderView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private apiService: ApiService, private storageService: StorageService,\n private i18nService: I18nService, private cipherService: CipherService) { }\n\n clearCache(): void {\n this.decryptedFolderCache = null;\n }\n\n async encrypt(model: FolderView, key?: SymmetricCryptoKey): Promise {\n const folder = new Folder();\n folder.id = model.id;\n folder.name = await this.cryptoService.encrypt(model.name, key);\n return folder;\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null || !folders.hasOwnProperty(id)) {\n return null;\n }\n\n return new Folder(folders[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n const response: Folder[] = [];\n for (const id in folders) {\n if (folders.hasOwnProperty(id)) {\n response.push(new Folder(folders[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedFolderCache != null) {\n return this.decryptedFolderCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const decFolders: FolderView[] = [];\n const promises: Promise[] = [];\n const folders = await this.getAll();\n folders.forEach(folder => {\n promises.push(folder.decrypt().then(f => decFolders.push(f)));\n });\n\n await Promise.all(promises);\n decFolders.sort(Utils.getSortFunction(this.i18nService, 'name'));\n\n const noneFolder = new FolderView();\n noneFolder.name = this.i18nService.t('noneFolder');\n decFolders.push(noneFolder);\n\n this.decryptedFolderCache = decFolders;\n return this.decryptedFolderCache;\n }\n\n async getAllNested(): Promise[]> {\n const folders = await this.getAllDecrypted();\n const nodes: TreeNode[] = [];\n folders.forEach(f => {\n const folderCopy = new FolderView();\n folderCopy.id = f.id;\n folderCopy.revisionDate = f.revisionDate;\n const parts = f.name != null ? f.name.replace(/^\\/+|\\/+$/g, '').split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, folderCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n async getNested(id: string): Promise> {\n const folders = await this.getAllNested();\n return ServiceUtils.getTreeNodeObject(folders, id) as TreeNode;\n }\n\n async saveWithServer(folder: Folder): Promise {\n const request = new FolderRequest(folder);\n\n let response: FolderResponse;\n if (folder.id == null) {\n response = await this.apiService.postFolder(request);\n folder.id = response.id;\n } else {\n response = await this.apiService.putFolder(folder.id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new FolderData(response, userId);\n await this.upsert(data);\n }\n\n async upsert(folder: FolderData | FolderData[]): Promise {\n const userId = await this.userService.getUserId();\n let folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null) {\n folders = {};\n }\n\n if (folder instanceof FolderData) {\n const f = folder as FolderData;\n folders[f.id] = f;\n } else {\n (folder as FolderData[]).forEach(f => {\n folders[f.id] = f;\n });\n }\n\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n }\n\n async replace(folders: { [id: string]: FolderData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.foldersPrefix + userId);\n this.decryptedFolderCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (folders[id] == null) {\n return;\n }\n delete folders[id];\n } else {\n (id as string[]).forEach(i => {\n delete folders[i];\n });\n }\n\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n\n // Items in a deleted folder are re-assigned to \"No Folder\"\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(Keys.ciphersPrefix + userId);\n if (ciphers != null) {\n const updates: CipherData[] = [];\n for (const cId in ciphers) {\n if (ciphers[cId].folderId === id) {\n ciphers[cId].folderId = null;\n updates.push(ciphers[cId]);\n }\n }\n if (updates.length > 0) {\n this.cipherService.upsert(updates);\n }\n }\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteFolder(id);\n await this.delete(id);\n }\n}\n","import { I18nService as I18nServiceAbstraction } from '../abstractions/i18n.service';\n\nexport class I18nService implements I18nServiceAbstraction {\n locale: string;\n // First locale is the default (English)\n supportedTranslationLocales: string[] = ['en'];\n translationLocale: string;\n collator: Intl.Collator;\n localeNames = new Map([\n ['af', 'Afrikaans'],\n ['be', 'Беларуская'],\n ['bg', 'български'],\n ['ca', 'català'],\n ['cs', 'čeština'],\n ['da', 'dansk'],\n ['de', 'Deutsch'],\n ['el', 'Ελληνικά'],\n ['en', 'English'],\n ['en-GB', 'English (British)'],\n ['eo', 'Esperanto'],\n ['es', 'español'],\n ['et', 'eesti'],\n ['fa', 'فارسی'],\n ['fi', 'suomi'],\n ['fr', 'français'],\n ['he', 'עברית'],\n ['hi', 'हिन्दी'],\n ['hr', 'hrvatski'],\n ['hu', 'magyar'],\n ['id', 'Bahasa Indonesia'],\n ['it', 'italiano'],\n ['ja', '日本語'],\n ['ko', '한국어'],\n ['lv', 'Latvietis'],\n ['ml', 'മലയാളം'],\n ['nb', 'norsk (bokmål)'],\n ['nl', 'Nederlands'],\n ['pl', 'polski'],\n ['pt-BR', 'português do Brasil'],\n ['pt-PT', 'português'],\n ['ro', 'română'],\n ['ru', 'русский'],\n ['sk', 'slovenčina'],\n ['sr', 'Српски'],\n ['sv', 'svenska'],\n ['th', 'ไทย'],\n ['tr', 'Türkçe'],\n ['uk', 'українська'],\n ['vi', 'Tiếng Việt'],\n ['zh-CN', '中文(中国大陆)'],\n ['zh-TW', '中文(台灣)'],\n ]);\n\n protected inited: boolean;\n protected defaultMessages: any = {};\n protected localeMessages: any = {};\n\n constructor(protected systemLanguage: string, protected localesDirectory: string,\n protected getLocalesJson: (formattedLocale: string) => Promise) {\n this.systemLanguage = systemLanguage.replace('_', '-');\n }\n\n async init(locale?: string) {\n if (this.inited) {\n throw new Error('i18n already initialized.');\n }\n if (this.supportedTranslationLocales == null || this.supportedTranslationLocales.length === 0) {\n throw new Error('supportedTranslationLocales not set.');\n }\n\n this.inited = true;\n this.locale = this.translationLocale = locale != null ? locale : this.systemLanguage;\n\n try {\n this.collator = new Intl.Collator(this.locale, { numeric: true, sensitivity: 'base' });\n } catch {\n this.collator = null;\n }\n\n if (this.supportedTranslationLocales.indexOf(this.translationLocale) === -1) {\n this.translationLocale = this.translationLocale.slice(0, 2);\n\n if (this.supportedTranslationLocales.indexOf(this.translationLocale) === -1) {\n this.translationLocale = this.supportedTranslationLocales[0];\n }\n }\n\n if (this.localesDirectory != null) {\n await this.loadMessages(this.translationLocale, this.localeMessages);\n if (this.translationLocale !== this.supportedTranslationLocales[0]) {\n await this.loadMessages(this.supportedTranslationLocales[0], this.defaultMessages);\n }\n }\n }\n\n t(id: string, p1?: string, p2?: string, p3?: string): string {\n return this.translate(id, p1, p2, p3);\n }\n\n translate(id: string, p1?: string, p2?: string, p3?: string): string {\n let result: string;\n if (this.localeMessages.hasOwnProperty(id) && this.localeMessages[id]) {\n result = this.localeMessages[id];\n } else if (this.defaultMessages.hasOwnProperty(id) && this.defaultMessages[id]) {\n result = this.defaultMessages[id];\n } else {\n result = '';\n }\n\n if (result !== '') {\n if (p1 != null) {\n result = result.split('__$1__').join(p1);\n }\n if (p2 != null) {\n result = result.split('__$2__').join(p2);\n }\n if (p3 != null) {\n result = result.split('__$3__').join(p3);\n }\n }\n\n return result;\n }\n\n private async loadMessages(locale: string, messagesObj: any): Promise {\n const formattedLocale = locale.replace('-', '_');\n const locales = await this.getLocalesJson(formattedLocale);\n for (const prop in locales) {\n if (!locales.hasOwnProperty(prop)) {\n continue;\n }\n messagesObj[prop] = locales[prop].message;\n\n if (locales[prop].placeholders) {\n for (const placeProp in locales[prop].placeholders) {\n if (!locales[prop].placeholders.hasOwnProperty(placeProp) ||\n !locales[prop].placeholders[placeProp].content) {\n continue;\n }\n\n const replaceToken = '\\\\$' + placeProp.toUpperCase() + '\\\\$';\n let replaceContent = locales[prop].placeholders[placeProp].content;\n if (replaceContent === '$1' || replaceContent === '$2' || replaceContent === '$3') {\n replaceContent = '__$' + replaceContent + '__';\n }\n messagesObj[prop] = messagesObj[prop].replace(new RegExp(replaceToken, 'g'), replaceContent);\n }\n }\n }\n }\n\n}\n","import * as zxcvbn from 'zxcvbn';\n\nimport { CipherString } from '../models/domain/cipherString';\nimport { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory';\nimport { PasswordGeneratorPolicyOptions } from '../models/domain/passwordGeneratorPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { CryptoService } from '../abstractions/crypto.service';\nimport {\n PasswordGenerationService as PasswordGenerationServiceAbstraction,\n} from '../abstractions/passwordGeneration.service';\nimport { PolicyService } from '../abstractions/policy.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { EEFLongWordList } from '../misc/wordlist';\n\nimport { PolicyType } from '../enums/policyType';\n\nconst DefaultOptions = {\n length: 14,\n ambiguous: false,\n number: true,\n minNumber: 1,\n uppercase: true,\n minUppercase: 0,\n lowercase: true,\n minLowercase: 0,\n special: false,\n minSpecial: 1,\n type: 'password',\n numWords: 3,\n wordSeparator: '-',\n capitalize: false,\n includeNumber: false,\n};\n\nconst Keys = {\n options: 'passwordGenerationOptions',\n history: 'generatedPasswordHistory',\n};\n\nconst MaxPasswordsInHistory = 100;\n\nexport class PasswordGenerationService implements PasswordGenerationServiceAbstraction {\n private optionsCache: any;\n private history: GeneratedPasswordHistory[];\n\n constructor(private cryptoService: CryptoService, private storageService: StorageService,\n private policyService: PolicyService) { }\n\n async generatePassword(options: any): Promise {\n // overload defaults with given options\n const o = Object.assign({}, DefaultOptions, options);\n\n if (o.type === 'passphrase') {\n return this.generatePassphrase(options);\n }\n\n // sanitize\n this.sanitizePasswordLength(o, true);\n\n const minLength: number = o.minUppercase + o.minLowercase + o.minNumber + o.minSpecial;\n if (o.length < minLength) {\n o.length = minLength;\n }\n\n const positions: string[] = [];\n if (o.lowercase && o.minLowercase > 0) {\n for (let i = 0; i < o.minLowercase; i++) {\n positions.push('l');\n }\n }\n if (o.uppercase && o.minUppercase > 0) {\n for (let i = 0; i < o.minUppercase; i++) {\n positions.push('u');\n }\n }\n if (o.number && o.minNumber > 0) {\n for (let i = 0; i < o.minNumber; i++) {\n positions.push('n');\n }\n }\n if (o.special && o.minSpecial > 0) {\n for (let i = 0; i < o.minSpecial; i++) {\n positions.push('s');\n }\n }\n while (positions.length < o.length) {\n positions.push('a');\n }\n\n // shuffle\n await this.shuffleArray(positions);\n\n // build out the char sets\n let allCharSet = '';\n\n let lowercaseCharSet = 'abcdefghijkmnopqrstuvwxyz';\n if (o.ambiguous) {\n lowercaseCharSet += 'l';\n }\n if (o.lowercase) {\n allCharSet += lowercaseCharSet;\n }\n\n let uppercaseCharSet = 'ABCDEFGHJKLMNPQRSTUVWXYZ';\n if (o.ambiguous) {\n uppercaseCharSet += 'IO';\n }\n if (o.uppercase) {\n allCharSet += uppercaseCharSet;\n }\n\n let numberCharSet = '23456789';\n if (o.ambiguous) {\n numberCharSet += '01';\n }\n if (o.number) {\n allCharSet += numberCharSet;\n }\n\n const specialCharSet = '!@#$%^&*';\n if (o.special) {\n allCharSet += specialCharSet;\n }\n\n let password = '';\n for (let i = 0; i < o.length; i++) {\n let positionChars: string;\n switch (positions[i]) {\n case 'l':\n positionChars = lowercaseCharSet;\n break;\n case 'u':\n positionChars = uppercaseCharSet;\n break;\n case 'n':\n positionChars = numberCharSet;\n break;\n case 's':\n positionChars = specialCharSet;\n break;\n case 'a':\n positionChars = allCharSet;\n break;\n default:\n break;\n }\n\n const randomCharIndex = await this.cryptoService.randomNumber(0, positionChars.length - 1);\n password += positionChars.charAt(randomCharIndex);\n }\n\n return password;\n }\n\n async generatePassphrase(options: any): Promise {\n const o = Object.assign({}, DefaultOptions, options);\n\n if (o.numWords == null || o.numWords <= 2) {\n o.numWords = DefaultOptions.numWords;\n }\n if (o.wordSeparator == null || o.wordSeparator.length === 0 || o.wordSeparator.length > 1) {\n o.wordSeparator = ' ';\n }\n if (o.capitalize == null) {\n o.capitalize = false;\n }\n if (o.includeNumber == null) {\n o.includeNumber = false;\n }\n\n const listLength = EEFLongWordList.length - 1;\n const wordList = new Array(o.numWords);\n for (let i = 0; i < o.numWords; i++) {\n const wordIndex = await this.cryptoService.randomNumber(0, listLength);\n if (o.capitalize) {\n wordList[i] = this.capitalize(EEFLongWordList[wordIndex]);\n } else {\n wordList[i] = EEFLongWordList[wordIndex];\n }\n }\n\n if (o.includeNumber) {\n await this.appendRandomNumberToRandomWord(wordList);\n }\n return wordList.join(o.wordSeparator);\n }\n\n async getOptions(): Promise<[any, PasswordGeneratorPolicyOptions]> {\n if (this.optionsCache == null) {\n const options = await this.storageService.get(Keys.options);\n if (options == null) {\n this.optionsCache = DefaultOptions;\n } else {\n this.optionsCache = Object.assign({}, DefaultOptions, options);\n }\n }\n const enforcedOptions = await this.enforcePasswordGeneratorPoliciesOnOptions(this.optionsCache);\n this.optionsCache = enforcedOptions[0];\n return [this.optionsCache, enforcedOptions[1]];\n }\n\n async enforcePasswordGeneratorPoliciesOnOptions(options: any): Promise<[any, PasswordGeneratorPolicyOptions]> {\n let enforcedPolicyOptions = await this.getPasswordGeneratorPolicyOptions();\n if (enforcedPolicyOptions != null) {\n if (options.length < enforcedPolicyOptions.minLength) {\n options.length = enforcedPolicyOptions.minLength;\n }\n\n if (enforcedPolicyOptions.useUppercase) {\n options.uppercase = true;\n }\n\n if (enforcedPolicyOptions.useLowercase) {\n options.lowercase = true;\n }\n\n if (enforcedPolicyOptions.useNumbers) {\n options.number = true;\n }\n\n if (options.minNumber < enforcedPolicyOptions.numberCount) {\n options.minNumber = enforcedPolicyOptions.numberCount;\n }\n\n if (enforcedPolicyOptions.useSpecial) {\n options.special = true;\n }\n\n if (options.minSpecial < enforcedPolicyOptions.specialCount) {\n options.minSpecial = enforcedPolicyOptions.specialCount;\n }\n\n // Must normalize these fields because the receiving call expects all options to pass the current rules\n if (options.minSpecial + options.minNumber > options.length) {\n options.minSpecial = options.length - options.minNumber;\n }\n\n if (options.numWords < enforcedPolicyOptions.minNumberWords) {\n options.numWords = enforcedPolicyOptions.minNumberWords;\n }\n\n if (enforcedPolicyOptions.capitalize) {\n options.capitalize = true;\n }\n\n if (enforcedPolicyOptions.includeNumber) {\n options.includeNumber = true;\n }\n\n // Force default type if password/passphrase selected via policy\n if (enforcedPolicyOptions.defaultType === 'password' ||\n enforcedPolicyOptions.defaultType === 'passphrase') {\n options.type = enforcedPolicyOptions.defaultType;\n }\n } else { // UI layer expects an instantiated object to prevent more explicit null checks\n enforcedPolicyOptions = new PasswordGeneratorPolicyOptions();\n }\n return [options, enforcedPolicyOptions];\n }\n\n async getPasswordGeneratorPolicyOptions(): Promise {\n const policies: Policy[] = this.policyService == null ? null :\n await this.policyService.getAll(PolicyType.PasswordGenerator);\n let enforcedOptions: PasswordGeneratorPolicyOptions = null;\n\n if (policies == null || policies.length === 0) {\n return enforcedOptions;\n }\n\n policies.forEach(currentPolicy => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new PasswordGeneratorPolicyOptions();\n }\n\n // Password wins in multi-org collisions\n if (currentPolicy.data.defaultType != null && enforcedOptions.defaultType !== 'password') {\n enforcedOptions.defaultType = currentPolicy.data.defaultType;\n }\n\n if (currentPolicy.data.minLength != null\n && currentPolicy.data.minLength > enforcedOptions.minLength) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.useUpper) {\n enforcedOptions.useUppercase = true;\n }\n\n if (currentPolicy.data.useLower) {\n enforcedOptions.useLowercase = true;\n }\n\n if (currentPolicy.data.useNumbers) {\n enforcedOptions.useNumbers = true;\n }\n\n if (currentPolicy.data.minNumbers != null\n && currentPolicy.data.minNumbers > enforcedOptions.numberCount) {\n enforcedOptions.numberCount = currentPolicy.data.minNumbers;\n }\n\n if (currentPolicy.data.useSpecial) {\n enforcedOptions.useSpecial = true;\n }\n\n if (currentPolicy.data.minSpecial != null\n && currentPolicy.data.minSpecial > enforcedOptions.specialCount) {\n enforcedOptions.specialCount = currentPolicy.data.minSpecial;\n }\n\n if (currentPolicy.data.minNumberWords != null\n && currentPolicy.data.minNumberWords > enforcedOptions.minNumberWords) {\n enforcedOptions.minNumberWords = currentPolicy.data.minNumberWords;\n }\n\n if (currentPolicy.data.capitalize) {\n enforcedOptions.capitalize = true;\n }\n\n if (currentPolicy.data.includeNumber) {\n enforcedOptions.includeNumber = true;\n }\n });\n\n return enforcedOptions;\n }\n\n async saveOptions(options: any) {\n await this.storageService.save(Keys.options, options);\n this.optionsCache = options;\n }\n\n async getHistory(): Promise {\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n return new Array();\n }\n\n if (!this.history) {\n const encrypted = await this.storageService.get(Keys.history);\n this.history = await this.decryptHistory(encrypted);\n }\n\n return this.history || new Array();\n }\n\n async addHistory(password: string): Promise {\n // Cannot add new history if no key is available\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n return;\n }\n\n const currentHistory = await this.getHistory();\n\n // Prevent duplicates\n if (this.matchesPrevious(password, currentHistory)) {\n return;\n }\n\n currentHistory.unshift(new GeneratedPasswordHistory(password, Date.now()));\n\n // Remove old items.\n if (currentHistory.length > MaxPasswordsInHistory) {\n currentHistory.pop();\n }\n\n const newHistory = await this.encryptHistory(currentHistory);\n return await this.storageService.save(Keys.history, newHistory);\n }\n\n async clear(): Promise {\n this.history = [];\n return await this.storageService.remove(Keys.history);\n }\n\n passwordStrength(password: string, userInputs: string[] = null): zxcvbn.ZXCVBNResult {\n if (password == null || password.length === 0) {\n return null;\n }\n let globalUserInputs = ['bitwarden', 'bit', 'warden'];\n if (userInputs != null && userInputs.length > 0) {\n globalUserInputs = globalUserInputs.concat(userInputs);\n }\n // Use a hash set to get rid of any duplicate user inputs\n const finalUserInputs = Array.from(new Set(globalUserInputs));\n const result = zxcvbn(password, finalUserInputs);\n return result;\n }\n\n normalizeOptions(options: any, enforcedPolicyOptions: PasswordGeneratorPolicyOptions) {\n options.minLowercase = 0;\n options.minUppercase = 0;\n\n if (!options.length || options.length < 5) {\n options.length = 5;\n } else if (options.length > 128) {\n options.length = 128;\n }\n\n if (options.length < enforcedPolicyOptions.minLength) {\n options.length = enforcedPolicyOptions.minLength;\n }\n\n if (!options.minNumber) {\n options.minNumber = 0;\n } else if (options.minNumber > options.length) {\n options.minNumber = options.length;\n } else if (options.minNumber > 9) {\n options.minNumber = 9;\n }\n\n if (options.minNumber < enforcedPolicyOptions.numberCount) {\n options.minNumber = enforcedPolicyOptions.numberCount;\n }\n\n if (!options.minSpecial) {\n options.minSpecial = 0;\n } else if (options.minSpecial > options.length) {\n options.minSpecial = options.length;\n } else if (options.minSpecial > 9) {\n options.minSpecial = 9;\n }\n\n if (options.minSpecial < enforcedPolicyOptions.specialCount) {\n options.minSpecial = enforcedPolicyOptions.specialCount;\n }\n\n if (options.minSpecial + options.minNumber > options.length) {\n options.minSpecial = options.length - options.minNumber;\n }\n\n if (options.numWords == null || options.length < 3) {\n options.numWords = 3;\n } else if (options.numWords > 20) {\n options.numWords = 20;\n }\n\n if (options.numWords < enforcedPolicyOptions.minNumberWords) {\n options.numWords = enforcedPolicyOptions.minNumberWords;\n }\n\n if (options.wordSeparator != null && options.wordSeparator.length > 1) {\n options.wordSeparator = options.wordSeparator[0];\n }\n\n this.sanitizePasswordLength(options, false);\n }\n\n private capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n private async appendRandomNumberToRandomWord(wordList: string[]) {\n if (wordList == null || wordList.length <= 0) {\n return;\n }\n const index = await this.cryptoService.randomNumber(0, wordList.length - 1);\n const num = await this.cryptoService.randomNumber(0, 9);\n wordList[index] = wordList[index] + num;\n }\n\n private async encryptHistory(history: GeneratedPasswordHistory[]): Promise {\n if (history == null || history.length === 0) {\n return Promise.resolve([]);\n }\n\n const promises = history.map(async item => {\n const encrypted = await this.cryptoService.encrypt(item.password);\n return new GeneratedPasswordHistory(encrypted.encryptedString, item.date);\n });\n\n return await Promise.all(promises);\n }\n\n private async decryptHistory(history: GeneratedPasswordHistory[]): Promise {\n if (history == null || history.length === 0) {\n return Promise.resolve([]);\n }\n\n const promises = history.map(async item => {\n const decrypted = await this.cryptoService.decryptToUtf8(new CipherString(item.password));\n return new GeneratedPasswordHistory(decrypted, item.date);\n });\n\n return await Promise.all(promises);\n }\n\n private matchesPrevious(password: string, history: GeneratedPasswordHistory[]): boolean {\n if (history == null || history.length === 0) {\n return false;\n }\n\n return history[history.length - 1].password === password;\n }\n\n // ref: https://stackoverflow.com/a/12646864/1090359\n private async shuffleArray(array: string[]) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = await this.cryptoService.randomNumber(0, i);\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n\n private sanitizePasswordLength(options: any, forGeneration: boolean) {\n let minUppercaseCalc = 0;\n let minLowercaseCalc = 0;\n let minNumberCalc: number = options.minNumber;\n let minSpecialCalc: number = options.minSpecial;\n\n if (options.uppercase && options.minUppercase <= 0) {\n minUppercaseCalc = 1;\n } else if (!options.uppercase) {\n minUppercaseCalc = 0;\n }\n\n if (options.lowercase && options.minLowercase <= 0) {\n minLowercaseCalc = 1;\n } else if (!options.lowercase) {\n minLowercaseCalc = 0;\n }\n\n if (options.number && options.minNumber <= 0) {\n minNumberCalc = 1;\n } else if (!options.number) {\n minNumberCalc = 0;\n }\n\n if (options.special && options.minSpecial <= 0) {\n minSpecialCalc = 1;\n } else if (!options.special) {\n minSpecialCalc = 0;\n }\n\n // This should never happen but is a final safety net\n if (!options.length || options.length < 1) {\n options.length = 10;\n }\n\n const minLength: number = minUppercaseCalc + minLowercaseCalc + minNumberCalc + minSpecialCalc;\n // Normalize and Generation both require this modification\n if (options.length < minLength) {\n options.length = minLength;\n }\n\n // Apply other changes if the options object passed in is for generation\n if (forGeneration) {\n options.minUppercase = minUppercaseCalc;\n options.minLowercase = minLowercaseCalc;\n options.minNumber = minNumberCalc;\n options.minSpecial = minSpecialCalc;\n }\n }\n}\n","import { SettingsService as SettingsServiceAbstraction } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nconst Keys = {\n settingsPrefix: 'settings_',\n equivalentDomains: 'equivalentDomains',\n};\n\nexport class SettingsService implements SettingsServiceAbstraction {\n private settingsCache: any;\n\n constructor(private userService: UserService, private storageService: StorageService) {\n }\n\n clearCache(): void {\n this.settingsCache = null;\n }\n\n getEquivalentDomains(): Promise {\n return this.getSettingsKey(Keys.equivalentDomains);\n }\n\n async setEquivalentDomains(equivalentDomains: string[][]): Promise {\n await this.setSettingsKey(Keys.equivalentDomains, equivalentDomains);\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.settingsPrefix + userId);\n this.clearCache();\n }\n\n // Helpers\n\n private async getSettings(): Promise {\n if (this.settingsCache == null) {\n const userId = await this.userService.getUserId();\n this.settingsCache = this.storageService.get(Keys.settingsPrefix + userId);\n }\n return this.settingsCache;\n }\n\n private async getSettingsKey(key: string): Promise {\n const settings = await this.getSettings();\n if (settings != null && settings[key]) {\n return settings[key];\n }\n return null;\n }\n\n private async setSettingsKey(key: string, value: any): Promise {\n const userId = await this.userService.getUserId();\n let settings = await this.getSettings();\n if (!settings) {\n settings = {};\n }\n\n settings[key] = value;\n await this.storageService.save(Keys.settingsPrefix + userId, settings);\n this.settingsCache = settings;\n }\n}\n","import { StateService as StateServiceAbstraction } from '../abstractions/state.service';\n\nexport class StateService implements StateServiceAbstraction {\n private state: any = {};\n\n get(key: string): Promise {\n if (this.state.hasOwnProperty(key)) {\n return Promise.resolve(this.state[key]);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n this.state[key] = obj;\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n delete this.state[key];\n return Promise.resolve();\n }\n\n purge(): Promise {\n this.state = {};\n return Promise.resolve();\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PolicyService } from '../abstractions/policy.service';\nimport { SendService } from '../abstractions/send.service';\nimport { SettingsService } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { SyncService as SyncServiceAbstraction } from '../abstractions/sync.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { CipherData } from '../models/data/cipherData';\nimport { CollectionData } from '../models/data/collectionData';\nimport { FolderData } from '../models/data/folderData';\nimport { OrganizationData } from '../models/data/organizationData';\nimport { PolicyData } from '../models/data/policyData';\nimport { SendData } from '../models/data/sendData';\n\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport { CollectionDetailsResponse } from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SendResponse } from '../models/response/sendResponse';\n\nconst Keys = {\n lastSyncPrefix: 'lastSync_',\n};\n\nexport class SyncService implements SyncServiceAbstraction {\n syncInProgress: boolean = false;\n\n constructor(private userService: UserService, private apiService: ApiService,\n private settingsService: SettingsService, private folderService: FolderService,\n private cipherService: CipherService, private cryptoService: CryptoService,\n private collectionService: CollectionService, private storageService: StorageService,\n private messagingService: MessagingService, private policyService: PolicyService,\n private sendService: SendService, private logoutCallback: (expired: boolean) => Promise) {\n }\n\n async getLastSync(): Promise {\n const userId = await this.userService.getUserId();\n if (userId == null) {\n return null;\n }\n\n const lastSync = await this.storageService.get(Keys.lastSyncPrefix + userId);\n if (lastSync) {\n return new Date(lastSync);\n }\n\n return null;\n }\n\n async setLastSync(date: Date): Promise {\n const userId = await this.userService.getUserId();\n if (userId == null) {\n return;\n }\n\n await this.storageService.save(Keys.lastSyncPrefix + userId, date.toJSON());\n }\n\n async fullSync(forceSync: boolean, allowThrowOnError = false): Promise {\n this.syncStarted();\n const isAuthenticated = await this.userService.isAuthenticated();\n if (!isAuthenticated) {\n return this.syncCompleted(false);\n }\n\n const now = new Date();\n let needsSync = false;\n try {\n needsSync = await this.needsSyncing(forceSync);\n } catch (e) {\n if (allowThrowOnError) {\n throw e;\n }\n }\n\n if (!needsSync) {\n await this.setLastSync(now);\n return this.syncCompleted(false);\n }\n\n const userId = await this.userService.getUserId();\n try {\n const response = await this.apiService.getSync();\n\n await this.syncProfile(response.profile);\n await this.syncFolders(userId, response.folders);\n await this.syncCollections(response.collections);\n await this.syncCiphers(userId, response.ciphers);\n await this.syncSends(userId, response.sends);\n await this.syncSettings(userId, response.domains);\n await this.syncPolicies(response.policies);\n\n await this.setLastSync(now);\n return this.syncCompleted(true);\n } catch (e) {\n if (allowThrowOnError) {\n throw e;\n } else {\n return this.syncCompleted(false);\n }\n }\n }\n\n async syncUpsertFolder(notification: SyncFolderNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n const localFolder = await this.folderService.get(notification.id);\n if ((!isEdit && localFolder == null) ||\n (isEdit && localFolder != null && localFolder.revisionDate < notification.revisionDate)) {\n const remoteFolder = await this.apiService.getFolder(notification.id);\n if (remoteFolder != null) {\n const userId = await this.userService.getUserId();\n await this.folderService.upsert(new FolderData(remoteFolder, userId));\n this.messagingService.send('syncedUpsertedFolder', { folderId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch { }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteFolder(notification: SyncFolderNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.folderService.delete(notification.id);\n this.messagingService.send('syncedDeletedFolder', { folderId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertCipher(notification: SyncCipherNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n let shouldUpdate = true;\n const localCipher = await this.cipherService.get(notification.id);\n if (localCipher != null && localCipher.revisionDate >= notification.revisionDate) {\n shouldUpdate = false;\n }\n\n let checkCollections = false;\n if (shouldUpdate) {\n if (isEdit) {\n shouldUpdate = localCipher != null;\n checkCollections = true;\n } else {\n if (notification.collectionIds == null || notification.organizationId == null) {\n shouldUpdate = localCipher == null;\n } else {\n shouldUpdate = false;\n checkCollections = true;\n }\n }\n }\n\n if (!shouldUpdate && checkCollections && notification.organizationId != null &&\n notification.collectionIds != null && notification.collectionIds.length > 0) {\n const collections = await this.collectionService.getAll();\n if (collections != null) {\n for (let i = 0; i < collections.length; i++) {\n if (notification.collectionIds.indexOf(collections[i].id) > -1) {\n shouldUpdate = true;\n break;\n }\n }\n }\n }\n\n if (shouldUpdate) {\n const remoteCipher = await this.apiService.getCipher(notification.id);\n if (remoteCipher != null) {\n const userId = await this.userService.getUserId();\n await this.cipherService.upsert(new CipherData(remoteCipher, userId));\n this.messagingService.send('syncedUpsertedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch (e) {\n if (e != null && e.statusCode === 404 && isEdit) {\n await this.cipherService.delete(notification.id);\n this.messagingService.send('syncedDeletedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteCipher(notification: SyncCipherNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.cipherService.delete(notification.id);\n this.messagingService.send('syncedDeletedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertSend(notification: SyncSendNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n const localSend = await this.sendService.get(notification.id);\n if ((!isEdit && localSend == null) ||\n (isEdit && localSend != null && localSend.revisionDate < notification.revisionDate)) {\n const remoteSend = await this.apiService.getSend(notification.id);\n if (remoteSend != null) {\n const userId = await this.userService.getUserId();\n await this.sendService.upsert(new SendData(remoteSend, userId));\n this.messagingService.send('syncedUpsertedSend', { sendId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch { }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteSend(notification: SyncSendNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.sendService.delete(notification.id);\n this.messagingService.send('syncedDeletedSend', { sendId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n // Helpers\n\n private syncStarted() {\n this.syncInProgress = true;\n this.messagingService.send('syncStarted');\n }\n\n private syncCompleted(successfully: boolean): boolean {\n this.syncInProgress = false;\n this.messagingService.send('syncCompleted', { successfully: successfully });\n return successfully;\n }\n\n private async needsSyncing(forceSync: boolean) {\n if (forceSync) {\n return true;\n }\n\n const lastSync = await this.getLastSync();\n if (lastSync == null || lastSync.getTime() === 0) {\n return true;\n }\n\n const response = await this.apiService.getAccountRevisionDate();\n if (new Date(response) <= lastSync) {\n return false;\n }\n return true;\n }\n\n private async syncProfile(response: ProfileResponse) {\n const stamp = await this.userService.getSecurityStamp();\n if (stamp != null && stamp !== response.securityStamp) {\n if (this.logoutCallback != null) {\n await this.logoutCallback(true);\n }\n\n throw new Error('Stamp has changed');\n }\n\n await this.cryptoService.setEncKey(response.key);\n await this.cryptoService.setEncPrivateKey(response.privateKey);\n await this.cryptoService.setOrgKeys(response.organizations);\n await this.userService.setSecurityStamp(response.securityStamp);\n\n const organizations: { [id: string]: OrganizationData; } = {};\n response.organizations.forEach(o => {\n organizations[o.id] = new OrganizationData(o);\n });\n return await this.userService.replaceOrganizations(organizations);\n }\n\n private async syncFolders(userId: string, response: FolderResponse[]) {\n const folders: { [id: string]: FolderData; } = {};\n response.forEach(f => {\n folders[f.id] = new FolderData(f, userId);\n });\n return await this.folderService.replace(folders);\n }\n\n private async syncCollections(response: CollectionDetailsResponse[]) {\n const collections: { [id: string]: CollectionData; } = {};\n response.forEach(c => {\n collections[c.id] = new CollectionData(c);\n });\n return await this.collectionService.replace(collections);\n }\n\n private async syncCiphers(userId: string, response: CipherResponse[]) {\n const ciphers: { [id: string]: CipherData; } = {};\n response.forEach(c => {\n ciphers[c.id] = new CipherData(c, userId);\n });\n return await this.cipherService.replace(ciphers);\n }\n\n private async syncSends(userId: string, response: SendResponse[]) {\n const sends: { [id: string]: SendData; } = {};\n response.forEach(s => {\n sends[s.id] = new SendData(s, userId);\n });\n return await this.sendService.replace(sends);\n }\n\n private async syncSettings(userId: string, response: DomainsResponse) {\n let eqDomains: string[][] = [];\n if (response != null && response.equivalentDomains != null) {\n eqDomains = eqDomains.concat(response.equivalentDomains);\n }\n\n if (response != null && response.globalEquivalentDomains != null) {\n response.globalEquivalentDomains.forEach(global => {\n if (global.domains.length > 0) {\n eqDomains.push(global.domains);\n }\n });\n }\n\n return this.settingsService.setEquivalentDomains(eqDomains);\n }\n\n private async syncPolicies(response: PolicyResponse[]) {\n const policies: { [id: string]: PolicyData; } = {};\n if (response != null) {\n response.forEach(p => {\n policies[p.id] = new PolicyData(p);\n });\n }\n return await this.policyService.replace(policies);\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendFileData } from './sendFileData';\nimport { SendTextData } from './sendTextData';\n\nimport { SendResponse } from '../response/sendResponse';\n\nexport class SendData {\n id: string;\n accessId: string;\n userId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileData;\n text: SendTextData;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disabled: boolean;\n\n constructor(response?: SendResponse, userId?: string) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.accessId = response.accessId;\n this.userId = userId;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.key = response.key;\n this.maxAccessCount = response.maxAccessCount;\n this.accessCount = response.accessCount;\n this.revisionDate = response.revisionDate;\n this.expirationDate = response.expirationDate;\n this.deletionDate = response.deletionDate;\n this.password = response.password;\n this.disabled = response.disable;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextData(response.text);\n break;\n case SendType.File:\n this.file = new SendFileData(response.file);\n break;\n default:\n break;\n }\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { StorageService } from '../abstractions/storage.service';\nimport { TokenService as TokenServiceAbstraction } from '../abstractions/token.service';\n\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n accessToken: 'accessToken',\n refreshToken: 'refreshToken',\n twoFactorTokenPrefix: 'twoFactorToken_',\n};\n\nexport class TokenService implements TokenServiceAbstraction {\n token: string;\n decodedToken: any;\n refreshToken: string;\n\n constructor(private storageService: StorageService) {\n }\n\n setTokens(accessToken: string, refreshToken: string): Promise {\n return Promise.all([\n this.setToken(accessToken),\n this.setRefreshToken(refreshToken),\n ]);\n }\n\n async setToken(token: string): Promise {\n this.token = token;\n this.decodedToken = null;\n\n if (await this.skipTokenStorage()) {\n // if we have a vault timeout and the action is log out, don't store token\n return;\n }\n\n return this.storageService.save(Keys.accessToken, token);\n }\n\n async getToken(): Promise {\n if (this.token != null) {\n return this.token;\n }\n\n this.token = await this.storageService.get(Keys.accessToken);\n return this.token;\n }\n\n async setRefreshToken(refreshToken: string): Promise {\n this.refreshToken = refreshToken;\n\n if (await this.skipTokenStorage()) {\n // if we have a vault timeout and the action is log out, don't store token\n return;\n }\n\n return this.storageService.save(Keys.refreshToken, refreshToken);\n }\n\n async getRefreshToken(): Promise {\n if (this.refreshToken != null) {\n return this.refreshToken;\n }\n\n this.refreshToken = await this.storageService.get(Keys.refreshToken);\n return this.refreshToken;\n }\n\n async toggleTokens(): Promise {\n const token = await this.getToken();\n const refreshToken = await this.getRefreshToken();\n const timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n if ((timeout != null || timeout === 0) && action === 'logOut') {\n // if we have a vault timeout and the action is log out, reset tokens\n await this.clearToken();\n this.token = token;\n this.refreshToken = refreshToken;\n return;\n }\n\n await this.setToken(token);\n await this.setRefreshToken(refreshToken);\n }\n\n setTwoFactorToken(token: string, email: string): Promise {\n return this.storageService.save(Keys.twoFactorTokenPrefix + email, token);\n }\n\n getTwoFactorToken(email: string): Promise {\n return this.storageService.get(Keys.twoFactorTokenPrefix + email);\n }\n\n clearTwoFactorToken(email: string): Promise {\n return this.storageService.remove(Keys.twoFactorTokenPrefix + email);\n }\n\n clearToken(): Promise {\n this.token = null;\n this.decodedToken = null;\n this.refreshToken = null;\n\n return Promise.all([\n this.storageService.remove(Keys.accessToken),\n this.storageService.remove(Keys.refreshToken),\n ]);\n }\n\n // jwthelper methods\n // ref https://github.com/auth0/angular-jwt/blob/master/src/angularJwt/services/jwt.js\n\n decodeToken(): any {\n if (this.decodedToken) {\n return this.decodedToken;\n }\n\n if (this.token == null) {\n throw new Error('Token not found.');\n }\n\n const parts = this.token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n\n const decoded = Utils.fromUrlB64ToUtf8(parts[1]);\n if (decoded == null) {\n throw new Error('Cannot decode the token');\n }\n\n this.decodedToken = JSON.parse(decoded);\n return this.decodedToken;\n }\n\n getTokenExpirationDate(): Date {\n const decoded = this.decodeToken();\n if (typeof decoded.exp === 'undefined') {\n return null;\n }\n\n const d = new Date(0); // The 0 here is the key, which sets the date to the epoch\n d.setUTCSeconds(decoded.exp);\n return d;\n }\n\n tokenSecondsRemaining(offsetSeconds: number = 0): number {\n const d = this.getTokenExpirationDate();\n if (d == null) {\n return 0;\n }\n\n const msRemaining = d.valueOf() - (new Date().valueOf() + (offsetSeconds * 1000));\n return Math.round(msRemaining / 1000);\n }\n\n tokenNeedsRefresh(minutes: number = 5): boolean {\n const sRemaining = this.tokenSecondsRemaining();\n return sRemaining < (60 * minutes);\n }\n\n getUserId(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.sub === 'undefined') {\n throw new Error('No user id found');\n }\n\n return decoded.sub as string;\n }\n\n getEmail(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.email === 'undefined') {\n throw new Error('No email found');\n }\n\n return decoded.email as string;\n }\n\n getEmailVerified(): boolean {\n const decoded = this.decodeToken();\n if (typeof decoded.email_verified === 'undefined') {\n throw new Error('No email verification found');\n }\n\n return decoded.email_verified as boolean;\n }\n\n getName(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.name === 'undefined') {\n return null;\n }\n\n return decoded.name as string;\n }\n\n getPremium(): boolean {\n const decoded = this.decodeToken();\n if (typeof decoded.premium === 'undefined') {\n return false;\n }\n\n return decoded.premium as boolean;\n }\n\n getIssuer(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.iss === 'undefined') {\n throw new Error('No issuer found');\n }\n\n return decoded.iss as string;\n }\n\n private async skipTokenStorage(): Promise {\n const timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n return timeout != null && action === 'logOut';\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { TotpService as TotpServiceAbstraction } from '../abstractions/totp.service';\n\nimport { Utils } from '../misc/utils';\n\nconst B32Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';\nconst SteamChars = '23456789BCDFGHJKMNPQRTVWXY';\n\nexport class TotpService implements TotpServiceAbstraction {\n constructor(private storageService: StorageService, private cryptoFunctionService: CryptoFunctionService) { }\n\n async getCode(key: string): Promise {\n if (key == null) {\n return null;\n }\n let period = 30;\n let alg: 'sha1' | 'sha256' | 'sha512' = 'sha1';\n let digits = 6;\n let keyB32 = key;\n const isOtpAuth = key.toLowerCase().indexOf('otpauth://') === 0;\n const isSteamAuth = !isOtpAuth && key.toLowerCase().indexOf('steam://') === 0;\n if (isOtpAuth) {\n const params = Utils.getQueryParams(key);\n if (params.has('digits') && params.get('digits') != null) {\n try {\n const digitParams = parseInt(params.get('digits').trim(), null);\n if (digitParams > 10) {\n digits = 10;\n } else if (digitParams > 0) {\n digits = digitParams;\n }\n } catch { }\n }\n if (params.has('period') && params.get('period') != null) {\n try {\n const periodParam = parseInt(params.get('period').trim(), null);\n if (periodParam > 0) {\n period = periodParam;\n }\n } catch { }\n }\n if (params.has('secret') && params.get('secret') != null) {\n keyB32 = params.get('secret');\n }\n if (params.has('algorithm') && params.get('algorithm') != null) {\n const algParam = params.get('algorithm').toLowerCase();\n if (algParam === 'sha1' || algParam === 'sha256' || algParam === 'sha512') {\n alg = algParam;\n }\n }\n } else if (isSteamAuth) {\n keyB32 = key.substr('steam://'.length);\n digits = 5;\n }\n\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const timeHex = this.leftPad(this.decToHex(Math.floor(epoch / period)), 16, '0');\n const timeBytes = Utils.fromHexToArray(timeHex);\n const keyBytes = this.b32ToBytes(keyB32);\n\n if (!keyBytes.length || !timeBytes.length) {\n return null;\n }\n\n const hash = await this.sign(keyBytes, timeBytes, alg);\n if (hash.length === 0) {\n return null;\n }\n\n /* tslint:disable */\n const offset = (hash[hash.length - 1] & 0xf);\n const binary = ((hash[offset] & 0x7f) << 24) | ((hash[offset + 1] & 0xff) << 16) |\n ((hash[offset + 2] & 0xff) << 8) | (hash[offset + 3] & 0xff);\n /* tslint:enable */\n\n let otp = '';\n if (isSteamAuth) {\n // tslint:disable-next-line\n let fullCode = binary & 0x7fffffff;\n for (let i = 0; i < digits; i++) {\n otp += SteamChars[fullCode % SteamChars.length];\n fullCode = Math.trunc(fullCode / SteamChars.length);\n }\n } else {\n otp = (binary % Math.pow(10, digits)).toString();\n otp = this.leftPad(otp, digits, '0');\n }\n\n return otp;\n }\n\n getTimeInterval(key: string): number {\n let period = 30;\n if (key != null && key.toLowerCase().indexOf('otpauth://') === 0) {\n const params = Utils.getQueryParams(key);\n if (params.has('period') && params.get('period') != null) {\n try {\n period = parseInt(params.get('period').trim(), null);\n } catch { }\n }\n }\n return period;\n }\n\n async isAutoCopyEnabled(): Promise {\n return !(await this.storageService.get(ConstantsService.disableAutoTotpCopyKey));\n }\n\n // Helpers\n\n private leftPad(s: string, l: number, p: string): string {\n if (l + 1 >= s.length) {\n s = Array(l + 1 - s.length).join(p) + s;\n }\n return s;\n }\n\n private decToHex(d: number): string {\n return (d < 15.5 ? '0' : '') + Math.round(d).toString(16);\n }\n\n private b32ToHex(s: string): string {\n s = s.toUpperCase();\n let cleanedInput = '';\n\n for (let i = 0; i < s.length; i++) {\n if (B32Chars.indexOf(s[i]) < 0) {\n continue;\n }\n\n cleanedInput += s[i];\n }\n s = cleanedInput;\n\n let bits = '';\n let hex = '';\n for (let i = 0; i < s.length; i++) {\n const byteIndex = B32Chars.indexOf(s.charAt(i));\n if (byteIndex < 0) {\n continue;\n }\n bits += this.leftPad(byteIndex.toString(2), 5, '0');\n }\n for (let i = 0; i + 4 <= bits.length; i += 4) {\n const chunk = bits.substr(i, 4);\n hex = hex + parseInt(chunk, 2).toString(16);\n }\n return hex;\n }\n\n private b32ToBytes(s: string): Uint8Array {\n return Utils.fromHexToArray(this.b32ToHex(s));\n }\n\n private async sign(keyBytes: Uint8Array, timeBytes: Uint8Array, alg: 'sha1' | 'sha256' | 'sha512') {\n const signature = await this.cryptoFunctionService.hmac(timeBytes.buffer, keyBytes.buffer, alg);\n return new Uint8Array(signature);\n }\n}\n","import { StorageService } from '../abstractions/storage.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService as UserServiceAbstraction } from '../abstractions/user.service';\n\nimport { OrganizationData } from '../models/data/organizationData';\nimport { Organization } from '../models/domain/organization';\n\nimport { KdfType } from '../enums/kdfType';\n\nconst Keys = {\n userId: 'userId',\n userEmail: 'userEmail',\n stamp: 'securityStamp',\n kdf: 'kdf',\n kdfIterations: 'kdfIterations',\n organizationsPrefix: 'organizations_',\n};\n\nexport class UserService implements UserServiceAbstraction {\n private userId: string;\n private email: string;\n private stamp: string;\n private kdf: KdfType;\n private kdfIterations: number;\n\n constructor(private tokenService: TokenService, private storageService: StorageService) { }\n\n setInformation(userId: string, email: string, kdf: KdfType, kdfIterations: number): Promise {\n this.email = email;\n this.userId = userId;\n this.kdf = kdf;\n this.kdfIterations = kdfIterations;\n\n return Promise.all([\n this.storageService.save(Keys.userEmail, email),\n this.storageService.save(Keys.userId, userId),\n this.storageService.save(Keys.kdf, kdf),\n this.storageService.save(Keys.kdfIterations, kdfIterations),\n ]);\n }\n\n setSecurityStamp(stamp: string): Promise {\n this.stamp = stamp;\n return this.storageService.save(Keys.stamp, stamp);\n }\n\n async getUserId(): Promise {\n if (this.userId == null) {\n this.userId = await this.storageService.get(Keys.userId);\n }\n return this.userId;\n }\n\n async getEmail(): Promise {\n if (this.email == null) {\n this.email = await this.storageService.get(Keys.userEmail);\n }\n return this.email;\n }\n\n async getSecurityStamp(): Promise {\n if (this.stamp == null) {\n this.stamp = await this.storageService.get(Keys.stamp);\n }\n return this.stamp;\n }\n\n async getKdf(): Promise {\n if (this.kdf == null) {\n this.kdf = await this.storageService.get(Keys.kdf);\n }\n return this.kdf;\n }\n\n async getKdfIterations(): Promise {\n if (this.kdfIterations == null) {\n this.kdfIterations = await this.storageService.get(Keys.kdfIterations);\n }\n return this.kdfIterations;\n }\n\n async clear(): Promise {\n const userId = await this.getUserId();\n\n await Promise.all([\n this.storageService.remove(Keys.userId),\n this.storageService.remove(Keys.userEmail),\n this.storageService.remove(Keys.stamp),\n this.storageService.remove(Keys.kdf),\n this.storageService.remove(Keys.kdfIterations),\n this.clearOrganizations(userId),\n ]);\n\n this.userId = this.email = this.stamp = null;\n this.kdf = null;\n this.kdfIterations = null;\n }\n\n async isAuthenticated(): Promise {\n const token = await this.tokenService.getToken();\n if (token == null) {\n return false;\n }\n\n const userId = await this.getUserId();\n return userId != null;\n }\n\n async canAccessPremium(): Promise {\n const authed = await this.isAuthenticated();\n if (!authed) {\n return false;\n }\n\n const tokenPremium = this.tokenService.getPremium();\n if (tokenPremium) {\n return true;\n }\n\n const orgs = await this.getAllOrganizations();\n for (let i = 0; i < orgs.length; i++) {\n if (orgs[i].usersGetPremium && orgs[i].enabled) {\n return true;\n }\n }\n return false;\n }\n\n async getOrganization(id: string): Promise {\n const userId = await this.getUserId();\n const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(\n Keys.organizationsPrefix + userId);\n if (organizations == null || !organizations.hasOwnProperty(id)) {\n return null;\n }\n\n return new Organization(organizations[id]);\n }\n\n async getAllOrganizations(): Promise {\n const userId = await this.getUserId();\n const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(\n Keys.organizationsPrefix + userId);\n const response: Organization[] = [];\n for (const id in organizations) {\n if (organizations.hasOwnProperty(id)) {\n response.push(new Organization(organizations[id]));\n }\n }\n return response;\n }\n\n async replaceOrganizations(organizations: { [id: string]: OrganizationData; }): Promise {\n const userId = await this.getUserId();\n await this.storageService.save(Keys.organizationsPrefix + userId, organizations);\n }\n\n async clearOrganizations(userId: string): Promise {\n await this.storageService.remove(Keys.organizationsPrefix + userId);\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { SearchService } from '../abstractions/search.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from '../abstractions/vaultTimeout.service';\n\nimport { CipherString } from '../models/domain/cipherString';\n\nexport class VaultTimeoutService implements VaultTimeoutServiceAbstraction {\n pinProtectedKey: CipherString = null;\n biometricLocked: boolean = true;\n\n private inited = false;\n\n constructor(private cipherService: CipherService, private folderService: FolderService,\n private collectionService: CollectionService, private cryptoService: CryptoService,\n protected platformUtilsService: PlatformUtilsService, private storageService: StorageService,\n private messagingService: MessagingService, private searchService: SearchService,\n private userService: UserService, private tokenService: TokenService,\n private lockedCallback: () => Promise = null, private loggedOutCallback: () => Promise = null) {\n }\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.startCheck();\n }\n }\n\n startCheck() {\n this.checkVaultTimeout();\n setInterval(() => this.checkVaultTimeout(), 10 * 1000); // check every 10 seconds\n }\n\n // Keys aren't stored for a device that is locked or logged out.\n async isLocked(): Promise {\n const hasKey = await this.cryptoService.hasKey();\n if (hasKey) {\n if (await this.isBiometricLockSet() && this.biometricLocked) {\n return true;\n }\n }\n return !hasKey;\n }\n\n async checkVaultTimeout(): Promise {\n if (await this.platformUtilsService.isViewOpen()) {\n // Do not lock\n return;\n }\n\n // \"is logged out check\" - similar to isLocked, below\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n\n if (await this.isLocked()) {\n return;\n }\n\n // This has the potential to be removed. Evaluate after all platforms complete with auto-logout\n let vaultTimeout = this.platformUtilsService.lockTimeout();\n if (vaultTimeout == null) {\n vaultTimeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n }\n\n if (vaultTimeout == null || vaultTimeout < 0) {\n return;\n }\n\n const lastActive = await this.storageService.get(ConstantsService.lastActiveKey);\n if (lastActive == null) {\n return;\n }\n\n const vaultTimeoutSeconds = vaultTimeout * 60;\n const diffSeconds = ((new Date()).getTime() - lastActive) / 1000;\n if (diffSeconds >= vaultTimeoutSeconds) {\n // Pivot based on the saved vault timeout action\n const timeoutAction = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n timeoutAction === 'logOut' ? await this.logOut() : await this.lock(true);\n }\n }\n\n async lock(allowSoftLock = false): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n\n this.biometricLocked = true;\n if (allowSoftLock) {\n const biometricLocked = await this.isBiometricLockSet();\n if (biometricLocked && this.platformUtilsService.supportsSecureStorage()) {\n this.messagingService.send('locked');\n if (this.lockedCallback != null) {\n await this.lockedCallback();\n }\n return;\n }\n }\n\n await Promise.all([\n this.cryptoService.clearKey(),\n this.cryptoService.clearOrgKeys(true),\n this.cryptoService.clearKeyPair(true),\n this.cryptoService.clearEncKey(true),\n ]);\n\n this.folderService.clearCache();\n this.cipherService.clearCache();\n this.collectionService.clearCache();\n this.searchService.clearIndex();\n this.messagingService.send('locked');\n if (this.lockedCallback != null) {\n await this.lockedCallback();\n }\n }\n\n async logOut(): Promise {\n if (this.loggedOutCallback != null) {\n await this.loggedOutCallback();\n }\n }\n\n async setVaultTimeoutOptions(timeout: number, action: string): Promise {\n await this.storageService.save(ConstantsService.vaultTimeoutKey, timeout);\n await this.storageService.save(ConstantsService.vaultTimeoutActionKey, action);\n await this.cryptoService.toggleKey();\n await this.tokenService.toggleTokens();\n }\n\n async isPinLockSet(): Promise<[boolean, boolean]> {\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const pinProtectedKey = await this.storageService.get(ConstantsService.pinProtectedKey);\n return [protectedPin != null, pinProtectedKey != null];\n }\n\n async isBiometricLockSet(): Promise {\n return await this.storageService.get(ConstantsService.biometricUnlockKey);\n }\n\n clear(): Promise {\n this.pinProtectedKey = null;\n return this.storageService.remove(ConstantsService.protectedPin);\n }\n}\n","import { LogLevelType } from '../enums/logLevelType';\n\nimport { LogService as LogServiceAbstraction } from '../abstractions/log.service';\n\nimport * as hrtime from 'browser-hrtime';\n\nexport class ConsoleLogService implements LogServiceAbstraction {\n protected timersMap: Map = new Map();\n\n constructor(protected isDev: boolean, protected filter: (level: LogLevelType) => boolean = null) { }\n\n debug(message: string) {\n if (!this.isDev) {\n return;\n }\n this.write(LogLevelType.Debug, message);\n }\n\n info(message: string) {\n this.write(LogLevelType.Info, message);\n }\n\n warning(message: string) {\n this.write(LogLevelType.Warning, message);\n }\n\n error(message: string) {\n this.write(LogLevelType.Error, message);\n }\n\n write(level: LogLevelType, message: string) {\n if (this.filter != null && this.filter(level)) {\n return;\n }\n\n switch (level) {\n case LogLevelType.Debug:\n // tslint:disable-next-line\n console.log(message);\n break;\n case LogLevelType.Info:\n // tslint:disable-next-line\n console.log(message);\n break;\n case LogLevelType.Warning:\n // tslint:disable-next-line\n console.warn(message);\n break;\n case LogLevelType.Error:\n // tslint:disable-next-line\n console.error(message);\n break;\n default:\n break;\n }\n }\n\n time(label: string = 'default') {\n if (!this.timersMap.has(label)) {\n this.timersMap.set(label, hrtime());\n }\n }\n\n timeEnd(label: string = 'default'): [number, number] {\n const elapsed = hrtime(this.timersMap.get(label));\n this.timersMap.delete(label);\n this.write(LogLevelType.Info, `${label}: ${elapsed[0] * 1000 + elapsed[1] / 10e6}ms`);\n return elapsed;\n }\n}\n","import { Cipher } from './cipher';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Cipher as CipherDomain } from '../domain/cipher';\n\nexport class CipherWithIds extends Cipher {\n id: string;\n collectionIds: string[];\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CipherView | CipherDomain) {\n this.id = o.id;\n super.build(o);\n this.collectionIds = o.collectionIds;\n }\n}\n","import { Collection } from './collection';\n\nimport { CollectionView } from '../view/collectionView';\n\nimport { Collection as CollectionDomain } from '../domain/collection';\n\nexport class CollectionWithId extends Collection {\n id: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CollectionView | CollectionDomain) {\n this.id = o.id;\n super.build(o);\n }\n}\n","import { Folder } from './folder';\n\nimport { FolderView } from '../view/folderView';\n\nimport { Folder as FolderDomain } from '../domain/folder';\n\nexport class FolderWithId extends Folder {\n id: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: FolderView | FolderDomain) {\n this.id = o.id;\n super.build(o);\n }\n}\n","import { ImportResult } from '../../models/domain/importResult';\nimport { BaseImporter } from '../baseImporter';\nimport { Importer } from '../importer';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { FieldType } from '../../enums/fieldType';\nimport { CipherView } from '../../models/view';\nimport { CipherImportContext } from './cipherImportContext';\n\nexport const IgnoredProperties = ['ainfo', 'autosubmit', 'notesplain', 'ps', 'scope', 'tags', 'title', 'uuid', 'notes'];\n\nexport abstract class OnePasswordCsvImporter extends BaseImporter implements Importer {\n protected loginPropertyParsers = [this.setLoginUsername, this.setLoginPassword, this.setLoginUris];\n protected creditCardPropertyParsers = [this.setCreditCardNumber, this.setCreditCardVerification, this.setCreditCardCardholderName, this.setCreditCardExpiry];\n protected identityPropertyParsers = [this.setIdentityFirstName, this.setIdentityInitial, this.setIdentityLastName, this.setIdentityUserName, this.setIdentityEmail, this.setIdentityPhone, this.setIdentityCompany];\n\n abstract setCipherType(value: any, cipher: CipherView): void;\n\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true, {\n quoteChar: '\"',\n escapeChar: '\\\\',\n });\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(this.getProp(value, 'title'))) {\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(this.getProp(value, 'title'), '--');\n\n this.setNotes(value, cipher);\n\n this.setCipherType(value, cipher);\n\n let altUsername: string = null;\n for (const property in value) {\n if (!value.hasOwnProperty(property) || this.isNullOrWhitespace(value[property])) {\n continue;\n }\n\n const context = new CipherImportContext(value, property, cipher);\n if (cipher.type === CipherType.Login && this.setKnownLoginValue(context)) {\n continue;\n } else if (cipher.type === CipherType.Card && this.setKnownCreditCardValue(context)) {\n continue;\n } else if (cipher.type === CipherType.Identity && this.setKnownIdentityValue(context)) {\n continue;\n }\n\n altUsername = this.setUnknownValue(context, altUsername);\n }\n\n if (cipher.type === CipherType.Login && !this.isNullOrWhitespace(altUsername) &&\n this.isNullOrWhitespace(cipher.login.username) && altUsername.indexOf('://') === -1) {\n cipher.login.username = altUsername;\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n protected getProp(obj: any, name: string): any {\n const lowerObj = Object.entries(obj).reduce((agg: any, entry: [string, any]) => {\n agg[entry[0].toLowerCase()] = entry[1];\n return agg;\n }, {});\n return lowerObj[name.toLowerCase()];\n }\n\n protected getPropByRegexp(obj: any, regexp: RegExp): any {\n const matchingKeys = Object.keys(obj).reduce((agg: string[], key: string) => {\n if (key.match(regexp)) {\n agg.push(key);\n }\n return agg;\n }, []);\n if (matchingKeys.length === 0) {\n return null;\n } else {\n return obj[matchingKeys[0]];\n }\n }\n\n protected getPropIncluding(obj: any, name: string): any {\n const includesMap = Object.keys(obj).reduce((agg: string[], entry: string) => {\n if (entry.toLowerCase().includes(name.toLowerCase())) {\n agg.push(entry);\n }\n return agg;\n }, []);\n if (includesMap.length === 0) {\n return null;\n } else {\n return obj[includesMap[0]];\n }\n }\n\n protected setNotes(importRecord: any, cipher: CipherView) {\n cipher.notes = this.getValueOrDefault(this.getProp(importRecord, 'notesPlain'), '') + '\\n' +\n this.getValueOrDefault(this.getProp(importRecord, 'notes'), '') + '\\n';\n cipher.notes.trim();\n\n }\n\n protected setKnownLoginValue(context: CipherImportContext): boolean {\n return this.loginPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setKnownCreditCardValue(context: CipherImportContext): boolean {\n return this.creditCardPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setKnownIdentityValue(context: CipherImportContext): boolean {\n return this.identityPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setUnknownValue(context: CipherImportContext, altUsername: string): string {\n if (IgnoredProperties.indexOf(context.lowerProperty) === -1 && !context.lowerProperty.startsWith('section:') &&\n !context.lowerProperty.startsWith('section ')) {\n if (altUsername == null && context.lowerProperty === 'email') {\n return context.importRecord[context.property];\n }\n else if (context.lowerProperty === 'created date' || context.lowerProperty === 'modified date') {\n const readableDate = new Date(parseInt(context.importRecord[context.property], 10) * 1000).toUTCString();\n this.processKvp(context.cipher, '1Password ' + context.property, readableDate);\n return null;\n }\n if (context.lowerProperty.includes('password') || context.lowerProperty.includes('key') || context.lowerProperty.includes('secret')) {\n this.processKvp(context.cipher, context.property, context.importRecord[context.property], FieldType.Hidden);\n } else {\n this.processKvp(context.cipher, context.property, context.importRecord[context.property]);\n }\n }\n return null;\n }\n\n protected setIdentityFirstName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.firstName) && context.lowerProperty.includes('first name')) {\n context.cipher.identity.firstName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityInitial(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.middleName) && context.lowerProperty.includes('initial')) {\n context.cipher.identity.middleName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityLastName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.lastName) && context.lowerProperty.includes('last name')) {\n context.cipher.identity.lastName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityUserName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.username) && context.lowerProperty.includes('username')) {\n context.cipher.identity.username = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityCompany(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.company) && context.lowerProperty.includes('company')) {\n context.cipher.identity.company = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityPhone(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.phone) && context.lowerProperty.includes('default phone')) {\n context.cipher.identity.phone = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityEmail(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.email) && context.lowerProperty.includes('email')) {\n context.cipher.identity.email = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardNumber(context: CipherImportContext): boolean {\n if (this.isNullOrWhitespace(context.cipher.card.number) && context.lowerProperty.includes('number')) {\n context.cipher.card.number = context.importRecord[context.property];\n context.cipher.card.brand = this.getCardBrand(context.cipher.card.number);\n return true;\n }\n return false;\n }\n\n protected setCreditCardVerification(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.code) && context.lowerProperty.includes('verification number')) {\n context.cipher.card.code = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardCardholderName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.cardholderName) && context.lowerProperty.includes('cardholder name')) {\n context.cipher.card.cardholderName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardExpiry(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.expiration) && context.lowerProperty.includes('expiry date') &&\n context.importRecord[context.property].length === 7) {\n context.cipher.card.expMonth = (context.importRecord[context.property] as string).substr(0, 2);\n if (context.cipher.card.expMonth[0] === '0') {\n context.cipher.card.expMonth = context.cipher.card.expMonth.substr(1, 1);\n }\n context.cipher.card.expYear = (context.importRecord[context.property] as string).substr(3, 4);\n return true;\n }\n return false;\n }\n\n protected setLoginPassword(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.login.password) && context.lowerProperty === 'password') {\n context.cipher.login.password = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setLoginUsername(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.login.username) && context.lowerProperty === 'username') {\n context.cipher.login.username = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setLoginUris(context: CipherImportContext) {\n if ((context.cipher.login.uris == null || context.cipher.login.uris.length === 0) && context.lowerProperty === 'urls') {\n const urls = context.importRecord[context.property].split(this.newLineRegex);\n context.cipher.login.uris = this.makeUriArray(urls);\n return true;\n } else if ((context.lowerProperty === 'url')) {\n if (context.cipher.login.uris == null) {\n context.cipher.login.uris = [];\n }\n context.cipher.login.uris.concat(this.makeUriArray(context.importRecord[context.property]));\n return true;\n }\n return false;\n }\n}\n","export { AttachmentView } from './attachmentView';\nexport { CardView } from './cardView';\nexport { CipherView } from './cipherView';\nexport { FieldView } from './fieldView';\nexport { IdentityView } from './identityView';\nexport { LoginUriView } from './loginUriView';\nexport { LoginView } from './loginView';\nexport { SecureNoteView } from './secureNoteView';\nexport { View } from './view';\n","export enum NotificationType {\n SyncCipherUpdate = 0,\n SyncCipherCreate = 1,\n SyncLoginDelete = 2,\n SyncFolderDelete = 3,\n SyncCiphers = 4,\n\n SyncVault = 5,\n SyncOrgKeys = 6,\n SyncFolderCreate = 7,\n SyncFolderUpdate = 8,\n SyncCipherDelete = 9,\n SyncSettings = 10,\n\n LogOut = 11,\n\n SyncSendCreate = 12,\n SyncSendUpdate = 13,\n SyncSendDelete = 14,\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport 'bootstrap';\nimport 'jquery';\nimport 'popper.js';\n\n// tslint:disable-next-line\nrequire('../scss/styles.scss');\n\nimport { AppModule } from './app.module';\n\nif (process.env.ENV === 'production') {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule, { preserveWhitespaces: true });\n","import 'core-js';\n\nimport { ToasterModule } from 'angular2-toaster';\nimport { Angulartics2Module } from 'angulartics2';\nimport { Angulartics2GoogleAnalytics } from 'angulartics2/ga';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n\nimport { AppRoutingModule } from './app-routing.module';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { ServicesModule } from './services/services.module';\n\nimport { AppComponent } from './app.component';\nimport { ModalComponent } from './modal.component';\n\nimport { AvatarComponent } from './components/avatar.component';\nimport { PasswordStrengthComponent } from './components/password-strength.component';\n\nimport { FooterComponent } from './layouts/footer.component';\nimport { FrontendLayoutComponent } from './layouts/frontend-layout.component';\nimport { NavbarComponent } from './layouts/navbar.component';\nimport { OrganizationLayoutComponent } from './layouts/organization-layout.component';\nimport { UserLayoutComponent } from './layouts/user-layout.component';\n\nimport { AcceptEmergencyComponent } from './accounts/accept-emergency.component';\nimport { AcceptOrganizationComponent } from './accounts/accept-organization.component';\nimport { HintComponent } from './accounts/hint.component';\nimport { LockComponent } from './accounts/lock.component';\nimport { LoginComponent } from './accounts/login.component';\nimport { RecoverDeleteComponent } from './accounts/recover-delete.component';\nimport { RecoverTwoFactorComponent } from './accounts/recover-two-factor.component';\nimport { RegisterComponent } from './accounts/register.component';\nimport { SetPasswordComponent } from './accounts/set-password.component';\nimport { SsoComponent } from './accounts/sso.component';\nimport { TwoFactorOptionsComponent } from './accounts/two-factor-options.component';\nimport { TwoFactorComponent } from './accounts/two-factor.component';\nimport { VerifyEmailTokenComponent } from './accounts/verify-email-token.component';\nimport { VerifyRecoverDeleteComponent } from './accounts/verify-recover-delete.component';\n\nimport {\n CollectionAddEditComponent as OrgCollectionAddEditComponent,\n} from './organizations/manage/collection-add-edit.component';\nimport { CollectionsComponent as OrgManageCollectionsComponent } from './organizations/manage/collections.component';\nimport { EntityEventsComponent as OrgEntityEventsComponent } from './organizations/manage/entity-events.component';\nimport { EntityUsersComponent as OrgEntityUsersComponent } from './organizations/manage/entity-users.component';\nimport { EventsComponent as OrgEventsComponent } from './organizations/manage/events.component';\nimport { GroupAddEditComponent as OrgGroupAddEditComponent } from './organizations/manage/group-add-edit.component';\nimport { GroupsComponent as OrgGroupsComponent } from './organizations/manage/groups.component';\nimport { ManageComponent as OrgManageComponent } from './organizations/manage/manage.component';\nimport { PeopleComponent as OrgPeopleComponent } from './organizations/manage/people.component';\nimport { PoliciesComponent as OrgPoliciesComponent } from './organizations/manage/policies.component';\nimport { PolicyEditComponent as OrgPolicyEditComponent } from './organizations/manage/policy-edit.component';\nimport { UserAddEditComponent as OrgUserAddEditComponent } from './organizations/manage/user-add-edit.component';\nimport { UserConfirmComponent as OrgUserConfirmComponent } from './organizations/manage/user-confirm.component';\nimport { UserGroupsComponent as OrgUserGroupsComponent } from './organizations/manage/user-groups.component';\n\nimport { AccountComponent as OrgAccountComponent } from './organizations/settings/account.component';\nimport { AdjustSeatsComponent } from './organizations/settings/adjust-seats.component';\nimport { ChangePlanComponent } from './organizations/settings/change-plan.component';\nimport { DeleteOrganizationComponent } from './organizations/settings/delete-organization.component';\nimport { DownloadLicenseComponent } from './organizations/settings/download-license.component';\nimport { OrganizationBillingComponent } from './organizations/settings/organization-billing.component';\nimport { OrganizationSubscriptionComponent } from './organizations/settings/organization-subscription.component';\nimport { SettingsComponent as OrgSettingComponent } from './organizations/settings/settings.component';\nimport {\n TwoFactorSetupComponent as OrgTwoFactorSetupComponent,\n} from './organizations/settings/two-factor-setup.component';\n\nimport { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';\nimport {\n ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,\n} from './organizations/tools/exposed-passwords-report.component';\nimport { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';\nimport {\n InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,\n} from './organizations/tools/inactive-two-factor-report.component';\nimport {\n ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,\n} from './organizations/tools/reused-passwords-report.component';\nimport { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';\nimport {\n UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,\n} from './organizations/tools/unsecured-websites-report.component';\nimport {\n WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,\n} from './organizations/tools/weak-passwords-report.component';\n\nimport { AddEditComponent as OrgAddEditComponent } from './organizations/vault/add-edit.component';\nimport { AttachmentsComponent as OrgAttachmentsComponent } from './organizations/vault/attachments.component';\nimport { CiphersComponent as OrgCiphersComponent } from './organizations/vault/ciphers.component';\nimport { CollectionsComponent as OrgCollectionsComponent } from './organizations/vault/collections.component';\nimport { GroupingsComponent as OrgGroupingsComponent } from './organizations/vault/groupings.component';\nimport { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';\n\nimport { AccessComponent } from './send/access.component';\nimport { AddEditComponent as SendAddEditComponent } from './send/add-edit.component';\nimport { SendComponent } from './send/send.component';\n\nimport { AccountComponent } from './settings/account.component';\nimport { AddCreditComponent } from './settings/add-credit.component';\nimport { AdjustPaymentComponent } from './settings/adjust-payment.component';\nimport { AdjustStorageComponent } from './settings/adjust-storage.component';\nimport { ApiKeyComponent } from './settings/api-key.component';\nimport { ChangeEmailComponent } from './settings/change-email.component';\nimport { ChangeKdfComponent } from './settings/change-kdf.component';\nimport { ChangePasswordComponent } from './settings/change-password.component';\nimport { CreateOrganizationComponent } from './settings/create-organization.component';\nimport { DeauthorizeSessionsComponent } from './settings/deauthorize-sessions.component';\nimport { DeleteAccountComponent } from './settings/delete-account.component';\nimport { DomainRulesComponent } from './settings/domain-rules.component';\nimport { EmergencyAccessAddEditComponent } from './settings/emergency-access-add-edit.component';\nimport { EmergencyAccessAttachmentsComponent } from './settings/emergency-access-attachments.component';\nimport { EmergencyAccessConfirmComponent } from './settings/emergency-access-confirm.component';\nimport { EmergencyAccessTakeoverComponent } from './settings/emergency-access-takeover.component';\nimport { EmergencyAccessViewComponent } from './settings/emergency-access-view.component';\nimport { EmergencyAccessComponent } from './settings/emergency-access.component';\nimport { EmergencyAddEditComponent } from './settings/emergency-add-edit.component';\nimport { LinkSsoComponent } from './settings/link-sso.component';\nimport { OptionsComponent } from './settings/options.component';\nimport { OrganizationPlansComponent } from './settings/organization-plans.component';\nimport { OrganizationsComponent } from './settings/organizations.component';\nimport { PaymentComponent } from './settings/payment.component';\nimport { PremiumComponent } from './settings/premium.component';\nimport { ProfileComponent } from './settings/profile.component';\nimport { PurgeVaultComponent } from './settings/purge-vault.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { TaxInfoComponent } from './settings/tax-info.component';\nimport { TwoFactorAuthenticatorComponent } from './settings/two-factor-authenticator.component';\nimport { TwoFactorDuoComponent } from './settings/two-factor-duo.component';\nimport { TwoFactorEmailComponent } from './settings/two-factor-email.component';\nimport { TwoFactorRecoveryComponent } from './settings/two-factor-recovery.component';\nimport { TwoFactorSetupComponent } from './settings/two-factor-setup.component';\nimport { TwoFactorU2fComponent } from './settings/two-factor-u2f.component';\nimport { TwoFactorVerifyComponent } from './settings/two-factor-verify.component';\nimport { TwoFactorYubiKeyComponent } from './settings/two-factor-yubikey.component';\nimport { UpdateKeyComponent } from './settings/update-key.component';\nimport { UpdateLicenseComponent } from './settings/update-license.component';\nimport { UserBillingComponent } from './settings/user-billing.component';\nimport { UserSubscriptionComponent } from './settings/user-subscription.component';\nimport { VerifyEmailComponent } from './settings/verify-email.component';\n\nimport { BreachReportComponent } from './tools/breach-report.component';\nimport { ExportComponent } from './tools/export.component';\nimport { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';\nimport { ImportComponent } from './tools/import.component';\nimport { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';\nimport { PasswordGeneratorHistoryComponent } from './tools/password-generator-history.component';\nimport { PasswordGeneratorComponent } from './tools/password-generator.component';\nimport { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';\nimport { ToolsComponent } from './tools/tools.component';\nimport { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';\nimport { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';\n\nimport { AddEditComponent } from './vault/add-edit.component';\nimport { AttachmentsComponent } from './vault/attachments.component';\nimport { BulkActionsComponent } from './vault/bulk-actions.component';\nimport { BulkDeleteComponent } from './vault/bulk-delete.component';\nimport { BulkMoveComponent } from './vault/bulk-move.component';\nimport { BulkRestoreComponent } from './vault/bulk-restore.component';\nimport { BulkShareComponent } from './vault/bulk-share.component';\nimport { CiphersComponent } from './vault/ciphers.component';\nimport { CollectionsComponent } from './vault/collections.component';\nimport { FolderAddEditComponent } from './vault/folder-add-edit.component';\nimport { GroupingsComponent } from './vault/groupings.component';\nimport { SendInfoComponent } from './vault/send-info.component';\nimport { ShareComponent } from './vault/share.component';\nimport { VaultComponent } from './vault/vault.component';\n\nimport { CalloutComponent } from 'jslib/angular/components/callout.component';\nimport { IconComponent } from 'jslib/angular/components/icon.component';\n\nimport { A11yTitleDirective } from 'jslib/angular/directives/a11y-title.directive';\nimport { ApiActionDirective } from 'jslib/angular/directives/api-action.directive';\nimport { AutofocusDirective } from 'jslib/angular/directives/autofocus.directive';\nimport { BlurClickDirective } from 'jslib/angular/directives/blur-click.directive';\nimport { BoxRowDirective } from 'jslib/angular/directives/box-row.directive';\nimport { FallbackSrcDirective } from 'jslib/angular/directives/fallback-src.directive';\nimport { InputVerbatimDirective } from 'jslib/angular/directives/input-verbatim.directive';\nimport { SelectCopyDirective } from 'jslib/angular/directives/select-copy.directive';\nimport { StopClickDirective } from 'jslib/angular/directives/stop-click.directive';\nimport { StopPropDirective } from 'jslib/angular/directives/stop-prop.directive';\nimport { TrueFalseValueDirective } from 'jslib/angular/directives/true-false-value.directive';\n\nimport { ColorPasswordPipe } from 'jslib/angular/pipes/color-password.pipe';\nimport { I18nPipe } from 'jslib/angular/pipes/i18n.pipe';\nimport { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe';\nimport { SearchPipe } from 'jslib/angular/pipes/search.pipe';\n\nimport {\n DatePipe,\n registerLocaleData,\n} from '@angular/common';\nimport localeCa from '@angular/common/locales/ca';\nimport localeCs from '@angular/common/locales/cs';\nimport localeDa from '@angular/common/locales/da';\nimport localeDe from '@angular/common/locales/de';\nimport localeEl from '@angular/common/locales/el';\nimport localeEnGb from '@angular/common/locales/en-GB';\nimport localeEs from '@angular/common/locales/es';\nimport localeEt from '@angular/common/locales/et';\nimport localeFr from '@angular/common/locales/fr';\nimport localeHe from '@angular/common/locales/he';\nimport localeIt from '@angular/common/locales/it';\nimport localeJa from '@angular/common/locales/ja';\nimport localeKo from '@angular/common/locales/ko';\nimport localeLv from '@angular/common/locales/lv';\nimport localeMl from '@angular/common/locales/ml';\nimport localeNb from '@angular/common/locales/nb';\nimport localeNl from '@angular/common/locales/nl';\nimport localePl from '@angular/common/locales/pl';\nimport localePtBr from '@angular/common/locales/pt';\nimport localePtPt from '@angular/common/locales/pt-PT';\nimport localeRu from '@angular/common/locales/ru';\nimport localeSk from '@angular/common/locales/sk';\nimport localeSv from '@angular/common/locales/sv';\nimport localeUk from '@angular/common/locales/uk';\nimport localeZhCn from '@angular/common/locales/zh-Hans';\nimport localeZhTw from '@angular/common/locales/zh-Hant';\n\nregisterLocaleData(localeCa, 'ca');\nregisterLocaleData(localeCs, 'cs');\nregisterLocaleData(localeDa, 'da');\nregisterLocaleData(localeDe, 'de');\nregisterLocaleData(localeEl, 'el');\nregisterLocaleData(localeEnGb, 'en-GB');\nregisterLocaleData(localeEs, 'es');\nregisterLocaleData(localeEt, 'et');\nregisterLocaleData(localeFr, 'fr');\nregisterLocaleData(localeHe, 'he');\nregisterLocaleData(localeIt, 'it');\nregisterLocaleData(localeJa, 'ja');\nregisterLocaleData(localeKo, 'ko');\nregisterLocaleData(localeLv, 'lv');\nregisterLocaleData(localeMl, 'ml');\nregisterLocaleData(localeNb, 'nb');\nregisterLocaleData(localeNl, 'nl');\nregisterLocaleData(localePl, 'pl');\nregisterLocaleData(localePtBr, 'pt-BR');\nregisterLocaleData(localePtPt, 'pt-PT');\nregisterLocaleData(localeRu, 'ru');\nregisterLocaleData(localeSk, 'sk');\nregisterLocaleData(localeSv, 'sv');\nregisterLocaleData(localeUk, 'uk');\nregisterLocaleData(localeZhCn, 'zh-CN');\nregisterLocaleData(localeZhTw, 'zh-TW');\n\n@NgModule({\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n AppRoutingModule,\n ServicesModule,\n Angulartics2Module.forRoot({\n pageTracking: {\n clearQueryParams: true,\n },\n }),\n ToasterModule.forRoot(),\n InfiniteScrollModule,\n DragDropModule,\n ],\n declarations: [\n A11yTitleDirective,\n AcceptEmergencyComponent,\n AccessComponent,\n AcceptOrganizationComponent,\n AccountComponent,\n SetPasswordComponent,\n AddCreditComponent,\n AddEditComponent,\n AdjustPaymentComponent,\n AdjustSeatsComponent,\n AdjustStorageComponent,\n ApiActionDirective,\n ApiKeyComponent,\n AppComponent,\n AttachmentsComponent,\n AutofocusDirective,\n AvatarComponent,\n BlurClickDirective,\n BoxRowDirective,\n BreachReportComponent,\n BulkActionsComponent,\n BulkDeleteComponent,\n BulkMoveComponent,\n BulkRestoreComponent,\n BulkShareComponent,\n CalloutComponent,\n ChangeEmailComponent,\n ChangeKdfComponent,\n ChangePasswordComponent,\n ChangePlanComponent,\n CiphersComponent,\n CollectionsComponent,\n ColorPasswordPipe,\n CreateOrganizationComponent,\n DeauthorizeSessionsComponent,\n DeleteAccountComponent,\n DeleteOrganizationComponent,\n DomainRulesComponent,\n DownloadLicenseComponent,\n EmergencyAccessAddEditComponent,\n EmergencyAccessAttachmentsComponent,\n EmergencyAccessComponent,\n EmergencyAccessConfirmComponent,\n EmergencyAccessTakeoverComponent,\n EmergencyAccessViewComponent,\n EmergencyAddEditComponent,\n ExportComponent,\n ExposedPasswordsReportComponent,\n FallbackSrcDirective,\n FolderAddEditComponent,\n FooterComponent,\n FrontendLayoutComponent,\n GroupingsComponent,\n HintComponent,\n I18nPipe,\n IconComponent,\n ImportComponent,\n InactiveTwoFactorReportComponent,\n InputVerbatimDirective,\n LinkSsoComponent,\n LockComponent,\n LoginComponent,\n ModalComponent,\n NavbarComponent,\n OptionsComponent,\n OrgAccountComponent,\n OrgAddEditComponent,\n OrganizationBillingComponent,\n OrganizationPlansComponent,\n OrganizationSubscriptionComponent,\n OrgAttachmentsComponent,\n OrgCiphersComponent,\n OrgCollectionAddEditComponent,\n OrgCollectionsComponent,\n OrgEntityEventsComponent,\n OrgEntityUsersComponent,\n OrgEventsComponent,\n OrgExportComponent,\n OrgExposedPasswordsReportComponent,\n OrgImportComponent,\n OrgInactiveTwoFactorReportComponent,\n OrgGroupAddEditComponent,\n OrgGroupingsComponent,\n OrgGroupsComponent,\n OrgManageCollectionsComponent,\n OrgManageComponent,\n OrgPeopleComponent,\n OrgPolicyEditComponent,\n OrgPoliciesComponent,\n OrgReusedPasswordsReportComponent,\n OrgSettingComponent,\n OrgToolsComponent,\n OrgTwoFactorSetupComponent,\n OrgUserAddEditComponent,\n OrgUserConfirmComponent,\n OrgUserGroupsComponent,\n OrganizationsComponent,\n OrganizationLayoutComponent,\n OrgUnsecuredWebsitesReportComponent,\n OrgVaultComponent,\n OrgWeakPasswordsReportComponent,\n PasswordGeneratorComponent,\n PasswordGeneratorHistoryComponent,\n PasswordStrengthComponent,\n PaymentComponent,\n PremiumComponent,\n ProfileComponent,\n PurgeVaultComponent,\n RecoverDeleteComponent,\n RecoverTwoFactorComponent,\n RegisterComponent,\n ReusedPasswordsReportComponent,\n SearchCiphersPipe,\n SearchPipe,\n SelectCopyDirective,\n SendAddEditComponent,\n SendComponent,\n SendInfoComponent,\n SettingsComponent,\n ShareComponent,\n SsoComponent,\n StopClickDirective,\n StopPropDirective,\n TaxInfoComponent,\n ToolsComponent,\n TrueFalseValueDirective,\n TwoFactorAuthenticatorComponent,\n TwoFactorComponent,\n TwoFactorDuoComponent,\n TwoFactorEmailComponent,\n TwoFactorOptionsComponent,\n TwoFactorRecoveryComponent,\n TwoFactorSetupComponent,\n TwoFactorU2fComponent,\n TwoFactorVerifyComponent,\n TwoFactorYubiKeyComponent,\n UnsecuredWebsitesReportComponent,\n UpdateKeyComponent,\n UpdateLicenseComponent,\n UserBillingComponent,\n UserLayoutComponent,\n UserSubscriptionComponent,\n VaultComponent,\n VerifyEmailComponent,\n VerifyEmailTokenComponent,\n VerifyRecoverDeleteComponent,\n WeakPasswordsReportComponent,\n ],\n entryComponents: [\n AddEditComponent,\n ApiKeyComponent,\n AttachmentsComponent,\n BulkActionsComponent,\n BulkDeleteComponent,\n BulkMoveComponent,\n BulkRestoreComponent,\n BulkShareComponent,\n CollectionsComponent,\n DeauthorizeSessionsComponent,\n DeleteAccountComponent,\n DeleteOrganizationComponent,\n EmergencyAccessAddEditComponent,\n EmergencyAccessAttachmentsComponent,\n EmergencyAccessConfirmComponent,\n EmergencyAccessTakeoverComponent,\n EmergencyAddEditComponent,\n FolderAddEditComponent,\n ModalComponent,\n OrgAddEditComponent,\n OrgAttachmentsComponent,\n OrgCollectionAddEditComponent,\n OrgCollectionsComponent,\n OrgEntityEventsComponent,\n OrgEntityUsersComponent,\n OrgGroupAddEditComponent,\n OrgPolicyEditComponent,\n OrgUserAddEditComponent,\n OrgUserConfirmComponent,\n OrgUserGroupsComponent,\n PasswordGeneratorHistoryComponent,\n PurgeVaultComponent,\n SendAddEditComponent,\n ShareComponent,\n TwoFactorAuthenticatorComponent,\n TwoFactorDuoComponent,\n TwoFactorEmailComponent,\n TwoFactorOptionsComponent,\n TwoFactorRecoveryComponent,\n TwoFactorU2fComponent,\n TwoFactorYubiKeyComponent,\n UpdateKeyComponent,\n ],\n providers: [DatePipe],\n bootstrap: [AppComponent],\n})\nexport class AppModule { }\n","import { NgModule } from '@angular/core';\nimport {\n RouterModule,\n Routes,\n} from '@angular/router';\n\nimport { FrontendLayoutComponent } from './layouts/frontend-layout.component';\nimport { OrganizationLayoutComponent } from './layouts/organization-layout.component';\nimport { UserLayoutComponent } from './layouts/user-layout.component';\n\nimport { AcceptEmergencyComponent } from './accounts/accept-emergency.component';\nimport { AcceptOrganizationComponent } from './accounts/accept-organization.component';\nimport { HintComponent } from './accounts/hint.component';\nimport { LockComponent } from './accounts/lock.component';\nimport { LoginComponent } from './accounts/login.component';\nimport { RecoverDeleteComponent } from './accounts/recover-delete.component';\nimport { RecoverTwoFactorComponent } from './accounts/recover-two-factor.component';\nimport { RegisterComponent } from './accounts/register.component';\nimport { SetPasswordComponent } from './accounts/set-password.component';\nimport { SsoComponent } from './accounts/sso.component';\nimport { TwoFactorComponent } from './accounts/two-factor.component';\nimport { VerifyEmailTokenComponent } from './accounts/verify-email-token.component';\nimport { VerifyRecoverDeleteComponent } from './accounts/verify-recover-delete.component';\n\nimport { CollectionsComponent as OrgManageCollectionsComponent } from './organizations/manage/collections.component';\nimport { EventsComponent as OrgEventsComponent } from './organizations/manage/events.component';\nimport { GroupsComponent as OrgGroupsComponent } from './organizations/manage/groups.component';\nimport { ManageComponent as OrgManageComponent } from './organizations/manage/manage.component';\nimport { PeopleComponent as OrgPeopleComponent } from './organizations/manage/people.component';\nimport { PoliciesComponent as OrgPoliciesComponent } from './organizations/manage/policies.component';\n\nimport { AccountComponent as OrgAccountComponent } from './organizations/settings/account.component';\nimport { OrganizationBillingComponent } from './organizations/settings/organization-billing.component';\nimport { OrganizationSubscriptionComponent } from './organizations/settings/organization-subscription.component';\nimport { SettingsComponent as OrgSettingsComponent } from './organizations/settings/settings.component';\nimport {\n TwoFactorSetupComponent as OrgTwoFactorSetupComponent,\n} from './organizations/settings/two-factor-setup.component';\n\nimport { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';\nimport {\n ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,\n} from './organizations/tools/exposed-passwords-report.component';\nimport { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';\nimport {\n InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,\n} from './organizations/tools/inactive-two-factor-report.component';\nimport {\n ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,\n} from './organizations/tools/reused-passwords-report.component';\nimport { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';\nimport {\n UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,\n} from './organizations/tools/unsecured-websites-report.component';\nimport {\n WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,\n} from './organizations/tools/weak-passwords-report.component';\n\nimport { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';\n\nimport { AccessComponent } from './send/access.component';\nimport { SendComponent } from './send/send.component';\n\nimport { AccountComponent } from './settings/account.component';\nimport { CreateOrganizationComponent } from './settings/create-organization.component';\nimport { DomainRulesComponent } from './settings/domain-rules.component';\nimport { OptionsComponent } from './settings/options.component';\nimport { OrganizationsComponent } from './settings/organizations.component';\nimport { PremiumComponent } from './settings/premium.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { TwoFactorSetupComponent } from './settings/two-factor-setup.component';\nimport { UserBillingComponent } from './settings/user-billing.component';\nimport { UserSubscriptionComponent } from './settings/user-subscription.component';\n\nimport { BreachReportComponent } from './tools/breach-report.component';\nimport { ExportComponent } from './tools/export.component';\nimport { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';\nimport { ImportComponent } from './tools/import.component';\nimport { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';\nimport { PasswordGeneratorComponent } from './tools/password-generator.component';\nimport { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';\nimport { ToolsComponent } from './tools/tools.component';\nimport { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';\nimport { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';\n\nimport { VaultComponent } from './vault/vault.component';\n\nimport { OrganizationGuardService } from './services/organization-guard.service';\nimport { OrganizationTypeGuardService } from './services/organization-type-guard.service';\nimport { UnauthGuardService } from './services/unauth-guard.service';\n\nimport { AuthGuardService } from 'jslib/angular/services/auth-guard.service';\n\nimport { Permissions } from 'jslib/enums/permissions';\n\nimport { EmergencyAccessViewComponent } from './settings/emergency-access-view.component';\nimport { EmergencyAccessComponent } from './settings/emergency-access.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: FrontendLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', component: LoginComponent, canActivate: [UnauthGuardService] },\n { path: '2fa', component: TwoFactorComponent, canActivate: [UnauthGuardService] },\n {\n path: 'register', component: RegisterComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'createAccount' },\n },\n {\n path: 'sso', component: SsoComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'enterpriseSingleSignOn' },\n },\n {\n path: 'set-password', component: SetPasswordComponent,\n data: { titleId: 'setMasterPassword' },\n },\n {\n path: 'hint', component: HintComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'passwordHint' },\n },\n { path: 'lock', component: LockComponent },\n { path: 'verify-email', component: VerifyEmailTokenComponent },\n {\n path: 'accept-organization',\n component: AcceptOrganizationComponent,\n data: { titleId: 'joinOrganization' },\n },\n {\n path: 'accept-emergency',\n component: AcceptEmergencyComponent,\n data: { titleId: 'acceptEmergency' },\n },\n { path: 'recover', pathMatch: 'full', redirectTo: 'recover-2fa' },\n {\n path: 'recover-2fa',\n component: RecoverTwoFactorComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'recoverAccountTwoStep' },\n },\n {\n path: 'recover-delete',\n component: RecoverDeleteComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'deleteAccount' },\n },\n {\n path: 'verify-recover-delete',\n component: VerifyRecoverDeleteComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'deleteAccount' },\n },\n {\n path: 'send/:sendId/:key',\n component: AccessComponent,\n data: { title: 'Bitwarden Send' },\n },\n ],\n },\n {\n path: '',\n component: UserLayoutComponent,\n canActivate: [AuthGuardService],\n children: [\n { path: 'vault', component: VaultComponent, data: { titleId: 'myVault' } },\n { path: 'sends', component: SendComponent, data: { title: 'Send' } },\n {\n path: 'settings',\n component: SettingsComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'account' },\n { path: 'account', component: AccountComponent, data: { titleId: 'myAccount' } },\n { path: 'options', component: OptionsComponent, data: { titleId: 'options' } },\n { path: 'domain-rules', component: DomainRulesComponent, data: { titleId: 'domainRules' } },\n { path: 'two-factor', component: TwoFactorSetupComponent, data: { titleId: 'twoStepLogin' } },\n { path: 'premium', component: PremiumComponent, data: { titleId: 'goPremium' } },\n { path: 'billing', component: UserBillingComponent, data: { titleId: 'billing' } },\n {\n path: 'subscription',\n component: UserSubscriptionComponent,\n data: { titleId: 'premiumMembership' },\n },\n { path: 'organizations', component: OrganizationsComponent, data: { titleId: 'organizations' } },\n {\n path: 'create-organization',\n component: CreateOrganizationComponent,\n data: { titleId: 'newOrganization' },\n },\n {\n path: 'emergency-access',\n children: [\n {\n path: '',\n component: EmergencyAccessComponent,\n data: { titleId: 'emergencyAccess'},\n },\n {\n path: ':id',\n component: EmergencyAccessViewComponent,\n data: { titleId: 'emergencyAccess'},\n },\n ],\n },\n ],\n },\n {\n path: 'tools',\n component: ToolsComponent,\n canActivate: [AuthGuardService],\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'generator' },\n { path: 'import', component: ImportComponent, data: { titleId: 'importData' } },\n { path: 'export', component: ExportComponent, data: { titleId: 'exportVault' } },\n {\n path: 'generator',\n component: PasswordGeneratorComponent,\n data: { titleId: 'passwordGenerator' },\n },\n { path: 'breach-report', component: BreachReportComponent, data: { titleId: 'dataBreachReport' } },\n {\n path: 'reused-passwords-report',\n component: ReusedPasswordsReportComponent,\n data: { titleId: 'reusedPasswordsReport' },\n },\n {\n path: 'unsecured-websites-report',\n component: UnsecuredWebsitesReportComponent,\n data: { titleId: 'unsecuredWebsitesReport' },\n },\n {\n path: 'weak-passwords-report',\n component: WeakPasswordsReportComponent,\n data: { titleId: 'weakPasswordsReport' },\n },\n {\n path: 'exposed-passwords-report',\n component: ExposedPasswordsReportComponent,\n data: { titleId: 'exposedPasswordsReport' },\n },\n {\n path: 'inactive-two-factor-report',\n component: InactiveTwoFactorReportComponent,\n data: { titleId: 'inactive2faReport' },\n },\n ],\n },\n ],\n },\n {\n path: 'organizations/:organizationId',\n component: OrganizationLayoutComponent,\n canActivate: [AuthGuardService, OrganizationGuardService],\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'vault' },\n { path: 'vault', component: OrgVaultComponent, data: { titleId: 'vault' } },\n {\n path: 'tools',\n component: OrgToolsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: { permissions: [Permissions.AccessImportExport, Permissions.AccessReports] },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'import',\n },\n {\n path: 'import',\n component: OrgImportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'importData',\n permissions: [Permissions.AccessImportExport],\n },\n },\n {\n path: 'export',\n component: OrgExportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'exportVault',\n permissions: [Permissions.AccessImportExport],\n },\n },\n {\n path: 'exposed-passwords-report',\n component: OrgExposedPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'exposedPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'inactive-two-factor-report',\n component: OrgInactiveTwoFactorReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'inactive2faReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'reused-passwords-report',\n component: OrgReusedPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'reusedPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'unsecured-websites-report',\n component: OrgUnsecuredWebsitesReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'unsecuredWebsitesReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'weak-passwords-report',\n component: OrgWeakPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'weakPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n ],\n },\n {\n path: 'manage',\n component: OrgManageComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n permissions: [\n Permissions.ManageAssignedCollections,\n Permissions.ManageAllCollections,\n Permissions.AccessEventLogs,\n Permissions.ManageGroups,\n Permissions.ManageUsers,\n Permissions.ManagePolicies,\n ],\n },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'people',\n },\n {\n path: 'collections',\n component: OrgManageCollectionsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'collections',\n permissions: [Permissions.ManageAssignedCollections, Permissions.ManageAllCollections],\n },\n },\n {\n path: 'events',\n component: OrgEventsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'eventLogs',\n permissions: [Permissions.AccessEventLogs],\n },\n },\n {\n path: 'groups',\n component: OrgGroupsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'groups',\n permissions: [Permissions.ManageGroups],\n },\n },\n {\n path: 'people',\n component: OrgPeopleComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'people',\n permissions: [Permissions.ManageUsers],\n },\n },\n {\n path: 'policies',\n component: OrgPoliciesComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'policies',\n permissions: [Permissions.ManagePolicies],\n },\n },\n ],\n },\n {\n path: 'settings',\n component: OrgSettingsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: { permissions: [Permissions.ManageOrganization] },\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'account' },\n { path: 'account', component: OrgAccountComponent, data: { titleId: 'myOrganization' } },\n { path: 'two-factor', component: OrgTwoFactorSetupComponent, data: { titleId: 'twoStepLogin' } },\n {\n path: 'billing',\n component: OrganizationBillingComponent,\n data: { titleId: 'billing' },\n },\n {\n path: 'subscription',\n component: OrganizationSubscriptionComponent,\n data: { titleId: 'subscription' },\n },\n ],\n },\n ],\n },\n { path: '**', redirectTo: '' },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {\n useHash: true,\n paramsInheritanceStrategy: 'always',\n /*enableTracing: true,*/\n })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule { }\n","import { BroadcasterService as BroadcasterServiceAbstraction } from '../abstractions/broadcaster.service';\n\nexport class BroadcasterService implements BroadcasterServiceAbstraction {\n subscribers: Map any> = new Map any>();\n\n send(message: any, id?: string) {\n if (id != null) {\n if (this.subscribers.has(id)) {\n this.subscribers.get(id)(message);\n }\n return;\n }\n\n this.subscribers.forEach(value => {\n value(message);\n });\n }\n\n subscribe(id: string, messageCallback: (message: any) => any) {\n this.subscribers.set(id, messageCallback);\n }\n\n unsubscribe(id: string) {\n if (this.subscribers.has(id)) {\n this.subscribers.delete(id);\n }\n }\n}\n","export function getDomain(host: string): string | null {\n return null;\n}\n","export class EmergencyAccessAcceptRequest {\n token: string;\n}\n","export class OrganizationUserAcceptRequest {\n token: string;\n}\n","import { Router } from '@angular/router';\n\nimport { PasswordHintRequest } from '../../models/request/passwordHintRequest';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nexport class HintComponent {\n email: string = '';\n formPromise: Promise;\n\n protected successRoute = 'login';\n protected onSuccessfulSubmit: () => void;\n\n constructor(protected router: Router, protected i18nService: I18nService,\n protected apiService: ApiService, protected platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n\n try {\n this.formPromise = this.apiService.postPasswordHint(new PasswordHintRequest(this.email));\n await this.formPromise;\n this.platformUtilsService.eventTrack('Requested Hint');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('masterPassSent'));\n if (this.onSuccessfulSubmit != null) {\n this.onSuccessfulSubmit();\n } else if (this.router != null) {\n this.router.navigate([this.successRoute]);\n }\n } catch { }\n }\n}\n","export class PasswordHintRequest {\n email: string;\n\n constructor(email: string) {\n this.email = email;\n }\n}\n","import { OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { CipherString } from '../../models/domain/cipherString';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { PasswordVerificationRequest } from '../../models/request/passwordVerificationRequest';\n\nimport { Utils } from '../../misc/utils';\n\nexport class LockComponent implements OnInit {\n masterPassword: string = '';\n pin: string = '';\n showPassword: boolean = false;\n email: string;\n pinLock: boolean = false;\n webVaultHostname: string = '';\n formPromise: Promise;\n supportsBiometric: boolean;\n biometricLock: boolean;\n biometricText: string;\n\n protected successRoute: string = 'vault';\n protected onSuccessfulSubmit: () => void;\n\n private invalidPinAttempts = 0;\n private pinSet: [boolean, boolean];\n\n constructor(protected router: Router, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected messagingService: MessagingService,\n protected userService: UserService, protected cryptoService: CryptoService,\n protected storageService: StorageService, protected vaultTimeoutService: VaultTimeoutService,\n protected environmentService: EnvironmentService, protected stateService: StateService,\n protected apiService: ApiService) { }\n\n async ngOnInit() {\n this.pinSet = await this.vaultTimeoutService.isPinLockSet();\n this.pinLock = (this.pinSet[0] && this.vaultTimeoutService.pinProtectedKey != null) || this.pinSet[1];\n this.supportsBiometric = await this.platformUtilsService.supportsBiometric();\n this.biometricLock = await this.vaultTimeoutService.isBiometricLockSet() && (await this.cryptoService.hasKey() || !this.platformUtilsService.supportsSecureStorage());\n this.biometricText = await this.storageService.get(ConstantsService.biometricText);\n this.email = await this.userService.getEmail();\n let vaultUrl = this.environmentService.getWebVaultUrl();\n if (vaultUrl == null) {\n vaultUrl = 'https://bitwarden.com';\n }\n this.webVaultHostname = Utils.getHostname(vaultUrl);\n }\n\n async submit() {\n if (this.pinLock && (this.pin == null || this.pin === '')) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('pinRequired'));\n return;\n }\n if (!this.pinLock && (this.masterPassword == null || this.masterPassword === '')) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const kdf = await this.userService.getKdf();\n const kdfIterations = await this.userService.getKdfIterations();\n\n if (this.pinLock) {\n let failed = true;\n try {\n if (this.pinSet[0]) {\n const key = await this.cryptoService.makeKeyFromPin(this.pin, this.email, kdf, kdfIterations,\n this.vaultTimeoutService.pinProtectedKey);\n const encKey = await this.cryptoService.getEncKey(key);\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const decPin = await this.cryptoService.decryptToUtf8(new CipherString(protectedPin), encKey);\n failed = decPin !== this.pin;\n if (!failed) {\n await this.setKeyAndContinue(key);\n }\n } else {\n const key = await this.cryptoService.makeKeyFromPin(this.pin, this.email, kdf, kdfIterations);\n failed = false;\n await this.setKeyAndContinue(key);\n }\n } catch {\n failed = true;\n }\n\n if (failed) {\n this.invalidPinAttempts++;\n if (this.invalidPinAttempts >= 5) {\n this.messagingService.send('logout');\n return;\n }\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidPin'));\n }\n } else {\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, kdf, kdfIterations);\n const keyHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n let passwordValid = false;\n\n if (keyHash != null) {\n const storedKeyHash = await this.cryptoService.getKeyHash();\n if (storedKeyHash != null) {\n passwordValid = storedKeyHash === keyHash;\n } else {\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = keyHash;\n try {\n this.formPromise = this.apiService.postAccountVerifyPassword(request);\n await this.formPromise;\n passwordValid = true;\n await this.cryptoService.setKeyHash(keyHash);\n } catch { }\n }\n }\n\n if (passwordValid) {\n if (this.pinSet[0]) {\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const encKey = await this.cryptoService.getEncKey(key);\n const decPin = await this.cryptoService.decryptToUtf8(new CipherString(protectedPin), encKey);\n const pinKey = await this.cryptoService.makePinKey(decPin, this.email, kdf, kdfIterations);\n this.vaultTimeoutService.pinProtectedKey = await this.cryptoService.encrypt(key.key, pinKey);\n }\n this.setKeyAndContinue(key);\n } else {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n }\n }\n }\n\n async logOut() {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('logOutConfirmation'),\n this.i18nService.t('logOut'), this.i18nService.t('logOut'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.messagingService.send('logout');\n }\n }\n\n async unlockBiometric() {\n if (!this.biometricLock) {\n return;\n }\n const success = await this.platformUtilsService.authenticateBiometric();\n\n if (success) {\n await this.doContinue();\n }\n }\n\n togglePassword() {\n this.platformUtilsService.eventTrack('Toggled Master Password on Unlock');\n this.showPassword = !this.showPassword;\n document.getElementById(this.pinLock ? 'pin' : 'masterPassword').focus();\n }\n\n private async setKeyAndContinue(key: SymmetricCryptoKey) {\n await this.cryptoService.setKey(key);\n this.doContinue();\n }\n\n private async doContinue() {\n this.vaultTimeoutService.biometricLocked = false;\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n this.messagingService.send('unlocked');\n if (this.onSuccessfulSubmit != null) {\n this.onSuccessfulSubmit();\n } else if (this.router != null) {\n this.router.navigate([this.successRoute]);\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { Router } from '@angular/router';\n\nimport { AuthResult } from '../../models/domain/authResult';\n\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoFunctionService } from '../../abstractions/cryptoFunction.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nconst Keys = {\n rememberedEmail: 'rememberedEmail',\n rememberEmail: 'rememberEmail',\n};\n\n@Directive()\nexport class LoginComponent implements OnInit {\n @Input() email: string = '';\n @Input() rememberEmail = true;\n\n masterPassword: string = '';\n showPassword: boolean = false;\n formPromise: Promise;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n onSuccessfulLoginTwoFactorNavigate: () => Promise;\n\n protected twoFactorRoute = '2fa';\n protected successRoute = 'vault';\n\n constructor(protected authService: AuthService, protected router: Router,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n protected stateService: StateService, protected environmentService: EnvironmentService,\n protected passwordGenerationService: PasswordGenerationService,\n protected cryptoFunctionService: CryptoFunctionService, private storageService: StorageService) { }\n\n async ngOnInit() {\n if (this.email == null || this.email === '') {\n this.email = await this.storageService.get(Keys.rememberedEmail);\n if (this.email == null) {\n this.email = '';\n }\n }\n this.rememberEmail = await this.storageService.get(Keys.rememberEmail);\n if (this.rememberEmail == null) {\n this.rememberEmail = true;\n }\n if (Utils.isBrowser) {\n document.getElementById(this.email == null || this.email === '' ? 'email' : 'masterPassword').focus();\n }\n }\n\n async submit() {\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n try {\n this.formPromise = this.authService.logIn(this.email, this.masterPassword);\n const response = await this.formPromise;\n await this.storageService.save(Keys.rememberEmail, this.rememberEmail);\n if (this.rememberEmail) {\n await this.storageService.save(Keys.rememberedEmail, this.email);\n } else {\n await this.storageService.remove(Keys.rememberedEmail);\n }\n if (response.twoFactor) {\n this.platformUtilsService.eventTrack('Logged In To Two-step');\n if (this.onSuccessfulLoginTwoFactorNavigate != null) {\n this.onSuccessfulLoginTwoFactorNavigate();\n } else {\n this.router.navigate([this.twoFactorRoute]);\n }\n } else {\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n this.platformUtilsService.eventTrack('Logged In');\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n } catch { }\n }\n\n togglePassword() {\n this.platformUtilsService.eventTrack('Toggled Master Password on Login');\n this.showPassword = !this.showPassword;\n document.getElementById('masterPassword').focus();\n }\n\n async launchSsoBrowser(clientId: string, ssoRedirectUri: string) {\n // Generate necessary sso params\n const passwordOptions: any = {\n type: 'password',\n length: 64,\n uppercase: true,\n lowercase: true,\n numbers: true,\n special: false,\n };\n const state = await this.passwordGenerationService.generatePassword(passwordOptions);\n const ssoCodeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions);\n const codeVerifierHash = await this.cryptoFunctionService.hash(ssoCodeVerifier, 'sha256');\n const codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash);\n\n // Save sso params\n await this.storageService.save(ConstantsService.ssoStateKey, state);\n await this.storageService.save(ConstantsService.ssoCodeVerifierKey, ssoCodeVerifier);\n\n // Build URI\n const webUrl = this.environmentService.getWebVaultUrl() == null ? 'https://vault.bitwarden.com' :\n this.environmentService.getWebVaultUrl();\n\n // Launch browser\n this.platformUtilsService.launchUri(webUrl + '/#/sso?clientId=' + clientId +\n '&redirectUri=' + encodeURIComponent(ssoRedirectUri) +\n '&state=' + state + '&codeChallenge=' + codeChallenge);\n }\n}\n","export class DeleteRecoverRequest {\n email: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class TwoFactorRecoveryRequest extends PasswordVerificationRequest {\n recoveryCode: string;\n email: string;\n}\n","import { Router } from '@angular/router';\n\nimport { KeysRequest } from '../../models/request/keysRequest';\nimport { ReferenceEventRequest } from '../../models/request/referenceEventRequest';\nimport { RegisterRequest } from '../../models/request/registerRequest';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class RegisterComponent {\n name: string = '';\n email: string = '';\n masterPassword: string = '';\n confirmMasterPassword: string = '';\n hint: string = '';\n showPassword: boolean = false;\n formPromise: Promise;\n masterPasswordScore: number;\n referenceData: ReferenceEventRequest;\n showTerms = true;\n acceptPolicies: boolean = false;\n\n protected successRoute = 'login';\n private masterPasswordStrengthTimeout: any;\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected cryptoService: CryptoService,\n protected apiService: ApiService, protected stateService: StateService,\n protected platformUtilsService: PlatformUtilsService,\n protected passwordGenerationService: PasswordGenerationService) {\n this.showTerms = !platformUtilsService.isSelfHost();\n }\n\n get masterPasswordScoreWidth() {\n return this.masterPasswordScore == null ? 0 : (this.masterPasswordScore + 1) * 20;\n }\n\n get masterPasswordScoreColor() {\n switch (this.masterPasswordScore) {\n case 4:\n return 'success';\n case 3:\n return 'primary';\n case 2:\n return 'warning';\n default:\n return 'danger';\n }\n }\n\n get masterPasswordScoreText() {\n switch (this.masterPasswordScore) {\n case 4:\n return this.i18nService.t('strong');\n case 3:\n return this.i18nService.t('good');\n case 2:\n return this.i18nService.t('weak');\n default:\n return this.masterPasswordScore != null ? this.i18nService.t('weak') : null;\n }\n }\n\n async submit() {\n if (!this.acceptPolicies && this.showTerms) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('acceptPoliciesError'));\n return;\n }\n\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n if (this.masterPassword.length < 8) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassLength'));\n return;\n }\n if (this.masterPassword !== this.confirmMasterPassword) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassDoesntMatch'));\n return;\n }\n\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n if (strengthResult != null && strengthResult.score < 3) {\n const result = await this.platformUtilsService.showDialog(this.i18nService.t('weakMasterPasswordDesc'),\n this.i18nService.t('weakMasterPassword'), this.i18nService.t('yes'), this.i18nService.t('no'),\n 'warning');\n if (!result) {\n return;\n }\n }\n\n if (this.hint === this.masterPassword) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), this.i18nService.t('hintEqualsPassword'));\n return;\n }\n\n this.name = this.name === '' ? null : this.name;\n this.email = this.email.trim().toLowerCase();\n const kdf = KdfType.PBKDF2_SHA256;\n const useLowerKdf = this.platformUtilsService.isIE();\n const kdfIterations = useLowerKdf ? 10000 : 100000;\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, kdf, kdfIterations);\n const encKey = await this.cryptoService.makeEncKey(key);\n const hashedPassword = await this.cryptoService.hashPassword(this.masterPassword, key);\n const keys = await this.cryptoService.makeKeyPair(encKey[0]);\n const request = new RegisterRequest(this.email, this.name, hashedPassword,\n this.hint, encKey[1].encryptedString, kdf, kdfIterations, this.referenceData);\n request.keys = new KeysRequest(keys[0], keys[1].encryptedString);\n const orgInvite = await this.stateService.get('orgInvitation');\n if (orgInvite != null && orgInvite.token != null && orgInvite.organizationUserId != null) {\n request.token = orgInvite.token;\n request.organizationUserId = orgInvite.organizationUserId;\n }\n\n try {\n this.formPromise = this.apiService.postRegister(request);\n await this.formPromise;\n this.platformUtilsService.eventTrack('Registered');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('newAccountCreated'));\n this.router.navigate([this.successRoute], { queryParams: { email: this.email } });\n } catch { }\n }\n\n togglePassword(confirmField: boolean) {\n this.platformUtilsService.eventTrack('Toggled Master Password on Register');\n this.showPassword = !this.showPassword;\n document.getElementById(confirmField ? 'masterPasswordRetype' : 'masterPassword').focus();\n }\n\n updatePasswordStrength() {\n if (this.masterPasswordStrengthTimeout != null) {\n clearTimeout(this.masterPasswordStrengthTimeout);\n }\n this.masterPasswordStrengthTimeout = setTimeout(() => {\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;\n }, 300);\n }\n\n private getPasswordStrengthUserInput() {\n let userInput: string[] = [];\n const atPosition = this.email.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(this.email.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/));\n }\n if (this.name != null && this.name !== '') {\n userInput = userInput.concat(this.name.trim().toLowerCase().split(' '));\n }\n return userInput;\n }\n}\n","import { KeysRequest } from './keysRequest';\nimport { ReferenceEventRequest } from './referenceEventRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class RegisterRequest {\n name: string;\n email: string;\n masterPasswordHash: string;\n masterPasswordHint: string;\n key: string;\n keys: KeysRequest;\n token: string;\n organizationUserId: string;\n kdf: KdfType;\n kdfIterations: number;\n referenceData: ReferenceEventRequest;\n\n constructor(email: string, name: string, masterPasswordHash: string, masterPasswordHint: string, key: string,\n kdf: KdfType, kdfIterations: number, referenceData: ReferenceEventRequest) {\n this.name = name;\n this.email = email;\n this.masterPasswordHash = masterPasswordHash;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n this.key = key;\n this.kdf = kdf;\n this.kdfIterations = kdfIterations;\n this.referenceData = referenceData;\n }\n}\n","export class ReferenceEventRequest {\n id: string;\n layout: string;\n flow: string;\n}\n","import {\n ActivatedRoute,\n Router\n} from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { SyncService } from '../../abstractions/sync.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { CipherString } from '../../models/domain/cipherString';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { KeysRequest } from '../../models/request/keysRequest';\nimport { SetPasswordRequest } from '../../models/request/setPasswordRequest';\n\nimport { ChangePasswordComponent as BaseChangePasswordComponent } from './change-password.component';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class SetPasswordComponent extends BaseChangePasswordComponent {\n syncLoading: boolean = true;\n showPassword: boolean = false;\n hint: string = '';\n identifier: string = null;\n\n onSuccessfulChangePassword: () => Promise;\n successRoute = 'vault';\n\n constructor(i18nService: I18nService, cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService, private router: Router,\n private apiService: ApiService, private syncService: SyncService, private route: ActivatedRoute) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async ngOnInit() {\n await this.syncService.fullSync(true);\n this.syncLoading = false;\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n super.ngOnInit();\n }\n\n async setupSubmitActions() {\n this.kdf = KdfType.PBKDF2_SHA256;\n const useLowerKdf = this.platformUtilsService.isIE();\n this.kdfIterations = useLowerKdf ? 10000 : 100000;\n return true;\n }\n\n async performSubmitActions(masterPasswordHash: string, key: SymmetricCryptoKey,\n encKey: [SymmetricCryptoKey, CipherString]) {\n const request = new SetPasswordRequest();\n request.masterPasswordHash = masterPasswordHash;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHint = this.hint;\n request.kdf = this.kdf;\n request.kdfIterations = this.kdfIterations;\n request.orgIdentifier = this.identifier;\n\n const keys = await this.cryptoService.makeKeyPair(encKey[0]);\n request.keys = new KeysRequest(keys[0], keys[1].encryptedString);\n\n try {\n this.formPromise = this.apiService.setPassword(request);\n await this.formPromise;\n\n await this.userService.setInformation(await this.userService.getUserId(), await this.userService.getEmail(),\n this.kdf, this.kdfIterations);\n await this.cryptoService.setKey(key);\n await this.cryptoService.setKeyHash(masterPasswordHash);\n await this.cryptoService.setEncKey(encKey[1].encryptedString);\n await this.cryptoService.setEncPrivateKey(keys[1].encryptedString);\n\n if (this.onSuccessfulChangePassword != null) {\n this.onSuccessfulChangePassword();\n } else {\n this.router.navigate([this.successRoute]);\n }\n } catch {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n }\n\n togglePassword(confirmField: boolean) {\n this.platformUtilsService.eventTrack('Toggled Master Password on Set Password');\n this.showPassword = !this.showPassword;\n document.getElementById(confirmField ? 'masterPasswordRetype' : 'masterPassword').focus();\n }\n}\n","import { KeysRequest } from './keysRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class SetPasswordRequest {\n masterPasswordHash: string;\n key: string;\n masterPasswordHint: string;\n keys: KeysRequest;\n kdf: KdfType;\n kdfIterations: number;\n orgIdentifier: string;\n}\n","import {\n Directive,\n EventEmitter,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { AuthService } from '../../abstractions/auth.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\n@Directive()\nexport class TwoFactorOptionsComponent implements OnInit {\n @Output() onProviderSelected = new EventEmitter();\n @Output() onRecoverSelected = new EventEmitter();\n\n providers: any[] = [];\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected win: Window) { }\n\n ngOnInit() {\n this.providers = this.authService.getSupportedTwoFactorProviders(this.win);\n }\n\n choose(p: any) {\n this.onProviderSelected.emit(p.type);\n }\n\n recover() {\n this.platformUtilsService.eventTrack('Selected Recover');\n this.platformUtilsService.launchUri('https://help.bitwarden.com/article/lost-two-step-device/');\n this.onRecoverSelected.emit();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n OnDestroy,\n Output,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { MessagingService } from '../../abstractions/messaging.service';\n\n@Component({\n selector: 'app-modal',\n template: ``,\n})\nexport class ModalComponent implements OnDestroy {\n @Output() onClose = new EventEmitter();\n @Output() onClosed = new EventEmitter();\n @Output() onShow = new EventEmitter();\n @Output() onShown = new EventEmitter();\n @ViewChild('container', { read: ViewContainerRef, static: true }) container: ViewContainerRef;\n parentContainer: ViewContainerRef = null;\n fade: boolean = true;\n\n constructor(protected componentFactoryResolver: ComponentFactoryResolver,\n protected messagingService: MessagingService) { }\n\n ngOnDestroy() {\n document.body.classList.remove('modal-open');\n document.body.removeChild(document.querySelector('.modal-backdrop'));\n }\n\n show(type: Type, parentContainer: ViewContainerRef, fade: boolean = true,\n setComponentParameters: (component: T) => void = null): T {\n this.onShow.emit();\n this.messagingService.send('modalShow');\n this.parentContainer = parentContainer;\n this.fade = fade;\n\n document.body.classList.add('modal-open');\n const backdrop = document.createElement('div');\n backdrop.className = 'modal-backdrop' + (this.fade ? ' fade' : '');\n document.body.appendChild(backdrop);\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = this.container.createComponent(factory);\n if (setComponentParameters != null) {\n setComponentParameters(componentRef.instance);\n }\n\n document.querySelector('.modal-dialog').addEventListener('click', (e: Event) => {\n e.stopPropagation();\n });\n\n const modals = Array.from(document.querySelectorAll('.modal, .modal *[data-dismiss=\"modal\"]'));\n for (const closeElement of modals) {\n closeElement.addEventListener('click', event => {\n this.close();\n });\n }\n\n this.onShown.emit();\n this.messagingService.send('modalShown');\n return componentRef.instance;\n }\n\n close() {\n this.onClose.emit();\n this.messagingService.send('modalClose');\n this.onClosed.emit();\n this.messagingService.send('modalClosed');\n if (this.parentContainer != null) {\n this.parentContainer.clear();\n }\n }\n}\n","import {\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { TwoFactorEmailRequest } from '../../models/request/twoFactorEmailRequest';\n\nimport { AuthResult } from '../../models/domain';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { TwoFactorProviders } from '../../services/auth.service';\nimport { ConstantsService } from '../../services/constants.service';\n\nimport * as DuoWebSDK from 'duo_web_sdk';\nimport { U2f } from '../../misc/u2f';\n\nexport class TwoFactorComponent implements OnInit, OnDestroy {\n token: string = '';\n remember: boolean = false;\n u2fReady: boolean = false;\n initU2f: boolean = true;\n providers = TwoFactorProviders;\n providerType = TwoFactorProviderType;\n selectedProviderType: TwoFactorProviderType = TwoFactorProviderType.Authenticator;\n u2fSupported: boolean = false;\n u2f: U2f = null;\n title: string = '';\n twoFactorEmail: string = null;\n formPromise: Promise;\n emailPromise: Promise;\n identifier: string = null;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n\n protected loginRoute = 'login';\n protected successRoute = 'vault';\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected apiService: ApiService,\n protected platformUtilsService: PlatformUtilsService, protected win: Window,\n protected environmentService: EnvironmentService, protected stateService: StateService,\n protected storageService: StorageService, protected route: ActivatedRoute) {\n this.u2fSupported = this.platformUtilsService.supportsU2f(win);\n }\n\n async ngOnInit() {\n if (!this.authing || this.authService.twoFactorProvidersData == null) {\n this.router.navigate([this.loginRoute]);\n return;\n }\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n if (this.needsLock) {\n this.successRoute = 'lock';\n }\n\n if (this.initU2f && this.win != null && this.u2fSupported) {\n let customWebVaultUrl: string = null;\n if (this.environmentService.baseUrl != null) {\n customWebVaultUrl = this.environmentService.baseUrl;\n } else if (this.environmentService.webVaultUrl != null) {\n customWebVaultUrl = this.environmentService.webVaultUrl;\n }\n\n this.u2f = new U2f(this.win, customWebVaultUrl, (token: string) => {\n this.token = token;\n this.submit();\n }, (error: string) => {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), error);\n }, (info: string) => {\n if (info === 'ready') {\n this.u2fReady = true;\n }\n });\n }\n\n this.selectedProviderType = this.authService.getDefaultTwoFactorProvider(this.u2fSupported);\n await this.init();\n }\n\n ngOnDestroy(): void {\n this.cleanupU2f();\n this.u2f = null;\n }\n\n async init() {\n if (this.selectedProviderType == null) {\n this.title = this.i18nService.t('loginUnavailable');\n return;\n }\n\n this.cleanupU2f();\n this.title = (TwoFactorProviders as any)[this.selectedProviderType].name;\n const providerData = this.authService.twoFactorProvidersData.get(this.selectedProviderType);\n switch (this.selectedProviderType) {\n case TwoFactorProviderType.U2f:\n if (!this.u2fSupported || this.u2f == null) {\n break;\n }\n\n if (providerData.Challenge != null) {\n setTimeout(() => {\n this.u2f.init(JSON.parse(providerData.Challenge));\n }, 500);\n } else {\n // TODO: Deprecated. Remove in future version.\n const challenges = JSON.parse(providerData.Challenges);\n if (challenges != null && challenges.length > 0) {\n this.u2f.init({\n appId: challenges[0].appId,\n challenge: challenges[0].challenge,\n keys: challenges.map((c: any) => {\n return {\n version: c.version,\n keyHandle: c.keyHandle,\n };\n }),\n });\n }\n }\n break;\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n setTimeout(() => {\n DuoWebSDK.init({\n iframe: undefined,\n host: providerData.Host,\n sig_request: providerData.Signature,\n submit_callback: async (f: HTMLFormElement) => {\n const sig = f.querySelector('input[name=\"sig_response\"]') as HTMLInputElement;\n if (sig != null) {\n this.token = sig.value;\n await this.submit();\n }\n },\n });\n }, 0);\n break;\n case TwoFactorProviderType.Email:\n this.twoFactorEmail = providerData.Email;\n if (this.authService.twoFactorProvidersData.size > 1) {\n await this.sendEmail(false);\n }\n break;\n default:\n break;\n }\n }\n\n async submit() {\n if (this.token == null || this.token === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('verificationCodeRequired'));\n return;\n }\n\n if (this.selectedProviderType === TwoFactorProviderType.U2f) {\n if (this.u2f != null) {\n this.u2f.stop();\n } else {\n return;\n }\n } else if (this.selectedProviderType === TwoFactorProviderType.Email ||\n this.selectedProviderType === TwoFactorProviderType.Authenticator) {\n this.token = this.token.replace(' ', '').trim();\n }\n\n try {\n this.formPromise = this.authService.logInTwoFactor(this.selectedProviderType, this.token, this.remember);\n const response: AuthResult = await this.formPromise;\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n this.platformUtilsService.eventTrack('Logged In From Two-step');\n if (response.resetMasterPassword) {\n this.successRoute = 'set-password';\n }\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute], {\n queryParams: {\n identifier: this.identifier,\n },\n });\n }\n } catch {\n if (this.selectedProviderType === TwoFactorProviderType.U2f && this.u2f != null) {\n this.u2f.start();\n }\n }\n }\n\n async sendEmail(doToast: boolean) {\n if (this.selectedProviderType !== TwoFactorProviderType.Email) {\n return;\n }\n\n if (this.emailPromise != null) {\n return;\n }\n\n try {\n const request = new TwoFactorEmailRequest(this.authService.email, this.authService.masterPasswordHash);\n this.emailPromise = this.apiService.postTwoFactorEmail(request);\n await this.emailPromise;\n if (doToast) {\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('verificationCodeEmailSent', this.twoFactorEmail));\n }\n } catch { }\n\n this.emailPromise = null;\n }\n\n private cleanupU2f() {\n if (this.u2f != null) {\n this.u2f.stop();\n this.u2f.cleanup();\n }\n }\n\n get authing(): boolean {\n return this.authService.authingWithPassword() || this.authService.authingWithSso() || this.authService.authingWithApiKey();\n }\n\n get needsLock(): boolean {\n return this.authService.authingWithSso() || this.authService.authingWithApiKey();\n }\n}\n","import { DeviceType } from '../../enums/deviceType';\n\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nexport class DeviceRequest {\n type: DeviceType;\n name: string;\n identifier: string;\n pushToken?: string;\n\n constructor(appId: string, platformUtilsService: PlatformUtilsService) {\n this.type = platformUtilsService.getDevice();\n this.name = platformUtilsService.getDeviceString();\n this.identifier = appId;\n this.pushToken = null;\n }\n}\n","export class PreloginRequest {\n email: string;\n\n constructor(email: string) {\n this.email = email;\n }\n}\n","import { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { DeviceRequest } from './deviceRequest';\n\nexport class TokenRequest {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n redirectUri: string;\n clientId: string;\n clientSecret: string;\n token: string;\n provider: TwoFactorProviderType;\n remember: boolean;\n device?: DeviceRequest;\n\n constructor(credentials: string[], codes: string[], clientIdClientSecret: string[], provider: TwoFactorProviderType,\n token: string, remember: boolean, device?: DeviceRequest) {\n if (credentials != null && credentials.length > 1) {\n this.email = credentials[0];\n this.masterPasswordHash = credentials[1];\n } else if (codes != null && codes.length > 2) {\n this.code = codes[0];\n this.codeVerifier = codes[1];\n this.redirectUri = codes[2];\n } else if (clientIdClientSecret != null && clientIdClientSecret.length > 1) {\n this.clientId = clientIdClientSecret[0];\n this.clientSecret = clientIdClientSecret[1];\n }\n this.token = token;\n this.provider = provider;\n this.remember = remember;\n this.device = device != null ? device : null;\n }\n\n toIdentityToken(clientId: string) {\n const obj: any = {\n scope: 'api offline_access',\n client_id: clientId,\n };\n\n if (this.clientSecret != null) {\n obj.scope = 'api';\n obj.grant_type = 'client_credentials';\n obj.client_secret = this.clientSecret;\n } else if (this.masterPasswordHash != null && this.email != null) {\n obj.grant_type = 'password';\n obj.username = this.email;\n obj.password = this.masterPasswordHash;\n } else if (this.code != null && this.codeVerifier != null && this.redirectUri != null) {\n obj.grant_type = 'authorization_code';\n obj.code = this.code;\n obj.code_verifier = this.codeVerifier;\n obj.redirect_uri = this.redirectUri;\n } else {\n throw new Error('must provide credentials or codes');\n }\n\n if (this.device) {\n obj.deviceType = this.device.type;\n obj.deviceIdentifier = this.device.identifier;\n obj.deviceName = this.device.name;\n // no push tokens for browser apps yet\n // obj.devicePushToken = this.device.pushToken;\n }\n\n if (this.token && this.provider != null) {\n obj.twoFactorToken = this.token;\n obj.twoFactorProvider = this.provider;\n obj.twoFactorRemember = this.remember ? '1' : '0';\n }\n\n return obj;\n }\n}\n","export class U2f {\n private iframe: HTMLIFrameElement = null;\n private connectorLink: HTMLAnchorElement;\n private parseFunction = this.parseMessage.bind(this);\n\n constructor(private win: Window, private webVaultUrl: string, private successCallback: Function,\n private errorCallback: Function, private infoCallback: Function) {\n this.connectorLink = win.document.createElement('a');\n this.webVaultUrl = webVaultUrl != null && webVaultUrl !== '' ? webVaultUrl : 'https://vault.bitwarden.com';\n }\n\n init(data: any): void {\n this.connectorLink.href = this.webVaultUrl + '/u2f-connector.html' +\n '?data=' + this.base64Encode(JSON.stringify(data)) +\n '&parent=' + encodeURIComponent(this.win.document.location.href) +\n '&v=1';\n\n this.iframe = this.win.document.getElementById('u2f_iframe') as HTMLIFrameElement;\n this.iframe.src = this.connectorLink.href;\n\n this.win.addEventListener('message', this.parseFunction, false);\n }\n\n stop() {\n this.sendMessage('stop');\n }\n\n start() {\n this.sendMessage('start');\n }\n\n sendMessage(message: any) {\n if (!this.iframe || !this.iframe.src || !this.iframe.contentWindow) {\n return;\n }\n\n this.iframe.contentWindow.postMessage(message, this.iframe.src);\n }\n\n base64Encode(str: string): string {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => {\n return String.fromCharCode(('0x' + p1) as any);\n }));\n }\n\n cleanup() {\n this.win.removeEventListener('message', this.parseFunction, false);\n }\n\n private parseMessage(event: MessageEvent) {\n if (!this.validMessage(event)) {\n return;\n }\n\n const parts: string[] = event.data.split('|');\n if (parts[0] === 'success' && this.successCallback) {\n this.successCallback(parts[1]);\n } else if (parts[0] === 'error' && this.errorCallback) {\n this.errorCallback(parts[1]);\n } else if (parts[0] === 'info' && this.infoCallback) {\n this.infoCallback(parts[1]);\n }\n }\n\n private validMessage(event: MessageEvent) {\n if (event.origin == null || event.origin === '' || event.origin !== (this.connectorLink as any).origin ||\n event.data == null || typeof (event.data) !== 'string') {\n return false;\n }\n\n return event.data.indexOf('success|') === 0 || event.data.indexOf('error|') === 0 ||\n event.data.indexOf('info|') === 0;\n }\n}\n","export class VerifyEmailRequest {\n userId: string;\n token: string;\n\n constructor(userId: string, token: string) {\n this.userId = userId;\n this.token = token;\n }\n}\n","export class VerifyDeleteRecoverRequest {\n userId: string;\n token: string;\n\n constructor(userId: string, token: string) {\n this.userId = userId;\n this.token = token;\n }\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nexport class GroupRequest {\n name: string;\n accessAll: boolean;\n externalId: string;\n collections: SelectionReadOnlyRequest[] = [];\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationUserInviteRequest {\n emails: string[] = [];\n type: OrganizationUserType;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n permissions: PermissionsApi;\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationUserUpdateRequest {\n type: OrganizationUserType;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n permissions: PermissionsApi;\n}\n","export class OrganizationUserUpdateGroupsRequest {\n groupIds: string[] = [];\n}\n","export abstract class AppIdService {\n getAppId: () => Promise;\n getAnonymousAppId: () => Promise;\n}\n","import { LogLevelType } from '../enums/logLevelType';\n\nexport abstract class LogService {\n debug: (message: string) => void;\n info: (message: string) => void;\n warning: (message: string) => void;\n error: (message: string) => void;\n write: (level: LogLevelType, message: string) => void;\n time: (label: string) => void;\n timeEnd: (label: string) => [number, number];\n}\n","import { PolicyType } from '../../enums/policyType';\n\nexport class PolicyRequest {\n type: PolicyType;\n enabled: boolean;\n data: any;\n}\n","export class OrganizationUpdateRequest {\n name: string;\n identifier: string;\n businessName: string;\n billingEmail: string;\n}\n","export enum TransactionType {\n Charge = 0,\n Credit = 1,\n PromotionalCredit = 2,\n ReferralCredit = 3,\n Refund = 4,\n}\n","export class VerifyBankRequest {\n amount1: number;\n amount2: number;\n}\n","export class BitPayInvoiceRequest {\n userId: string;\n organizationId: string;\n credit: boolean;\n amount: number;\n returnUrl: string;\n name: string;\n email: string;\n}\n","import { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { OrganizationTaxInfoUpdateRequest } from '../request/organizationTaxInfoUpdateRequest';\n\nexport class PaymentRequest extends OrganizationTaxInfoUpdateRequest {\n paymentMethodType: PaymentMethodType;\n paymentToken: string;\n}\n","import { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { PlanType } from '../../enums/planType';\n\nexport class OrganizationCreateRequest {\n name: string;\n businessName: string;\n billingEmail: string;\n planType: PlanType;\n key: string;\n paymentMethodType: PaymentMethodType;\n paymentToken: string;\n additionalSeats: number;\n additionalStorageGb: number;\n premiumAccessAddon: boolean;\n collectionName: string;\n taxIdNumber: string;\n billingAddressLine1: string;\n billingAddressLine2: string;\n billingAddressCity: string;\n billingAddressState: string;\n billingAddressPostalCode: string;\n billingAddressCountry: string;\n}\n","import { PlanType } from '../../enums/planType';\n\nexport class OrganizationUpgradeRequest {\n businessName: string;\n planType: PlanType;\n additionalSeats: number;\n additionalStorageGb: number;\n premiumAccessAddon: boolean;\n billingAddressCountry: string;\n billingAddressPostalCode: string;\n}\n","export class SeatRequest {\n seatAdjustment: number;\n}\n","export class StorageRequest {\n storageGbAdjustment: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorDuoRequest extends PasswordVerificationRequest {\n integrationKey: string;\n secretKey: string;\n host: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class TwoFactorProviderRequest extends PasswordVerificationRequest {\n type: TwoFactorProviderType;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorAuthenticatorRequest extends PasswordVerificationRequest {\n token: string;\n key: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorEmailRequest extends PasswordVerificationRequest {\n token: string;\n email: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorU2fDeleteRequest extends PasswordVerificationRequest {\n id: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorU2fRequest extends PasswordVerificationRequest {\n deviceResponse: string;\n name: string;\n id: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorYubioOtpRequest extends PasswordVerificationRequest {\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n}\n","import {\n Directive,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { EventService } from '../../abstractions/event.service';\nimport { ExportService } from '../../abstractions/export.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { EventType } from '../../enums/eventType';\n\n@Directive()\nexport class ExportComponent {\n @Output() onSaved = new EventEmitter();\n\n formPromise: Promise;\n masterPassword: string;\n format: 'json' | 'encrypted_json' | 'csv' = 'json';\n showPassword = false;\n\n constructor(protected cryptoService: CryptoService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected exportService: ExportService,\n protected eventService: EventService, protected win: Window) { }\n\n get encryptedFormat() {\n return this.format === 'encrypted_json';\n }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n return;\n }\n\n const acceptedWarning = await this.warningDialog();\n if (!acceptedWarning) {\n return;\n }\n\n const keyHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const storedKeyHash = await this.cryptoService.getKeyHash();\n if (storedKeyHash != null && keyHash != null && storedKeyHash === keyHash) {\n try {\n this.formPromise = this.getExportData();\n const data = await this.formPromise;\n this.platformUtilsService.eventTrack('Exported Data');\n this.downloadFile(data);\n this.saved();\n await this.collectEvent();\n } catch { }\n } else {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n }\n }\n\n async warningDialog() {\n if (this.encryptedFormat) {\n return await this.platformUtilsService.showDialog(\n '

' + this.i18nService.t('encExportKeyWarningDesc') +\n '

' + this.i18nService.t('encExportAccountWarningDesc'),\n this.i18nService.t('confirmVaultExport'), this.i18nService.t('exportVault'),\n this.i18nService.t('cancel'), 'warning',\n true);\n } else {\n return await this.platformUtilsService.showDialog(\n this.i18nService.t('exportWarningDesc'),\n this.i18nService.t('confirmVaultExport'), this.i18nService.t('exportVault'),\n this.i18nService.t('cancel'), 'warning');\n }\n }\n\n togglePassword() {\n this.platformUtilsService.eventTrack('Toggled Master Password on Export');\n this.showPassword = !this.showPassword;\n document.getElementById('masterPassword').focus();\n }\n\n protected saved() {\n this.onSaved.emit();\n }\n\n protected getExportData() {\n return this.exportService.getExport(this.format);\n }\n\n protected getFileName(prefix?: string) {\n let extension = this.format;\n if (this.format === 'encrypted_json') {\n if (prefix == null) {\n prefix = 'encrypted';\n } else {\n prefix = 'encrypted_' + prefix;\n }\n extension = 'json';\n }\n return this.exportService.getFileName(prefix, extension);\n }\n\n protected async collectEvent(): Promise {\n await this.eventService.collect(EventType.User_ClientExportedVault);\n }\n\n private downloadFile(csv: string): void {\n const fileName = this.getFileName();\n this.platformUtilsService.saveFile(this.win, csv, { type: 'text/plain' }, fileName);\n }\n}\n","export class AttachmentRequest {\n fileName: string;\n key: string;\n}\n","import {\n CdkDragDrop,\n moveItemInArray,\n} from '@angular/cdk/drag-drop';\nimport {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { EventType } from '../../enums/eventType';\nimport { FieldType } from '../../enums/fieldType';\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../enums/policyType';\nimport { SecureNoteType } from '../../enums/secureNoteType';\nimport { UriMatchType } from '../../enums/uriMatchType';\n\nimport { AuditService } from '../../abstractions/audit.service';\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { EventService } from '../../abstractions/event.service';\nimport { FolderService } from '../../abstractions/folder.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Cipher } from '../../models/domain/cipher';\n\nimport { CardView } from '../../models/view/cardView';\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\nimport { FieldView } from '../../models/view/fieldView';\nimport { FolderView } from '../../models/view/folderView';\nimport { IdentityView } from '../../models/view/identityView';\nimport { LoginUriView } from '../../models/view/loginUriView';\nimport { LoginView } from '../../models/view/loginView';\nimport { SecureNoteView } from '../../models/view/secureNoteView';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive()\nexport class AddEditComponent implements OnInit {\n @Input() cloneMode: boolean = false;\n @Input() folderId: string = null;\n @Input() cipherId: string;\n @Input() type: CipherType;\n @Input() collectionIds: string[];\n @Input() organizationId: string = null;\n @Output() onSavedCipher = new EventEmitter();\n @Output() onDeletedCipher = new EventEmitter();\n @Output() onRestoredCipher = new EventEmitter();\n @Output() onCancelled = new EventEmitter();\n @Output() onEditAttachments = new EventEmitter();\n @Output() onShareCipher = new EventEmitter();\n @Output() onEditCollections = new EventEmitter();\n @Output() onGeneratePassword = new EventEmitter();\n\n editMode: boolean = false;\n cipher: CipherView;\n folders: FolderView[];\n collections: CollectionView[] = [];\n title: string;\n formPromise: Promise;\n deletePromise: Promise;\n restorePromise: Promise;\n checkPasswordPromise: Promise;\n showPassword: boolean = false;\n showCardCode: boolean = false;\n cipherType = CipherType;\n fieldType = FieldType;\n addFieldType: FieldType = FieldType.Text;\n typeOptions: any[];\n cardBrandOptions: any[];\n cardExpMonthOptions: any[];\n identityTitleOptions: any[];\n addFieldTypeOptions: any[];\n uriMatchOptions: any[];\n ownershipOptions: any[] = [];\n currentDate = new Date();\n allowPersonal = true;\n\n protected writeableCollections: CollectionView[];\n private previousCipherId: string;\n\n constructor(protected cipherService: CipherService, protected folderService: FolderService,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected auditService: AuditService, protected stateService: StateService,\n protected userService: UserService, protected collectionService: CollectionService,\n protected messagingService: MessagingService, protected eventService: EventService,\n protected policyService: PolicyService) {\n this.typeOptions = [\n { name: i18nService.t('typeLogin'), value: CipherType.Login },\n { name: i18nService.t('typeCard'), value: CipherType.Card },\n { name: i18nService.t('typeIdentity'), value: CipherType.Identity },\n { name: i18nService.t('typeSecureNote'), value: CipherType.SecureNote },\n ];\n this.cardBrandOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: 'Visa', value: 'Visa' },\n { name: 'Mastercard', value: 'Mastercard' },\n { name: 'American Express', value: 'Amex' },\n { name: 'Discover', value: 'Discover' },\n { name: 'Diners Club', value: 'Diners Club' },\n { name: 'JCB', value: 'JCB' },\n { name: 'Maestro', value: 'Maestro' },\n { name: 'UnionPay', value: 'UnionPay' },\n { name: i18nService.t('other'), value: 'Other' },\n ];\n this.cardExpMonthOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: '01 - ' + i18nService.t('january'), value: '1' },\n { name: '02 - ' + i18nService.t('february'), value: '2' },\n { name: '03 - ' + i18nService.t('march'), value: '3' },\n { name: '04 - ' + i18nService.t('april'), value: '4' },\n { name: '05 - ' + i18nService.t('may'), value: '5' },\n { name: '06 - ' + i18nService.t('june'), value: '6' },\n { name: '07 - ' + i18nService.t('july'), value: '7' },\n { name: '08 - ' + i18nService.t('august'), value: '8' },\n { name: '09 - ' + i18nService.t('september'), value: '9' },\n { name: '10 - ' + i18nService.t('october'), value: '10' },\n { name: '11 - ' + i18nService.t('november'), value: '11' },\n { name: '12 - ' + i18nService.t('december'), value: '12' },\n ];\n this.identityTitleOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: i18nService.t('mr'), value: i18nService.t('mr') },\n { name: i18nService.t('mrs'), value: i18nService.t('mrs') },\n { name: i18nService.t('ms'), value: i18nService.t('ms') },\n { name: i18nService.t('dr'), value: i18nService.t('dr') },\n ];\n this.addFieldTypeOptions = [\n { name: i18nService.t('cfTypeText'), value: FieldType.Text },\n { name: i18nService.t('cfTypeHidden'), value: FieldType.Hidden },\n { name: i18nService.t('cfTypeBoolean'), value: FieldType.Boolean },\n ];\n this.uriMatchOptions = [\n { name: i18nService.t('defaultMatchDetection'), value: null },\n { name: i18nService.t('baseDomain'), value: UriMatchType.Domain },\n { name: i18nService.t('host'), value: UriMatchType.Host },\n { name: i18nService.t('startsWith'), value: UriMatchType.StartsWith },\n { name: i18nService.t('regEx'), value: UriMatchType.RegularExpression },\n { name: i18nService.t('exact'), value: UriMatchType.Exact },\n { name: i18nService.t('never'), value: UriMatchType.Never },\n ];\n }\n\n async ngOnInit() {\n await this.init();\n }\n\n async init() {\n const policies = await this.policyService.getAll(PolicyType.PersonalOwnership);\n const myEmail = await this.userService.getEmail();\n this.ownershipOptions.push({ name: myEmail, value: null });\n const orgs = await this.userService.getAllOrganizations();\n orgs.sort(Utils.getSortFunction(this.i18nService, 'name')).forEach(o => {\n if (o.enabled && o.status === OrganizationUserStatusType.Confirmed) {\n this.ownershipOptions.push({ name: o.name, value: o.id });\n if (policies != null && o.usePolicies && !o.canManagePolicies && this.allowPersonal) {\n for (const policy of policies) {\n if (policy.organizationId === o.id && policy.enabled) {\n this.allowPersonal = false;\n this.ownershipOptions.splice(0, 1);\n // Default to the organization who owns this policy for now (if necessary)\n if (this.organizationId == null) {\n this.organizationId = o.id;\n }\n break;\n }\n }\n }\n }\n });\n this.writeableCollections = await this.loadCollections();\n }\n\n async load() {\n this.editMode = this.cipherId != null;\n if (this.editMode) {\n this.editMode = true;\n if (this.cloneMode) {\n this.cloneMode = true;\n this.title = this.i18nService.t('addItem');\n } else {\n this.title = this.i18nService.t('editItem');\n }\n } else {\n this.title = this.i18nService.t('addItem');\n }\n\n const addEditCipherInfo: any = await this.stateService.get('addEditCipherInfo');\n if (addEditCipherInfo != null) {\n this.cipher = addEditCipherInfo.cipher;\n this.collectionIds = addEditCipherInfo.collectionIds;\n }\n await this.stateService.remove('addEditCipherInfo');\n\n if (this.cipher == null) {\n if (this.editMode) {\n const cipher = await this.loadCipher();\n this.cipher = await cipher.decrypt();\n\n // Adjust Cipher Name if Cloning\n if (this.cloneMode) {\n this.cipher.name += ' - ' + this.i18nService.t('clone');\n // If not allowing personal ownership, update cipher's org Id to prompt downstream changes\n if (this.cipher.organizationId == null && !this.allowPersonal) {\n this.cipher.organizationId = this.organizationId;\n }\n }\n } else {\n this.cipher = new CipherView();\n this.cipher.organizationId = this.organizationId == null ? null : this.organizationId;\n this.cipher.folderId = this.folderId;\n this.cipher.type = this.type == null ? CipherType.Login : this.type;\n this.cipher.login = new LoginView();\n this.cipher.login.uris = [new LoginUriView()];\n this.cipher.card = new CardView();\n this.cipher.identity = new IdentityView();\n this.cipher.secureNote = new SecureNoteView();\n this.cipher.secureNote.type = SecureNoteType.Generic;\n }\n }\n\n if (this.cipher != null && (!this.editMode || addEditCipherInfo != null || this.cloneMode)) {\n await this.organizationChanged();\n if (this.collectionIds != null && this.collectionIds.length > 0 && this.collections.length > 0) {\n this.collections.forEach(c => {\n if (this.collectionIds.indexOf(c.id) > -1) {\n (c as any).checked = true;\n }\n });\n }\n }\n\n this.folders = await this.folderService.getAllDecrypted();\n\n if (this.editMode && this.previousCipherId !== this.cipherId) {\n this.eventService.collect(EventType.Cipher_ClientViewed, this.cipherId);\n }\n this.previousCipherId = this.cipherId;\n }\n\n async submit(): Promise {\n if (this.cipher.isDeleted) {\n return this.restore();\n }\n\n if (this.cipher.name == null || this.cipher.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n if ((!this.editMode || this.cloneMode) && !this.allowPersonal && this.cipher.organizationId == null) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('personalOwnershipSubmitError'));\n return false;\n }\n\n if ((!this.editMode || this.cloneMode) && this.cipher.type === CipherType.Login &&\n this.cipher.login.uris != null && this.cipher.login.uris.length === 1 &&\n (this.cipher.login.uris[0].uri == null || this.cipher.login.uris[0].uri === '')) {\n this.cipher.login.uris = null;\n }\n\n // Allows saving of selected collections during \"Add\" and \"Clone\" flows\n if ((!this.editMode || this.cloneMode) && this.cipher.organizationId != null) {\n this.cipher.collectionIds = this.collections == null ? [] :\n this.collections.filter(c => (c as any).checked).map(c => c.id);\n }\n\n // Clear current Cipher Id to trigger \"Add\" cipher flow\n if (this.cloneMode) {\n this.cipher.id = null;\n }\n\n const cipher = await this.encryptCipher();\n try {\n this.formPromise = this.saveCipher(cipher);\n await this.formPromise;\n this.cipher.id = cipher.id;\n this.platformUtilsService.eventTrack(this.editMode && !this.cloneMode ? 'Edited Cipher' : 'Added Cipher');\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode && !this.cloneMode ? 'editedItem' : 'addedItem'));\n this.onSavedCipher.emit(this.cipher);\n this.messagingService.send(this.editMode && !this.cloneMode ? 'editedCipher' : 'addedCipher');\n return true;\n } catch { }\n\n return false;\n }\n\n addUri() {\n if (this.cipher.type !== CipherType.Login) {\n return;\n }\n\n if (this.cipher.login.uris == null) {\n this.cipher.login.uris = [];\n }\n\n this.cipher.login.uris.push(new LoginUriView());\n }\n\n removeUri(uri: LoginUriView) {\n if (this.cipher.type !== CipherType.Login || this.cipher.login.uris == null) {\n return;\n }\n\n const i = this.cipher.login.uris.indexOf(uri);\n if (i > -1) {\n this.cipher.login.uris.splice(i, 1);\n }\n }\n\n addField() {\n if (this.cipher.fields == null) {\n this.cipher.fields = [];\n }\n\n const f = new FieldView();\n f.type = this.addFieldType;\n f.newField = true;\n this.cipher.fields.push(f);\n }\n\n removeField(field: FieldView) {\n const i = this.cipher.fields.indexOf(field);\n if (i > -1) {\n this.cipher.fields.splice(i, 1);\n }\n }\n\n trackByFunction(index: number, item: any) {\n return index;\n }\n\n cancel() {\n this.onCancelled.emit(this.cipher);\n }\n\n attachments() {\n this.onEditAttachments.emit(this.cipher);\n }\n\n share() {\n this.onShareCipher.emit(this.cipher);\n }\n\n editCollections() {\n this.onEditCollections.emit(this.cipher);\n }\n\n async delete(): Promise {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t(this.cipher.isDeleted ? 'permanentlyDeleteItemConfirmation' : 'deleteItemConfirmation'),\n this.i18nService.t('deleteItem'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.deleteCipher();\n await this.deletePromise;\n this.platformUtilsService.eventTrack((this.cipher.isDeleted ? 'Permanently ' : '') + 'Deleted Cipher');\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.cipher.isDeleted ? 'permanentlyDeletedItem' : 'deletedItem'));\n this.onDeletedCipher.emit(this.cipher);\n this.messagingService.send(this.cipher.isDeleted ? 'permanentlyDeletedCipher' : 'deletedCipher');\n } catch { }\n\n return true;\n }\n\n async restore(): Promise {\n if (!this.cipher.isDeleted) {\n return false;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('restoreItemConfirmation'), this.i18nService.t('restoreItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.restorePromise = this.restoreCipher();\n await this.restorePromise;\n this.platformUtilsService.eventTrack('Restored Cipher');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('restoredItem'));\n this.onRestoredCipher.emit(this.cipher);\n this.messagingService.send('restoredCipher');\n } catch { }\n\n return true;\n }\n\n async generatePassword(): Promise {\n if (this.cipher.login != null && this.cipher.login.password != null && this.cipher.login.password.length) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('overwritePasswordConfirmation'), this.i18nService.t('overwritePassword'),\n this.i18nService.t('yes'), this.i18nService.t('no'));\n if (!confirmed) {\n return false;\n }\n }\n\n this.onGeneratePassword.emit();\n return true;\n }\n\n togglePassword() {\n this.platformUtilsService.eventTrack('Toggled Password on Edit');\n this.showPassword = !this.showPassword;\n document.getElementById('loginPassword').focus();\n if (this.editMode && this.showPassword) {\n this.eventService.collect(EventType.Cipher_ClientToggledPasswordVisible, this.cipherId);\n }\n }\n\n toggleCardCode() {\n this.platformUtilsService.eventTrack('Toggled CardCode on Edit');\n this.showCardCode = !this.showCardCode;\n document.getElementById('cardCode').focus();\n if (this.editMode && this.showCardCode) {\n this.eventService.collect(EventType.Cipher_ClientToggledCardCodeVisible, this.cipherId);\n }\n }\n\n toggleFieldValue(field: FieldView) {\n const f = (field as any);\n f.showValue = !f.showValue;\n if (this.editMode && f.showValue) {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId);\n }\n }\n\n toggleUriOptions(uri: LoginUriView) {\n const u = (uri as any);\n u.showOptions = u.showOptions == null && uri.match != null ? false : !u.showOptions;\n }\n\n loginUriMatchChanged(uri: LoginUriView) {\n const u = (uri as any);\n u.showOptions = u.showOptions == null ? true : u.showOptions;\n }\n\n drop(event: CdkDragDrop) {\n moveItemInArray(this.cipher.fields, event.previousIndex, event.currentIndex);\n }\n\n async organizationChanged() {\n if (this.writeableCollections != null) {\n this.writeableCollections.forEach(c => (c as any).checked = false);\n }\n if (this.cipher.organizationId != null) {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.cipher.organizationId);\n const org = await this.userService.getOrganization(this.cipher.organizationId);\n if (org != null) {\n this.cipher.organizationUseTotp = org.useTotp;\n }\n } else {\n this.collections = [];\n }\n }\n\n async checkPassword() {\n if (this.checkPasswordPromise != null) {\n return;\n }\n\n if (this.cipher.login == null || this.cipher.login.password == null || this.cipher.login.password === '') {\n return;\n }\n\n this.platformUtilsService.eventTrack('Check Password');\n this.checkPasswordPromise = this.auditService.passwordLeaked(this.cipher.login.password);\n const matches = await this.checkPasswordPromise;\n this.checkPasswordPromise = null;\n\n if (matches > 0) {\n this.platformUtilsService.showToast('warning', null,\n this.i18nService.t('passwordExposed', matches.toString()));\n } else {\n this.platformUtilsService.showToast('success', null, this.i18nService.t('passwordSafe'));\n }\n }\n\n protected async loadCollections() {\n const allCollections = await this.collectionService.getAllDecrypted();\n return allCollections.filter(c => !c.readOnly);\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected encryptCipher() {\n return this.cipherService.encrypt(this.cipher);\n }\n\n protected saveCipher(cipher: Cipher) {\n return this.cipherService.saveWithServer(cipher);\n }\n\n protected deleteCipher() {\n return this.cipher.isDeleted ? this.cipherService.deleteWithServer(this.cipher.id)\n : this.cipherService.softDeleteWithServer(this.cipher.id);\n }\n\n protected restoreCipher() {\n return this.cipherService.restoreWithServer(this.cipher.id);\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { SearchService } from '../../abstractions/search.service';\n\nimport { CipherView } from '../../models/view/cipherView';\n\n@Directive()\nexport class CiphersComponent {\n @Input() activeCipherId: string = null;\n @Output() onCipherClicked = new EventEmitter();\n @Output() onCipherRightClicked = new EventEmitter();\n @Output() onAddCipher = new EventEmitter();\n @Output() onAddCipherOptions = new EventEmitter();\n\n loaded: boolean = false;\n ciphers: CipherView[] = [];\n pagedCiphers: CipherView[] = [];\n searchText: string;\n searchPlaceholder: string = null;\n filter: (cipher: CipherView) => boolean = null;\n deleted: boolean = false;\n\n protected searchPending = false;\n protected didScroll = false;\n protected pageSize = 100;\n\n private searchTimeout: any = null;\n private pagedCiphersCount = 0;\n private refreshing = false;\n\n constructor(protected searchService: SearchService) { }\n\n async load(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {\n this.deleted = deleted || false;\n await this.applyFilter(filter);\n this.loaded = true;\n }\n\n loadMore() {\n if (this.ciphers.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedCiphers.length;\n let pagedSize = this.pageSize;\n if (this.refreshing && pagedLength === 0 && this.pagedCiphersCount > this.pageSize) {\n pagedSize = this.pagedCiphersCount;\n }\n if (this.ciphers.length > pagedLength) {\n this.pagedCiphers = this.pagedCiphers.concat(this.ciphers.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedCiphersCount = this.pagedCiphers.length;\n this.didScroll = this.pagedCiphers.length > this.pageSize;\n }\n\n async reload(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {\n this.loaded = false;\n this.ciphers = [];\n await this.load(filter, deleted);\n }\n\n async refresh() {\n try {\n this.refreshing = true;\n await this.reload(this.filter, this.deleted);\n } finally {\n this.refreshing = false;\n }\n }\n\n async applyFilter(filter: (cipher: CipherView) => boolean = null) {\n this.filter = filter;\n await this.search(null);\n }\n\n async search(timeout: number = null) {\n this.searchPending = false;\n if (this.searchTimeout != null) {\n clearTimeout(this.searchTimeout);\n }\n const deletedFilter: (cipher: CipherView) => boolean = c => c.isDeleted === this.deleted;\n if (timeout == null) {\n this.ciphers = await this.searchService.searchCiphers(this.searchText, [this.filter, deletedFilter], null);\n await this.resetPaging();\n return;\n }\n this.searchPending = true;\n this.searchTimeout = setTimeout(async () => {\n this.ciphers = await this.searchService.searchCiphers(this.searchText, [this.filter, deletedFilter], null);\n await this.resetPaging();\n this.searchPending = false;\n }, timeout);\n }\n\n selectCipher(cipher: CipherView) {\n this.onCipherClicked.emit(cipher);\n }\n\n rightClickCipher(cipher: CipherView) {\n this.onCipherRightClicked.emit(cipher);\n }\n\n addCipher() {\n this.onAddCipher.emit();\n }\n\n addCipherOptions() {\n this.onAddCipherOptions.emit();\n }\n\n isSearching() {\n return !this.searchPending && this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.ciphers.length > this.pageSize;\n }\n\n async resetPaging() {\n this.pagedCiphers = [];\n this.loadMore();\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\n\nimport { Cipher } from '../../models/domain/cipher';\n\n@Directive()\nexport class CollectionsComponent implements OnInit {\n @Input() cipherId: string;\n @Input() allowSelectNone = false;\n @Output() onSavedCollections = new EventEmitter();\n\n formPromise: Promise;\n cipher: CipherView;\n collectionIds: string[];\n collections: CollectionView[] = [];\n\n protected cipherDomain: Cipher;\n\n constructor(protected collectionService: CollectionService, protected platformUtilsService: PlatformUtilsService,\n protected i18nService: I18nService, protected cipherService: CipherService) { }\n\n async ngOnInit() {\n await this.load();\n }\n\n async load() {\n this.cipherDomain = await this.loadCipher();\n this.collectionIds = this.loadCipherCollections();\n this.cipher = await this.cipherDomain.decrypt();\n this.collections = await this.loadCollections();\n\n this.collections.forEach(c => (c as any).checked = false);\n if (this.collectionIds != null) {\n this.collections.forEach(c => {\n (c as any).checked = this.collectionIds != null && this.collectionIds.indexOf(c.id) > -1;\n });\n }\n }\n\n async submit() {\n const selectedCollectionIds = this.collections\n .filter(c => !!(c as any).checked)\n .map(c => c.id);\n if (!this.allowSelectNone && selectedCollectionIds.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectOneCollection'));\n return;\n }\n this.cipherDomain.collectionIds = selectedCollectionIds;\n try {\n this.formPromise = this.saveCollections();\n await this.formPromise;\n this.onSavedCollections.emit();\n this.platformUtilsService.eventTrack('Edited Cipher Collections');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('editedItem'));\n } catch { }\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected loadCipherCollections() {\n return this.cipherDomain.collectionIds;\n }\n\n protected async loadCollections() {\n const allCollections = await this.collectionService.getAllDecrypted();\n return allCollections.filter(c => !c.readOnly && c.organizationId === this.cipher.organizationId);\n }\n\n protected saveCollections() {\n return this.cipherService.saveCollectionsWithServer(this.cipherDomain);\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\n\nimport { CollectionView } from '../../models/view/collectionView';\nimport { FolderView } from '../../models/view/folderView';\n\nimport { TreeNode } from '../../models/domain/treeNode';\n\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { FolderService } from '../../abstractions/folder.service';\nimport { StorageService } from '../../abstractions/storage.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\n@Directive()\nexport class GroupingsComponent {\n @Input() showFolders = true;\n @Input() showCollections = true;\n @Input() showFavorites = true;\n @Input() showTrash = true;\n\n @Output() onAllClicked = new EventEmitter();\n @Output() onFavoritesClicked = new EventEmitter();\n @Output() onTrashClicked = new EventEmitter();\n @Output() onCipherTypeClicked = new EventEmitter();\n @Output() onFolderClicked = new EventEmitter();\n @Output() onAddFolder = new EventEmitter();\n @Output() onEditFolder = new EventEmitter();\n @Output() onCollectionClicked = new EventEmitter();\n\n folders: FolderView[];\n nestedFolders: TreeNode[];\n collections: CollectionView[];\n nestedCollections: TreeNode[];\n loaded: boolean = false;\n cipherType = CipherType;\n selectedAll: boolean = false;\n selectedFavorites: boolean = false;\n selectedTrash: boolean = false;\n selectedType: CipherType = null;\n selectedFolder: boolean = false;\n selectedFolderId: string = null;\n selectedCollectionId: string = null;\n\n private collapsedGroupings: Set;\n private collapsedGroupingsKey: string;\n\n constructor(protected collectionService: CollectionService, protected folderService: FolderService,\n protected storageService: StorageService, protected userService: UserService) { }\n\n async load(setLoaded = true) {\n const userId = await this.userService.getUserId();\n this.collapsedGroupingsKey = ConstantsService.collapsedGroupingsKey + '_' + userId;\n const collapsedGroupings = await this.storageService.get(this.collapsedGroupingsKey);\n if (collapsedGroupings == null) {\n this.collapsedGroupings = new Set();\n } else {\n this.collapsedGroupings = new Set(collapsedGroupings);\n }\n\n await this.loadFolders();\n await this.loadCollections();\n\n if (setLoaded) {\n this.loaded = true;\n }\n }\n\n async loadCollections(organizationId?: string) {\n if (!this.showCollections) {\n return;\n }\n const collections = await this.collectionService.getAllDecrypted();\n if (organizationId != null) {\n this.collections = collections.filter(c => c.organizationId === organizationId);\n } else {\n this.collections = collections;\n }\n this.nestedCollections = await this.collectionService.getAllNested(this.collections);\n }\n\n async loadFolders() {\n if (!this.showFolders) {\n return;\n }\n this.folders = await this.folderService.getAllDecrypted();\n this.nestedFolders = await this.folderService.getAllNested();\n }\n\n selectAll() {\n this.clearSelections();\n this.selectedAll = true;\n this.onAllClicked.emit();\n }\n\n selectFavorites() {\n this.clearSelections();\n this.selectedFavorites = true;\n this.onFavoritesClicked.emit();\n }\n\n selectTrash() {\n this.clearSelections();\n this.selectedTrash = true;\n this.onTrashClicked.emit();\n }\n\n selectType(type: CipherType) {\n this.clearSelections();\n this.selectedType = type;\n this.onCipherTypeClicked.emit(type);\n }\n\n selectFolder(folder: FolderView) {\n this.clearSelections();\n this.selectedFolder = true;\n this.selectedFolderId = folder.id;\n this.onFolderClicked.emit(folder);\n }\n\n addFolder() {\n this.onAddFolder.emit();\n }\n\n editFolder(folder: FolderView) {\n this.onEditFolder.emit(folder);\n }\n\n selectCollection(collection: CollectionView) {\n this.clearSelections();\n this.selectedCollectionId = collection.id;\n this.onCollectionClicked.emit(collection);\n }\n\n clearSelections() {\n this.selectedAll = false;\n this.selectedFavorites = false;\n this.selectedTrash = false;\n this.selectedType = null;\n this.selectedFolder = false;\n this.selectedFolderId = null;\n this.selectedCollectionId = null;\n }\n\n collapse(grouping: FolderView | CollectionView, idPrefix = '') {\n if (grouping.id == null) {\n return;\n }\n const id = idPrefix + grouping.id;\n if (this.isCollapsed(grouping, idPrefix)) {\n this.collapsedGroupings.delete(id);\n } else {\n this.collapsedGroupings.add(id);\n }\n this.storageService.save(this.collapsedGroupingsKey, this.collapsedGroupings);\n }\n\n isCollapsed(grouping: FolderView | CollectionView, idPrefix = '') {\n return this.collapsedGroupings.has(idPrefix + grouping.id);\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendAccessResponse } from '../response/sendAccessResponse';\n\nimport { SendAccessView } from '../view/sendAccessView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SendFile } from './sendFile';\nimport { SendText } from './sendText';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class SendAccess extends Domain {\n id: string;\n type: SendType;\n name: CipherString;\n file: SendFile;\n text: SendText;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(obj?: SendAccessResponse, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n name: null,\n expirationDate: null,\n creatorIdentifier: null,\n }, alreadyEncrypted, ['id', 'expirationDate', 'creatorIdentifier']);\n\n this.type = obj.type;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendText(obj.text, alreadyEncrypted);\n break;\n case SendType.File:\n this.file = new SendFile(obj.file, alreadyEncrypted);\n break;\n default:\n break;\n }\n }\n\n async decrypt(key: SymmetricCryptoKey): Promise {\n const model = new SendAccessView(this);\n\n await this.decryptObj(model, {\n name: null,\n }, null, key);\n\n switch (this.type) {\n case SendType.File:\n model.file = await this.file.decrypt(key);\n break;\n case SendType.Text:\n model.text = await this.text.decrypt(key);\n break;\n default:\n break;\n }\n\n return model;\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendAccess } from '../domain/sendAccess';\n\nimport { SendFileView } from './sendFileView';\nimport { SendTextView } from './sendTextView';\nimport { View } from './view';\n\nexport class SendAccessView implements View {\n id: string = null;\n name: string = null;\n type: SendType = null;\n text = new SendTextView();\n file = new SendFileView();\n expirationDate: Date = null;\n creatorIdentifier: string = null;\n\n constructor(s?: SendAccess) {\n if (!s) {\n return;\n }\n\n this.id = s.id;\n this.type = s.type;\n this.expirationDate = s.expirationDate;\n this.creatorIdentifier = s.creatorIdentifier;\n }\n}\n","export class SendAccessRequest {\n password: string;\n}\n","import {\n NgZone,\n OnInit,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../../enums/policyType';\nimport { SendType } from '../../../enums/sendType';\n\nimport { SendView } from '../../../models/view/sendView';\n\nimport { EnvironmentService } from '../../../abstractions/environment.service';\nimport { I18nService } from '../../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../../abstractions/policy.service';\nimport { SearchService } from '../../../abstractions/search.service';\nimport { SendService } from '../../../abstractions/send.service';\nimport { UserService } from '../../../abstractions/user.service';\n\nexport class SendComponent implements OnInit {\n\n disableSend = false;\n sendType = SendType;\n loaded = false;\n loading = true;\n refreshing = false;\n expired: boolean = false;\n type: SendType = null;\n sends: SendView[] = [];\n filteredSends: SendView[] = [];\n searchText: string;\n selectedType: SendType;\n selectedAll: boolean;\n searchPlaceholder: string;\n filter: (cipher: SendView) => boolean;\n searchPending = false;\n hasSearched = false; // search() function called - returns true if text qualifies for search\n\n actionPromise: any;\n onSuccessfulRemovePassword: () => Promise;\n onSuccessfulDelete: () => Promise;\n onSuccessfulLoad: () => Promise;\n\n private searchTimeout: any;\n\n constructor(protected sendService: SendService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected environmentService: EnvironmentService,\n protected ngZone: NgZone, protected searchService: SearchService,\n protected policyService: PolicyService, protected userService: UserService) { }\n\n async ngOnInit() {\n const policies = await this.policyService.getAll(PolicyType.DisableSend);\n const organizations = await this.userService.getAllOrganizations();\n this.disableSend = organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n policies.some(p => p.organizationId === o.id && p.enabled);\n });\n }\n\n async load(filter: (send: SendView) => boolean = null) {\n this.loading = true;\n const sends = await this.sendService.getAllDecrypted();\n this.sends = sends;\n if (this.onSuccessfulLoad != null) {\n await this.onSuccessfulLoad();\n } else {\n // Default action\n this.selectAll();\n }\n this.loading = false;\n this.loaded = true;\n }\n\n async reload(filter: (send: SendView) => boolean = null) {\n this.loaded = false;\n this.sends = [];\n await this.load(filter);\n }\n\n async refresh() {\n try {\n this.refreshing = true;\n await this.reload(this.filter);\n } finally {\n this.refreshing = false;\n }\n }\n\n async applyFilter(filter: (send: SendView) => boolean = null) {\n this.filter = filter;\n await this.search(null);\n }\n\n async search(timeout: number = null) {\n this.searchPending = false;\n if (this.searchTimeout != null) {\n clearTimeout(this.searchTimeout);\n }\n if (timeout == null) {\n this.hasSearched = this.searchService.isSearchable(this.searchText);\n this.filteredSends = this.sends.filter(s => this.filter == null || this.filter(s));\n this.applyTextSearch();\n return;\n }\n this.searchPending = true;\n this.searchTimeout = setTimeout(async () => {\n this.hasSearched = this.searchService.isSearchable(this.searchText);\n this.filteredSends = this.sends.filter(s => this.filter == null || this.filter(s));\n this.applyTextSearch();\n this.searchPending = false;\n }, timeout);\n }\n\n async removePassword(s: SendView): Promise {\n if (this.actionPromise != null || s.password == null) {\n return;\n }\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('removePasswordConfirmation'),\n this.i18nService.t('removePassword'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.sendService.removePasswordWithServer(s.id);\n await this.actionPromise;\n if (this.onSuccessfulRemovePassword != null) {\n this.onSuccessfulRemovePassword();\n } else {\n // Default actions\n this.platformUtilsService.showToast('success', null, this.i18nService.t('removedPassword'));\n await this.load();\n }\n } catch { }\n this.actionPromise = null;\n }\n\n async delete(s: SendView): Promise {\n if (this.actionPromise != null) {\n return false;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteSendConfirmation'),\n this.i18nService.t('deleteSend'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.sendService.deleteWithServer(s.id);\n await this.actionPromise;\n\n if (this.onSuccessfulDelete != null) {\n this.onSuccessfulDelete();\n } else {\n // Default actions\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedSend'));\n await this.refresh();\n }\n } catch { }\n this.actionPromise = null;\n return true;\n }\n\n copy(s: SendView) {\n let sendLinkBaseUrl = 'https://send.bitwarden.com/#';\n const webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl != null) {\n sendLinkBaseUrl = webVaultUrl + '/#/send/';\n }\n const link = sendLinkBaseUrl + s.accessId + '/' + s.urlB64Key;\n this.platformUtilsService.copyToClipboard(link);\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('valueCopied', this.i18nService.t('sendLink')));\n }\n\n searchTextChanged() {\n this.search(200);\n }\n\n selectAll() {\n this.clearSelections();\n this.selectedAll = true;\n this.applyFilter(null);\n }\n\n selectType(type: SendType) {\n this.clearSelections();\n this.selectedType = type;\n this.applyFilter(s => s.type === type);\n }\n\n clearSelections() {\n this.selectedAll = false;\n this.selectedType = null;\n }\n\n private applyTextSearch() {\n if (this.searchText != null) {\n this.filteredSends = this.searchService.searchSends(this.filteredSends, this.searchText);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\n\nimport {\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../../enums/policyType';\nimport { SendType } from '../../../enums/sendType';\n\nimport { EnvironmentService } from '../../../abstractions/environment.service';\nimport { I18nService } from '../../../abstractions/i18n.service';\nimport { MessagingService } from '../../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../../abstractions/policy.service';\nimport { SendService } from '../../../abstractions/send.service';\nimport { UserService } from '../../../abstractions/user.service';\n\nimport { SendFileView } from '../../../models/view/sendFileView';\nimport { SendTextView } from '../../../models/view/sendTextView';\nimport { SendView } from '../../../models/view/sendView';\n\nimport { Send } from '../../../models/domain/send';\n\n// TimeOption is used for the dropdown implementation of custom times\n// Standard = displayed time; Military = stored time\ninterface TimeOption {\n standard: string;\n military: string;\n}\n\nenum DateField {\n DeletionDate = 'deletion',\n ExpriationDate = 'expiration',\n}\n\nexport class AddEditComponent implements OnInit {\n @Input() sendId: string;\n @Input() type: SendType;\n\n @Output() onSavedSend = new EventEmitter();\n @Output() onDeletedSend = new EventEmitter();\n @Output() onCancelled = new EventEmitter();\n\n copyLink = false;\n disableSend = false;\n send: SendView;\n deletionDate: string;\n deletionDateFallback: string;\n deletionTimeFallback: string;\n expirationDate: string = null;\n expirationDateFallback: string;\n expirationTimeFallback: string;\n hasPassword: boolean;\n password: string;\n showPassword = false;\n formPromise: Promise;\n deletePromise: Promise;\n sendType = SendType;\n typeOptions: any[];\n deletionDateOptions: any[];\n expirationDateOptions: any[];\n deletionDateSelect = 168;\n expirationDateSelect: number = null;\n canAccessPremium = true;\n premiumRequiredAlertShown = false;\n showOptions = false;\n\n safariDeletionTime: string;\n safariExpirationTime: string;\n safariDeletionTimeOptions: TimeOption[];\n safariExpirationTimeOptions: TimeOption[];\n\n private sendLinkBaseUrl: string;\n\n constructor(protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected environmentService: EnvironmentService, protected datePipe: DatePipe,\n protected sendService: SendService, protected userService: UserService,\n protected messagingService: MessagingService, protected policyService: PolicyService) {\n this.typeOptions = [\n { name: i18nService.t('sendTypeFile'), value: SendType.File },\n { name: i18nService.t('sendTypeText'), value: SendType.Text },\n ];\n this.deletionDateOptions = this.expirationDateOptions = [\n { name: i18nService.t('oneHour'), value: 1 },\n { name: i18nService.t('oneDay'), value: 24 },\n { name: i18nService.t('days', '2'), value: 48 },\n { name: i18nService.t('days', '3'), value: 72 },\n { name: i18nService.t('days', '7'), value: 168 },\n { name: i18nService.t('days', '30'), value: 720 },\n { name: i18nService.t('custom'), value: 0 },\n ];\n this.expirationDateOptions = [\n { name: i18nService.t('never'), value: null },\n ].concat([...this.deletionDateOptions]);\n\n const webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl == null) {\n this.sendLinkBaseUrl = 'https://send.bitwarden.com/#';\n } else {\n this.sendLinkBaseUrl = webVaultUrl + '/#/send/';\n }\n }\n\n get link(): string {\n if (this.send.id != null && this.send.accessId != null) {\n return this.sendLinkBaseUrl + this.send.accessId + '/' + this.send.urlB64Key;\n }\n return null;\n }\n\n get isSafari() {\n return this.platformUtilsService.isSafari();\n }\n\n get isDateTimeLocalSupported(): boolean {\n return !(this.platformUtilsService.isFirefox() || this.platformUtilsService.isSafari());\n }\n\n async ngOnInit() {\n await this.load();\n }\n\n get editMode(): boolean {\n return this.sendId != null;\n }\n\n get title(): string {\n return this.i18nService.t(\n this.editMode ?\n 'editSend' :\n 'createSend'\n );\n }\n\n get expirationDateTimeFallback() {\n return this.nullOrWhiteSpaceCount([this.expirationDateFallback, this.expirationTimeFallback]) > 0 ?\n null :\n `${this.formatDateFallbacks(this.expirationDateFallback)}T${this.expirationTimeFallback}`;\n }\n\n get deletionDateTimeFallback() {\n return this.nullOrWhiteSpaceCount([this.deletionDateFallback, this.deletionTimeFallback]) > 0 ?\n null :\n `${this.formatDateFallbacks(this.deletionDateFallback)}T${this.deletionTimeFallback}`;\n }\n\n async load() {\n const policies = await this.policyService.getAll(PolicyType.DisableSend);\n const organizations = await this.userService.getAllOrganizations();\n this.disableSend = organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n policies.some(p => p.organizationId === o.id && p.enabled);\n });\n\n this.canAccessPremium = await this.userService.canAccessPremium();\n if (!this.canAccessPremium) {\n this.type = SendType.Text;\n }\n\n if (this.send == null) {\n if (this.editMode) {\n const send = await this.loadSend();\n this.send = await send.decrypt();\n } else {\n this.send = new SendView();\n this.send.type = this.type == null ? SendType.File : this.type;\n this.send.file = new SendFileView();\n this.send.text = new SendTextView();\n this.send.deletionDate = new Date();\n this.send.deletionDate.setDate(this.send.deletionDate.getDate() + 7);\n }\n }\n\n this.hasPassword = this.send.password != null && this.send.password.trim() !== '';\n\n // Parse dates\n if (!this.isDateTimeLocalSupported) {\n const deletionDateParts = this.dateToSplitString(this.send.deletionDate);\n if (deletionDateParts !== undefined && deletionDateParts.length > 0) {\n this.deletionDateFallback = deletionDateParts[0];\n this.deletionTimeFallback = deletionDateParts[1];\n if (this.isSafari) {\n this.safariDeletionTime = this.deletionTimeFallback;\n }\n }\n\n const expirationDateParts = this.dateToSplitString(this.send.expirationDate);\n if (expirationDateParts !== undefined && expirationDateParts.length > 0) {\n this.expirationDateFallback = expirationDateParts[0];\n this.expirationTimeFallback = expirationDateParts[1];\n if (this.isSafari) {\n this.safariExpirationTime = this.expirationTimeFallback;\n }\n }\n } else {\n this.deletionDate = this.dateToString(this.send.deletionDate);\n this.expirationDate = this.dateToString(this.send.expirationDate);\n }\n\n if (this.isSafari) {\n this.safariDeletionTimeOptions = this.safariTimeOptions(DateField.DeletionDate);\n this.safariExpirationTimeOptions = this.safariTimeOptions(DateField.ExpriationDate);\n }\n }\n\n async submit(): Promise {\n if (!this.isDateTimeLocalSupported) {\n if (this.isSafari) {\n this.expirationTimeFallback = this.safariExpirationTime ?? this.expirationTimeFallback;\n this.deletionTimeFallback = this.safariDeletionTime ?? this.deletionTimeFallback;\n }\n this.deletionDate = this.deletionDateTimeFallback;\n if (this.expirationDateTimeFallback != null && isNaN(Date.parse(this.expirationDateTimeFallback))) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('expirationDateIsInvalid'));\n return;\n }\n if (isNaN(Date.parse(this.deletionDateTimeFallback))) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('deletionDateIsInvalid'));\n return;\n }\n if (this.nullOrWhiteSpaceCount([this.expirationDateFallback, this.expirationTimeFallback]) === 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('expirationDateAndTimeRequired'));\n return;\n }\n if (this.editMode || this.expirationDateSelect === 0) {\n this.expirationDate = this.expirationDateTimeFallback;\n }\n }\n\n if (this.disableSend) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('sendDisabledWarning'));\n return false;\n }\n\n if (this.send.name == null || this.send.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n let file: File = null;\n if (this.send.type === SendType.File && !this.editMode) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n file = files[0];\n if (file.size > 104857600) { // 100 MB\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('maxFileSize'));\n return;\n }\n }\n\n if (!this.editMode) {\n const now = new Date();\n if (this.deletionDateSelect > 0) {\n const d = new Date();\n d.setHours(now.getHours() + this.deletionDateSelect);\n this.deletionDate = this.dateToString(d);\n }\n if (this.expirationDateSelect != null && this.expirationDateSelect > 0) {\n const d = new Date();\n d.setHours(now.getHours() + this.expirationDateSelect);\n this.expirationDate = this.dateToString(d);\n }\n }\n\n if (this.password != null && this.password.trim() === '') {\n this.password = null;\n }\n\n const encSend = await this.encryptSend(file);\n try {\n this.formPromise = this.sendService.saveWithServer(encSend);\n await this.formPromise;\n if (this.send.id == null) {\n this.send.id = encSend[0].id;\n }\n if (this.send.accessId == null) {\n this.send.accessId = encSend[0].accessId;\n }\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode ? 'editedSend' : 'createdSend'));\n this.onSavedSend.emit(this.send);\n if (this.copyLink) {\n this.copyLinkToClipboard(this.link);\n }\n return true;\n } catch { }\n\n return false;\n }\n\n clearExpiration() {\n this.expirationDate = null;\n this.expirationDateFallback = null;\n this.expirationTimeFallback = null;\n this.safariExpirationTime = null;\n }\n\n copyLinkToClipboard(link: string) {\n if (link != null) {\n this.platformUtilsService.copyToClipboard(link);\n }\n }\n\n async delete(): Promise {\n if (this.deletePromise != null) {\n return false;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteSendConfirmation'),\n this.i18nService.t('deleteSend'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.sendService.deleteWithServer(this.send.id);\n await this.deletePromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedSend'));\n await this.load();\n this.onDeletedSend.emit(this.send);\n return true;\n } catch { }\n\n return false;\n }\n\n typeChanged() {\n if (!this.canAccessPremium && this.send.type === SendType.File && !this.premiumRequiredAlertShown) {\n this.premiumRequiredAlertShown = true;\n this.messagingService.send('premiumRequired');\n }\n }\n\n toggleOptions() {\n this.showOptions = !this.showOptions;\n }\n\n expirationDateFallbackChanged() {\n this.isSafari ?\n this.safariExpirationTime = this.safariExpirationTime ?? '00:00' :\n this.expirationTimeFallback = this.expirationTimeFallback ?? this.datePipe.transform(new Date(), 'HH:mm');\n }\n\n protected async loadSend(): Promise {\n return this.sendService.get(this.sendId);\n }\n\n protected async encryptSend(file: File): Promise<[Send, ArrayBuffer]> {\n const sendData = await this.sendService.encrypt(this.send, file, this.password, null);\n\n // Parse dates\n try {\n sendData[0].deletionDate = this.deletionDate == null ? null : new Date(this.deletionDate);\n } catch {\n sendData[0].deletionDate = null;\n }\n try {\n sendData[0].expirationDate = this.expirationDate == null ? null : new Date(this.expirationDate);\n } catch {\n sendData[0].expirationDate = null;\n }\n\n return sendData;\n }\n\n protected dateToString(d: Date) {\n return d == null ? null : this.datePipe.transform(d, 'yyyy-MM-ddTHH:mm');\n }\n\n protected formatDateFallbacks(dateString: string) {\n try {\n // The Firefox date picker doesn't supply a time, safari's polyfill does.\n // Unknown if Safari's native date picker will or not when it releases.\n if (!this.isSafari) {\n dateString += ' 00:00';\n }\n return this.datePipe.transform(new Date(dateString), 'yyyy-MM-dd');\n } catch {\n // this should never happen\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('dateParsingError'));\n }\n }\n\n protected dateToSplitString(d: Date) {\n if (d != null) {\n const date = !this.isSafari ?\n this.datePipe.transform(d, 'yyyy-MM-dd') :\n this.datePipe.transform(d, 'MM/dd/yyyy');\n const time = this.datePipe.transform(d, 'HH:mm');\n return [date, time];\n }\n }\n\n protected togglePasswordVisible() {\n this.showPassword = !this.showPassword;\n document.getElementById('password').focus();\n }\n\n protected nullOrWhiteSpaceCount(strarray: string[]): number {\n return strarray.filter(str => str == null || str.trim() === '').length;\n }\n\n protected safariTimeOptions(field: DateField): TimeOption[] {\n // init individual arrays for major sort groups\n const noon: TimeOption[] = [];\n const midnight: TimeOption[] = [];\n const ams: TimeOption[] = [];\n const pms: TimeOption[] = [];\n\n // determine minute skip (5 min, 10 min, 15 min, etc.)\n const minuteIncrementer = 15;\n\n // loop through each hour on a 12 hour system\n for (let h = 1; h <= 12; h++) {\n // loop through each minute in the hour using the skip to incriment\n for (let m = 0; m < 60; m += minuteIncrementer) {\n // init the final strings that will be added to the lists\n let hour = h.toString();\n let minutes = m.toString();\n\n // add prepending 0s to single digit hours/minutes\n if (h < 10) {\n hour = '0' + hour;\n }\n if (m < 10) {\n minutes = '0' + minutes;\n }\n\n // build time strings and push to relevant sort groups\n if (h === 12) {\n const midnightOption: TimeOption = {\n standard: `${hour}:${minutes} AM`,\n military: `00:${minutes}`,\n };\n midnight.push(midnightOption);\n\n const noonOption: TimeOption = {\n standard: `${hour}:${minutes} PM`,\n military: `${hour}:${minutes}`,\n };\n noon.push(noonOption);\n } else {\n const amOption: TimeOption = {\n standard: `${hour}:${minutes} AM`,\n military: `${hour}:${minutes}`,\n };\n ams.push(amOption);\n\n const pmOption: TimeOption = {\n standard: `${hour}:${minutes} PM`,\n military: `${h + 12}:${minutes}`,\n };\n pms.push(pmOption);\n }\n }\n }\n\n // bring all the arrays together in the right order\n const validTimes = [...midnight, ...ams, ...noon, ...pms];\n\n // determine if an unsupported value already exists on the send & add that to the top of the option list\n // example: if the Send was created with a different client\n if (field === DateField.ExpriationDate && this.expirationDateTimeFallback != null && this.editMode) {\n const previousValue: TimeOption = {\n standard: this.datePipe.transform(this.expirationDateTimeFallback, 'hh:mm a'),\n military: this.datePipe.transform(this.expirationDateTimeFallback, 'HH:mm'),\n };\n return [previousValue, { standard: null, military: null }, ...validTimes];\n } else if (field === DateField.DeletionDate && this.deletionDateTimeFallback != null && this.editMode) {\n const previousValue: TimeOption = {\n standard: this.datePipe.transform(this.deletionDateTimeFallback, 'hh:mm a'),\n military: this.datePipe.transform(this.deletionDateTimeFallback, 'HH:mm'),\n };\n return [previousValue, ...validTimes];\n } else {\n return [{ standard: null, military: null }, ...validTimes];\n }\n }\n}\n","export class UpdateProfileRequest {\n name: string;\n masterPasswordHint: string;\n culture = 'en-US'; // deprecated\n\n constructor(name: string, masterPasswordHint: string) {\n this.name = name;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n }\n}\n","import { EmailTokenRequest } from './emailTokenRequest';\n\nexport class EmailRequest extends EmailTokenRequest {\n newMasterPasswordHash: string;\n token: string;\n key: string;\n}\n","import { PasswordRequest } from './passwordRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class KdfRequest extends PasswordRequest {\n kdf: KdfType;\n kdfIterations: number;\n}\n","export class UpdateDomainsRequest {\n equivalentDomains: string[][];\n excludedGlobalEquivalentDomains: number[];\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { PasswordGeneratorPolicyOptions } from '../../models/domain/passwordGeneratorPolicyOptions';\n\n@Directive()\nexport class PasswordGeneratorComponent implements OnInit {\n @Input() showSelect: boolean = false;\n @Output() onSelected = new EventEmitter();\n\n options: any = {};\n password: string = '-';\n showOptions = false;\n avoidAmbiguous = false;\n enforcedPolicyOptions: PasswordGeneratorPolicyOptions;\n\n constructor(protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n private win: Window) { }\n\n async ngOnInit() {\n const optionsResponse = await this.passwordGenerationService.getOptions();\n this.options = optionsResponse[0];\n this.enforcedPolicyOptions = optionsResponse[1];\n this.avoidAmbiguous = !this.options.ambiguous;\n this.options.type = this.options.type === 'passphrase' ? 'passphrase' : 'password';\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n this.platformUtilsService.eventTrack('Generated Password');\n await this.passwordGenerationService.addHistory(this.password);\n }\n\n async sliderChanged() {\n this.saveOptions(false);\n await this.passwordGenerationService.addHistory(this.password);\n this.platformUtilsService.eventTrack('Regenerated Password');\n }\n\n async sliderInput() {\n this.normalizeOptions();\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n }\n\n async saveOptions(regenerate: boolean = true) {\n this.normalizeOptions();\n await this.passwordGenerationService.saveOptions(this.options);\n\n if (regenerate) {\n await this.regenerate();\n }\n }\n\n async regenerate() {\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n await this.passwordGenerationService.addHistory(this.password);\n this.platformUtilsService.eventTrack('Regenerated Password');\n }\n\n copy() {\n this.platformUtilsService.eventTrack('Copied Generated Password');\n const copyOptions = this.win != null ? { window: this.win } : null;\n this.platformUtilsService.copyToClipboard(this.password, copyOptions);\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t('password')));\n }\n\n select() {\n this.platformUtilsService.eventTrack('Selected Generated Password');\n this.onSelected.emit(this.password);\n }\n\n toggleOptions() {\n this.showOptions = !this.showOptions;\n }\n\n private normalizeOptions() {\n // Application level normalize options depedent on class variables\n this.options.ambiguous = !this.avoidAmbiguous;\n\n if (!this.options.uppercase && !this.options.lowercase && !this.options.number && !this.options.special) {\n this.options.lowercase = true;\n if (this.win != null) {\n const lowercase = this.win.document.querySelector('#lowercase') as HTMLInputElement;\n if (lowercase) {\n lowercase.checked = true;\n }\n }\n }\n\n this.passwordGenerationService.normalizeOptions(this.options, this.enforcedPolicyOptions);\n }\n}\n","import { OnInit } from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { GeneratedPasswordHistory } from '../../models/domain/generatedPasswordHistory';\n\nexport class PasswordGeneratorHistoryComponent implements OnInit {\n history: GeneratedPasswordHistory[] = [];\n\n constructor(protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n private win: Window) { }\n\n async ngOnInit() {\n this.history = await this.passwordGenerationService.getHistory();\n }\n\n clear() {\n this.history = [];\n this.passwordGenerationService.clear();\n }\n\n copy(password: string) {\n this.platformUtilsService.eventTrack('Copied Historical Password');\n const copyOptions = this.win != null ? { window: this.win } : null;\n this.platformUtilsService.copyToClipboard(password, copyOptions);\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t('password')));\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { FolderService } from '../../abstractions/folder.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { FolderView } from '../../models/view/folderView';\n\n@Directive()\nexport class FolderAddEditComponent implements OnInit {\n @Input() folderId: string;\n @Output() onSavedFolder = new EventEmitter();\n @Output() onDeletedFolder = new EventEmitter();\n\n editMode: boolean = false;\n folder: FolderView = new FolderView();\n title: string;\n formPromise: Promise;\n deletePromise: Promise;\n\n constructor(protected folderService: FolderService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n await this.init();\n }\n\n async submit(): Promise {\n if (this.folder.name == null || this.folder.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n try {\n const folder = await this.folderService.encrypt(this.folder);\n this.formPromise = this.folderService.saveWithServer(folder);\n await this.formPromise;\n this.platformUtilsService.eventTrack(this.editMode ? 'Edited Folder' : 'Added Folder');\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode ? 'editedFolder' : 'addedFolder'));\n this.onSavedFolder.emit(this.folder);\n return true;\n } catch { }\n\n return false;\n }\n\n async delete(): Promise {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteFolderConfirmation'), this.i18nService.t('deleteFolder'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.folderService.deleteWithServer(this.folder.id);\n await this.deletePromise;\n this.platformUtilsService.eventTrack('Deleted Folder');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedFolder'));\n this.onDeletedFolder.emit(this.folder);\n } catch { }\n\n return true;\n }\n\n protected async init() {\n this.editMode = this.folderId != null;\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editFolder');\n const folder = await this.folderService.get(this.folderId);\n this.folder = await folder.decrypt();\n } else {\n this.title = this.i18nService.t('addFolder');\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Organization } from '../../models/domain/organization';\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive()\nexport class ShareComponent implements OnInit {\n @Input() cipherId: string;\n @Input() organizationId: string;\n @Output() onSharedCipher = new EventEmitter();\n\n formPromise: Promise;\n cipher: CipherView;\n collections: CollectionView[] = [];\n organizations: Organization[] = [];\n\n protected writeableCollections: CollectionView[] = [];\n\n constructor(protected collectionService: CollectionService, protected platformUtilsService: PlatformUtilsService,\n protected i18nService: I18nService, protected userService: UserService,\n protected cipherService: CipherService) { }\n\n async ngOnInit() {\n await this.load();\n }\n\n async load() {\n const allCollections = await this.collectionService.getAllDecrypted();\n this.writeableCollections = allCollections.map(c => c).filter(c => !c.readOnly);\n const orgs = await this.userService.getAllOrganizations();\n this.organizations = orgs.sort(Utils.getSortFunction(this.i18nService, 'name'))\n .filter(o => o.enabled && o.status === OrganizationUserStatusType.Confirmed);\n\n const cipherDomain = await this.cipherService.get(this.cipherId);\n this.cipher = await cipherDomain.decrypt();\n if (this.organizationId == null && this.organizations.length > 0) {\n this.organizationId = this.organizations[0].id;\n }\n this.filterCollections();\n }\n\n filterCollections() {\n this.writeableCollections.forEach(c => (c as any).checked = false);\n if (this.organizationId == null || this.writeableCollections.length === 0) {\n this.collections = [];\n } else {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.organizationId);\n }\n }\n\n async submit(): Promise {\n const selectedCollectionIds = this.collections\n .filter(c => !!(c as any).checked)\n .map(c => c.id);\n if (selectedCollectionIds.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectOneCollection'));\n return;\n }\n\n const cipherDomain = await this.cipherService.get(this.cipherId);\n const cipherView = await cipherDomain.decrypt();\n\n try {\n this.formPromise = this.cipherService.shareWithServer(cipherView, this.organizationId,\n selectedCollectionIds).then(async () => {\n this.onSharedCipher.emit();\n this.platformUtilsService.eventTrack('Shared Cipher');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('sharedItem'));\n });\n await this.formPromise;\n return true;\n } catch { }\n return false;\n }\n\n get canSave() {\n if (this.collections != null) {\n for (let i = 0; i < this.collections.length; i++) {\n if ((this.collections[i] as any).checked) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","export { AttachmentData } from './attachmentData';\nexport { CardData } from './cardData';\nexport { CipherData } from './cipherData';\nexport { CollectionData } from './collectionData';\nexport { FieldData } from './fieldData';\nexport { FolderData } from './folderData';\nexport { IdentityData } from './identityData';\nexport { LoginData } from './loginData';\nexport { LoginUriData } from './loginUriData';\nexport { SecureNoteData } from './secureNoteData';\n","export { Attachment } from './attachment';\nexport { AuthResult } from './authResult';\nexport { Card } from './card';\nexport { Cipher } from './cipher';\nexport { CipherString } from './cipherString';\nexport { Collection } from './collection';\nexport { EncryptedObject } from './encryptedObject';\nexport { EnvironmentUrls } from './environmentUrls';\nexport { Field } from './field';\nexport { Folder } from './folder';\nexport { Identity } from './identity';\nexport { Login } from './login';\nexport { LoginUri } from './loginUri';\nexport { GeneratedPasswordHistory } from './generatedPasswordHistory';\nexport { SecureNote } from './secureNote';\nexport { SymmetricCryptoKey } from './symmetricCryptoKey';\n","export class EmergencyAccessConfirmRequest {\n key: string;\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class AttachmentResponse extends BaseResponse {\n id: string;\n url: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.url = this.getResponseProperty('Url');\n this.fileName = this.getResponseProperty('FileName');\n this.key = this.getResponseProperty('Key');\n this.size = this.getResponseProperty('Size');\n this.sizeName = this.getResponseProperty('SizeName');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class PasswordHistoryResponse extends BaseResponse {\n password: string;\n lastUsedDate: string;\n\n constructor(response: any) {\n super(response);\n this.password = this.getResponseProperty('Password');\n this.lastUsedDate = this.getResponseProperty('LastUsedDate');\n }\n}\n","import { EmergencyAccessType } from '../../enums/emergencyAccessType';\n\nexport class EmergencyAccessInviteRequest {\n email: string;\n type: EmergencyAccessType;\n waitTimeDays: number;\n}\n","export class EmergencyAccessPasswordRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import {\n APP_INITIALIZER,\n LOCALE_ID,\n NgModule,\n} from '@angular/core';\n\nimport { ToasterModule } from 'angular2-toaster';\n\nimport { BroadcasterMessagingService } from '../../services/broadcasterMessaging.service';\nimport { HtmlStorageService } from '../../services/htmlStorage.service';\nimport { I18nService } from '../../services/i18n.service';\nimport { MemoryStorageService } from '../../services/memoryStorage.service';\nimport { WebPlatformUtilsService } from '../../services/webPlatformUtils.service';\n\nimport { EventService } from './event.service';\nimport { OrganizationGuardService } from './organization-guard.service';\nimport { OrganizationTypeGuardService } from './organization-type-guard.service';\nimport { RouterService } from './router.service';\nimport { UnauthGuardService } from './unauth-guard.service';\n\nimport { AuthGuardService } from 'jslib/angular/services/auth-guard.service';\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\nimport { ValidationService } from 'jslib/angular/services/validation.service';\n\nimport { Analytics } from 'jslib/misc/analytics';\n\nimport { ApiService } from 'jslib/services/api.service';\nimport { AppIdService } from 'jslib/services/appId.service';\nimport { AuditService } from 'jslib/services/audit.service';\nimport { AuthService } from 'jslib/services/auth.service';\nimport { CipherService } from 'jslib/services/cipher.service';\nimport { CollectionService } from 'jslib/services/collection.service';\nimport { ConsoleLogService } from 'jslib/services/consoleLog.service';\nimport { ConstantsService } from 'jslib/services/constants.service';\nimport { ContainerService } from 'jslib/services/container.service';\nimport { CryptoService } from 'jslib/services/crypto.service';\nimport { EnvironmentService } from 'jslib/services/environment.service';\nimport { EventService as EventLoggingService } from 'jslib/services/event.service';\nimport { ExportService } from 'jslib/services/export.service';\nimport { FolderService } from 'jslib/services/folder.service';\nimport { ImportService } from 'jslib/services/import.service';\nimport { NotificationsService } from 'jslib/services/notifications.service';\nimport { PasswordGenerationService } from 'jslib/services/passwordGeneration.service';\nimport { PolicyService } from 'jslib/services/policy.service';\nimport { SearchService } from 'jslib/services/search.service';\nimport { SendService } from 'jslib/services/send.service';\nimport { SettingsService } from 'jslib/services/settings.service';\nimport { StateService } from 'jslib/services/state.service';\nimport { SyncService } from 'jslib/services/sync.service';\nimport { TokenService } from 'jslib/services/token.service';\nimport { TotpService } from 'jslib/services/totp.service';\nimport { UserService } from 'jslib/services/user.service';\nimport { VaultTimeoutService } from 'jslib/services/vaultTimeout.service';\nimport { WebCryptoFunctionService } from 'jslib/services/webCryptoFunction.service';\n\nimport { ApiService as ApiServiceAbstraction } from 'jslib/abstractions/api.service';\nimport { AppIdService as AppIdServiceAbstraction } from 'jslib/abstractions/appId.service';\nimport { AuditService as AuditServiceAbstraction } from 'jslib/abstractions/audit.service';\nimport { AuthService as AuthServiceAbstraction } from 'jslib/abstractions/auth.service';\nimport { CipherService as CipherServiceAbstraction } from 'jslib/abstractions/cipher.service';\nimport { CollectionService as CollectionServiceAbstraction } from 'jslib/abstractions/collection.service';\nimport { CryptoService as CryptoServiceAbstraction } from 'jslib/abstractions/crypto.service';\nimport { CryptoFunctionService as CryptoFunctionServiceAbstraction } from 'jslib/abstractions/cryptoFunction.service';\nimport { EnvironmentService as EnvironmentServiceAbstraction } from 'jslib/abstractions/environment.service';\nimport { EventService as EventLoggingServiceAbstraction } from 'jslib/abstractions/event.service';\nimport { ExportService as ExportServiceAbstraction } from 'jslib/abstractions/export.service';\nimport { FolderService as FolderServiceAbstraction } from 'jslib/abstractions/folder.service';\nimport { I18nService as I18nServiceAbstraction } from 'jslib/abstractions/i18n.service';\nimport { ImportService as ImportServiceAbstraction } from 'jslib/abstractions/import.service';\nimport { LogService as LogServiceAbstraction } from 'jslib/abstractions/log.service';\nimport { MessagingService as MessagingServiceAbstraction } from 'jslib/abstractions/messaging.service';\nimport { NotificationsService as NotificationsServiceAbstraction } from 'jslib/abstractions/notifications.service';\nimport {\n PasswordGenerationService as PasswordGenerationServiceAbstraction,\n} from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService as PlatformUtilsServiceAbstraction } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService as PolicyServiceAbstraction } from 'jslib/abstractions/policy.service';\nimport { SearchService as SearchServiceAbstraction } from 'jslib/abstractions/search.service';\nimport { SendService as SendServiceAbstraction } from 'jslib/abstractions/send.service';\nimport { SettingsService as SettingsServiceAbstraction } from 'jslib/abstractions/settings.service';\nimport { StateService as StateServiceAbstraction } from 'jslib/abstractions/state.service';\nimport { StorageService as StorageServiceAbstraction } from 'jslib/abstractions/storage.service';\nimport { SyncService as SyncServiceAbstraction } from 'jslib/abstractions/sync.service';\nimport { TokenService as TokenServiceAbstraction } from 'jslib/abstractions/token.service';\nimport { TotpService as TotpServiceAbstraction } from 'jslib/abstractions/totp.service';\nimport { UserService as UserServiceAbstraction } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from 'jslib/abstractions/vaultTimeout.service';\n\nconst i18nService = new I18nService(window.navigator.language, 'locales');\nconst stateService = new StateService();\nconst broadcasterService = new BroadcasterService();\nconst messagingService = new BroadcasterMessagingService(broadcasterService);\nconst platformUtilsService = new WebPlatformUtilsService(i18nService, messagingService);\nconst storageService: StorageServiceAbstraction = new HtmlStorageService(platformUtilsService);\nconst secureStorageService: StorageServiceAbstraction = new MemoryStorageService();\nconst cryptoFunctionService: CryptoFunctionServiceAbstraction = new WebCryptoFunctionService(window,\n platformUtilsService);\nconst consoleLogService = new ConsoleLogService(false);\nconst cryptoService = new CryptoService(storageService,\n platformUtilsService.isDev() ? storageService : secureStorageService, cryptoFunctionService, platformUtilsService,\n consoleLogService);\nconst tokenService = new TokenService(storageService);\nconst appIdService = new AppIdService(storageService);\nconst apiService = new ApiService(tokenService, platformUtilsService,\n async (expired: boolean) => messagingService.send('logout', { expired: expired }));\nconst userService = new UserService(tokenService, storageService);\nconst settingsService = new SettingsService(userService, storageService);\nexport let searchService: SearchService = null;\nconst cipherService = new CipherService(cryptoService, userService, settingsService,\n apiService, storageService, i18nService, () => searchService);\nconst folderService = new FolderService(cryptoService, userService, apiService, storageService,\n i18nService, cipherService);\nconst collectionService = new CollectionService(cryptoService, userService, storageService, i18nService);\nsearchService = new SearchService(cipherService, consoleLogService);\nconst policyService = new PolicyService(userService, storageService);\nconst sendService = new SendService(cryptoService, userService, apiService, storageService,\n i18nService, cryptoFunctionService);\nconst vaultTimeoutService = new VaultTimeoutService(cipherService, folderService, collectionService,\n cryptoService, platformUtilsService, storageService, messagingService, searchService, userService, tokenService,\n null, async () => messagingService.send('logout', { expired: false }));\nconst syncService = new SyncService(userService, apiService, settingsService,\n folderService, cipherService, cryptoService, collectionService, storageService, messagingService, policyService,\n sendService, async (expired: boolean) => messagingService.send('logout', { expired: expired }));\nconst passwordGenerationService = new PasswordGenerationService(cryptoService, storageService, policyService);\nconst totpService = new TotpService(storageService, cryptoFunctionService);\nconst containerService = new ContainerService(cryptoService);\nconst authService = new AuthService(cryptoService, apiService,\n userService, tokenService, appIdService, i18nService, platformUtilsService, messagingService, vaultTimeoutService,\n consoleLogService);\nconst exportService = new ExportService(folderService, cipherService, apiService);\nconst importService = new ImportService(cipherService, folderService, apiService, i18nService, collectionService,\n platformUtilsService);\nconst notificationsService = new NotificationsService(userService, syncService, appIdService,\n apiService, vaultTimeoutService, async () => messagingService.send('logout', { expired: true }), consoleLogService);\nconst environmentService = new EnvironmentService(apiService, storageService, notificationsService);\nconst auditService = new AuditService(cryptoFunctionService, apiService);\nconst eventLoggingService = new EventLoggingService(storageService, apiService, userService, cipherService);\n\nconst analytics = new Analytics(window, () => platformUtilsService.isDev() || platformUtilsService.isSelfHost(),\n platformUtilsService, storageService, appIdService);\ncontainerService.attachToWindow(window);\n\nexport function initFactory(): Function {\n return async () => {\n await (storageService as HtmlStorageService).init();\n const isDev = platformUtilsService.isDev();\n if (!isDev && platformUtilsService.isSelfHost()) {\n environmentService.baseUrl = window.location.origin;\n } else {\n environmentService.webVaultUrl = isDev ? 'https://localhost:8080' : null;\n environmentService.notificationsUrl = isDev ? 'http://localhost:61840' :\n 'https://notifications.bitwarden.com'; // window.location.origin + '/notifications';\n environmentService.enterpriseUrl = isDev ? 'http://localhost:52313' :\n 'https://portal.bitwarden.com'; // window.location.origin + '/portal';\n }\n apiService.setUrls({\n base: isDev ? null : window.location.origin,\n api: isDev ? 'http://localhost:4000' : null,\n identity: isDev ? 'http://localhost:33656' : null,\n events: isDev ? 'http://localhost:46273' : null,\n\n // Uncomment these (and comment out the above) if you want to target production\n // servers for local development.\n\n // base: null,\n // api: 'https://api.bitwarden.com',\n // identity: 'https://identity.bitwarden.com',\n // events: 'https://events.bitwarden.com',\n });\n setTimeout(() => notificationsService.init(environmentService), 3000);\n\n vaultTimeoutService.init(true);\n const locale = await storageService.get(ConstantsService.localeKey);\n await i18nService.init(locale);\n eventLoggingService.init(true);\n authService.init();\n const htmlEl = window.document.documentElement;\n htmlEl.classList.add('locale_' + i18nService.translationLocale);\n let theme = await storageService.get(ConstantsService.themeKey);\n if (theme == null) {\n theme = 'light';\n }\n htmlEl.classList.add('theme_' + theme);\n stateService.save(ConstantsService.disableFaviconKey,\n await storageService.get(ConstantsService.disableFaviconKey));\n stateService.save('enableGravatars', await storageService.get('enableGravatars'));\n };\n}\n\n@NgModule({\n imports: [\n ToasterModule,\n ],\n declarations: [],\n providers: [\n ValidationService,\n AuthGuardService,\n OrganizationGuardService,\n OrganizationTypeGuardService,\n UnauthGuardService,\n RouterService,\n EventService,\n { provide: AuditServiceAbstraction, useValue: auditService },\n { provide: AuthServiceAbstraction, useValue: authService },\n { provide: CipherServiceAbstraction, useValue: cipherService },\n { provide: FolderServiceAbstraction, useValue: folderService },\n { provide: CollectionServiceAbstraction, useValue: collectionService },\n { provide: EnvironmentServiceAbstraction, useValue: environmentService },\n { provide: TotpServiceAbstraction, useValue: totpService },\n { provide: TokenServiceAbstraction, useValue: tokenService },\n { provide: I18nServiceAbstraction, useValue: i18nService },\n { provide: CryptoServiceAbstraction, useValue: cryptoService },\n { provide: PlatformUtilsServiceAbstraction, useValue: platformUtilsService },\n { provide: PasswordGenerationServiceAbstraction, useValue: passwordGenerationService },\n { provide: ApiServiceAbstraction, useValue: apiService },\n { provide: SyncServiceAbstraction, useValue: syncService },\n { provide: UserServiceAbstraction, useValue: userService },\n { provide: MessagingServiceAbstraction, useValue: messagingService },\n { provide: BroadcasterService, useValue: broadcasterService },\n { provide: SettingsServiceAbstraction, useValue: settingsService },\n { provide: VaultTimeoutServiceAbstraction, useValue: vaultTimeoutService },\n { provide: StorageServiceAbstraction, useValue: storageService },\n { provide: StateServiceAbstraction, useValue: stateService },\n { provide: ExportServiceAbstraction, useValue: exportService },\n { provide: SearchServiceAbstraction, useValue: searchService },\n { provide: ImportServiceAbstraction, useValue: importService },\n { provide: NotificationsServiceAbstraction, useValue: notificationsService },\n { provide: CryptoFunctionServiceAbstraction, useValue: cryptoFunctionService },\n { provide: EventLoggingServiceAbstraction, useValue: eventLoggingService },\n { provide: PolicyServiceAbstraction, useValue: policyService },\n { provide: SendServiceAbstraction, useValue: sendService },\n {\n provide: APP_INITIALIZER,\n useFactory: initFactory,\n deps: [],\n multi: true,\n },\n {\n provide: LOCALE_ID,\n useFactory: () => i18nService.translationLocale,\n deps: [],\n },\n ],\n})\nexport class ServicesModule {\n}\n","import { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nexport class BroadcasterMessagingService implements MessagingService {\n constructor(private broadcasterService: BroadcasterService) { }\n\n send(subscriber: string, arg: any = {}) {\n const message = Object.assign({}, { command: subscriber }, arg);\n this.broadcasterService.send(message);\n }\n}\n","import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { ConstantsService } from 'jslib/services';\n\nexport class HtmlStorageService implements StorageService {\n private localStorageKeys = new Set(['appId', 'anonymousAppId', 'rememberedEmail', 'passwordGenerationOptions',\n ConstantsService.disableFaviconKey, 'rememberEmail', 'enableGravatars', 'enableFullWidth',\n ConstantsService.localeKey, ConstantsService.autoConfirmFingerprints,\n ConstantsService.vaultTimeoutKey, ConstantsService.vaultTimeoutActionKey, ConstantsService.ssoCodeVerifierKey,\n ConstantsService.ssoStateKey, 'ssoOrgIdentifier']);\n private localStorageStartsWithKeys = ['twoFactorToken_', ConstantsService.collapsedGroupingsKey + '_'];\n private memoryStorageStartsWithKeys = ['ciphers_', 'folders_', 'collections_', 'settings_', 'lastSync_'];\n private memoryStorage = new Map();\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n async init() {\n // LockOption -> VaultTimeout (uses the same legacy string value for backwards compat)\n const vaultTimeout = await this.get(ConstantsService.vaultTimeoutKey);\n if (vaultTimeout == null && !this.platformUtilsService.isDev()) {\n await this.save(ConstantsService.vaultTimeoutKey, 15);\n }\n\n // Default Action to lock\n const vaultTimeoutAction = await this.get(ConstantsService.vaultTimeoutActionKey);\n if (vaultTimeoutAction == null) {\n await this.save(ConstantsService.vaultTimeoutActionKey, 'lock');\n }\n }\n\n get(key: string): Promise {\n let json: string = null;\n if (this.isLocalStorage(key)) {\n json = window.localStorage.getItem(key);\n } else if (this.isMemoryStorage(key)) {\n json = this.memoryStorage.get(key);\n } else {\n json = window.sessionStorage.getItem(key);\n }\n if (json != null) {\n const obj = JSON.parse(json);\n return Promise.resolve(obj as T);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n if (obj == null) {\n return this.remove(key);\n }\n\n const json = JSON.stringify(obj);\n if (this.isLocalStorage(key)) {\n window.localStorage.setItem(key, json);\n } else if (this.isMemoryStorage(key)) {\n this.memoryStorage.set(key, json);\n } else {\n window.sessionStorage.setItem(key, json);\n }\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n if (this.isLocalStorage(key)) {\n window.localStorage.removeItem(key);\n } else if (this.isMemoryStorage(key)) {\n this.memoryStorage.delete(key);\n } else {\n window.sessionStorage.removeItem(key);\n }\n return Promise.resolve();\n }\n\n private isLocalStorage(key: string): boolean {\n if (this.localStorageKeys.has(key)) {\n return true;\n }\n for (const swKey of this.localStorageStartsWithKeys) {\n if (key.startsWith(swKey)) {\n return true;\n }\n }\n return false;\n }\n\n private isMemoryStorage(key: string): boolean {\n for (const swKey of this.memoryStorageStartsWithKeys) {\n if (key.startsWith(swKey)) {\n return true;\n }\n }\n return false;\n }\n}\n","export { ApiService } from './api.service';\nexport { AppIdService } from './appId.service';\nexport { AuditService } from './audit.service';\nexport { AuthService } from './auth.service';\nexport { CipherService } from './cipher.service';\nexport { CollectionService } from './collection.service';\nexport { ConstantsService } from './constants.service';\nexport { ContainerService } from './container.service';\nexport { CryptoService } from './crypto.service';\nexport { EnvironmentService } from './environment.service';\nexport { FolderService } from './folder.service';\nexport { I18nService } from './i18n.service';\nexport { PasswordGenerationService } from './passwordGeneration.service';\nexport { SettingsService } from './settings.service';\nexport { StateService } from './state.service';\nexport { SyncService } from './sync.service';\nexport { TokenService } from './token.service';\nexport { TotpService } from './totp.service';\nexport { UserService } from './user.service';\nexport { VaultTimeoutService } from './vaultTimeout.service';\n","import { BaseResponse } from './baseResponse';\n\nexport class ApiKeyResponse extends BaseResponse {\n apiKey: string;\n\n constructor(response: any) {\n super(response);\n this.apiKey = this.getResponseProperty('ApiKey');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { TransactionType } from '../../enums/transactionType';\n\nexport class BillingResponse extends BaseResponse {\n balance: number;\n paymentSource: BillingSourceResponse;\n invoices: BillingInvoiceResponse[] = [];\n transactions: BillingTransactionResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.balance = this.getResponseProperty('Balance');\n const paymentSource = this.getResponseProperty('PaymentSource');\n const transactions = this.getResponseProperty('Transactions');\n const invoices = this.getResponseProperty('Invoices');\n this.paymentSource = paymentSource == null ? null : new BillingSourceResponse(paymentSource);\n if (transactions != null) {\n this.transactions = transactions.map((t: any) => new BillingTransactionResponse(t));\n }\n if (invoices != null) {\n this.invoices = invoices.map((i: any) => new BillingInvoiceResponse(i));\n }\n }\n}\n\nexport class BillingSourceResponse extends BaseResponse {\n type: PaymentMethodType;\n cardBrand: string;\n description: string;\n needsVerification: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.cardBrand = this.getResponseProperty('CardBrand');\n this.description = this.getResponseProperty('Description');\n this.needsVerification = this.getResponseProperty('NeedsVerification');\n }\n}\n\nexport class BillingInvoiceResponse extends BaseResponse {\n url: string;\n pdfUrl: string;\n number: string;\n paid: boolean;\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.url = this.getResponseProperty('Url');\n this.pdfUrl = this.getResponseProperty('PdfUrl');\n this.number = this.getResponseProperty('Number');\n this.paid = this.getResponseProperty('Paid');\n this.date = this.getResponseProperty('Date');\n this.amount = this.getResponseProperty('Amount');\n }\n}\n\nexport class BillingTransactionResponse extends BaseResponse {\n createdDate: string;\n amount: number;\n refunded: boolean;\n partiallyRefunded: boolean;\n refundedAmount: number;\n type: TransactionType;\n paymentMethodType: PaymentMethodType;\n details: string;\n\n constructor(response: any) {\n super(response);\n this.createdDate = this.getResponseProperty('CreatedDate');\n this.amount = this.getResponseProperty('Amount');\n this.refunded = this.getResponseProperty('Refunded');\n this.partiallyRefunded = this.getResponseProperty('PartiallyRefunded');\n this.refundedAmount = this.getResponseProperty('RefundedAmount');\n this.type = this.getResponseProperty('Type');\n this.paymentMethodType = this.getResponseProperty('PaymentMethodType');\n this.details = this.getResponseProperty('Details');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class BreachAccountResponse extends BaseResponse {\n addedDate: string;\n breachDate: string;\n dataClasses: string[];\n description: string;\n domain: string;\n isActive: boolean;\n isVerified: boolean;\n logoPath: string;\n modifiedDate: string;\n name: string;\n pwnCount: number;\n title: string;\n\n constructor(response: any) {\n super(response);\n this.addedDate = this.getResponseProperty('AddedDate');\n this.breachDate = this.getResponseProperty('BreachDate');\n this.dataClasses = this.getResponseProperty('DataClasses');\n this.description = this.getResponseProperty('Description');\n this.domain = this.getResponseProperty('Domain');\n this.isActive = this.getResponseProperty('IsActive');\n this.isVerified = this.getResponseProperty('IsVerified');\n this.logoPath = this.getResponseProperty('LogoPath');\n this.modifiedDate = this.getResponseProperty('ModifiedDate');\n this.name = this.getResponseProperty('Name');\n this.pwnCount = this.getResponseProperty('PwnCount');\n this.title = this.getResponseProperty('Title');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class GlobalDomainResponse extends BaseResponse {\n type: number;\n domains: string[];\n excluded: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.domains = this.getResponseProperty('Domains');\n this.excluded = this.getResponseProperty('Excluded');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { DeviceType } from '../../enums/deviceType';\nimport { EventType } from '../../enums/eventType';\n\nexport class EventResponse extends BaseResponse {\n type: EventType;\n userId: string;\n organizationId: string;\n cipherId: string;\n collectionId: string;\n groupId: string;\n policyId: string;\n organizationUserId: string;\n actingUserId: string;\n date: string;\n deviceType: DeviceType;\n ipAddress: string;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.userId = this.getResponseProperty('UserId');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.cipherId = this.getResponseProperty('CipherId');\n this.collectionId = this.getResponseProperty('CollectionId');\n this.groupId = this.getResponseProperty('GroupId');\n this.policyId = this.getResponseProperty('PolicyId');\n this.organizationUserId = this.getResponseProperty('OrganizationUserId');\n this.actingUserId = this.getResponseProperty('ActingUserId');\n this.date = this.getResponseProperty('Date');\n this.deviceType = this.getResponseProperty('DeviceType');\n this.ipAddress = this.getResponseProperty('IpAddress');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nexport class GroupResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n accessAll: boolean;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.name = this.getResponseProperty('Name');\n this.accessAll = this.getResponseProperty('AccessAll');\n this.externalId = this.getResponseProperty('ExternalId');\n }\n}\n\nexport class GroupDetailsResponse extends GroupResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class IdentityTokenResponse extends BaseResponse {\n accessToken: string;\n expiresIn: number;\n refreshToken: string;\n tokenType: string;\n\n resetMasterPassword: boolean;\n privateKey: string;\n key: string;\n twoFactorToken: string;\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n this.accessToken = response.access_token;\n this.expiresIn = response.expires_in;\n this.refreshToken = response.refresh_token;\n this.tokenType = response.token_type;\n\n this.resetMasterPassword = this.getResponseProperty('ResetMasterPassword');\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.key = this.getResponseProperty('Key');\n this.twoFactorToken = this.getResponseProperty('TwoFactorToken');\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class IdentityTwoFactorResponse extends BaseResponse {\n twoFactorProviders: TwoFactorProviderType[];\n twoFactorProviders2 = new Map();\n\n constructor(response: any) {\n super(response);\n this.twoFactorProviders = this.getResponseProperty('TwoFactorProviders');\n const twoFactorProviders2 = this.getResponseProperty('TwoFactorProviders2');\n if (twoFactorProviders2 != null) {\n for (const prop in twoFactorProviders2) {\n if (twoFactorProviders2.hasOwnProperty(prop)) {\n this.twoFactorProviders2.set(parseInt(prop, null), twoFactorProviders2[prop]);\n }\n }\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class ListResponse extends BaseResponse {\n data: T[];\n continuationToken: string;\n\n constructor(response: any, t: new (dataResponse: any) => T) {\n super(response);\n const data = this.getResponseProperty('Data');\n this.data = data == null ? [] : data.map((dr: any) => new t(dr));\n this.continuationToken = this.getResponseProperty('ContinuationToken');\n }\n}\n","import { OrganizationResponse } from './organizationResponse';\nimport {\n BillingSubscriptionResponse,\n BillingSubscriptionUpcomingInvoiceResponse,\n} from './subscriptionResponse';\n\nexport class OrganizationSubscriptionResponse extends OrganizationResponse {\n storageName: string;\n storageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n expiration: string;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty('StorageName');\n this.storageGb = this.getResponseProperty('StorageGb');\n const subscription = this.getResponseProperty('Subscription');\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n const upcomingInvoice = this.getResponseProperty('UpcomingInvoice');\n this.upcomingInvoice = upcomingInvoice == null ? null :\n new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n this.expiration = this.getResponseProperty('Expiration');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nimport { PermissionsApi } from '../api/permissionsApi';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\n\nexport class OrganizationUserResponse extends BaseResponse {\n id: string;\n userId: string;\n type: OrganizationUserType;\n status: OrganizationUserStatusType;\n accessAll: boolean;\n permissions: PermissionsApi;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.permissions = new PermissionsApi(this.getResponseProperty('Permissions'));\n this.accessAll = this.getResponseProperty('AccessAll');\n }\n}\n\nexport class OrganizationUserUserDetailsResponse extends OrganizationUserResponse {\n name: string;\n email: string;\n twoFactorEnabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.twoFactorEnabled = this.getResponseProperty('TwoFactorEnabled');\n }\n}\n\nexport class OrganizationUserDetailsResponse extends OrganizationUserResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { ProfileResponse } from './profileResponse';\n\nexport class PaymentResponse extends BaseResponse {\n userProfile: ProfileResponse;\n paymentIntentClientSecret: string;\n success: boolean;\n\n constructor(response: any) {\n super(response);\n const userProfile = this.getResponseProperty('UserProfile');\n if (userProfile != null) {\n this.userProfile = new ProfileResponse(userProfile);\n }\n this.paymentIntentClientSecret = this.getResponseProperty('PaymentIntentClientSecret');\n this.success = this.getResponseProperty('Success');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class ProfileOrganizationResponse extends BaseResponse {\n id: string;\n name: string;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n key: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.usePolicies = this.getResponseProperty('UsePolicies');\n this.useGroups = this.getResponseProperty('UseGroups');\n this.useDirectory = this.getResponseProperty('UseDirectory');\n this.useEvents = this.getResponseProperty('UseEvents');\n this.useTotp = this.getResponseProperty('UseTotp');\n this.use2fa = this.getResponseProperty('Use2fa');\n this.useApi = this.getResponseProperty('UseApi');\n this.useBusinessPortal = this.getResponseProperty('UseBusinessPortal');\n this.useSso = this.getResponseProperty('UseSso');\n this.selfHost = this.getResponseProperty('SelfHost');\n this.usersGetPremium = this.getResponseProperty('UsersGetPremium');\n this.seats = this.getResponseProperty('Seats');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.key = this.getResponseProperty('Key');\n this.status = this.getResponseProperty('Status');\n this.type = this.getResponseProperty('Type');\n this.enabled = this.getResponseProperty('Enabled');\n this.ssoBound = this.getResponseProperty('SsoBound');\n this.identifier = this.getResponseProperty('Identifier');\n this.permissions = new PermissionsApi(this.getResponseProperty('permissions'));\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class PreloginResponse extends BaseResponse {\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nexport class SendAccessResponse extends BaseResponse {\n id: string;\n type: SendType;\n name: string;\n file: SendFileApi;\n text: SendTextApi;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n\n const text = this.getResponseProperty('Text');\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty('File');\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n\n this.expirationDate = this.getResponseProperty('ExpirationDate');\n this.creatorIdentifier = this.getResponseProperty('CreatorIdentifier');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SendFileDownloadDataResponse extends BaseResponse {\n\n id: string = null;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.url = this.getResponseProperty('Url');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\nimport { CollectionDetailsResponse } from './collectionResponse';\nimport { DomainsResponse } from './domainsResponse';\nimport { FolderResponse } from './folderResponse';\nimport { PolicyResponse } from './policyResponse';\nimport { ProfileResponse } from './profileResponse';\nimport { SendResponse } from './sendResponse';\n\nexport class SyncResponse extends BaseResponse {\n profile?: ProfileResponse;\n folders: FolderResponse[] = [];\n collections: CollectionDetailsResponse[] = [];\n ciphers: CipherResponse[] = [];\n domains?: DomainsResponse;\n policies?: PolicyResponse[] = [];\n sends: SendResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n const profile = this.getResponseProperty('Profile');\n if (profile != null) {\n this.profile = new ProfileResponse(profile);\n }\n\n const folders = this.getResponseProperty('Folders');\n if (folders != null) {\n this.folders = folders.map((f: any) => new FolderResponse(f));\n }\n\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new CollectionDetailsResponse(c));\n }\n\n const ciphers = this.getResponseProperty('Ciphers');\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n\n const domains = this.getResponseProperty('Domains');\n if (domains != null) {\n this.domains = new DomainsResponse(domains);\n }\n\n const policies = this.getResponseProperty('Policies');\n if (policies != null) {\n this.policies = policies.map((p: any) => new PolicyResponse(p));\n }\n\n const sends = this.getResponseProperty('Sends');\n if (sends != null) {\n this.sends = sends.map((s: any) => new SendResponse(s));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TaxInfoResponse extends BaseResponse {\n taxId: string;\n taxIdType: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n\n constructor(response: any) {\n super(response);\n this.taxId = this.getResponseProperty('TaxIdNumber');\n this.taxIdType = this.getResponseProperty('TaxIdType');\n this.line1 = this.getResponseProperty('Line1');\n this.line2 = this.getResponseProperty('Line2');\n this.city = this.getResponseProperty('City');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.country = this.getResponseProperty('Country');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TaxRateResponse extends BaseResponse {\n id: string;\n country: string;\n state: string;\n postalCode: string;\n rate: number;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.country = this.getResponseProperty('Country');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.rate = this.getResponseProperty('Rate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorAuthenticatorResponse extends BaseResponse {\n enabled: boolean;\n key: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.key = this.getResponseProperty('Key');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorDuoResponse extends BaseResponse {\n enabled: boolean;\n host: string;\n secretKey: string;\n integrationKey: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.host = this.getResponseProperty('Host');\n this.secretKey = this.getResponseProperty('SecretKey');\n this.integrationKey = this.getResponseProperty('IntegrationKey');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorEmailResponse extends BaseResponse {\n enabled: boolean;\n email: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.email = this.getResponseProperty('Email');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class TwoFactorProviderResponse extends BaseResponse {\n enabled: boolean;\n type: TwoFactorProviderType;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.type = this.getResponseProperty('Type');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorRecoverResponse extends BaseResponse {\n code: string;\n\n constructor(response: any) {\n super(response);\n this.code = this.getResponseProperty('Code');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorU2fResponse extends BaseResponse {\n enabled: boolean;\n keys: KeyResponse[];\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n const keys = this.getResponseProperty('Keys');\n this.keys = keys == null ? null : keys.map((k: any) => new KeyResponse(k));\n }\n}\n\nexport class KeyResponse extends BaseResponse {\n name: string;\n id: number;\n compromised: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.id = this.getResponseProperty('Id');\n this.compromised = this.getResponseProperty('Compromised');\n }\n}\n\nexport class ChallengeResponse extends BaseResponse {\n userId: string;\n appId: string;\n challenge: string;\n version: string;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.appId = this.getResponseProperty('AppId');\n this.challenge = this.getResponseProperty('Challenge');\n this.version = this.getResponseProperty('Version');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorYubiKeyResponse extends BaseResponse {\n enabled: boolean;\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.key1 = this.getResponseProperty('Key1');\n this.key2 = this.getResponseProperty('Key2');\n this.key3 = this.getResponseProperty('Key3');\n this.key4 = this.getResponseProperty('Key4');\n this.key5 = this.getResponseProperty('Key5');\n this.nfc = this.getResponseProperty('Nfc');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class UserKeyResponse extends BaseResponse {\n userId: string;\n publicKey: string;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.publicKey = this.getResponseProperty('PublicKey');\n }\n}\n","/**\n * Use as a Decorator on async functions, it will limit how many times the function can be\n * in-flight at a time.\n *\n * Calls beyond the limit will be queued, and run when one of the active calls finishes\n */\nexport function throttle(limit: number, throttleKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise>) => {\n const originalMethod: () => Promise = descriptor.value;\n const allThrottles = new Map void)[]>>();\n\n const getThrottles = (obj: any) => {\n let throttles = allThrottles.get(obj);\n if (throttles != null) {\n return throttles;\n }\n throttles = new Map void)[]>();\n allThrottles.set(obj, throttles);\n return throttles;\n };\n\n return {\n value: function(...args: any[]) {\n const throttles = getThrottles(this);\n const argsThrottleKey = throttleKey(args);\n let queue = throttles.get(argsThrottleKey);\n if (queue == null) {\n queue = [];\n throttles.set(argsThrottleKey, queue);\n }\n\n return new Promise((resolve, reject) => {\n const exec = () => {\n const onFinally = () => {\n queue.splice(queue.indexOf(exec), 1);\n if (queue.length >= limit) {\n queue[limit - 1]();\n } else if (queue.length === 0) {\n throttles.delete(argsThrottleKey);\n if (throttles.size === 0) {\n allThrottles.delete(this);\n }\n }\n };\n originalMethod.apply(this, args).then((val: any) => {\n onFinally();\n return val;\n }).catch((err: any) => {\n onFinally();\n throw err;\n }).then(resolve, reject);\n };\n queue.push(exec);\n if (queue.length <= limit) {\n exec();\n }\n });\n },\n };\n };\n}\n","export class CipherBulkMoveRequest {\n ids: string[];\n folderId: string;\n\n constructor(ids: string[], folderId: string) {\n this.ids = ids == null ? [] : ids;\n this.folderId = folderId;\n }\n}\n","export class CipherBulkRestoreRequest {\n ids: string[];\n\n constructor(ids: string[]) {\n this.ids = ids == null ? [] : ids;\n }\n}\n","import { CipherWithIdRequest } from './cipherWithIdRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherBulkShareRequest {\n ciphers: CipherWithIdRequest[];\n collectionIds: string[];\n\n constructor(ciphers: Cipher[], collectionIds: string[]) {\n if (ciphers != null) {\n this.ciphers = [];\n ciphers.forEach(c => {\n this.ciphers.push(new CipherWithIdRequest(c));\n });\n }\n this.collectionIds = collectionIds;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherShareRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { CipherView } from '../view';\n\nconst CacheTTL = 3000;\n\nexport class SortedCiphersCache {\n private readonly sortedCiphersByUrl: Map = new Map();\n private readonly timeouts: Map = new Map();\n\n constructor(private readonly comparator: (a: CipherView, b: CipherView) => number) { }\n\n isCached(url: string) {\n return this.sortedCiphersByUrl.has(url);\n }\n\n addCiphers(url: string, ciphers: CipherView[]) {\n ciphers.sort(this.comparator);\n this.sortedCiphersByUrl.set(url, new Ciphers(ciphers));\n this.resetTimer(url);\n }\n\n getLastUsed(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastUsed() : null;\n }\n\n getLastLaunched(url: string) {\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastLaunched() : null;\n }\n\n getNext(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getNext() : null;\n }\n\n updateLastUsedIndex(url: string) {\n if (this.isCached(url)) {\n this.sortedCiphersByUrl.get(url).updateLastUsedIndex();\n }\n }\n\n clear() {\n this.sortedCiphersByUrl.clear();\n this.timeouts.clear();\n }\n\n private resetTimer(url: string) {\n clearTimeout(this.timeouts.get(url));\n this.timeouts.set(url, setTimeout(() => {\n this.sortedCiphersByUrl.delete(url);\n this.timeouts.delete(url);\n }, CacheTTL));\n }\n}\n\nclass Ciphers {\n lastUsedIndex = -1;\n\n constructor(private readonly ciphers: CipherView[]) { }\n\n getLastUsed() {\n this.lastUsedIndex = Math.max(this.lastUsedIndex, 0);\n return this.ciphers[this.lastUsedIndex];\n }\n\n getLastLaunched() {\n const usedCiphers = this.ciphers.filter(cipher => cipher.localData?.lastLaunched);\n const sortedCiphers = usedCiphers.sort((x, y) => y.localData.lastLaunched.valueOf() - x.localData.lastLaunched.valueOf());\n return sortedCiphers[0];\n }\n\n getNextIndex() {\n return (this.lastUsedIndex + 1) % this.ciphers.length;\n }\n\n getNext() {\n return this.ciphers[this.getNextIndex()];\n }\n\n updateLastUsedIndex() {\n this.lastUsedIndex = this.getNextIndex();\n }\n}\n","export class TreeNode {\n parent: T;\n node: T;\n children: TreeNode[] = [];\n\n constructor(node: T, name: string, parent: T) {\n this.parent = parent;\n this.node = node;\n this.node.name = name;\n }\n}\n\nexport interface ITreeNodeObject {\n id: string;\n name: string;\n}\n","import Domain from './domainBase';\n\nexport class PasswordGeneratorPolicyOptions extends Domain {\n defaultType: string = '';\n minLength: number = 0;\n useUppercase: boolean = false;\n useLowercase: boolean = false;\n useNumbers: boolean = false;\n numberCount: number = 0;\n useSpecial: boolean = false;\n specialCount: number = 0;\n minNumberWords: number = 0;\n capitalize: boolean = false;\n includeNumber: boolean = false;\n\n inEffect() {\n return this.defaultType !== '' ||\n this.minLength > 0 ||\n this.numberCount > 0 ||\n this.specialCount > 0 ||\n this.useUppercase ||\n this.useLowercase ||\n this.useNumbers ||\n this.useSpecial ||\n this.minNumberWords > 0 ||\n this.capitalize ||\n this.includeNumber;\n }\n}\n","import { ProfileOrganizationResponse } from '../response/profileOrganizationResponse';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationData {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n\n constructor(response: ProfileOrganizationResponse) {\n this.id = response.id;\n this.name = response.name;\n this.status = response.status;\n this.type = response.type;\n this.enabled = response.enabled;\n this.usePolicies = response.usePolicies;\n this.useGroups = response.useGroups;\n this.useDirectory = response.useDirectory;\n this.useEvents = response.useEvents;\n this.useTotp = response.useTotp;\n this.use2fa = response.use2fa;\n this.useApi = response.useApi;\n this.useBusinessPortal = response.useBusinessPortal;\n this.useSso = response.useSso;\n this.selfHost = response.selfHost;\n this.usersGetPremium = response.usersGetPremium;\n this.seats = response.seats;\n this.maxCollections = response.maxCollections;\n this.maxStorageGb = response.maxStorageGb;\n this.ssoBound = response.ssoBound;\n this.identifier = response.identifier;\n this.permissions = response.permissions;\n }\n}\n","import { SendFileApi } from '../api/sendFileApi';\n\nexport class SendFileData {\n id: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(data?: SendFileApi) {\n if (data == null) {\n return;\n }\n\n this.id = data.id;\n this.fileName = data.fileName;\n this.key = data.key;\n this.size = data.size;\n this.sizeName = data.sizeName;\n }\n}\n","import { SendTextApi } from '../api/sendTextApi';\n\nexport class SendTextData {\n text: string;\n hidden: boolean;\n\n constructor(data?: SendTextApi) {\n if (data == null) {\n return;\n }\n\n this.text = data.text;\n this.hidden = data.hidden;\n }\n}\n","import { I18nService as BaseI18nService } from 'jslib/services/i18n.service';\n\nexport class I18nService extends BaseI18nService {\n constructor(systemLanguage: string, localesDirectory: string) {\n super(systemLanguage || 'en-US', localesDirectory, async (formattedLocale: string) => {\n const filePath = this.localesDirectory + '/' + formattedLocale + '/messages.json?cache=' +\n process.env.CACHE_TAG;\n const localesResult = await fetch(filePath);\n const locales = await localesResult.json();\n return locales;\n });\n\n this.supportedTranslationLocales = [\n 'en', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'es', 'et', 'fr', 'he', 'it', 'ja', 'ko', 'lv', 'ml', 'nb',\n 'nl', 'pl', 'pt-PT', 'pt-BR', 'ru', 'sk', 'sv', 'uk', 'zh-CN', 'zh-TW',\n ];\n }\n}\n","import { StorageService } from 'jslib/abstractions/storage.service';\n\nexport class MemoryStorageService implements StorageService {\n private store = new Map();\n\n get(key: string): Promise {\n if (this.store.has(key)) {\n const obj = this.store.get(key);\n return Promise.resolve(obj as T);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n if (obj == null) {\n return this.remove(key);\n }\n this.store.set(key, obj);\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n this.store.delete(key);\n return Promise.resolve();\n }\n}\n","import Swal, { SweetAlertIcon } from 'sweetalert2/dist/sweetalert2.js';\n\nimport { DeviceType } from 'jslib/enums/deviceType';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\nexport class WebPlatformUtilsService implements PlatformUtilsService {\n identityClientId: string = 'web';\n\n private browserCache: DeviceType = null;\n\n constructor(private i18nService: I18nService, private messagingService: MessagingService) { }\n\n getDevice(): DeviceType {\n if (this.browserCache != null) {\n return this.browserCache;\n }\n\n if (navigator.userAgent.indexOf(' Firefox/') !== -1 || navigator.userAgent.indexOf(' Gecko/') !== -1) {\n this.browserCache = DeviceType.FirefoxBrowser;\n } else if (navigator.userAgent.indexOf(' OPR/') >= 0) {\n this.browserCache = DeviceType.OperaBrowser;\n } else if (navigator.userAgent.indexOf(' Edg/') !== -1) {\n this.browserCache = DeviceType.EdgeBrowser;\n } else if (navigator.userAgent.indexOf(' Vivaldi/') !== -1) {\n this.browserCache = DeviceType.VivaldiBrowser;\n } else if (navigator.userAgent.indexOf(' Safari/') !== -1 && navigator.userAgent.indexOf('Chrome') === -1) {\n this.browserCache = DeviceType.SafariBrowser;\n } else if ((window as any).chrome && navigator.userAgent.indexOf(' Chrome/') !== -1) {\n this.browserCache = DeviceType.ChromeBrowser;\n } else if (navigator.userAgent.indexOf(' Trident/') !== -1) {\n this.browserCache = DeviceType.IEBrowser;\n } else {\n this.browserCache = DeviceType.UnknownBrowser;\n }\n\n return this.browserCache;\n }\n\n getDeviceString(): string {\n const device = DeviceType[this.getDevice()].toLowerCase();\n return device.replace('browser', '');\n }\n\n isFirefox(): boolean {\n return this.getDevice() === DeviceType.FirefoxBrowser;\n }\n\n isChrome(): boolean {\n return this.getDevice() === DeviceType.ChromeBrowser;\n }\n\n isEdge(): boolean {\n return this.getDevice() === DeviceType.EdgeBrowser;\n }\n\n isOpera(): boolean {\n return this.getDevice() === DeviceType.OperaBrowser;\n }\n\n isVivaldi(): boolean {\n return this.getDevice() === DeviceType.VivaldiBrowser;\n }\n\n isSafari(): boolean {\n return this.getDevice() === DeviceType.SafariBrowser;\n }\n\n isIE(): boolean {\n return this.getDevice() === DeviceType.IEBrowser;\n }\n\n isMacAppStore(): boolean {\n return false;\n }\n\n analyticsId(): string {\n return 'UA-81915606-3';\n }\n\n isViewOpen(): Promise {\n return Promise.resolve(false);\n }\n\n lockTimeout(): number {\n return null;\n }\n\n launchUri(uri: string, options?: any): void {\n const a = document.createElement('a');\n a.href = uri;\n if (options == null || !options.sameWindow) {\n a.target = '_blank';\n a.rel = 'noreferrer noopener';\n }\n a.classList.add('d-none');\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n\n saveFile(win: Window, blobData: any, blobOptions: any, fileName: string): void {\n let blob: Blob = null;\n let type: string = null;\n const fileNameLower = fileName.toLowerCase();\n let doDownload = true;\n if (fileNameLower.endsWith('.pdf')) {\n type = 'application/pdf';\n doDownload = false;\n } else if (fileNameLower.endsWith('.xlsx')) {\n type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n } else if (fileNameLower.endsWith('.docx')) {\n type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n } else if (fileNameLower.endsWith('.pptx')) {\n type = 'application/vnd.openxmlformats-officedocument.presentationml.presentation';\n } else if (fileNameLower.endsWith('.csv')) {\n type = 'text/csv';\n } else if (fileNameLower.endsWith('.png')) {\n type = 'image/png';\n } else if (fileNameLower.endsWith('.jpg') || fileNameLower.endsWith('.jpeg')) {\n type = 'image/jpeg';\n } else if (fileNameLower.endsWith('.gif')) {\n type = 'image/gif';\n }\n if (type != null) {\n blobOptions = blobOptions || {};\n if (blobOptions.type == null) {\n blobOptions.type = type;\n }\n }\n if (blobOptions != null && !this.isIE()) {\n blob = new Blob([blobData], blobOptions);\n } else {\n blob = new Blob([blobData]);\n }\n if (navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, fileName);\n } else {\n const a = win.document.createElement('a');\n if (doDownload) {\n a.download = fileName;\n } else {\n a.target = '_blank';\n }\n a.href = URL.createObjectURL(blob);\n a.style.position = 'fixed';\n win.document.body.appendChild(a);\n a.click();\n win.document.body.removeChild(a);\n }\n }\n\n getApplicationVersion(): string {\n return process.env.APPLICATION_VERSION || '-';\n }\n\n supportsU2f(win: Window): boolean {\n if (win != null && (win as any).u2f != null) {\n return true;\n }\n return this.isChrome() || ((this.isEdge() || this.isOpera() || this.isVivaldi()) && !Utils.isMobileBrowser);\n }\n\n supportsDuo(): boolean {\n return true;\n }\n\n showToast(type: 'error' | 'success' | 'warning' | 'info', title: string, text: string | string[],\n options?: any): void {\n this.messagingService.send('showToast', {\n text: text,\n title: title,\n type: type,\n options: options,\n });\n }\n\n async showDialog(body: string, title?: string, confirmText?: string, cancelText?: string, type?: string,\n bodyIsHtml: boolean = false) {\n let iconClasses: string = null;\n if (type != null) {\n // If you add custom types to this part, the type to SweetAlertIcon cast below needs to be changed.\n switch (type) {\n case 'success':\n iconClasses = 'fa-check text-success';\n break;\n case 'warning':\n iconClasses = 'fa-warning text-warning';\n break;\n case 'error':\n iconClasses = 'fa-bolt text-danger';\n break;\n case 'info':\n iconClasses = 'fa-info-circle text-info';\n break;\n default:\n break;\n }\n }\n\n const iconHtmlStr = iconClasses != null ? `` : undefined;\n const confirmed = await Swal.fire({\n heightAuto: false,\n buttonsStyling: false,\n icon: type as SweetAlertIcon, // required to be any of the SweetAlertIcons to output the iconHtml.\n iconHtml: iconHtmlStr,\n text: bodyIsHtml ? null : body,\n html: bodyIsHtml ? body : null,\n title: title,\n showCancelButton: (cancelText != null),\n cancelButtonText: cancelText,\n showConfirmButton: true,\n confirmButtonText: confirmText == null ? this.i18nService.t('ok') : confirmText,\n });\n\n return confirmed.value;\n }\n\n eventTrack(action: string, label?: string, options?: any) {\n this.messagingService.send('analyticsEventTrack', {\n action: action,\n label: label,\n options: options,\n });\n }\n\n isDev(): boolean {\n return process.env.ENV === 'development';\n }\n\n isSelfHost(): boolean {\n return process.env.SELF_HOST.toString() === 'true';\n }\n\n copyToClipboard(text: string, options?: any): void {\n let win = window;\n let doc = window.document;\n if (options && (options.window || options.win)) {\n win = options.window || options.win;\n doc = win.document;\n } else if (options && options.doc) {\n doc = options.doc;\n }\n if ((win as any).clipboardData && (win as any).clipboardData.setData) {\n // IE specific code path to prevent textarea being shown while dialog is visible.\n (win as any).clipboardData.setData('Text', text);\n } else if (doc.queryCommandSupported && doc.queryCommandSupported('copy')) {\n const textarea = doc.createElement('textarea');\n textarea.textContent = text;\n // Prevent scrolling to bottom of page in MS Edge.\n textarea.style.position = 'fixed';\n let copyEl = doc.body;\n // For some reason copy command won't work when modal is open if appending to body\n if (doc.body.classList.contains('modal-open')) {\n copyEl = doc.body.querySelector('.modal');\n }\n copyEl.appendChild(textarea);\n textarea.select();\n try {\n // Security exception may be thrown by some browsers.\n doc.execCommand('copy');\n } catch (e) {\n // tslint:disable-next-line\n console.warn('Copy to clipboard failed.', e);\n } finally {\n copyEl.removeChild(textarea);\n }\n }\n }\n\n readFromClipboard(options?: any): Promise {\n throw new Error('Cannot read from clipboard on web.');\n }\n\n supportsBiometric() {\n return Promise.resolve(false);\n }\n\n authenticateBiometric() {\n return Promise.resolve(false);\n }\n\n supportsSecureStorage() {\n return false;\n }\n\n getDefaultSystemTheme() {\n return null as 'light' | 'dark';\n }\n\n onDefaultSystemThemeChange() {\n /* noop */\n }\n}\n","import { AppIdService } from '../abstractions/appId.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { ConstantsService } from '../services/constants.service';\n\nimport { DeviceType } from '../enums/deviceType';\n\nconst GaObj = 'ga';\n\nexport const AnalyticsIds = {\n [DeviceType.ChromeExtension]: 'UA-81915606-6',\n [DeviceType.FirefoxExtension]: 'UA-81915606-7',\n [DeviceType.OperaExtension]: 'UA-81915606-8',\n [DeviceType.EdgeExtension]: 'UA-81915606-9',\n [DeviceType.VivaldiExtension]: 'UA-81915606-15',\n [DeviceType.SafariExtension]: 'UA-81915606-16',\n [DeviceType.WindowsDesktop]: 'UA-81915606-17',\n [DeviceType.LinuxDesktop]: 'UA-81915606-19',\n [DeviceType.MacOsDesktop]: 'UA-81915606-18',\n};\n\nexport class Analytics {\n private gaTrackingId: string = null;\n private defaultDisabled = false;\n private appVersion: string;\n\n constructor(win: Window, private gaFilter?: () => boolean,\n private platformUtilsService?: PlatformUtilsService, private storageService?: StorageService,\n private appIdService?: AppIdService, private dependencyResolver?: () => any) {\n if (dependencyResolver != null) {\n const deps = dependencyResolver();\n if (platformUtilsService == null && deps.platformUtilsService) {\n this.platformUtilsService = deps.platformUtilsService as PlatformUtilsService;\n }\n if (storageService == null && deps.storageService) {\n this.storageService = deps.storageService as StorageService;\n }\n if (appIdService == null && deps.appIdService) {\n this.appIdService = deps.appIdService as AppIdService;\n }\n }\n\n this.appVersion = this.platformUtilsService.getApplicationVersion();\n this.defaultDisabled = this.platformUtilsService.getDevice() === DeviceType.FirefoxExtension ||\n this.platformUtilsService.isMacAppStore();\n this.gaTrackingId = this.platformUtilsService.analyticsId();\n\n (win as any).GoogleAnalyticsObject = GaObj;\n (win as any)[GaObj] = async (action: string, param1: any, param2?: any) => {\n await this.ga(action, param1, param2);\n };\n }\n\n async ga(action: string, param1: any, param2?: any) {\n return;\n\n if (this.gaFilter != null && this.gaFilter()) {\n return;\n }\n\n const disabled = await this.storageService.get(ConstantsService.disableGaKey);\n if ((this.defaultDisabled && disabled == null) || disabled != null && disabled) {\n return;\n }\n\n if (action !== 'send' || !param1) {\n return;\n }\n\n const gaAnonAppId = await this.appIdService.getAnonymousAppId();\n const version = encodeURIComponent(this.appVersion);\n let message = 'v=1&tid=' + this.gaTrackingId + '&cid=' + gaAnonAppId + '&cd1=' + version;\n\n if (param1 === 'pageview' && param2) {\n message += this.gaTrackPageView(param2);\n } else if (typeof param1 === 'object' && param1.hitType === 'pageview') {\n message += this.gaTrackPageView(param1.page);\n } else if (param1 === 'event' && param2) {\n message += this.gaTrackEvent(param2);\n } else if (typeof param1 === 'object' && param1.hitType === 'event') {\n message += this.gaTrackEvent(param1);\n }\n\n const request = new XMLHttpRequest();\n request.open('POST', 'https://www.google-analytics.com/collect', true);\n request.send(message);\n }\n\n private gaTrackEvent(options: any) {\n return '&t=event&ec=' + (options.eventCategory ? encodeURIComponent(options.eventCategory) : 'Event') +\n '&ea=' + encodeURIComponent(options.eventAction) +\n (options.eventLabel ? '&el=' + encodeURIComponent(options.eventLabel) : '') +\n (options.eventValue ? '&ev=' + encodeURIComponent(options.eventValue) : '') +\n (options.page ? '&dp=' + this.cleanPagePath(options.page) : '');\n }\n\n private gaTrackPageView(pagePath: string) {\n return '&t=pageview&dp=' + this.cleanPagePath(pagePath);\n }\n\n private cleanPagePath(pagePath: string) {\n const paramIndex = pagePath.indexOf('?');\n if (paramIndex > -1) {\n pagePath = pagePath.substring(0, paramIndex);\n }\n if (pagePath.indexOf('!/') === 0 || pagePath.indexOf('#/') === 0) {\n pagePath = pagePath.substring(1);\n }\n const pathParts = pagePath.split('/');\n const newPathParts: string[] = [];\n pathParts.forEach(p => {\n if (p.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)) {\n newPathParts.push('__guid__');\n } else {\n newPathParts.push(p);\n }\n });\n return encodeURIComponent(newPathParts.join('/'));\n }\n}\n","export enum LogLevelType {\n Debug,\n Info,\n Warning,\n Error,\n}\n","import { EventType } from '../enums/eventType';\n\nimport { EventData } from '../models/data/eventData';\n\nimport { EventRequest } from '../models/request/eventRequest';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { EventService as EventServiceAbstraction } from '../abstractions/event.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ConstantsService } from './constants.service';\n\nexport class EventService implements EventServiceAbstraction {\n private inited = false;\n\n constructor(private storageService: StorageService, private apiService: ApiService,\n private userService: UserService, private cipherService: CipherService) { }\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.uploadEvents();\n setInterval(() => this.uploadEvents(), 60 * 1000); // check every 60 seconds\n }\n }\n\n async collect(eventType: EventType, cipherId: string = null, uploadImmediately = false): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n const organizations = await this.userService.getAllOrganizations();\n if (organizations == null) {\n return;\n }\n const orgIds = new Set(organizations.filter(o => o.useEvents).map(o => o.id));\n if (orgIds.size === 0) {\n return;\n }\n if (cipherId != null) {\n const cipher = await this.cipherService.get(cipherId);\n if (cipher == null || cipher.organizationId == null || !orgIds.has(cipher.organizationId)) {\n return;\n }\n }\n let eventCollection = await this.storageService.get(ConstantsService.eventCollectionKey);\n if (eventCollection == null) {\n eventCollection = [];\n }\n const event = new EventData();\n event.type = eventType;\n event.cipherId = cipherId;\n event.date = new Date().toISOString();\n eventCollection.push(event);\n await this.storageService.save(ConstantsService.eventCollectionKey, eventCollection);\n if (uploadImmediately) {\n await this.uploadEvents();\n }\n }\n\n async uploadEvents(): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n const eventCollection = await this.storageService.get(ConstantsService.eventCollectionKey);\n if (eventCollection == null || eventCollection.length === 0) {\n return;\n }\n const request = eventCollection.map(e => {\n const req = new EventRequest();\n req.type = e.type;\n req.cipherId = e.cipherId;\n req.date = e.date;\n return req;\n });\n try {\n await this.apiService.postEventsCollect(request);\n this.clearEvents();\n } catch { }\n }\n\n async clearEvents(): Promise {\n await this.storageService.remove(ConstantsService.eventCollectionKey);\n }\n}\n","import { EventType } from '../../enums/eventType';\n\nexport class EventData {\n type: EventType;\n cipherId: string;\n date: string;\n}\n","import { EventType } from '../../enums/eventType';\n\nexport class EventRequest {\n type: EventType;\n cipherId: string;\n date: string;\n}\n","import * as papa from 'papaparse';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { ExportService as ExportServiceAbstraction } from '../abstractions/export.service';\nimport { FolderService } from '../abstractions/folder.service';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { Cipher } from '../models/domain/cipher';\nimport { Collection } from '../models/domain/collection';\nimport { Folder } from '../models/domain/folder';\n\nimport { CipherData } from '../models/data/cipherData';\nimport { CollectionData } from '../models/data/collectionData';\nimport { CollectionDetailsResponse } from '../models/response/collectionResponse';\n\nimport { CipherWithIds as CipherExport } from '../models/export/cipherWithIds';\nimport { CollectionWithId as CollectionExport } from '../models/export/collectionWithId';\nimport { FolderWithId as FolderExport } from '../models/export/folderWithId';\n\nexport class ExportService implements ExportServiceAbstraction {\n constructor(private folderService: FolderService, private cipherService: CipherService,\n private apiService: ApiService) { }\n\n async getExport(format: 'csv' | 'json' | 'encrypted_json' = 'csv'): Promise {\n if (format === 'encrypted_json') {\n return this.getEncryptedExport();\n } else {\n return this.getDecryptedExport(format);\n }\n }\n\n async getOrganizationExport(organizationId: string,\n format: 'csv' | 'json' | 'encrypted_json' = 'csv'): Promise {\n if (format === 'encrypted_json') {\n return this.getOrganizationEncryptedExport(organizationId);\n } else {\n return this.getOrganizationDecryptedExport(organizationId, format);\n }\n }\n\n getFileName(prefix: string = null, extension: string = 'csv'): string {\n const now = new Date();\n const dateString =\n now.getFullYear() + '' + this.padNumber(now.getMonth() + 1, 2) + '' + this.padNumber(now.getDate(), 2) +\n this.padNumber(now.getHours(), 2) + '' + this.padNumber(now.getMinutes(), 2) +\n this.padNumber(now.getSeconds(), 2);\n\n return 'bitwarden' + (prefix ? ('_' + prefix) : '') + '_export_' + dateString + '.' + extension;\n }\n\n private async getDecryptedExport(format: 'json' | 'csv'): Promise {\n let decFolders: FolderView[] = [];\n let decCiphers: CipherView[] = [];\n const promises = [];\n\n promises.push(this.folderService.getAllDecrypted().then(folders => {\n decFolders = folders;\n }));\n\n promises.push(this.cipherService.getAllDecrypted().then(ciphers => {\n decCiphers = ciphers.filter(f => f.deletedDate == null);\n }));\n\n await Promise.all(promises);\n\n if (format === 'csv') {\n const foldersMap = new Map();\n decFolders.forEach(f => {\n if (f.id != null) {\n foldersMap.set(f.id, f);\n }\n });\n\n const exportCiphers: any[] = [];\n decCiphers.forEach(c => {\n // only export logins and secure notes\n if (c.type !== CipherType.Login && c.type !== CipherType.SecureNote) {\n return;\n }\n if (c.organizationId != null) {\n return;\n }\n\n const cipher: any = {};\n cipher.folder = c.folderId != null && foldersMap.has(c.folderId) ?\n foldersMap.get(c.folderId).name : null;\n cipher.favorite = c.favorite ? 1 : null;\n this.buildCommonCipher(cipher, c);\n exportCiphers.push(cipher);\n });\n\n return papa.unparse(exportCiphers);\n } else {\n const jsonDoc: any = {\n encrypted: false,\n folders: [],\n items: [],\n };\n\n decFolders.forEach(f => {\n if (f.id == null) {\n return;\n }\n const folder = new FolderExport();\n folder.build(f);\n jsonDoc.folders.push(folder);\n });\n\n decCiphers.forEach(c => {\n if (c.organizationId != null) {\n return;\n }\n const cipher = new CipherExport();\n cipher.build(c);\n cipher.collectionIds = null;\n jsonDoc.items.push(cipher);\n });\n\n return JSON.stringify(jsonDoc, null, ' ');\n }\n }\n\n private async getEncryptedExport(): Promise {\n let folders: Folder[] = [];\n let ciphers: Cipher[] = [];\n const promises = [];\n\n promises.push(this.folderService.getAll().then(f => {\n folders = f;\n }));\n\n promises.push(this.cipherService.getAll().then(c => {\n ciphers = c.filter(f => f.deletedDate == null);\n }));\n\n await Promise.all(promises);\n\n const jsonDoc: any = {\n encrypted: true,\n folders: [],\n items: [],\n };\n\n folders.forEach(f => {\n if (f.id == null) {\n return;\n }\n const folder = new FolderExport();\n folder.build(f);\n jsonDoc.folders.push(folder);\n });\n\n ciphers.forEach(c => {\n if (c.organizationId != null) {\n return;\n }\n const cipher = new CipherExport();\n cipher.build(c);\n cipher.collectionIds = null;\n jsonDoc.items.push(cipher);\n });\n\n return JSON.stringify(jsonDoc, null, ' ');\n }\n\n private async getOrganizationDecryptedExport(organizationId: string, format: 'json' | 'csv'): Promise {\n const decCollections: CollectionView[] = [];\n const decCiphers: CipherView[] = [];\n const promises = [];\n\n promises.push(this.apiService.getCollections(organizationId).then(collections => {\n const collectionPromises: any = [];\n if (collections != null && collections.data != null && collections.data.length > 0) {\n collections.data.forEach(c => {\n const collection = new Collection(new CollectionData(c as CollectionDetailsResponse));\n collectionPromises.push(collection.decrypt().then(decCol => {\n decCollections.push(decCol);\n }));\n });\n }\n return Promise.all(collectionPromises);\n }));\n\n promises.push(this.apiService.getCiphersOrganization(organizationId).then(ciphers => {\n const cipherPromises: any = [];\n if (ciphers != null && ciphers.data != null && ciphers.data.length > 0) {\n ciphers.data.filter(c => c.deletedDate === null).forEach(c => {\n const cipher = new Cipher(new CipherData(c));\n cipherPromises.push(cipher.decrypt().then(decCipher => {\n decCiphers.push(decCipher);\n }));\n });\n }\n return Promise.all(cipherPromises);\n }));\n\n await Promise.all(promises);\n\n if (format === 'csv') {\n const collectionsMap = new Map();\n decCollections.forEach(c => {\n collectionsMap.set(c.id, c);\n });\n\n const exportCiphers: any[] = [];\n decCiphers.forEach(c => {\n // only export logins and secure notes\n if (c.type !== CipherType.Login && c.type !== CipherType.SecureNote) {\n return;\n }\n\n const cipher: any = {};\n cipher.collections = [];\n if (c.collectionIds != null) {\n cipher.collections = c.collectionIds.filter(id => collectionsMap.has(id))\n .map(id => collectionsMap.get(id).name);\n }\n this.buildCommonCipher(cipher, c);\n exportCiphers.push(cipher);\n });\n\n return papa.unparse(exportCiphers);\n } else {\n const jsonDoc: any = {\n encrypted: false,\n collections: [],\n items: [],\n };\n\n decCollections.forEach(c => {\n const collection = new CollectionExport();\n collection.build(c);\n jsonDoc.collections.push(collection);\n });\n\n decCiphers.forEach(c => {\n const cipher = new CipherExport();\n cipher.build(c);\n jsonDoc.items.push(cipher);\n });\n return JSON.stringify(jsonDoc, null, ' ');\n }\n }\n\n private async getOrganizationEncryptedExport(organizationId: string): Promise {\n const collections: Collection[] = [];\n const ciphers: Cipher[] = [];\n const promises = [];\n\n promises.push(this.apiService.getCollections(organizationId).then(c => {\n const collectionPromises: any = [];\n if (c != null && c.data != null && c.data.length > 0) {\n c.data.forEach(r => {\n const collection = new Collection(new CollectionData(r as CollectionDetailsResponse));\n collections.push(collection);\n });\n }\n return Promise.all(collectionPromises);\n }));\n\n promises.push(this.apiService.getCiphersOrganization(organizationId).then(c => {\n const cipherPromises: any = [];\n if (c != null && c.data != null && c.data.length > 0) {\n c.data.filter(item => item.deletedDate === null).forEach(item => {\n const cipher = new Cipher(new CipherData(item));\n ciphers.push(cipher);\n });\n }\n return Promise.all(cipherPromises);\n }));\n\n await Promise.all(promises);\n\n const jsonDoc: any = {\n encrypted: true,\n collections: [],\n items: [],\n };\n\n collections.forEach(c => {\n const collection = new CollectionExport();\n collection.build(c);\n jsonDoc.collections.push(collection);\n });\n\n ciphers.forEach(c => {\n const cipher = new CipherExport();\n cipher.build(c);\n jsonDoc.items.push(cipher);\n });\n return JSON.stringify(jsonDoc, null, ' ');\n }\n\n private padNumber(num: number, width: number, padCharacter: string = '0'): string {\n const numString = num.toString();\n return numString.length >= width ? numString :\n new Array(width - numString.length + 1).join(padCharacter) + numString;\n }\n\n private buildCommonCipher(cipher: any, c: CipherView) {\n cipher.type = null;\n cipher.name = c.name;\n cipher.notes = c.notes;\n cipher.fields = null;\n // Login props\n cipher.login_uri = null;\n cipher.login_username = null;\n cipher.login_password = null;\n cipher.login_totp = null;\n\n if (c.fields) {\n c.fields.forEach((f: any) => {\n if (!cipher.fields) {\n cipher.fields = '';\n } else {\n cipher.fields += '\\n';\n }\n\n cipher.fields += ((f.name || '') + ': ' + f.value);\n });\n }\n\n switch (c.type) {\n case CipherType.Login:\n cipher.type = 'login';\n cipher.login_username = c.login.username;\n cipher.login_password = c.login.password;\n cipher.login_totp = c.login.totp;\n\n if (c.login.uris) {\n cipher.login_uri = [];\n c.login.uris.forEach(u => {\n cipher.login_uri.push(u.uri);\n });\n }\n break;\n case CipherType.SecureNote:\n cipher.type = 'note';\n break;\n default:\n return;\n }\n\n return cipher;\n }\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Cipher as CipherDomain } from '../domain/cipher';\nimport { CipherString } from '../domain/cipherString';\n\nimport { Card } from './card';\nimport { Field } from './field';\nimport { Identity } from './identity';\nimport { Login } from './login';\nimport { SecureNote } from './secureNote';\n\nexport class Cipher {\n static template(): Cipher {\n const req = new Cipher();\n req.organizationId = null;\n req.folderId = null;\n req.type = CipherType.Login;\n req.name = 'Item name';\n req.notes = 'Some notes about this item.';\n req.favorite = false;\n req.fields = [];\n req.login = null;\n req.secureNote = null;\n req.card = null;\n req.identity = null;\n return req;\n }\n\n static toView(req: Cipher, view = new CipherView()) {\n view.type = req.type;\n view.folderId = req.folderId;\n if (view.organizationId == null) {\n view.organizationId = req.organizationId;\n }\n view.name = req.name;\n view.notes = req.notes;\n view.favorite = req.favorite;\n\n if (req.fields != null) {\n view.fields = req.fields.map(f => Field.toView(f));\n }\n\n switch (req.type) {\n case CipherType.Login:\n view.login = Login.toView(req.login);\n break;\n case CipherType.SecureNote:\n view.secureNote = SecureNote.toView(req.secureNote);\n break;\n case CipherType.Card:\n view.card = Card.toView(req.card);\n break;\n case CipherType.Identity:\n view.identity = Identity.toView(req.identity);\n break;\n }\n\n return view;\n }\n\n static toDomain(req: Cipher, domain = new CipherDomain()) {\n domain.type = req.type;\n domain.folderId = req.folderId;\n if (domain.organizationId == null) {\n domain.organizationId = req.organizationId;\n }\n domain.name = req.name != null ? new CipherString(req.name) : null;\n domain.notes = req.notes != null ? new CipherString(req.notes) : null;\n domain.favorite = req.favorite;\n\n if (req.fields != null) {\n domain.fields = req.fields.map(f => Field.toDomain(f));\n }\n\n switch (req.type) {\n case CipherType.Login:\n domain.login = Login.toDomain(req.login);\n break;\n case CipherType.SecureNote:\n domain.secureNote = SecureNote.toDomain(req.secureNote);\n break;\n case CipherType.Card:\n domain.card = Card.toDomain(req.card);\n break;\n case CipherType.Identity:\n domain.identity = Identity.toDomain(req.identity);\n break;\n }\n\n return domain;\n }\n\n type: CipherType;\n folderId: string;\n organizationId: string;\n name: string;\n notes: string;\n favorite: boolean;\n fields: Field[];\n login: Login;\n secureNote: SecureNote;\n card: Card;\n identity: Identity;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CipherView | CipherDomain) {\n this.organizationId = o.organizationId;\n this.folderId = o.folderId;\n this.type = o.type;\n\n if (o instanceof CipherView) {\n this.name = o.name;\n this.notes = o.notes;\n } else {\n this.name = o.name?.encryptedString;\n this.notes = o.notes?.encryptedString;\n }\n\n this.favorite = o.favorite;\n\n if (o.fields != null) {\n if (o instanceof CipherView) {\n this.fields = o.fields.map(f => new Field(f));\n } else {\n this.fields = o.fields.map(f => new Field(f));\n }\n }\n\n switch (o.type) {\n case CipherType.Login:\n this.login = new Login(o.login);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNote(o.secureNote);\n break;\n case CipherType.Card:\n this.card = new Card(o.card);\n break;\n case CipherType.Identity:\n this.identity = new Identity(o.identity);\n break;\n }\n }\n}\n","import { CardView } from '../view/cardView';\n\nimport { Card as CardDomain } from '../domain/card';\nimport { CipherString } from '../domain/cipherString';\n\nexport class Card {\n static template(): Card {\n const req = new Card();\n req.cardholderName = 'John Doe';\n req.brand = 'visa';\n req.number = '4242424242424242';\n req.expMonth = '04';\n req.expYear = '2023';\n req.code = '123';\n return req;\n }\n\n static toView(req: Card, view = new CardView()) {\n view.cardholderName = req.cardholderName;\n view.brand = req.brand;\n view.number = req.number;\n view.expMonth = req.expMonth;\n view.expYear = req.expYear;\n view.code = req.code;\n return view;\n }\n\n static toDomain(req: Card, domain = new CardDomain()) {\n domain.cardholderName = req.cardholderName != null ? new CipherString(req.cardholderName) : null;\n domain.brand = req.brand != null ? new CipherString(req.brand) : null;\n domain.number = req.number != null ? new CipherString(req.number) : null;\n domain.expMonth = req.expMonth != null ? new CipherString(req.expMonth) : null;\n domain.expYear = req.expYear != null ? new CipherString(req.expYear) : null;\n domain.code = req.code != null ? new CipherString(req.code) : null;\n return domain;\n }\n\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(o?: CardView | CardDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof CardView) {\n this.cardholderName = o.cardholderName;\n this.brand = o.brand;\n this.number = o.number;\n this.expMonth = o.expMonth;\n this.expYear = o.expYear;\n this.code = o.code;\n } else {\n this.cardholderName = o.cardholderName?.encryptedString;\n this.brand = o.brand?.encryptedString;\n this.number = o.number?.encryptedString;\n this.expMonth = o.expMonth?.encryptedString;\n this.expYear = o.expYear?.encryptedString;\n this.code = o.code?.encryptedString;\n }\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldView } from '../view/fieldView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Field as FieldDomain } from '../domain/field';\n\nexport class Field {\n static template(): Field {\n const req = new Field();\n req.name = 'Field name';\n req.value = 'Some value';\n req.type = FieldType.Text;\n return req;\n }\n\n static toView(req: Field, view = new FieldView()) {\n view.type = req.type;\n view.value = req.value;\n view.name = req.name;\n return view;\n }\n\n static toDomain(req: Field, domain = new FieldDomain()) {\n domain.type = req.type;\n domain.value = req.value != null ? new CipherString(req.value) : null;\n domain.name = req.name != null ? new CipherString(req.name) : null;\n return domain;\n }\n\n name: string;\n value: string;\n type: FieldType;\n\n constructor(o?: FieldView | FieldDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof FieldView) {\n this.name = o.name;\n this.value = o.value;\n } else {\n this.name = o.name?.encryptedString;\n this.value = o.value?.encryptedString;\n }\n this.type = o.type;\n }\n}\n","import { IdentityView } from '../view/identityView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Identity as IdentityDomain } from '../domain/identity';\n\nexport class Identity {\n static template(): Identity {\n const req = new Identity();\n req.title = 'Mr';\n req.firstName = 'John';\n req.middleName = 'William';\n req.lastName = 'Doe';\n req.address1 = '123 Any St';\n req.address2 = 'Apt #123';\n req.address3 = null;\n req.city = 'New York';\n req.state = 'NY';\n req.postalCode = '10001';\n req.country = 'US';\n req.company = 'Acme Inc.';\n req.email = 'john@company.com';\n req.phone = '5555551234';\n req.ssn = '000-123-4567';\n req.username = 'jdoe';\n req.passportNumber = 'US-123456789';\n req.licenseNumber = 'D123-12-123-12333';\n return req;\n }\n\n static toView(req: Identity, view = new IdentityView()) {\n view.title = req.title;\n view.firstName = req.firstName;\n view.middleName = req.middleName;\n view.lastName = req.lastName;\n view.address1 = req.address1;\n view.address2 = req.address2;\n view.address3 = req.address3;\n view.city = req.city;\n view.state = req.state;\n view.postalCode = req.postalCode;\n view.country = req.country;\n view.company = req.company;\n view.email = req.email;\n view.phone = req.phone;\n view.ssn = req.ssn;\n view.username = req.username;\n view.passportNumber = req.passportNumber;\n view.licenseNumber = req.licenseNumber;\n return view;\n }\n\n static toDomain(req: Identity, domain = new IdentityDomain()) {\n domain.title = req.title != null ? new CipherString(req.title) : null;\n domain.firstName = req.firstName != null ? new CipherString(req.firstName) : null;\n domain.middleName = req.middleName != null ? new CipherString(req.middleName) : null;\n domain.lastName = req.lastName != null ? new CipherString(req.lastName) : null;\n domain.address1 = req.address1 != null ? new CipherString(req.address1) : null;\n domain.address2 = req.address2 != null ? new CipherString(req.address2) : null;\n domain.address3 = req.address3 != null ? new CipherString(req.address3) : null;\n domain.city = req.city != null ? new CipherString(req.city) : null;\n domain.state = req.state != null ? new CipherString(req.state) : null;\n domain.postalCode = req.postalCode != null ? new CipherString(req.postalCode) : null;\n domain.country = req.country != null ? new CipherString(req.country) : null;\n domain.company = req.company != null ? new CipherString(req.company) : null;\n domain.email = req.email != null ? new CipherString(req.email) : null;\n domain.phone = req.phone != null ? new CipherString(req.phone) : null;\n domain.ssn = req.ssn != null ? new CipherString(req.ssn) : null;\n domain.username = req.username != null ? new CipherString(req.username) : null;\n domain.passportNumber = req.passportNumber != null ? new CipherString(req.passportNumber) : null;\n domain.licenseNumber = req.licenseNumber != null ? new CipherString(req.licenseNumber) : null;\n return domain;\n }\n\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(o?: IdentityView | IdentityDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof IdentityView) {\n this.title = o.title;\n this.firstName = o.firstName;\n this.middleName = o.middleName;\n this.lastName = o.lastName;\n this.address1 = o.address1;\n this.address2 = o.address2;\n this.address3 = o.address3;\n this.city = o.city;\n this.state = o.state;\n this.postalCode = o.postalCode;\n this.country = o.country;\n this.company = o.company;\n this.email = o.email;\n this.phone = o.phone;\n this.ssn = o.ssn;\n this.username = o.username;\n this.passportNumber = o.passportNumber;\n this.licenseNumber = o.licenseNumber;\n } else {\n this.title = o.title?.encryptedString;\n this.firstName = o.firstName?.encryptedString;\n this.middleName = o.middleName?.encryptedString;\n this.lastName = o.lastName?.encryptedString;\n this.address1 = o.address1?.encryptedString;\n this.address2 = o.address2?.encryptedString;\n this.address3 = o.address3?.encryptedString;\n this.city = o.city?.encryptedString;\n this.state = o.state?.encryptedString;\n this.postalCode = o.postalCode?.encryptedString;\n this.country = o.country?.encryptedString;\n this.company = o.company?.encryptedString;\n this.email = o.email?.encryptedString;\n this.phone = o.phone?.encryptedString;\n this.ssn = o.ssn?.encryptedString;\n this.username = o.username?.encryptedString;\n this.passportNumber = o.passportNumber?.encryptedString;\n this.licenseNumber = o.licenseNumber?.encryptedString;\n }\n }\n}\n","import { LoginUri } from './loginUri';\n\nimport { LoginView } from '../view/loginView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Login as LoginDomain } from '../domain/login';\n\nexport class Login {\n static template(): Login {\n const req = new Login();\n req.uris = [];\n req.username = 'jdoe';\n req.password = 'myp@ssword123';\n req.totp = 'JBSWY3DPEHPK3PXP';\n return req;\n }\n\n static toView(req: Login, view = new LoginView()) {\n if (req.uris != null) {\n view.uris = req.uris.map(u => LoginUri.toView(u));\n }\n view.username = req.username;\n view.password = req.password;\n view.totp = req.totp;\n return view;\n }\n\n static toDomain(req: Login, domain = new LoginDomain()) {\n if (req.uris != null) {\n domain.uris = req.uris.map(u => LoginUri.toDomain(u));\n }\n domain.username = req.username != null ? new CipherString(req.username) : null;\n domain.password = req.password != null ? new CipherString(req.password) : null;\n domain.totp = req.totp != null ? new CipherString(req.totp) : null;\n return domain;\n }\n\n uris: LoginUri[];\n username: string;\n password: string;\n totp: string;\n\n constructor(o?: LoginView | LoginDomain) {\n if (o == null) {\n return;\n }\n\n if (o.uris != null) {\n if (o instanceof LoginView) {\n this.uris = o.uris.map(u => new LoginUri(u));\n } else {\n this.uris = o.uris.map(u => new LoginUri(u));\n }\n }\n\n if (o instanceof LoginView) {\n this.username = o.username;\n this.password = o.password;\n this.totp = o.totp;\n } else {\n this.username = o.username?.encryptedString;\n this.password = o.password?.encryptedString;\n this.totp = o.totp?.encryptedString;\n }\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriView } from '../view/loginUriView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { LoginUri as LoginUriDomain } from '../domain/loginUri';\n\nexport class LoginUri {\n static template(): LoginUri {\n const req = new LoginUri();\n req.uri = 'https://google.com';\n req.match = null;\n return req;\n }\n\n static toView(req: LoginUri, view = new LoginUriView()) {\n view.uri = req.uri;\n view.match = req.match;\n return view;\n }\n\n static toDomain(req: LoginUri, domain = new LoginUriDomain()) {\n domain.uri = req.uri != null ? new CipherString(req.uri) : null;\n domain.match = req.match;\n return domain;\n }\n\n uri: string;\n match: UriMatchType = null;\n\n constructor(o?: LoginUriView | LoginUriDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof LoginUriView) {\n this.uri = o.uri;\n } else {\n this.uri = o.uri?.encryptedString;\n }\n this.match = o.match;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteView } from '../view/secureNoteView';\n\nimport { SecureNote as SecureNoteDomain } from '../domain/secureNote';\n\nexport class SecureNote {\n static template(): SecureNote {\n const req = new SecureNote();\n req.type = SecureNoteType.Generic;\n return req;\n }\n\n static toView(req: SecureNote, view = new SecureNoteView()) {\n view.type = req.type;\n return view;\n }\n\n static toDomain(req: SecureNote, view = new SecureNoteDomain()) {\n view.type = req.type;\n return view;\n }\n\n type: SecureNoteType;\n\n constructor(o?: SecureNoteView | SecureNoteDomain) {\n if (o == null) {\n return;\n }\n\n this.type = o.type;\n }\n}\n","import { CollectionView } from '../view/collectionView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Collection as CollectionDomain } from '../domain/collection';\n\nexport class Collection {\n static template(): Collection {\n const req = new Collection();\n req.organizationId = '00000000-0000-0000-0000-000000000000';\n req.name = 'Collection name';\n req.externalId = null;\n return req;\n }\n\n static toView(req: Collection, view = new CollectionView()) {\n view.name = req.name;\n view.externalId = req.externalId;\n if (view.organizationId == null) {\n view.organizationId = req.organizationId;\n }\n return view;\n }\n\n static toDomain(req: Collection, domain = new CollectionDomain()) {\n domain.name = req.name != null ? new CipherString(req.name) : null;\n domain.externalId = req.externalId;\n if (domain.organizationId == null) {\n domain.organizationId = req.organizationId;\n }\n return domain;\n }\n\n organizationId: string;\n name: string;\n externalId: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CollectionView | CollectionDomain) {\n this.organizationId = o.organizationId;\n if (o instanceof CollectionView) {\n this.name = o.name;\n } else {\n this.name = o.name?.encryptedString;\n }\n this.externalId = o.externalId;\n }\n}\n","import { FolderView } from '../view/folderView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Folder as FolderDomain } from '../domain/folder';\n\nexport class Folder {\n static template(): Folder {\n const req = new Folder();\n req.name = 'Folder name';\n return req;\n }\n\n static toView(req: Folder, view = new FolderView()) {\n view.name = req.name;\n return view;\n }\n\n static toDomain(req: Folder, domain = new FolderDomain()) {\n domain.name = req.name != null ? new CipherString(req.name) : null;\n return domain;\n }\n\n name: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: FolderView | FolderDomain) {\n if (o instanceof FolderView) {\n this.name = o.name;\n } else {\n this.name = o.name?.encryptedString;\n }\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport {\n ImportOption,\n ImportService as ImportServiceAbstraction,\n} from '../abstractions/import.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { Utils } from '../misc/utils';\n\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KvpRequest } from '../models/request/kvpRequest';\n\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { CipherView } from '../models/view/cipherView';\n\nimport { AscendoCsvImporter } from '../importers/ascendoCsvImporter';\nimport { AvastCsvImporter } from '../importers/avastCsvImporter';\nimport { AvastJsonImporter } from '../importers/avastJsonImporter';\nimport { AviraCsvImporter } from '../importers/aviraCsvImporter';\nimport { BitwardenCsvImporter } from '../importers/bitwardenCsvImporter';\nimport { BitwardenJsonImporter } from '../importers/bitwardenJsonImporter';\nimport { BlackBerryCsvImporter } from '../importers/blackBerryCsvImporter';\nimport { BlurCsvImporter } from '../importers/blurCsvImporter';\nimport { ButtercupCsvImporter } from '../importers/buttercupCsvImporter';\nimport { ChromeCsvImporter } from '../importers/chromeCsvImporter';\nimport { ClipperzHtmlImporter } from '../importers/clipperzHtmlImporter';\nimport { CodebookCsvImporter } from '../importers/codebookCsvImporter';\nimport { DashlaneJsonImporter } from '../importers/dashlaneJsonImporter';\nimport { EncryptrCsvImporter } from '../importers/encryptrCsvImporter';\nimport { EnpassCsvImporter } from '../importers/enpassCsvImporter';\nimport { EnpassJsonImporter } from '../importers/enpassJsonImporter';\nimport { FirefoxCsvImporter } from '../importers/firefoxCsvImporter';\nimport { FSecureFskImporter } from '../importers/fsecureFskImporter';\nimport { GnomeJsonImporter } from '../importers/gnomeJsonImporter';\nimport { Importer } from '../importers/importer';\nimport { KasperskyTxtImporter } from '../importers/kasperskyTxtImporter';\nimport { KeePass2XmlImporter } from '../importers/keepass2XmlImporter';\nimport { KeePassXCsvImporter } from '../importers/keepassxCsvImporter';\nimport { KeeperCsvImporter } from '../importers/keeperCsvImporter';\nimport { LastPassCsvImporter } from '../importers/lastpassCsvImporter';\nimport { LogMeOnceCsvImporter } from '../importers/logMeOnceCsvImporter';\nimport { MeldiumCsvImporter } from '../importers/meldiumCsvImporter';\nimport { MSecureCsvImporter } from '../importers/msecureCsvImporter';\nimport { MykiCsvImporter } from '../importers/mykiCsvImporter';\nimport { OnePassword1PifImporter } from '../importers/onepasswordImporters/onepassword1PifImporter';\nimport { OnePasswordMacCsvImporter } from '../importers/onepasswordImporters/onepasswordMacCsvImporter';\nimport { OnePasswordWinCsvImporter } from '../importers/onepasswordImporters/onepasswordWinCsvImporter';\nimport { PadlockCsvImporter } from '../importers/padlockCsvImporter';\nimport { PassKeepCsvImporter } from '../importers/passkeepCsvImporter';\nimport { PassmanJsonImporter } from '../importers/passmanJsonImporter';\nimport { PasspackCsvImporter } from '../importers/passpackCsvImporter';\nimport { PasswordAgentCsvImporter } from '../importers/passwordAgentCsvImporter';\nimport { PasswordBossJsonImporter } from '../importers/passwordBossJsonImporter';\nimport { PasswordDragonXmlImporter } from '../importers/passwordDragonXmlImporter';\nimport { PasswordSafeXmlImporter } from '../importers/passwordSafeXmlImporter';\nimport { PasswordWalletTxtImporter } from '../importers/passwordWalletTxtImporter';\nimport { RememBearCsvImporter } from '../importers/rememBearCsvImporter';\nimport { RoboFormCsvImporter } from '../importers/roboformCsvImporter';\nimport { SafeInCloudXmlImporter } from '../importers/safeInCloudXmlImporter';\nimport { SaferPassCsvImporter } from '../importers/saferpassCsvImport';\nimport { SecureSafeCsvImporter } from '../importers/secureSafeCsvImporter';\nimport { SplashIdCsvImporter } from '../importers/splashIdCsvImporter';\nimport { StickyPasswordXmlImporter } from '../importers/stickyPasswordXmlImporter';\nimport { TrueKeyCsvImporter } from '../importers/truekeyCsvImporter';\nimport { UpmCsvImporter } from '../importers/upmCsvImporter';\nimport { YotiCsvImporter } from '../importers/yotiCsvImporter';\nimport { ZohoVaultCsvImporter } from '../importers/zohoVaultCsvImporter';\n\nexport class ImportService implements ImportServiceAbstraction {\n featuredImportOptions = [\n { id: 'bitwardenjson', name: 'Bitwarden (json)' },\n { id: 'bitwardencsv', name: 'Bitwarden (csv)' },\n { id: 'lastpasscsv', name: 'LastPass (csv)' },\n { id: 'chromecsv', name: 'Chrome (csv)' },\n { id: 'firefoxcsv', name: 'Firefox (csv)' },\n { id: 'keepass2xml', name: 'KeePass 2 (xml)' },\n { id: '1password1pif', name: '1Password (1pif)' },\n { id: 'dashlanejson', name: 'Dashlane (json)' },\n ];\n\n regularImportOptions: ImportOption[] = [\n { id: 'keepassxcsv', name: 'KeePassX (csv)' },\n { id: '1passwordwincsv', name: '1Password 6 and 7 Windows (csv)' },\n { id: '1passwordmaccsv', name: '1Password 6 and 7 Mac (csv)' },\n { id: 'roboformcsv', name: 'RoboForm (csv)' },\n { id: 'keepercsv', name: 'Keeper (csv)' },\n { id: 'enpasscsv', name: 'Enpass (csv)' },\n { id: 'enpassjson', name: 'Enpass (json)' },\n { id: 'safeincloudxml', name: 'SafeInCloud (xml)' },\n { id: 'pwsafexml', name: 'Password Safe (xml)' },\n { id: 'stickypasswordxml', name: 'Sticky Password (xml)' },\n { id: 'msecurecsv', name: 'mSecure (csv)' },\n { id: 'truekeycsv', name: 'True Key (csv)' },\n { id: 'passwordbossjson', name: 'Password Boss (json)' },\n { id: 'zohovaultcsv', name: 'Zoho Vault (csv)' },\n { id: 'splashidcsv', name: 'SplashID (csv)' },\n { id: 'passworddragonxml', name: 'Password Dragon (xml)' },\n { id: 'padlockcsv', name: 'Padlock (csv)' },\n { id: 'passboltcsv', name: 'Passbolt (csv)' },\n { id: 'clipperzhtml', name: 'Clipperz (html)' },\n { id: 'aviracsv', name: 'Avira (csv)' },\n { id: 'saferpasscsv', name: 'SaferPass (csv)' },\n { id: 'upmcsv', name: 'Universal Password Manager (csv)' },\n { id: 'ascendocsv', name: 'Ascendo DataVault (csv)' },\n { id: 'meldiumcsv', name: 'Meldium (csv)' },\n { id: 'passkeepcsv', name: 'PassKeep (csv)' },\n { id: 'operacsv', name: 'Opera (csv)' },\n { id: 'vivaldicsv', name: 'Vivaldi (csv)' },\n { id: 'gnomejson', name: 'GNOME Passwords and Keys/Seahorse (json)' },\n { id: 'blurcsv', name: 'Blur (csv)' },\n { id: 'passwordagentcsv', name: 'Password Agent (csv)' },\n { id: 'passpackcsv', name: 'Passpack (csv)' },\n { id: 'passmanjson', name: 'Passman (json)' },\n { id: 'avastcsv', name: 'Avast Passwords (csv)' },\n { id: 'avastjson', name: 'Avast Passwords (json)' },\n { id: 'fsecurefsk', name: 'F-Secure KEY (fsk)' },\n { id: 'kasperskytxt', name: 'Kaspersky Password Manager (txt)' },\n { id: 'remembearcsv', name: 'RememBear (csv)' },\n { id: 'passwordwallettxt', name: 'PasswordWallet (txt)' },\n { id: 'mykicsv', name: 'Myki (csv)' },\n { id: 'securesafecsv', name: 'SecureSafe (csv)' },\n { id: 'logmeoncecsv', name: 'LogMeOnce (csv)' },\n { id: 'blackberrycsv', name: 'BlackBerry Password Keeper (csv)' },\n { id: 'buttercupcsv', name: 'Buttercup (csv)' },\n { id: 'codebookcsv', name: 'Codebook (csv)' },\n { id: 'encryptrcsv', name: 'Encryptr (csv)' },\n { id: 'yoticsv', name: 'Yoti (csv)' },\n ];\n\n constructor(private cipherService: CipherService, private folderService: FolderService,\n private apiService: ApiService, private i18nService: I18nService,\n private collectionService: CollectionService, private platformUtilsService: PlatformUtilsService) { }\n\n getImportOptions(): ImportOption[] {\n return this.featuredImportOptions.concat(this.regularImportOptions);\n }\n\n async import(importer: Importer, fileContents: string, organizationId: string = null): Promise {\n const importResult = await importer.parse(fileContents);\n if (importResult.success) {\n if (importResult.folders.length === 0 && importResult.ciphers.length === 0) {\n return new Error(this.i18nService.t('importNothingError'));\n } else if (importResult.ciphers.length > 0) {\n const halfway = Math.floor(importResult.ciphers.length / 2);\n const last = importResult.ciphers.length - 1;\n\n if (this.badData(importResult.ciphers[0]) &&\n this.badData(importResult.ciphers[halfway]) &&\n this.badData(importResult.ciphers[last])) {\n return new Error(this.i18nService.t('importFormatError'));\n }\n }\n try {\n await this.postImport(importResult, organizationId);\n } catch (error) {\n const errorResponse = new ErrorResponse(error, 400);\n return this.handleServerError(errorResponse, importResult);\n }\n return null;\n } else {\n return new Error(this.i18nService.t('importFormatError'));\n }\n }\n\n getImporter(format: string, organizationId: string = null): Importer {\n const importer = this.getImporterInstance(format);\n if (importer == null) {\n return null;\n }\n importer.organizationId = organizationId;\n return importer;\n }\n\n private getImporterInstance(format: string) {\n if (format == null || format === '') {\n return null;\n }\n\n switch (format) {\n case 'bitwardencsv':\n return new BitwardenCsvImporter();\n case 'bitwardenjson':\n return new BitwardenJsonImporter();\n case 'lastpasscsv':\n case 'passboltcsv':\n return new LastPassCsvImporter();\n case 'keepassxcsv':\n return new KeePassXCsvImporter();\n case 'aviracsv':\n return new AviraCsvImporter();\n case 'blurcsv':\n return new BlurCsvImporter();\n case 'safeincloudxml':\n return new SafeInCloudXmlImporter();\n case 'padlockcsv':\n return new PadlockCsvImporter();\n case 'keepass2xml':\n return new KeePass2XmlImporter();\n case 'chromecsv':\n case 'operacsv':\n case 'vivaldicsv':\n return new ChromeCsvImporter();\n case 'firefoxcsv':\n return new FirefoxCsvImporter();\n case 'upmcsv':\n return new UpmCsvImporter();\n case 'saferpasscsv':\n return new SaferPassCsvImporter();\n case 'meldiumcsv':\n return new MeldiumCsvImporter();\n case '1password1pif':\n return new OnePassword1PifImporter();\n case '1passwordwincsv':\n return new OnePasswordWinCsvImporter();\n case '1passwordmaccsv':\n return new OnePasswordMacCsvImporter();\n case 'keepercsv':\n return new KeeperCsvImporter();\n case 'passworddragonxml':\n return new PasswordDragonXmlImporter();\n case 'enpasscsv':\n return new EnpassCsvImporter();\n case 'enpassjson':\n return new EnpassJsonImporter();\n case 'pwsafexml':\n return new PasswordSafeXmlImporter();\n case 'dashlanejson':\n return new DashlaneJsonImporter();\n case 'msecurecsv':\n return new MSecureCsvImporter();\n case 'stickypasswordxml':\n return new StickyPasswordXmlImporter();\n case 'truekeycsv':\n return new TrueKeyCsvImporter();\n case 'clipperzhtml':\n return new ClipperzHtmlImporter();\n case 'roboformcsv':\n return new RoboFormCsvImporter();\n case 'ascendocsv':\n return new AscendoCsvImporter();\n case 'passwordbossjson':\n return new PasswordBossJsonImporter();\n case 'zohovaultcsv':\n return new ZohoVaultCsvImporter();\n case 'splashidcsv':\n return new SplashIdCsvImporter();\n case 'passkeepcsv':\n return new PassKeepCsvImporter();\n case 'gnomejson':\n return new GnomeJsonImporter();\n case 'passwordagentcsv':\n return new PasswordAgentCsvImporter();\n case 'passpackcsv':\n return new PasspackCsvImporter();\n case 'passmanjson':\n return new PassmanJsonImporter();\n case 'avastcsv':\n return new AvastCsvImporter();\n case 'avastjson':\n return new AvastJsonImporter();\n case 'fsecurefsk':\n return new FSecureFskImporter();\n case 'kasperskytxt':\n return new KasperskyTxtImporter();\n case 'remembearcsv':\n return new RememBearCsvImporter();\n case 'passwordwallettxt':\n return new PasswordWalletTxtImporter();\n case 'mykicsv':\n return new MykiCsvImporter();\n case 'securesafecsv':\n return new SecureSafeCsvImporter();\n case 'logmeoncecsv':\n return new LogMeOnceCsvImporter();\n case 'blackberrycsv':\n return new BlackBerryCsvImporter();\n case 'buttercupcsv':\n return new ButtercupCsvImporter();\n case 'codebookcsv':\n return new CodebookCsvImporter();\n case 'encryptrcsv':\n return new EncryptrCsvImporter();\n case 'yoticsv':\n return new YotiCsvImporter();\n default:\n return null;\n }\n }\n\n private async postImport(importResult: ImportResult, organizationId: string = null) {\n if (organizationId == null) {\n const request = new ImportCiphersRequest();\n for (let i = 0; i < importResult.ciphers.length; i++) {\n const c = await this.cipherService.encrypt(importResult.ciphers[i]);\n request.ciphers.push(new CipherRequest(c));\n }\n if (importResult.folders != null) {\n for (let i = 0; i < importResult.folders.length; i++) {\n const f = await this.folderService.encrypt(importResult.folders[i]);\n request.folders.push(new FolderRequest(f));\n }\n }\n if (importResult.folderRelationships != null) {\n importResult.folderRelationships.forEach(r =>\n request.folderRelationships.push(new KvpRequest(r[0], r[1])));\n }\n return await this.apiService.postImportCiphers(request);\n } else {\n const request = new ImportOrganizationCiphersRequest();\n for (let i = 0; i < importResult.ciphers.length; i++) {\n importResult.ciphers[i].organizationId = organizationId;\n const c = await this.cipherService.encrypt(importResult.ciphers[i]);\n request.ciphers.push(new CipherRequest(c));\n }\n if (importResult.collections != null) {\n for (let i = 0; i < importResult.collections.length; i++) {\n importResult.collections[i].organizationId = organizationId;\n const c = await this.collectionService.encrypt(importResult.collections[i]);\n request.collections.push(new CollectionRequest(c));\n }\n }\n if (importResult.collectionRelationships != null) {\n importResult.collectionRelationships.forEach(r =>\n request.collectionRelationships.push(new KvpRequest(r[0], r[1])));\n }\n return await this.apiService.postImportOrganizationCiphers(organizationId, request);\n }\n }\n\n private badData(c: CipherView) {\n return (c.name == null || c.name === '--') &&\n (c.type === CipherType.Login && c.login != null && Utils.isNullOrWhitespace(c.login.password));\n }\n\n private handleServerError(errorResponse: ErrorResponse, importResult: ImportResult): Error {\n if (errorResponse.validationErrors == null) {\n return new Error(errorResponse.message);\n }\n\n let errorMessage = '';\n\n Object.entries(errorResponse.validationErrors).forEach(([key, value], index) => {\n let item;\n let itemType;\n const i = Number(key.match(/[0-9]+/)[0]);\n\n switch (key.match(/^\\w+/)[0]) {\n case 'Ciphers':\n item = importResult.ciphers[i];\n itemType = CipherType[item.type];\n break;\n case 'Folders':\n item = importResult.folders[i];\n itemType = 'Folder';\n break;\n case 'Collections':\n item = importResult.collections[i];\n itemType = 'Collection';\n break;\n default:\n return;\n }\n\n if (index > 0) {\n errorMessage += '\\n\\n';\n }\n\n if (itemType !== 'Folder' && itemType !== 'Collection') {\n errorMessage += '[' + (i + 1) + '] ';\n }\n\n errorMessage += '[' + itemType + '] \"' + item.name + '\": ' + value;\n });\n\n return new Error(errorMessage);\n }\n}\n","import { CipherRequest } from './cipherRequest';\nimport { FolderRequest } from './folderRequest';\nimport { KvpRequest } from './kvpRequest';\n\nexport class ImportCiphersRequest {\n ciphers: CipherRequest[] = [];\n folders: FolderRequest[] = [];\n folderRelationships: KvpRequest[] = [];\n}\n","import { CipherRequest } from './cipherRequest';\nimport { CollectionRequest } from './collectionRequest';\nimport { KvpRequest } from './kvpRequest';\n\nexport class ImportOrganizationCiphersRequest {\n ciphers: CipherRequest[] = [];\n collections: CollectionRequest[] = [];\n collectionRelationships: KvpRequest[] = [];\n}\n","export class KvpRequest {\n key: TK;\n value: TV;\n\n constructor(key: TK, value: TV) {\n this.key = key;\n this.value = value;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AscendoCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 2) {\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 1]);\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n if (value.length > 2 && (value.length % 2) === 0) {\n for (let i = 0; i < value.length - 2; i += 2) {\n const val: string = value[i + 2];\n const field: string = value[i + 1];\n if (this.isNullOrWhitespace(val) || this.isNullOrWhitespace(field)) {\n continue;\n }\n\n const fieldLower = field.toLowerCase();\n if (cipher.login.password == null && this.passwordFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.password = this.getValueOrDefault(val);\n } else if (cipher.login.username == null &&\n this.usernameFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.username = this.getValueOrDefault(val);\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.uris = this.makeUriArray(val);\n } else {\n this.processKvp(cipher, field, val);\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AvastCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name);\n cipher.login.uris = this.makeUriArray(value.web);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.login);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class AvastJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n if (results.logins != null) {\n results.logins.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.custName);\n cipher.notes = this.getValueOrDefault(value.note);\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.password = this.getValueOrDefault(value.pwd);\n cipher.login.username = this.getValueOrDefault(value.loginName);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (results.notes != null) {\n results.notes.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.name = this.getValueOrDefault(value.label);\n cipher.notes = this.getValueOrDefault(value.text);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (results.cards != null) {\n results.cards.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.type = CipherType.Card;\n cipher.name = this.getValueOrDefault(value.custName);\n cipher.notes = this.getValueOrDefault(value.note);\n cipher.card.cardholderName = this.getValueOrDefault(value.holderName);\n cipher.card.number = this.getValueOrDefault(value.cardNumber);\n cipher.card.code = this.getValueOrDefault(value.cvv);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n if (value.expirationDate != null) {\n if (value.expirationDate.month != null) {\n cipher.card.expMonth = value.expirationDate.month + '';\n }\n if (value.expirationDate.year != null) {\n cipher.card.expYear = value.expirationDate.year + '';\n }\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AviraCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name,\n this.getValueOrDefault(this.nameFromUrl(value.website), '--'));\n cipher.login.uris = this.makeUriArray(value.website);\n cipher.login.password = this.getValueOrDefault(value.password);\n\n if (this.isNullOrWhitespace(value.username) && !this.isNullOrWhitespace(value.secondary_username)) {\n cipher.login.username = value.secondary_username;\n } else {\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.notes = this.getValueOrDefault(value.secondary_username);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { FieldView } from '../models/view/fieldView';\nimport { FolderView } from '../models/view/folderView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class BitwardenCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.organization && !this.isNullOrWhitespace(value.collections)) {\n const collections = (value.collections as string).split(',');\n collections.forEach(col => {\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === col) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = col;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else if (!this.organization) {\n this.processFolder(result, value.folder);\n }\n\n const cipher = new CipherView();\n cipher.favorite = !this.organization && this.getValueOrDefault(value.favorite, '0') !== '0' ? true : false;\n cipher.type = CipherType.Login;\n cipher.notes = this.getValueOrDefault(value.notes);\n cipher.name = this.getValueOrDefault(value.name, '--');\n\n if (!this.isNullOrWhitespace(value.fields)) {\n const fields = this.splitNewLine(value.fields);\n for (let i = 0; i < fields.length; i++) {\n if (this.isNullOrWhitespace(fields[i])) {\n continue;\n }\n\n const delimPosition = fields[i].lastIndexOf(': ');\n if (delimPosition === -1) {\n continue;\n }\n\n if (cipher.fields == null) {\n cipher.fields = [];\n }\n\n const field = new FieldView();\n field.name = fields[i].substr(0, delimPosition);\n field.value = null;\n field.type = FieldType.Text;\n if (fields[i].length > (delimPosition + 2)) {\n field.value = fields[i].substr(delimPosition + 2);\n }\n cipher.fields.push(field);\n }\n }\n\n const valueType = value.type != null ? value.type.toLowerCase() : null;\n switch (valueType) {\n case 'note':\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n break;\n default:\n cipher.type = CipherType.Login;\n cipher.login = new LoginView();\n cipher.login.totp = this.getValueOrDefault(value.login_totp || value.totp);\n cipher.login.username = this.getValueOrDefault(value.login_username || value.username);\n cipher.login.password = this.getValueOrDefault(value.login_password || value.password);\n const uris = this.parseSingleRowCsv(value.login_uri || value.uri);\n cipher.login.uris = this.makeUriArray(uris);\n break;\n }\n\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherWithIds } from '../models/export/cipherWithIds';\nimport { CollectionWithId } from '../models/export/collectionWithId';\nimport { FolderWithId } from '../models/export/folderWithId';\n\nexport class BitwardenJsonImporter extends BaseImporter implements Importer {\n private results: any;\n private result: ImportResult;\n\n async parse(data: string): Promise {\n this.result = new ImportResult();\n this.results = JSON.parse(data);\n if (this.results == null || this.results.items == null || this.results.items.length === 0) {\n this.result.success = false;\n return this.result;\n }\n\n if (this.results.encrypted) {\n await this.parseEncrypted();\n } else {\n this.parseDecrypted();\n }\n\n this.result.success = true;\n return this.result;\n }\n\n private async parseEncrypted() {\n const groupingsMap = new Map();\n\n if (this.organization && this.results.collections != null) {\n for (const c of this.results.collections as CollectionWithId[]) {\n const collection = CollectionWithId.toDomain(c);\n if (collection != null) {\n collection.id = null;\n collection.organizationId = this.organizationId;\n const view = await collection.decrypt();\n groupingsMap.set(c.id, this.result.collections.length);\n this.result.collections.push(view);\n }\n }\n } else if (!this.organization && this.results.folders != null) {\n for (const f of this.results.folders as FolderWithId[]) {\n const folder = FolderWithId.toDomain(f);\n if (folder != null) {\n folder.id = null;\n const view = await folder.decrypt();\n groupingsMap.set(f.id, this.result.folders.length);\n this.result.folders.push(view);\n }\n }\n }\n\n for (const c of this.results.items as CipherWithIds[]) {\n const cipher = CipherWithIds.toDomain(c);\n // reset ids incase they were set for some reason\n cipher.id = null;\n cipher.folderId = null;\n cipher.organizationId = this.organizationId;\n cipher.collectionIds = null;\n\n // make sure password history is limited\n if (cipher.passwordHistory != null && cipher.passwordHistory.length > 5) {\n cipher.passwordHistory = cipher.passwordHistory.slice(0, 5);\n }\n\n if (!this.organization && c.folderId != null && groupingsMap.has(c.folderId)) {\n this.result.folderRelationships.push([this.result.ciphers.length, groupingsMap.get(c.folderId)]);\n } else if (this.organization && c.collectionIds != null) {\n c.collectionIds.forEach(cId => {\n if (groupingsMap.has(cId)) {\n this.result.collectionRelationships.push([this.result.ciphers.length, groupingsMap.get(cId)]);\n }\n });\n }\n\n const view = await cipher.decrypt();\n this.cleanupCipher(view);\n this.result.ciphers.push(view);\n }\n }\n\n private parseDecrypted() {\n const groupingsMap = new Map();\n if (this.organization && this.results.collections != null) {\n this.results.collections.forEach((c: CollectionWithId) => {\n const collection = CollectionWithId.toView(c);\n if (collection != null) {\n collection.id = null;\n collection.organizationId = null;\n groupingsMap.set(c.id, this.result.collections.length);\n this.result.collections.push(collection);\n }\n });\n } else if (!this.organization && this.results.folders != null) {\n this.results.folders.forEach((f: FolderWithId) => {\n const folder = FolderWithId.toView(f);\n if (folder != null) {\n folder.id = null;\n groupingsMap.set(f.id, this.result.folders.length);\n this.result.folders.push(folder);\n }\n });\n }\n\n this.results.items.forEach((c: CipherWithIds) => {\n const cipher = CipherWithIds.toView(c);\n // reset ids incase they were set for some reason\n cipher.id = null;\n cipher.folderId = null;\n cipher.organizationId = null;\n cipher.collectionIds = null;\n\n // make sure password history is limited\n if (cipher.passwordHistory != null && cipher.passwordHistory.length > 5) {\n cipher.passwordHistory = cipher.passwordHistory.slice(0, 5);\n }\n\n if (!this.organization && c.folderId != null && groupingsMap.has(c.folderId)) {\n this.result.folderRelationships.push([this.result.ciphers.length, groupingsMap.get(c.folderId)]);\n } else if (this.organization && c.collectionIds != null) {\n c.collectionIds.forEach(cId => {\n if (groupingsMap.has(cId)) {\n this.result.collectionRelationships.push([this.result.ciphers.length, groupingsMap.get(cId)]);\n }\n });\n }\n\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class BlackBerryCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.grouping === 'list') {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.favorite = value.fav === '1';\n cipher.name = this.getValueOrDefault(value.name);\n cipher.notes = this.getValueOrDefault(value.extra);\n if (value.grouping !== 'note') {\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.username);\n }\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class BlurCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.label === 'null') {\n value.label = null;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.label,\n this.getValueOrDefault(this.nameFromUrl(value.domain), '--'));\n cipher.login.uris = this.makeUriArray(value.domain);\n cipher.login.password = this.getValueOrDefault(value.password);\n\n if (this.isNullOrWhitespace(value.email) && !this.isNullOrWhitespace(value.username)) {\n cipher.login.username = value.username;\n } else {\n cipher.login.username = this.getValueOrDefault(value.email);\n cipher.notes = this.getValueOrDefault(value.username);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nconst OfficialProps = [\n '!group_id', '!group_name', 'title', 'username', 'password', 'URL', 'id',\n];\n\nexport class ButtercupCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValueOrDefault(value['!group_name']));\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.URL);\n\n let processingCustomFields = false;\n for (const prop in value) {\n if (value.hasOwnProperty(prop)) {\n if (!processingCustomFields && OfficialProps.indexOf(prop) === -1) {\n processingCustomFields = true;\n }\n if (processingCustomFields) {\n this.processKvp(cipher, prop, value[prop]);\n }\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class ChromeCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class ClipperzHtmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const textarea = doc.querySelector('textarea');\n if (textarea == null || this.isNullOrWhitespace(textarea.textContent)) {\n result.errorMessage = 'Missing textarea.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const entries = JSON.parse(textarea.textContent);\n entries.forEach((entry: any) => {\n const cipher = this.initLoginCipher();\n if (!this.isNullOrWhitespace(entry.label)) {\n cipher.name = entry.label.split(' ')[0];\n }\n if (entry.data != null && !this.isNullOrWhitespace(entry.data.notes)) {\n cipher.notes = entry.data.notes.split('\\\\n').join('\\n');\n }\n\n if (entry.currentVersion != null && entry.currentVersion.fields != null) {\n for (const property in entry.currentVersion.fields) {\n if (!entry.currentVersion.fields.hasOwnProperty(property)) {\n continue;\n }\n\n const field = entry.currentVersion.fields[property];\n const actionType = field.actionType != null ? field.actionType.toLowerCase() : null;\n switch (actionType) {\n case 'password':\n cipher.login.password = this.getValueOrDefault(field.value);\n break;\n case 'email':\n case 'username':\n case 'user':\n case 'name':\n cipher.login.username = this.getValueOrDefault(field.value);\n break;\n case 'url':\n cipher.login.uris = this.makeUriArray(field.value);\n break;\n default:\n const labelLower = field.label != null ? field.label.toLowerCase() : null;\n if (cipher.login.password == null && this.passwordFieldNames.indexOf(labelLower) > -1) {\n cipher.login.password = this.getValueOrDefault(field.value);\n } else if (cipher.login.username == null &&\n this.usernameFieldNames.indexOf(labelLower) > -1) {\n cipher.login.username = this.getValueOrDefault(field.value);\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(labelLower) > -1) {\n cipher.login.uris = this.makeUriArray(field.value);\n } else {\n this.processKvp(cipher, field.label, field.value);\n }\n break;\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class CodebookCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValueOrDefault(value.Category));\n\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.Favorite) === 'True';\n cipher.name = this.getValueOrDefault(value.Entry, '--');\n cipher.notes = this.getValueOrDefault(value.Note);\n cipher.login.username = this.getValueOrDefault(value.Username, value.Email);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.totp = this.getValueOrDefault(value.TOTP);\n cipher.login.uris = this.makeUriArray(value.Website);\n\n if (!this.isNullOrWhitespace(value.Username)) {\n this.processKvp(cipher, 'Email', value.Email);\n }\n this.processKvp(cipher, 'Phone', value.Phone);\n this.processKvp(cipher, 'PIN', value.PIN);\n this.processKvp(cipher, 'Account', value.Account);\n this.processKvp(cipher, 'Date', value.Date);\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { IdentityView } from '../models/view/identityView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nconst HandledResults = new Set(['ADDRESS', 'AUTHENTIFIANT', 'BANKSTATEMENT', 'IDCARD', 'IDENTITY',\n 'PAYMENTMEANS_CREDITCARD', 'PAYMENTMEAN_PAYPAL', 'EMAIL']);\n\nexport class DashlaneJsonImporter extends BaseImporter implements Importer {\n private result: ImportResult;\n\n parse(data: string): Promise {\n this.result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.length === 0) {\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n if (results.ADDRESS != null) {\n this.processAddress(results.ADDRESS);\n }\n if (results.AUTHENTIFIANT != null) {\n this.processAuth(results.AUTHENTIFIANT);\n }\n if (results.BANKSTATEMENT != null) {\n this.processNote(results.BANKSTATEMENT, 'BankAccountName');\n }\n if (results.IDCARD != null) {\n this.processNote(results.IDCARD, 'Fullname');\n }\n if (results.PAYMENTMEANS_CREDITCARD != null) {\n this.processCard(results.PAYMENTMEANS_CREDITCARD);\n }\n if (results.IDENTITY != null) {\n this.processIdentity(results.IDENTITY);\n }\n\n for (const key in results) {\n if (results.hasOwnProperty(key) && !HandledResults.has(key)) {\n this.processNote(results[key], null, 'Generic Note');\n }\n }\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n private processAuth(results: any[]) {\n results.forEach((credential: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(credential.title);\n\n cipher.login.username = this.getValueOrDefault(credential.login,\n this.getValueOrDefault(credential.secondaryLogin));\n if (this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = this.getValueOrDefault(credential.email);\n } else if (!this.isNullOrWhitespace(credential.email)) {\n cipher.notes = ('Email: ' + credential.email + '\\n');\n }\n\n cipher.login.password = this.getValueOrDefault(credential.password);\n cipher.login.uris = this.makeUriArray(credential.domain);\n cipher.notes += this.getValueOrDefault(credential.note, '');\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processIdentity(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.name = this.getValueOrDefault(obj.fullName, '');\n const nameParts = cipher.name.split(' ');\n if (nameParts.length > 0) {\n cipher.identity.firstName = this.getValueOrDefault(nameParts[0]);\n }\n if (nameParts.length === 2) {\n cipher.identity.lastName = this.getValueOrDefault(nameParts[1]);\n } else if (nameParts.length === 3) {\n cipher.identity.middleName = this.getValueOrDefault(nameParts[1]);\n cipher.identity.lastName = this.getValueOrDefault(nameParts[2]);\n }\n cipher.identity.username = this.getValueOrDefault(obj.pseudo);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processAddress(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.name = this.getValueOrDefault(obj.addressName);\n cipher.identity.address1 = this.getValueOrDefault(obj.addressFull);\n cipher.identity.city = this.getValueOrDefault(obj.city);\n cipher.identity.state = this.getValueOrDefault(obj.state);\n cipher.identity.postalCode = this.getValueOrDefault(obj.zipcode);\n cipher.identity.country = this.getValueOrDefault(obj.country);\n if (cipher.identity.country != null) {\n cipher.identity.country = cipher.identity.country.toUpperCase();\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processCard(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n cipher.name = this.getValueOrDefault(obj.bank);\n cipher.card.number = this.getValueOrDefault(obj.cardNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.cardholderName = this.getValueOrDefault(obj.owner);\n if (!this.isNullOrWhitespace(cipher.card.brand)) {\n if (this.isNullOrWhitespace(cipher.name)) {\n cipher.name = cipher.card.brand;\n } else {\n cipher.name += (' - ' + cipher.card.brand);\n }\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processNote(results: any[], nameProperty: string, name: string = null) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.secureNote = new SecureNoteView();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n if (name != null) {\n cipher.name = name;\n } else {\n cipher.name = this.getValueOrDefault(obj[nameProperty]);\n }\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && key !== nameProperty) {\n this.processKvp(cipher, key, obj[key].toString());\n }\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class EncryptrCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Label, '--');\n cipher.notes = this.getValueOrDefault(value.Notes);\n const text = this.getValueOrDefault(value.Text);\n if (!this.isNullOrWhitespace(text)) {\n if (this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = text;\n } else {\n cipher.notes += ('\\n\\n' + text);\n }\n }\n\n const type = value['Entry Type'];\n if (type === 'Password') {\n cipher.login.username = this.getValueOrDefault(value.Username);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value['Site URL']);\n } else if (type === 'Credit Card') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value['Name on card']);\n cipher.card.number = this.getValueOrDefault(value['Card Number']);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.CVV);\n const expiry = this.getValueOrDefault(value.Expiry);\n if (!this.isNullOrWhitespace(expiry)) {\n const expParts = expiry.split('/');\n if (expParts.length > 1) {\n cipher.card.expMonth = parseInt(expParts[0], null).toString();\n cipher.card.expYear = (2000 + parseInt(expParts[1], null)).toString();\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { CardView } from '../models/view/cardView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nexport class EnpassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let firstRow = true;\n results.forEach(value => {\n if (value.length < 2 || (firstRow && (value[0] === 'Title' || value[0] === 'title'))) {\n firstRow = false;\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 1]);\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n if (value.length === 2 || (!this.containsField(value, 'username') &&\n !this.containsField(value, 'password') && !this.containsField(value, 'email') &&\n !this.containsField(value, 'url'))) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n }\n\n if (this.containsField(value, 'cardholder') && this.containsField(value, 'number') &&\n this.containsField(value, 'expiry date')) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n }\n\n if (value.length > 2 && (value.length % 2) === 0) {\n for (let i = 0; i < value.length - 2; i += 2) {\n const fieldValue: string = value[i + 2];\n if (this.isNullOrWhitespace(fieldValue)) {\n continue;\n }\n\n const fieldName: string = value[i + 1];\n const fieldNameLower = fieldName.toLowerCase();\n\n if (cipher.type === CipherType.Login) {\n if (fieldNameLower === 'url' && (cipher.login.uris == null || cipher.login.uris.length === 0)) {\n cipher.login.uris = this.makeUriArray(fieldValue);\n continue;\n } else if ((fieldNameLower === 'username' || fieldNameLower === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = fieldValue;\n continue;\n } else if (fieldNameLower === 'password' && this.isNullOrWhitespace(cipher.login.password)) {\n cipher.login.password = fieldValue;\n continue;\n } else if (fieldNameLower === 'totp' && this.isNullOrWhitespace(cipher.login.totp)) {\n cipher.login.totp = fieldValue;\n continue;\n }\n } else if (cipher.type === CipherType.Card) {\n if (fieldNameLower === 'cardholder' && this.isNullOrWhitespace(cipher.card.cardholderName)) {\n cipher.card.cardholderName = fieldValue;\n continue;\n } else if (fieldNameLower === 'number' && this.isNullOrWhitespace(cipher.card.number)) {\n cipher.card.number = fieldValue;\n cipher.card.brand = this.getCardBrand(fieldValue);\n continue;\n } else if (fieldNameLower === 'cvc' && this.isNullOrWhitespace(cipher.card.code)) {\n cipher.card.code = fieldValue;\n continue;\n } else if (fieldNameLower === 'expiry date' && this.isNullOrWhitespace(cipher.card.expMonth) &&\n this.isNullOrWhitespace(cipher.card.expYear)) {\n if (this.setCardExpiration(cipher, fieldValue)) {\n continue;\n }\n } else if (fieldNameLower === 'type') {\n // Skip since brand was determined from number above\n continue;\n }\n }\n\n this.processKvp(cipher, fieldName, fieldValue);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private containsField(fields: any[], name: string) {\n if (fields == null || name == null) {\n return false;\n }\n return fields.filter(f => !this.isNullOrWhitespace(f) &&\n f.toLowerCase() === name.toLowerCase()).length > 0;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\n\nexport class EnpassJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.items == null || results.items.length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n const foldersIndexMap = new Map();\n const folderTree = this.buildFolderTree(results.folders);\n this.flattenFolderTree(null, folderTree, foldersMap);\n foldersMap.forEach((val, key) => {\n foldersIndexMap.set(key, result.folders.length);\n const f = new FolderView();\n f.name = val;\n result.folders.push(f);\n });\n\n results.items.forEach((item: any) => {\n if (item.folders != null && item.folders.length > 0 && foldersIndexMap.has(item.folders[0])) {\n result.folderRelationships.push([result.ciphers.length, foldersIndexMap.get(item.folders[0])]);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(item.title);\n cipher.favorite = item.favorite > 0;\n\n if (item.template_type != null && item.fields != null && item.fields.length > 0) {\n if (item.template_type.indexOf('login.') === 0 || item.template_type.indexOf('password.') === 0) {\n this.processLogin(cipher, item.fields);\n } else if (item.template_type.indexOf('creditcard.') === 0) {\n this.processCard(cipher, item.fields);\n } else if (item.template_type.indexOf('identity.') < 0 &&\n item.fields.some((f: any) => f.type === 'password' && !this.isNullOrWhitespace(f.value))) {\n this.processLogin(cipher, item.fields);\n } else {\n this.processNote(cipher, item.fields);\n }\n }\n\n cipher.notes += ('\\n' + this.getValueOrDefault(item.note, ''));\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private processLogin(cipher: CipherView, fields: any[]) {\n const urls: string[] = [];\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section') {\n return;\n }\n\n if ((field.type === 'username' || field.type === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = field.value;\n } else if (field.type === 'password' && this.isNullOrWhitespace(cipher.login.password)) {\n cipher.login.password = field.value;\n } else if (field.type === 'totp' && this.isNullOrWhitespace(cipher.login.totp)) {\n cipher.login.totp = field.value;\n } else if (field.type === 'url') {\n urls.push(field.value);\n } else {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n });\n cipher.login.uris = this.makeUriArray(urls);\n }\n\n private processCard(cipher: CipherView, fields: any[]) {\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section' || field.type === 'ccType') {\n return;\n }\n\n if (field.type === 'ccName' && this.isNullOrWhitespace(cipher.card.cardholderName)) {\n cipher.card.cardholderName = field.value;\n } else if (field.type === 'ccNumber' && this.isNullOrWhitespace(cipher.card.number)) {\n cipher.card.number = field.value;\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n } else if (field.type === 'ccCvc' && this.isNullOrWhitespace(cipher.card.code)) {\n cipher.card.code = field.value;\n } else if (field.type === 'ccExpiry' && this.isNullOrWhitespace(cipher.card.expYear)) {\n if (!this.setCardExpiration(cipher, field.value)) {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n } else {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n });\n }\n\n private processNote(cipher: CipherView, fields: any[]) {\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section') {\n return;\n }\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n });\n }\n\n private buildFolderTree(folders: any[]): any[] {\n if (folders == null) {\n return [];\n }\n const folderTree: any[] = [];\n const map = new Map([]);\n folders.forEach((obj: any) => {\n map.set(obj.uuid, obj);\n obj.children = [];\n });\n folders.forEach((obj: any) => {\n if (obj.parent_uuid != null && obj.parent_uuid !== '' && map.has(obj.parent_uuid)) {\n map.get(obj.parent_uuid).children.push(obj);\n } else {\n folderTree.push(obj);\n }\n });\n return folderTree;\n }\n\n private flattenFolderTree(titlePrefix: string, tree: any[], map: Map) {\n if (tree == null) {\n return;\n }\n tree.forEach((f: any) => {\n if (f.title != null && f.title.trim() !== '') {\n let title = f.title.trim();\n if (titlePrefix != null && titlePrefix.trim() !== '') {\n title = titlePrefix + '/' + title;\n }\n map.set(f.uuid, title);\n if (f.children != null && f.children.length !== 0) {\n this.flattenFolderTree(title, f.children, map);\n }\n }\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class FirefoxCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n const url = this.getValueOrDefault(value.url, this.getValueOrDefault(value.hostname));\n cipher.name = this.getValueOrDefault(this.nameFromUrl(url), '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class FSecureFskImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.data == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n for (const key in results.data) {\n if (!results.data.hasOwnProperty(key)) {\n continue;\n }\n\n const value = results.data[key];\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.service);\n cipher.notes = this.getValueOrDefault(value.notes);\n\n if (value.style === 'website') {\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n } else if (value.style === 'creditcard') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.username);\n cipher.card.number = this.getValueOrDefault(value.creditNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.creditCvv);\n if (!this.isNullOrWhitespace(value.creditExpiry)) {\n if (!this.setCardExpiration(cipher, value.creditExpiry)) {\n this.processKvp(cipher, 'Expiration', value.creditExpiry);\n }\n }\n if (!this.isNullOrWhitespace(value.password)) {\n this.processKvp(cipher, 'PIN', value.password);\n }\n } else {\n continue;\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class GnomeJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || Object.keys(results).length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n for (const keyRing in results) {\n if (!results.hasOwnProperty(keyRing) || this.isNullOrWhitespace(keyRing) ||\n results[keyRing].length === 0) {\n continue;\n }\n\n results[keyRing].forEach((value: any) => {\n if (this.isNullOrWhitespace(value.display_name) || value.display_name.indexOf('http') !== 0) {\n return;\n }\n\n this.processFolder(result, keyRing);\n const cipher = this.initLoginCipher();\n cipher.name = value.display_name.replace('http://', '').replace('https://', '');\n if (cipher.name.length > 30) {\n cipher.name = cipher.name.substring(0, 30);\n }\n cipher.login.password = this.getValueOrDefault(value.secret);\n cipher.login.uris = this.makeUriArray(value.display_name);\n\n if (value.attributes != null) {\n cipher.login.username = value.attributes != null ?\n this.getValueOrDefault(value.attributes.username_value) : null;\n for (const attr in value.attributes) {\n if (!value.attributes.hasOwnProperty(attr) || attr === 'username_value' ||\n attr === 'xdg:schema') {\n continue;\n }\n this.processKvp(cipher, attr, value.attributes[attr]);\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nconst NotesHeader = 'Notes\\n\\n';\nconst ApplicationsHeader = 'Applications\\n\\n';\nconst WebsitesHeader = 'Websites\\n\\n';\nconst Delimiter = '\\n---\\n';\n\nexport class KasperskyTxtImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n\n let notesData: string;\n let applicationsData: string;\n let websitesData: string;\n let workingData = this.splitNewLine(data).join('\\n');\n\n if (workingData.indexOf(NotesHeader) !== -1) {\n const parts = workingData.split(NotesHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n notesData = parts[1];\n }\n }\n if (workingData.indexOf(ApplicationsHeader) !== -1) {\n const parts = workingData.split(ApplicationsHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n applicationsData = parts[1];\n }\n }\n if (workingData.indexOf(WebsitesHeader) === 0) {\n const parts = workingData.split(WebsitesHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n websitesData = parts[1];\n }\n }\n\n const notes = this.parseDataCategory(notesData);\n const applications = this.parseDataCategory(applicationsData);\n const websites = this.parseDataCategory(websitesData);\n\n notes.forEach(n => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(n.get('Name'));\n cipher.notes = this.getValueOrDefault(n.get('Text'));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n websites.concat(applications).forEach(w => {\n const cipher = this.initLoginCipher();\n const nameKey = w.has('Website name') ? 'Website name' : 'Application';\n cipher.name = this.getValueOrDefault(w.get(nameKey), '');\n if (!this.isNullOrWhitespace(w.get('Login name'))) {\n if (!this.isNullOrWhitespace(cipher.name)) {\n cipher.name += ': ';\n }\n cipher.name += w.get('Login name');\n }\n cipher.notes = this.getValueOrDefault(w.get('Comment'));\n if (w.has('Website URL')) {\n cipher.login.uris = this.makeUriArray(w.get('Website URL'));\n }\n cipher.login.username = this.getValueOrDefault(w.get('Login'));\n cipher.login.password = this.getValueOrDefault(w.get('Password'));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseDataCategory(data: string): Map[] {\n if (this.isNullOrWhitespace(data) || data.indexOf(Delimiter) === -1) {\n return [];\n }\n const items: Map[] = [];\n data.split(Delimiter).forEach(p => {\n if (p.indexOf('\\n') === -1) {\n return;\n }\n const item = new Map();\n let itemComment: string;\n let itemCommentKey: string;\n p.split('\\n').forEach(l => {\n if (itemComment != null) {\n itemComment += ('\\n' + l);\n return;\n }\n const colonIndex = l.indexOf(':');\n let key: string;\n let val: string;\n if (colonIndex === -1) {\n return;\n } else {\n key = l.substring(0, colonIndex);\n if (l.length > colonIndex + 1) {\n val = l.substring(colonIndex + 2);\n }\n }\n if (key != null) {\n item.set(key, val);\n }\n if (key === 'Comment' || key === 'Text') {\n itemComment = val;\n itemCommentKey = key;\n }\n });\n if (itemComment != null && itemCommentKey != null) {\n item.set(itemCommentKey, itemComment);\n }\n if (item.size === 0) {\n return;\n }\n items.push(item);\n });\n return items;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { FieldType } from '../enums/fieldType';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport class KeePass2XmlImporter extends BaseImporter implements Importer {\n result = new ImportResult();\n\n parse(data: string): Promise {\n const doc = this.parseXml(data);\n if (doc == null) {\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n const rootGroup = doc.querySelector('KeePassFile > Root > Group');\n if (rootGroup == null) {\n this.result.errorMessage = 'Missing `KeePassFile > Root > Group` node.';\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n this.traverse(rootGroup, true, '');\n\n if (this.organization) {\n this.moveFoldersToCollections(this.result);\n }\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n traverse(node: Element, isRootNode: boolean, groupPrefixName: string) {\n const folderIndex = this.result.folders.length;\n let groupName = groupPrefixName;\n\n if (!isRootNode) {\n if (groupName !== '') {\n groupName += '/';\n }\n const nameEl = this.querySelectorDirectChild(node, 'Name');\n groupName += nameEl == null ? '-' : nameEl.textContent;\n const folder = new FolderView();\n folder.name = groupName;\n this.result.folders.push(folder);\n }\n\n this.querySelectorAllDirectChild(node, 'Entry').forEach(entry => {\n const cipherIndex = this.result.ciphers.length;\n\n const cipher = this.initLoginCipher();\n this.querySelectorAllDirectChild(entry, 'String').forEach(entryString => {\n const valueEl = this.querySelectorDirectChild(entryString, 'Value');\n const value = valueEl != null ? valueEl.textContent : null;\n if (this.isNullOrWhitespace(value)) {\n return;\n }\n const keyEl = this.querySelectorDirectChild(entryString, 'Key');\n const key = keyEl != null ? keyEl.textContent : null;\n\n if (key === 'URL') {\n cipher.login.uris = this.makeUriArray(value);\n } else if (key === 'UserName') {\n cipher.login.username = value;\n } else if (key === 'Password') {\n cipher.login.password = value;\n } else if (key === 'otp') {\n cipher.login.totp = value.replace('key=', '');\n } else if (key === 'Title') {\n cipher.name = value;\n } else if (key === 'Notes') {\n cipher.notes += (value + '\\n');\n } else {\n let type = FieldType.Text;\n const attrs = (valueEl.attributes as any);\n if (attrs.length > 0 && attrs.ProtectInMemory != null &&\n attrs.ProtectInMemory.value === 'True') {\n type = FieldType.Hidden;\n }\n this.processKvp(cipher, key, value, type);\n }\n });\n\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n\n if (!isRootNode) {\n this.result.folderRelationships.push([cipherIndex, folderIndex]);\n }\n });\n\n this.querySelectorAllDirectChild(node, 'Group').forEach(group => {\n this.traverse(group, false, groupName);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class KeePassXCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(value.Title)) {\n return;\n }\n\n value.Group = !this.isNullOrWhitespace(value.Group) && value.Group.startsWith('Root/') ?\n value.Group.replace('Root/', '') : value.Group;\n const groupName = !this.isNullOrWhitespace(value.Group) ? value.Group : null;\n this.processFolder(result, groupName);\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.name = this.getValueOrDefault(value.Title, '--');\n cipher.login.username = this.getValueOrDefault(value.Username);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport class KeeperCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 6) {\n return;\n }\n\n this.processFolder(result, value[0]);\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[5]) + '\\n';\n cipher.name = this.getValueOrDefault(value[1], '--');\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n\n if (value.length > 7) {\n // we have some custom fields.\n for (let i = 7; i < value.length; i = i + 2) {\n this.processKvp(cipher, value[i], value[i + 1]);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FolderView } from '../models/view/folderView';\nimport { IdentityView } from '../models/view/identityView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class LastPassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach((value, index) => {\n const cipherIndex = result.ciphers.length;\n let folderIndex = result.folders.length;\n let grouping = value.grouping;\n if (grouping != null) {\n grouping = grouping.replace(/\\\\/g, '/').replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, '');\n }\n const hasFolder = this.getValueOrDefault(grouping, '(none)') !== '(none)';\n let addFolder = hasFolder;\n\n if (hasFolder) {\n for (let i = 0; i < result.folders.length; i++) {\n if (result.folders[i].name === grouping) {\n addFolder = false;\n folderIndex = i;\n break;\n }\n }\n }\n\n const cipher = this.buildBaseCipher(value);\n if (cipher.type === CipherType.Login) {\n cipher.notes = this.getValueOrDefault(value.extra);\n cipher.login = new LoginView();\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n } else if (cipher.type === CipherType.SecureNote) {\n this.parseSecureNote(value, cipher);\n } else if (cipher.type === CipherType.Card) {\n cipher.card = this.parseCard(value);\n cipher.notes = this.getValueOrDefault(value.notes);\n } else if (cipher.type === CipherType.Identity) {\n cipher.identity = this.parseIdentity(value);\n cipher.notes = this.getValueOrDefault(value.notes);\n if (!this.isNullOrWhitespace(value.ccnum)) {\n // there is a card on this identity too\n const cardCipher = this.buildBaseCipher(value);\n cardCipher.identity = null;\n cardCipher.type = CipherType.Card;\n cardCipher.card = this.parseCard(value);\n result.ciphers.push(cardCipher);\n }\n }\n\n result.ciphers.push(cipher);\n\n if (addFolder) {\n const f = new FolderView();\n f.name = grouping;\n result.folders.push(f);\n }\n if (hasFolder) {\n result.folderRelationships.push([cipherIndex, folderIndex]);\n }\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private buildBaseCipher(value: any) {\n const cipher = new CipherView();\n if (value.hasOwnProperty('profilename') && value.hasOwnProperty('profilelanguage')) {\n // form fill\n cipher.favorite = false;\n cipher.name = this.getValueOrDefault(value.profilename, '--');\n cipher.type = CipherType.Card;\n\n if (!this.isNullOrWhitespace(value.title) || !this.isNullOrWhitespace(value.firstname) ||\n !this.isNullOrWhitespace(value.lastname) || !this.isNullOrWhitespace(value.address1) ||\n !this.isNullOrWhitespace(value.phone) || !this.isNullOrWhitespace(value.username) ||\n !this.isNullOrWhitespace(value.email)) {\n cipher.type = CipherType.Identity;\n }\n } else {\n // site or secure note\n cipher.favorite = !this.organization && this.getValueOrDefault(value.fav, '0') === '1';\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.type = value.url === 'http://sn' ? CipherType.SecureNote : CipherType.Login;\n }\n return cipher;\n }\n\n private parseCard(value: any): CardView {\n const card = new CardView();\n card.cardholderName = this.getValueOrDefault(value.ccname);\n card.number = this.getValueOrDefault(value.ccnum);\n card.code = this.getValueOrDefault(value.cccsc);\n card.brand = this.getCardBrand(value.ccnum);\n\n if (!this.isNullOrWhitespace(value.ccexp) && value.ccexp.indexOf('-') > -1) {\n const ccexpParts = (value.ccexp as string).split('-');\n if (ccexpParts.length > 1) {\n card.expYear = ccexpParts[0];\n card.expMonth = ccexpParts[1];\n if (card.expMonth.length === 2 && card.expMonth[0] === '0') {\n card.expMonth = card.expMonth[1];\n }\n }\n }\n\n return card;\n }\n\n private parseIdentity(value: any): IdentityView {\n const identity = new IdentityView();\n identity.title = this.getValueOrDefault(value.title);\n identity.firstName = this.getValueOrDefault(value.firstname);\n identity.middleName = this.getValueOrDefault(value.middlename);\n identity.lastName = this.getValueOrDefault(value.lastname);\n identity.username = this.getValueOrDefault(value.username);\n identity.company = this.getValueOrDefault(value.company);\n identity.ssn = this.getValueOrDefault(value.ssn);\n identity.address1 = this.getValueOrDefault(value.address1);\n identity.address2 = this.getValueOrDefault(value.address2);\n identity.address3 = this.getValueOrDefault(value.address3);\n identity.city = this.getValueOrDefault(value.city);\n identity.state = this.getValueOrDefault(value.state);\n identity.postalCode = this.getValueOrDefault(value.zip);\n identity.country = this.getValueOrDefault(value.country);\n identity.email = this.getValueOrDefault(value.email);\n identity.phone = this.getValueOrDefault(value.phone);\n\n if (!this.isNullOrWhitespace(identity.title)) {\n identity.title = identity.title.charAt(0).toUpperCase() + identity.title.slice(1);\n }\n\n return identity;\n }\n\n private parseSecureNote(value: any, cipher: CipherView) {\n const extraParts = this.splitNewLine(value.extra);\n let processedNote = false;\n\n if (extraParts.length) {\n const typeParts = extraParts[0].split(':');\n if (typeParts.length > 1 && typeParts[0] === 'NoteType' &&\n (typeParts[1] === 'Credit Card' || typeParts[1] === 'Address')) {\n if (typeParts[1] === 'Credit Card') {\n const mappedData = this.parseSecureNoteMapping(cipher, extraParts, {\n 'Number': 'number',\n 'Name on Card': 'cardholderName',\n 'Security Code': 'code',\n // LP provides date in a format like 'June,2020'\n // Store in expMonth, then parse and modify\n 'Expiration Date': 'expMonth',\n });\n\n if (this.isNullOrWhitespace(mappedData.expMonth) || mappedData.expMonth === ',') {\n // No expiration data\n mappedData.expMonth = undefined;\n } else {\n const [monthString, year] = mappedData.expMonth.split(',');\n // Parse month name into number\n if (!this.isNullOrWhitespace(monthString)) {\n const month = new Date(Date.parse(monthString.trim() + ' 1, 2012')).getMonth() + 1;\n if (isNaN(month)) {\n mappedData.expMonth = undefined;\n } else {\n mappedData.expMonth = month.toString();\n }\n } else {\n mappedData.expMonth = undefined;\n }\n if (!this.isNullOrWhitespace(year)) {\n mappedData.expYear = year;\n }\n }\n\n cipher.type = CipherType.Card;\n cipher.card = mappedData;\n } else if (typeParts[1] === 'Address') {\n const mappedData = this.parseSecureNoteMapping(cipher, extraParts, {\n 'Title': 'title',\n 'First Name': 'firstName',\n 'Last Name': 'lastName',\n 'Middle Name': 'middleName',\n 'Company': 'company',\n 'Address 1': 'address1',\n 'Address 2': 'address2',\n 'Address 3': 'address3',\n 'City / Town': 'city',\n 'State': 'state',\n 'Zip / Postal Code': 'postalCode',\n 'Country': 'country',\n 'Email Address': 'email',\n 'Username': 'username',\n });\n cipher.type = CipherType.Identity;\n cipher.identity = mappedData;\n }\n processedNote = true;\n }\n }\n\n if (!processedNote) {\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.notes = this.getValueOrDefault(value.extra);\n }\n }\n\n private parseSecureNoteMapping(cipher: CipherView, extraParts: string[], map: any): T {\n const dataObj: any = {};\n\n let processingNotes = false;\n extraParts.forEach(extraPart => {\n let key: string = null;\n let val: string = null;\n if (!processingNotes) {\n if (this.isNullOrWhitespace(extraPart)) {\n return;\n }\n const colonIndex = extraPart.indexOf(':');\n if (colonIndex === -1) {\n key = extraPart;\n } else {\n key = extraPart.substring(0, colonIndex);\n if (extraPart.length > colonIndex) {\n val = extraPart.substring(colonIndex + 1);\n }\n }\n if (this.isNullOrWhitespace(key) || this.isNullOrWhitespace(val) || key === 'NoteType') {\n return;\n }\n }\n\n if (processingNotes) {\n cipher.notes += ('\\n' + extraPart);\n } else if (key === 'Notes') {\n if (!this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes += ('\\n' + val);\n } else {\n cipher.notes = val;\n }\n processingNotes = true;\n } else if (map.hasOwnProperty(key)) {\n dataObj[map[key]] = val;\n } else {\n this.processKvp(cipher, key, val);\n }\n });\n\n return dataObj;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class LogMeOnceCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 4) {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[1]);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class MeldiumCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.DisplayName, '--');\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.login.username = this.getValueOrDefault(value.UserName);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.Url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nexport class MSecureCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 3) {\n return;\n }\n\n const folderName = this.getValueOrDefault(value[0], 'Unassigned') !== 'Unassigned' ? value[0] : null;\n this.processFolder(result, folderName);\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[2], '--');\n\n if (value[1] === 'Web Logins' || value[1] === 'Login') {\n cipher.login.uris = this.makeUriArray(value[4]);\n cipher.login.username = this.getValueOrDefault(value[5]);\n cipher.login.password = this.getValueOrDefault(value[6]);\n cipher.notes = !this.isNullOrWhitespace(value[3]) ? value[3].split('\\\\n').join('\\n') : null;\n } else if (value.length > 3) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n for (let i = 3; i < value.length; i++) {\n if (!this.isNullOrWhitespace(value[i])) {\n cipher.notes += (value[i] + '\\n');\n }\n }\n }\n\n if (!this.isNullOrWhitespace(value[1]) && cipher.type !== CipherType.Login) {\n cipher.name = value[1] + ': ' + cipher.name;\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { CardView } from '../models/view/cardView';\nimport { IdentityView } from '../models/view/identityView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class MykiCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.nickname, '--');\n cipher.notes = this.getValueOrDefault(value.additionalInfo);\n\n if (value.url !== undefined) {\n // Accounts\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.totp = this.getValueOrDefault(value.twoFactAuthToken);\n } else if (value.cardNumber !== undefined) {\n // Cards\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n cipher.card.cardholderName = this.getValueOrDefault(value.cardName);\n cipher.card.number = this.getValueOrDefault(value.cardNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.expMonth = this.getValueOrDefault(value.exp_month);\n cipher.card.expYear = this.getValueOrDefault(value.exp_year);\n cipher.card.code = this.getValueOrDefault(value.cvv);\n } else if (value.firstName !== undefined) {\n // Identities\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.identity.title = this.getValueOrDefault(value.title);\n cipher.identity.firstName = this.getValueOrDefault(value.firstName);\n cipher.identity.middleName = this.getValueOrDefault(value.middleName);\n cipher.identity.lastName = this.getValueOrDefault(value.lastName);\n cipher.identity.phone = this.getValueOrDefault(value.number);\n cipher.identity.email = this.getValueOrDefault(value.email);\n cipher.identity.address1 = this.getValueOrDefault(value.firstAddressLine);\n cipher.identity.address2 = this.getValueOrDefault(value.secondAddressLine);\n cipher.identity.city = this.getValueOrDefault(value.city);\n cipher.identity.country = this.getValueOrDefault(value.country);\n cipher.identity.postalCode = this.getValueOrDefault(value.zipCode);\n } else if (value.content !== undefined) {\n // Notes\n cipher.secureNote = new SecureNoteView();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.notes = this.getValueOrDefault(value.content);\n } else {\n return;\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from '../baseImporter';\nimport { Importer } from '../importer';\n\nimport { ImportResult } from '../../models/domain/importResult';\n\nimport { CardView } from '../../models/view/cardView';\nimport { CipherView } from '../../models/view/cipherView';\nimport { IdentityView } from '../../models/view/identityView';\nimport { PasswordHistoryView } from '../../models/view/passwordHistoryView';\nimport { SecureNoteView } from '../../models/view/secureNoteView';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { FieldType } from '../../enums/fieldType';\nimport { SecureNoteType } from '../../enums/secureNoteType';\n\nexport class OnePassword1PifImporter extends BaseImporter implements Importer {\n result = new ImportResult();\n\n parse(data: string): Promise {\n data.split(this.newLineRegex).forEach(line => {\n if (this.isNullOrWhitespace(line) || line[0] !== '{') {\n return;\n }\n const item = JSON.parse(line);\n if (item.trashed === true) {\n return;\n }\n const cipher = this.initLoginCipher();\n\n if (this.isNullOrWhitespace(item.hmac)) {\n this.processStandardItem(item, cipher);\n } else {\n this.processWinOpVaultItem(item, cipher);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n private processWinOpVaultItem(item: any, cipher: CipherView) {\n if (item.overview != null) {\n cipher.name = this.getValueOrDefault(item.overview.title);\n if (item.overview.URLs != null) {\n const urls: string[] = [];\n item.overview.URLs.forEach((url: any) => {\n if (!this.isNullOrWhitespace(url.u)) {\n urls.push(url.u);\n }\n });\n cipher.login.uris = this.makeUriArray(urls);\n }\n }\n\n if (item.details != null) {\n if (item.details.passwordHistory != null) {\n this.parsePasswordHistory(item.details.passwordHistory, cipher);\n }\n if (!this.isNullOrWhitespace(item.details.ccnum) || !this.isNullOrWhitespace(item.details.cvv)) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n } else if (!this.isNullOrWhitespace(item.details.firstname) ||\n !this.isNullOrWhitespace(item.details.address1)) {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n }\n if (cipher.type === CipherType.Login && !this.isNullOrWhitespace(item.details.password)) {\n cipher.login.password = item.details.password;\n }\n if (!this.isNullOrWhitespace(item.details.notesPlain)) {\n cipher.notes = item.details.notesPlain.split(this.newLineRegex).join('\\n') + '\\n';\n }\n if (item.details.fields != null) {\n this.parseFields(item.details.fields, cipher, 'designation', 'value', 'name');\n }\n if (item.details.sections != null) {\n item.details.sections.forEach((section: any) => {\n if (section.fields != null) {\n this.parseFields(section.fields, cipher, 'n', 'v', 't');\n }\n });\n }\n }\n }\n\n private processStandardItem(item: any, cipher: CipherView) {\n cipher.favorite = item.openContents && item.openContents.faveIndex ? true : false;\n cipher.name = this.getValueOrDefault(item.title);\n\n if (item.typeName === 'securenotes.SecureNote') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n } else if (item.typeName === 'wallet.financial.CreditCard') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n } else if (item.typeName === 'identities.Identity') {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n } else {\n cipher.login.uris = this.makeUriArray(item.location);\n }\n\n if (item.secureContents != null) {\n if (item.secureContents.passwordHistory != null) {\n this.parsePasswordHistory(item.secureContents.passwordHistory, cipher);\n }\n if (!this.isNullOrWhitespace(item.secureContents.notesPlain)) {\n cipher.notes = item.secureContents.notesPlain.split(this.newLineRegex).join('\\n') + '\\n';\n }\n if (cipher.type === CipherType.Login) {\n if (!this.isNullOrWhitespace(item.secureContents.password)) {\n cipher.login.password = item.secureContents.password;\n }\n if (item.secureContents.URLs != null) {\n const urls: string[] = [];\n item.secureContents.URLs.forEach((u: any) => {\n if (!this.isNullOrWhitespace(u.url)) {\n urls.push(u.url);\n }\n });\n if (urls.length > 0) {\n cipher.login.uris = this.makeUriArray(urls);\n }\n }\n }\n if (item.secureContents.fields != null) {\n this.parseFields(item.secureContents.fields, cipher, 'designation', 'value', 'name');\n }\n if (item.secureContents.sections != null) {\n item.secureContents.sections.forEach((section: any) => {\n if (section.fields != null) {\n this.parseFields(section.fields, cipher, 'n', 'v', 't');\n }\n });\n }\n }\n }\n\n private parsePasswordHistory(items: any[], cipher: CipherView) {\n const maxSize = items.length > 5 ? 5 : items.length;\n cipher.passwordHistory = items\n .filter((h: any) => !this.isNullOrWhitespace(h.value) && h.time != null)\n .sort((a, b) => b.time - a.time)\n .slice(0, maxSize)\n .map((h: any) => {\n const ph = new PasswordHistoryView();\n ph.password = h.value;\n ph.lastUsedDate = new Date(('' + h.time).length >= 13 ? h.time : h.time * 1000);\n return ph;\n });\n }\n\n private parseFields(fields: any[], cipher: CipherView, designationKey: string, valueKey: string, nameKey: string) {\n fields.forEach((field: any) => {\n if (field[valueKey] == null || field[valueKey].toString().trim() === '') {\n return;\n }\n\n const fieldValue = field[valueKey].toString();\n const fieldDesignation = field[designationKey] != null ? field[designationKey].toString() : null;\n\n if (cipher.type === CipherType.Login) {\n if (this.isNullOrWhitespace(cipher.login.username) && fieldDesignation === 'username') {\n cipher.login.username = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.login.password) && fieldDesignation === 'password') {\n cipher.login.password = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.login.totp) && fieldDesignation != null &&\n fieldDesignation.startsWith('TOTP_')) {\n cipher.login.totp = fieldValue;\n return;\n }\n } else if (cipher.type === CipherType.Card) {\n if (this.isNullOrWhitespace(cipher.card.number) && fieldDesignation === 'ccnum') {\n cipher.card.number = fieldValue;\n cipher.card.brand = this.getCardBrand(fieldValue);\n return;\n } else if (this.isNullOrWhitespace(cipher.card.code) && fieldDesignation === 'cvv') {\n cipher.card.code = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.card.cardholderName) && fieldDesignation === 'cardholder') {\n cipher.card.cardholderName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.card.expiration) && fieldDesignation === 'expiry' &&\n fieldValue.length === 6) {\n cipher.card.expMonth = (fieldValue as string).substr(4, 2);\n if (cipher.card.expMonth[0] === '0') {\n cipher.card.expMonth = cipher.card.expMonth.substr(1, 1);\n }\n cipher.card.expYear = (fieldValue as string).substr(0, 4);\n return;\n } else if (fieldDesignation === 'type') {\n // Skip since brand was determined from number above\n return;\n }\n } else if (cipher.type === CipherType.Identity) {\n const identity = cipher.identity;\n if (this.isNullOrWhitespace(identity.firstName) && fieldDesignation === 'firstname') {\n identity.firstName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.lastName) && fieldDesignation === 'lastname') {\n identity.lastName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.middleName) && fieldDesignation === 'initial') {\n identity.middleName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.phone) && fieldDesignation === 'defphone') {\n identity.phone = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.company) && fieldDesignation === 'company') {\n identity.company = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.email) && fieldDesignation === 'email') {\n identity.email = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.username) && fieldDesignation === 'username') {\n identity.username = fieldValue;\n return;\n } else if (fieldDesignation === 'address') {\n // fieldValue is an object casted into a string, so access the plain value instead\n const { street, city, country, zip } = field[valueKey];\n identity.address1 = this.getValueOrDefault(street);\n identity.city = this.getValueOrDefault(city);\n if (!this.isNullOrWhitespace(country)) {\n identity.country = country.toUpperCase();\n }\n identity.postalCode = this.getValueOrDefault(zip);\n return;\n }\n }\n\n const fieldName = this.isNullOrWhitespace(field[nameKey]) ? 'no_name' : field[nameKey];\n if (fieldName === 'password' && cipher.passwordHistory != null &&\n cipher.passwordHistory.some(h => h.password === fieldValue)) {\n return;\n }\n\n const fieldType = field.k === 'concealed' ? FieldType.Hidden : FieldType.Text;\n this.processKvp(cipher, fieldName, fieldValue, fieldType);\n });\n }\n}\n","import { Importer } from '../importer';\nimport { IgnoredProperties, OnePasswordCsvImporter } from './onepasswordCsvImporter';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { CardView, CipherView, IdentityView } from '../../models/view';\n\nexport class OnePasswordMacCsvImporter extends OnePasswordCsvImporter implements Importer {\n setCipherType(value: any, cipher: CipherView) {\n const onePassType = this.getValueOrDefault(this.getProp(value, 'type'), 'Login');\n switch (onePassType) {\n case 'Credit Card':\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n IgnoredProperties.push('type');\n break;\n case 'Identity':\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n IgnoredProperties.push('type');\n break;\n case 'Login':\n case 'Secure Note':\n IgnoredProperties.push('type');\n default:\n break;\n }\n }\n}\n","import { CipherView } from '../../models/view';\n\nexport class CipherImportContext {\n lowerProperty: string;\n constructor(public importRecord: any, public property: string, public cipher: CipherView) {\n this.lowerProperty = property.toLowerCase();\n }\n}\n","export class View {\n}\n","import { Importer } from '../importer';\nimport { CipherImportContext } from './cipherImportContext';\nimport { OnePasswordCsvImporter } from './onepasswordCsvImporter';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { CardView, CipherView, IdentityView, LoginView } from '../../models/view';\n\nexport class OnePasswordWinCsvImporter extends OnePasswordCsvImporter implements Importer {\n constructor() {\n super();\n this.identityPropertyParsers.push(this.setIdentityAddress);\n }\n\n setCipherType(value: any, cipher: CipherView) {\n cipher.type = CipherType.Login;\n cipher.login = new LoginView();\n\n if (!this.isNullOrWhitespace(this.getPropByRegexp(value, /\\d+: number/i)) &&\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /\\d+: expiry date/i))) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n }\n\n if (!this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: first name/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: initial/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: last name/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /internet \\d+: email/i))) {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n }\n }\n\n setIdentityAddress(context: CipherImportContext) {\n if (context.lowerProperty.match(/address \\d+: address/i)) {\n this.processKvp(context.cipher, 'address', context.importRecord[context.property]);\n return true;\n }\n return false;\n }\n\n setCreditCardExpiry(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.expiration) && context.lowerProperty.includes('expiry date')) {\n const expSplit = (context.importRecord[context.property] as string).split('/');\n context.cipher.card.expMonth = expSplit[0];\n if (context.cipher.card.expMonth[0] === '0' && context.cipher.card.expMonth.length === 2) {\n context.cipher.card.expMonth = context.cipher.card.expMonth.substr(1, 1);\n }\n context.cipher.card.expYear = expSplit[2].length > 4 ? expSplit[2].substr(0, 4) : expSplit[2];\n return true;\n }\n return false;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CollectionView } from '../models/view/collectionView';\nimport { FolderView } from '../models/view/folderView';\n\nexport class PadlockCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let headers: string[] = null;\n results.forEach(value => {\n if (headers == null) {\n headers = value.map((v: string) => v);\n return;\n }\n\n if (value.length < 2 || value.length !== headers.length) {\n return;\n }\n\n if (!this.isNullOrWhitespace(value[1])) {\n if (this.organization) {\n const tags = (value[1] as string).split(',');\n tags.forEach(tag => {\n tag = tag.trim();\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === tag) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = tag;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else {\n const tags = (value[1] as string).split(',');\n const tag = tags.length > 0 ? tags[0].trim() : null;\n this.processFolder(result, tag);\n }\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n for (let i = 2; i < value.length; i++) {\n const header = headers[i].trim().toLowerCase();\n if (this.isNullOrWhitespace(value[i]) || this.isNullOrWhitespace(header)) {\n continue;\n }\n\n if (this.usernameFieldNames.indexOf(header) > -1) {\n cipher.login.username = value[i];\n } else if (this.passwordFieldNames.indexOf(header) > -1) {\n cipher.login.password = value[i];\n } else if (this.uriFieldNames.indexOf(header) > -1) {\n cipher.login.uris = this.makeUriArray(value[i]);\n } else {\n this.processKvp(cipher, headers[i], value[i]);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PassKeepCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValue('category', value));\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValue('description', value);\n cipher.name = this.getValueOrDefault(this.getValue('title', value), '--');\n cipher.login.username = this.getValue('username', value);\n cipher.login.password = this.getValue('password', value);\n cipher.login.uris = this.makeUriArray(this.getValue('site', value));\n this.processKvp(cipher, 'Password 2', this.getValue('password2', value));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private getValue(key: string, value: any) {\n return this.getValueOrDefault(value[key], this.getValueOrDefault(value[(' ' + key)]));\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PassmanJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach((credential: any) => {\n if (credential.tags != null && credential.tags.length > 0) {\n const folderName = credential.tags[0].text;\n this.processFolder(result, folderName);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = credential.label;\n\n cipher.login.username = this.getValueOrDefault(credential.username);\n if (this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = this.getValueOrDefault(credential.email);\n } else if (!this.isNullOrWhitespace(credential.email)) {\n cipher.notes = ('Email: ' + credential.email + '\\n');\n }\n\n cipher.login.password = this.getValueOrDefault(credential.password);\n cipher.login.uris = this.makeUriArray(credential.url);\n cipher.notes += this.getValueOrDefault(credential.description, '');\n if (credential.otp != null) {\n cipher.login.totp = this.getValueOrDefault(credential.otp.secret);\n }\n\n if (credential.custom_fields != null) {\n credential.custom_fields.forEach((customField: any) => {\n switch (customField.field_type) {\n case 'text':\n case 'password':\n this.processKvp(cipher, customField.label, customField.value);\n break;\n }\n });\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nexport class PasspackCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const tagsJson = !this.isNullOrWhitespace(value.Tags) ? JSON.parse(value.Tags) : null;\n const tags: string[] = tagsJson != null && tagsJson.tags != null && tagsJson.tags.length > 0 ?\n tagsJson.tags.map((tagJson: string) => {\n try {\n const t = JSON.parse(tagJson);\n return this.getValueOrDefault(t.tag);\n } catch { }\n return null;\n }).filter((t: string) => !this.isNullOrWhitespace(t)) : null;\n\n if (this.organization && tags != null && tags.length > 0) {\n tags.forEach(tag => {\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === tag) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = tag;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else if (!this.organization && tags != null && tags.length > 0) {\n this.processFolder(result, tags[0]);\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Notes, '');\n cipher.notes += ('\\n\\n' + this.getValueOrDefault(value['Shared Notes'], '') + '\\n');\n cipher.name = this.getValueOrDefault(value['Entry Name'], '--');\n cipher.login.username = this.getValueOrDefault(value['User ID']);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n\n if (value.__parsed_extra != null && value.__parsed_extra.length > 0) {\n value.__parsed_extra.forEach((extra: string) => {\n if (!this.isNullOrWhitespace(extra)) {\n cipher.notes += ('\\n' + extra);\n }\n });\n }\n\n const fieldsJson = !this.isNullOrWhitespace(value['Extra Fields']) ?\n JSON.parse(value['Extra Fields']) : null;\n const fields = fieldsJson != null && fieldsJson.extraFields != null &&\n fieldsJson.extraFields.length > 0 ? fieldsJson.extraFields.map((fieldJson: string) => {\n try {\n return JSON.parse(fieldJson);\n } catch { }\n return null;\n }) : null;\n if (fields != null) {\n fields.forEach((f: any) => {\n if (f != null) {\n this.processKvp(cipher, f.name, f.data);\n }\n });\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordAgentCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let newVersion = true;\n results.forEach(value => {\n if (value.length !== 5 && value.length < 9) {\n return;\n }\n const altFormat = value.length === 10 && value[0] === '0';\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[altFormat ? 1 : 0], '--');\n cipher.login.username = this.getValueOrDefault(value[altFormat ? 2 : 1]);\n cipher.login.password = this.getValueOrDefault(value[altFormat ? 3 : 2]);\n if (value.length === 5) {\n newVersion = false;\n cipher.notes = this.getValueOrDefault(value[4]);\n cipher.login.uris = this.makeUriArray(value[3]);\n } else {\n const folder = this.getValueOrDefault(value[altFormat ? 9 : 8], '(None)');\n let folderName = folder !== '(None)' ? folder.split('\\\\').join('/') : null;\n if (folderName != null) {\n folderName = folder.split(' > ').join('/');\n folderName = folder.split('>').join('/');\n }\n this.processFolder(result, folderName);\n cipher.notes = this.getValueOrDefault(value[altFormat ? 5 : 3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n }\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (newVersion && this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class PasswordBossJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.items == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n results.folders.forEach((value: any) => {\n foldersMap.set(value.id, value.name);\n });\n const foldersIndexMap = new Map();\n foldersMap.forEach((val, key) => {\n foldersIndexMap.set(key, result.folders.length);\n const f = new FolderView();\n f.name = val;\n result.folders.push(f);\n });\n\n results.items.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.login.uris = this.makeUriArray(value.login_url);\n\n if (value.folder != null && foldersIndexMap.has(value.folder)) {\n result.folderRelationships.push([result.ciphers.length, foldersIndexMap.get(value.folder)]);\n }\n\n if (value.identifiers == null) {\n return;\n }\n\n if (!this.isNullOrWhitespace(value.identifiers.notes)) {\n cipher.notes = value.identifiers.notes.split('\\\\r\\\\n').join('\\n').split('\\\\n').join('\\n');\n }\n\n if (value.type === 'CreditCard') {\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n }\n\n for (const property in value.identifiers) {\n if (!value.identifiers.hasOwnProperty(property)) {\n continue;\n }\n const valObj = value.identifiers[property];\n const val = valObj != null ? valObj.toString() : null;\n if (this.isNullOrWhitespace(val) || property === 'notes' || property === 'ignoreItemInSecurityScore') {\n continue;\n }\n\n if (property === 'custom_fields') {\n valObj.forEach((cf: any) => {\n this.processKvp(cipher, cf.name, cf.value);\n });\n continue;\n }\n\n if (cipher.type === CipherType.Card) {\n if (property === 'cardNumber') {\n cipher.card.number = val;\n cipher.card.brand = this.getCardBrand(val);\n continue;\n } else if (property === 'nameOnCard') {\n cipher.card.cardholderName = val;\n continue;\n } else if (property === 'security_code') {\n cipher.card.code = val;\n continue;\n } else if (property === 'expires') {\n try {\n const expDate = new Date(val);\n cipher.card.expYear = expDate.getFullYear().toString();\n cipher.card.expMonth = (expDate.getMonth() + 1).toString();\n } catch { }\n continue;\n } else if (property === 'cardType') {\n continue;\n }\n } else {\n if ((property === 'username' || property === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = val;\n continue;\n } else if (property === 'password') {\n cipher.login.password = val;\n continue;\n } else if (property === 'totp') {\n cipher.login.totp = val;\n continue;\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(property) > -1) {\n cipher.login.uris = this.makeUriArray(val);\n continue;\n }\n }\n\n this.processKvp(cipher, property, val);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordDragonXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const records = doc.querySelectorAll('PasswordManager > record');\n Array.from(records).forEach(record => {\n const category = this.querySelectorDirectChild(record, 'Category');\n const categoryText = category != null && !this.isNullOrWhitespace(category.textContent) &&\n category.textContent !== 'Unfiled' ? category.textContent : null;\n this.processFolder(result, categoryText);\n\n const accountName = this.querySelectorDirectChild(record, 'Account-Name');\n const userId = this.querySelectorDirectChild(record, 'User-Id');\n const password = this.querySelectorDirectChild(record, 'Password');\n const url = this.querySelectorDirectChild(record, 'URL');\n const notes = this.querySelectorDirectChild(record, 'Notes');\n const cipher = this.initLoginCipher();\n cipher.name = accountName != null ? this.getValueOrDefault(accountName.textContent, '--') : '--';\n cipher.notes = notes != null ? this.getValueOrDefault(notes.textContent) : '';\n cipher.login.username = userId != null ? this.getValueOrDefault(userId.textContent) : null;\n cipher.login.password = password != null ? this.getValueOrDefault(password.textContent) : null;\n cipher.login.uris = url != null ? this.makeUriArray(url.textContent) : null;\n\n const attributes: string[] = [];\n for (let i = 1; i <= 10; i++) {\n attributes.push('Attribute-' + i);\n }\n\n this.querySelectorAllDirectChild(record, attributes.join(',')).forEach(attr => {\n if (this.isNullOrWhitespace(attr.textContent) || attr.textContent === 'null') {\n return;\n }\n this.processKvp(cipher, attr.tagName, attr.textContent);\n });\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordSafeXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const passwordSafe = doc.querySelector('passwordsafe');\n if (passwordSafe == null) {\n result.errorMessage = 'Missing `passwordsafe` node.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const notesDelimiter = passwordSafe.getAttribute('delimiter');\n const entries = doc.querySelectorAll('passwordsafe > entry');\n Array.from(entries).forEach(entry => {\n const group = this.querySelectorDirectChild(entry, 'group');\n const groupText = group != null && !this.isNullOrWhitespace(group.textContent) ?\n group.textContent.split('.').join('/') : null;\n this.processFolder(result, groupText);\n\n const title = this.querySelectorDirectChild(entry, 'title');\n const username = this.querySelectorDirectChild(entry, 'username');\n const email = this.querySelectorDirectChild(entry, 'email');\n const password = this.querySelectorDirectChild(entry, 'password');\n const url = this.querySelectorDirectChild(entry, 'url');\n const notes = this.querySelectorDirectChild(entry, 'notes');\n const cipher = this.initLoginCipher();\n cipher.name = title != null ? this.getValueOrDefault(title.textContent, '--') : '--';\n cipher.notes = notes != null ?\n this.getValueOrDefault(notes.textContent, '').split(notesDelimiter).join('\\n') : null;\n cipher.login.username = username != null ? this.getValueOrDefault(username.textContent) : null;\n cipher.login.password = password != null ? this.getValueOrDefault(password.textContent) : null;\n cipher.login.uris = url != null ? this.makeUriArray(url.textContent) : null;\n\n if (this.isNullOrWhitespace(cipher.login.username) && email != null) {\n cipher.login.username = this.getValueOrDefault(email.textContent);\n } else if (email != null && !this.isNullOrWhitespace(email.textContent)) {\n cipher.notes = this.isNullOrWhitespace(cipher.notes) ? 'Email: ' + email.textContent\n : (cipher.notes + '\\n' + 'Email: ' + email.textContent);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordWalletTxtImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 1) {\n return;\n }\n if (value.length > 5) {\n this.processFolder(result, value[5]);\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n if (value.length > 4) {\n cipher.notes = this.getValueOrDefault(value[4], '').split('¬').join('\\n');\n }\n if (value.length > 2) {\n cipher.login.username = this.getValueOrDefault(value[2]);\n }\n if (value.length > 3) {\n cipher.login.password = this.getValueOrDefault(value[3]);\n }\n if (value.length > 1) {\n cipher.login.uris = this.makeUriArray(value[1]);\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nexport class RememBearCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.trash === 'true') {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name);\n cipher.notes = this.getValueOrDefault(value.notes);\n if (value.type === 'LoginItem') {\n cipher.login.uris = this.makeUriArray(value.website);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.username);\n } else if (value.type === 'CreditCardItem') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.cardholder);\n cipher.card.number = this.getValueOrDefault(value.number);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.verification);\n\n try {\n const expMonth = this.getValueOrDefault(value.expiryMonth);\n if (expMonth != null) {\n const expMonthNumber = parseInt(expMonth, null);\n if (expMonthNumber != null && expMonthNumber >= 1 && expMonthNumber <= 12) {\n cipher.card.expMonth = expMonthNumber.toString();\n }\n }\n } catch { }\n try {\n const expYear = this.getValueOrDefault(value.expiryYear);\n if (expYear != null) {\n const expYearNumber = parseInt(expYear, null);\n if (expYearNumber != null) {\n cipher.card.expYear = expYearNumber.toString();\n }\n }\n } catch { }\n\n const pin = this.getValueOrDefault(value.pin);\n if (pin != null) {\n this.processKvp(cipher, 'PIN', pin);\n }\n const zip = this.getValueOrDefault(value.zipCode);\n if (zip != null) {\n this.processKvp(cipher, 'Zip Code', zip);\n }\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class RoboFormCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let i = 1;\n results.forEach(value => {\n const folder = !this.isNullOrWhitespace(value.Folder) && value.Folder.startsWith('/') ?\n value.Folder.replace('/', '') : value.Folder;\n const folderName = !this.isNullOrWhitespace(folder) ? folder : null;\n this.processFolder(result, folderName);\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Note);\n cipher.name = this.getValueOrDefault(value.Name, '--');\n cipher.login.username = this.getValueOrDefault(value.Login);\n cipher.login.password = this.getValueOrDefault(value.Pwd);\n cipher.login.uris = this.makeUriArray(value.Url);\n\n if (!this.isNullOrWhitespace(value.Rf_fields)) {\n let fields: string[] = [value.Rf_fields];\n if (value.__parsed_extra != null && value.__parsed_extra.length > 0) {\n fields = fields.concat(value.__parsed_extra);\n }\n fields.forEach((field: string) => {\n const parts = field.split(':');\n if (parts.length < 3) {\n return;\n }\n const key = parts[0] === '-no-name-' ? null : parts[0];\n const val = parts.length === 4 && parts[2] === 'rck' ? parts[1] : parts[2];\n this.processKvp(cipher, key, val);\n });\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n\n if (i === results.length && cipher.name === '--' && this.isNullOrWhitespace(cipher.login.password)) {\n return;\n }\n\n result.ciphers.push(cipher);\n i++;\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class SafeInCloudXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const db = doc.querySelector('database');\n if (db == null) {\n result.errorMessage = 'Missing `database` node.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n\n Array.from(doc.querySelectorAll('database > label')).forEach(labelEl => {\n const name = labelEl.getAttribute('name');\n const id = labelEl.getAttribute('id');\n if (!this.isNullOrWhitespace(name) && !this.isNullOrWhitespace(id)) {\n foldersMap.set(id, result.folders.length);\n const folder = new FolderView();\n folder.name = name;\n result.folders.push(folder);\n }\n });\n\n Array.from(doc.querySelectorAll('database > card')).forEach(cardEl => {\n if (cardEl.getAttribute('template') === 'true') {\n return;\n }\n\n const labelIdEl = this.querySelectorDirectChild(cardEl, 'label_id');\n if (labelIdEl != null) {\n const labelId = labelIdEl.textContent;\n if (!this.isNullOrWhitespace(labelId) && foldersMap.has(labelId)) {\n result.folderRelationships.push([result.ciphers.length, foldersMap.get(labelId)]);\n }\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(cardEl.getAttribute('title'), '--');\n\n const cardType = cardEl.getAttribute('type');\n if (cardType === 'note') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n } else {\n Array.from(this.querySelectorAllDirectChild(cardEl, 'field')).forEach(fieldEl => {\n const text = fieldEl.textContent;\n if (this.isNullOrWhitespace(text)) {\n return;\n }\n const name = fieldEl.getAttribute('name');\n const fieldType = this.getValueOrDefault(fieldEl.getAttribute('type'), '').toLowerCase();\n if (fieldType === 'login') {\n cipher.login.username = text;\n } else if (fieldType === 'password') {\n cipher.login.password = text;\n } else if (fieldType === 'one_time_password') {\n cipher.login.totp = text;\n } else if (fieldType === 'notes') {\n cipher.notes += (text + '\\n');\n } else if (fieldType === 'weblogin' || fieldType === 'website') {\n cipher.login.uris = this.makeUriArray(text);\n } else {\n this.processKvp(cipher, name, text);\n }\n });\n }\n\n Array.from(this.querySelectorAllDirectChild(cardEl, 'notes')).forEach(notesEl => {\n cipher.notes += (notesEl.textContent + '\\n');\n });\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class SaferPassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(this.nameFromUrl(value.url), '--');\n cipher.notes = this.getValueOrDefault(value.notes);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class SecureSafeCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Title);\n cipher.notes = this.getValueOrDefault(value.Comment);\n cipher.login.uris = this.makeUriArray(value.Url);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.username = this.getValueOrDefault(value.Username);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\nimport { CipherView } from '../models/view/cipherView';\n\nexport class SplashIdCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 3) {\n return;\n }\n\n this.processFolder(result, this.getValueOrDefault(value[value.length - 1]));\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 2], '');\n cipher.name = this.getValueOrDefault(value[1], '--');\n\n if (value[0] === 'Web Logins' || value[0] === 'Servers' || value[0] === 'Email Accounts') {\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n this.parseFieldsToNotes(cipher, 5, value);\n } else {\n this.parseFieldsToNotes(cipher, 2, value);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseFieldsToNotes(cipher: CipherView, startIndex: number, value: any) {\n // last 3 rows do not get parsed\n for (let i = startIndex; i < value.length - 3; i++) {\n if (this.isNullOrWhitespace(value[i])) {\n continue;\n }\n cipher.notes += (value[i] + '\\n');\n }\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class StickyPasswordXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const loginNodes = doc.querySelectorAll('root > Database > Logins > Login');\n Array.from(loginNodes).forEach(loginNode => {\n const accountId = loginNode.getAttribute('ID');\n if (this.isNullOrWhitespace(accountId)) {\n return;\n }\n\n const usernameText = loginNode.getAttribute('Name');\n const passwordText = loginNode.getAttribute('Password');\n let titleText: string = null;\n let linkText: string = null;\n let notesText: string = null;\n let groupId: string = null;\n let groupText: string = null;\n\n const accountLogin = doc.querySelector('root > Database > Accounts > Account > ' +\n 'LoginLinks > Login[SourceLoginID=\"' + accountId + '\"]');\n if (accountLogin != null) {\n const account = accountLogin.parentElement.parentElement;\n if (account != null) {\n titleText = account.getAttribute('Name');\n linkText = account.getAttribute('Link');\n groupId = account.getAttribute('ParentID');\n notesText = account.getAttribute('Comments');\n if (!this.isNullOrWhitespace(notesText)) {\n notesText = notesText.split('/n').join('\\n');\n }\n }\n }\n\n if (!this.isNullOrWhitespace(groupId)) {\n groupText = this.buildGroupText(doc, groupId, '');\n this.processFolder(result, groupText);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(titleText, '--');\n cipher.notes = this.getValueOrDefault(notesText);\n cipher.login.username = this.getValueOrDefault(usernameText);\n cipher.login.password = this.getValueOrDefault(passwordText);\n cipher.login.uris = this.makeUriArray(linkText);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n buildGroupText(doc: Document, groupId: string, groupText: string): string {\n const group = doc.querySelector('root > Database > Groups > Group[ID=\"' + groupId + '\"]');\n if (group == null) {\n return groupText;\n }\n if (!this.isNullOrWhitespace(groupText)) {\n groupText = '/' + groupText;\n }\n groupText = group.getAttribute('Name') + groupText;\n return this.buildGroupText(doc, group.getAttribute('ParentID'), groupText);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nconst PropertiesToIgnore = ['kind', 'autologin', 'favorite', 'hexcolor', 'protectedwithpassword', 'subdomainonly',\n 'type', 'tk_export_version', 'note', 'title', 'document_content',\n];\n\nexport class TrueKeyCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.favorite, '').toLowerCase() === 'true';\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.notes = this.getValueOrDefault(value.memo, '');\n cipher.login.username = this.getValueOrDefault(value.login);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n\n if (value.kind !== 'login') {\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.notes = this.getValueOrDefault(value.note, '');\n }\n\n if (value.kind === 'cc') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.cardholder);\n cipher.card.number = this.getValueOrDefault(value.number);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n if (!this.isNullOrWhitespace(value.expiryDate)) {\n try {\n const expDate = new Date(value.expiryDate);\n cipher.card.expYear = expDate.getFullYear().toString();\n cipher.card.expMonth = (expDate.getMonth() + 1).toString();\n } catch { }\n }\n } else if (value.kind !== 'login') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n if (!this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = this.getValueOrDefault(value.document_content, '');\n }\n for (const property in value) {\n if (value.hasOwnProperty(property) && PropertiesToIgnore.indexOf(property.toLowerCase()) < 0 &&\n !this.isNullOrWhitespace(value[property])) {\n this.processKvp(cipher, property, value[property]);\n }\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class UpmCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length !== 5) {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n cipher.notes = this.getValueOrDefault(value[4]);\n cipher.login.username = this.getValueOrDefault(value[1]);\n cipher.login.password = this.getValueOrDefault(value[2]);\n cipher.login.uris = this.makeUriArray(value[3]);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class YotiCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Name, '--');\n cipher.login.username = this.getValueOrDefault(value['User name']);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\nimport { CipherView } from '../models/view';\n\nexport class ZohoVaultCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(value['Password Name']) && this.isNullOrWhitespace(value['Secret Name'])) {\n return;\n }\n this.processFolder(result, this.getValueOrDefault(value.ChamberName));\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.Favorite, '0') === '1';\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.name = this.getValueOrDefault(\n value['Password Name'], this.getValueOrDefault(value['Secret Name'], '--'));\n cipher.login.uris = this.makeUriArray(\n this.getValueOrDefault(value['Password URL'], this.getValueOrDefault(value['Secret URL'])));\n this.parseData(cipher, value.SecretData);\n this.parseData(cipher, value.CustomData);\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseData(cipher: CipherView, data: string) {\n if (this.isNullOrWhitespace(data)) {\n return;\n }\n const dataLines = this.splitNewLine(data);\n dataLines.forEach(line => {\n const delimPosition = line.indexOf(':');\n if (delimPosition < 0) {\n return;\n }\n const field = line.substring(0, delimPosition);\n const value = line.length > delimPosition ? line.substring(delimPosition + 1) : null;\n if (this.isNullOrWhitespace(field) || this.isNullOrWhitespace(value) || field === 'SecretType') {\n return;\n }\n const fieldLower = field.toLowerCase();\n if (cipher.login.username == null && this.usernameFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.username = value;\n } else if (cipher.login.password == null && this.passwordFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.password = value;\n } else {\n this.processKvp(cipher, field, value);\n }\n });\n }\n}\n","import * as signalR from '@microsoft/signalr';\nimport * as signalRMsgPack from '@microsoft/signalr-protocol-msgpack';\n\nimport { NotificationType } from '../enums/notificationType';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { AppIdService } from '../abstractions/appId.service';\nimport { EnvironmentService } from '../abstractions/environment.service';\nimport { LogService } from '../abstractions/log.service';\nimport { NotificationsService as NotificationsServiceAbstraction } from '../abstractions/notifications.service';\nimport { SyncService } from '../abstractions/sync.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService } from '../abstractions/vaultTimeout.service';\n\nimport {\n NotificationResponse,\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\n\nexport class NotificationsService implements NotificationsServiceAbstraction {\n private signalrConnection: signalR.HubConnection;\n private url: string;\n private connected = false;\n private inited = false;\n private inactive = false;\n private reconnectTimer: any = null;\n\n constructor(private userService: UserService, private syncService: SyncService,\n private appIdService: AppIdService, private apiService: ApiService,\n private vaultTimeoutService: VaultTimeoutService,\n private logoutCallback: () => Promise, private logService: LogService) {\n }\n\n async init(environmentService: EnvironmentService): Promise {\n this.inited = false;\n this.url = 'https://notifications.bitwarden.com';\n if (environmentService.notificationsUrl != null) {\n this.url = environmentService.notificationsUrl;\n } else if (environmentService.baseUrl != null) {\n this.url = environmentService.baseUrl + '/notifications';\n }\n\n // Set notifications server URL to `https://-` to effectively disable communication\n // with the notifications server from the client app\n if (this.url === 'https://-') {\n return;\n }\n\n if (this.signalrConnection != null) {\n this.signalrConnection.off('ReceiveMessage');\n this.signalrConnection.off('Heartbeat');\n await this.signalrConnection.stop();\n this.connected = false;\n this.signalrConnection = null;\n }\n\n this.signalrConnection = new signalR.HubConnectionBuilder()\n .withUrl(this.url + '/hub', {\n accessTokenFactory: () => this.apiService.getActiveBearerToken(),\n skipNegotiation: true,\n transport: signalR.HttpTransportType.WebSockets,\n })\n .withHubProtocol(new signalRMsgPack.MessagePackHubProtocol())\n // .configureLogging(signalR.LogLevel.Trace)\n .build();\n\n this.signalrConnection.on('ReceiveMessage',\n (data: any) => this.processNotification(new NotificationResponse(data)));\n this.signalrConnection.on('Heartbeat',\n (data: any) => { /*console.log('Heartbeat!');*/ });\n this.signalrConnection.onclose(() => {\n this.connected = false;\n this.reconnect(true);\n });\n this.inited = true;\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(false);\n }\n }\n\n async updateConnection(sync = false): Promise {\n if (!this.inited) {\n return;\n }\n try {\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(sync);\n } else {\n await this.signalrConnection.stop();\n }\n } catch (e) {\n this.logService.error(e.toString());\n }\n }\n\n async reconnectFromActivity(): Promise {\n this.inactive = false;\n if (this.inited && !this.connected) {\n await this.reconnect(true);\n }\n }\n\n async disconnectFromInactivity(): Promise {\n this.inactive = true;\n if (this.inited && this.connected) {\n await this.signalrConnection.stop();\n }\n }\n\n private async processNotification(notification: NotificationResponse) {\n const appId = await this.appIdService.getAppId();\n if (notification == null || notification.contextId === appId) {\n return;\n }\n\n const isAuthenticated = await this.userService.isAuthenticated();\n const payloadUserId = notification.payload.userId || notification.payload.UserId;\n const myUserId = await this.userService.getUserId();\n if (isAuthenticated && payloadUserId != null && payloadUserId !== myUserId) {\n return;\n }\n\n switch (notification.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherUpdate:\n await this.syncService.syncUpsertCipher(notification.payload as SyncCipherNotification,\n notification.type === NotificationType.SyncCipherUpdate);\n break;\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncLoginDelete:\n await this.syncService.syncDeleteCipher(notification.payload as SyncCipherNotification);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderUpdate:\n await this.syncService.syncUpsertFolder(notification.payload as SyncFolderNotification,\n notification.type === NotificationType.SyncFolderUpdate);\n break;\n case NotificationType.SyncFolderDelete:\n await this.syncService.syncDeleteFolder(notification.payload as SyncFolderNotification);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncSettings:\n if (isAuthenticated) {\n await this.syncService.fullSync(false);\n }\n break;\n case NotificationType.SyncOrgKeys:\n if (isAuthenticated) {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n // Stop so a reconnect can be made\n await this.signalrConnection.stop();\n }\n break;\n case NotificationType.LogOut:\n if (isAuthenticated) {\n this.logoutCallback();\n }\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n await this.syncService.syncUpsertSend(notification.payload as SyncSendNotification,\n notification.type === NotificationType.SyncSendUpdate);\n break;\n case NotificationType.SyncSendDelete:\n await this.syncService.syncDeleteSend(notification.payload as SyncSendNotification);\n default:\n break;\n }\n }\n\n private async reconnect(sync: boolean) {\n if (this.reconnectTimer != null) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n if (this.connected || !this.inited || this.inactive) {\n return;\n }\n const authedAndUnlocked = await this.isAuthedAndUnlocked();\n if (!authedAndUnlocked) {\n return;\n }\n\n try {\n await this.signalrConnection.start();\n this.connected = true;\n if (sync) {\n await this.syncService.fullSync(false);\n }\n } catch { }\n\n if (!this.connected) {\n this.reconnectTimer = setTimeout(() => this.reconnect(sync), this.random(120000, 300000));\n }\n }\n\n private async isAuthedAndUnlocked() {\n if (await this.userService.isAuthenticated()) {\n const locked = await this.vaultTimeoutService.isLocked();\n return !locked;\n }\n return false;\n }\n\n private random(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { NotificationType } from '../../enums/notificationType';\n\nexport class NotificationResponse extends BaseResponse {\n contextId: string;\n type: NotificationType;\n payload: any;\n\n constructor(response: any) {\n super(response);\n this.contextId = this.getResponseProperty('ContextId');\n this.type = this.getResponseProperty('Type');\n\n const payload = this.getResponseProperty('Payload');\n switch (this.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncCipherUpdate:\n case NotificationType.SyncLoginDelete:\n this.payload = new SyncCipherNotification(payload);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderDelete:\n case NotificationType.SyncFolderUpdate:\n this.payload = new SyncFolderNotification(payload);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncOrgKeys:\n case NotificationType.SyncSettings:\n case NotificationType.LogOut:\n this.payload = new UserNotification(payload);\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n case NotificationType.SyncSendDelete:\n this.payload = new SyncSendNotification(payload);\n default:\n break;\n }\n }\n}\n\nexport class SyncCipherNotification extends BaseResponse {\n id: string;\n userId: string;\n organizationId: string;\n collectionIds: string[];\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.collectionIds = this.getResponseProperty('CollectionIds');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n\nexport class SyncFolderNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n\nexport class UserNotification extends BaseResponse {\n userId: string;\n date: Date;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.date = new Date(this.getResponseProperty('Date'));\n }\n}\n\nexport class SyncSendNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n","import { PolicyService as PolicyServiceAbstraction } from '../abstractions/policy.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { PolicyData } from '../models/data/policyData';\n\nimport { MasterPasswordPolicyOptions } from '../models/domain/masterPasswordPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { PolicyType } from '../enums/policyType';\n\nconst Keys = {\n policiesPrefix: 'policies_',\n};\n\nexport class PolicyService implements PolicyServiceAbstraction {\n policyCache: Policy[];\n\n constructor(private userService: UserService, private storageService: StorageService) {\n }\n\n clearCache(): void {\n this.policyCache = null;\n }\n\n async getAll(type?: PolicyType): Promise {\n if (this.policyCache == null) {\n const userId = await this.userService.getUserId();\n const policies = await this.storageService.get<{ [id: string]: PolicyData; }>(\n Keys.policiesPrefix + userId);\n const response: Policy[] = [];\n for (const id in policies) {\n if (policies.hasOwnProperty(id)) {\n response.push(new Policy(policies[id]));\n }\n }\n this.policyCache = response;\n }\n if (type != null) {\n return this.policyCache.filter(p => p.type === type);\n } else {\n return this.policyCache;\n }\n }\n\n async replace(policies: { [id: string]: PolicyData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.policiesPrefix + userId, policies);\n this.policyCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.policiesPrefix + userId);\n this.policyCache = null;\n }\n\n async getMasterPasswordPolicyOptions(policies?: Policy[]): Promise {\n let enforcedOptions: MasterPasswordPolicyOptions = null;\n\n if (policies == null) {\n policies = await this.getAll(PolicyType.MasterPassword);\n } else {\n policies = policies.filter(p => p.type === PolicyType.MasterPassword);\n }\n\n if (policies == null || policies.length === 0) {\n return enforcedOptions;\n }\n\n policies.forEach(currentPolicy => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new MasterPasswordPolicyOptions();\n }\n\n if (currentPolicy.data.minComplexity != null\n && currentPolicy.data.minComplexity > enforcedOptions.minComplexity) {\n enforcedOptions.minComplexity = currentPolicy.data.minComplexity;\n }\n\n if (currentPolicy.data.minLength != null\n && currentPolicy.data.minLength > enforcedOptions.minLength) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.requireUpper) {\n enforcedOptions.requireUpper = true;\n }\n\n if (currentPolicy.data.requireLower) {\n enforcedOptions.requireLower = true;\n }\n\n if (currentPolicy.data.requireNumbers) {\n enforcedOptions.requireNumbers = true;\n }\n\n if (currentPolicy.data.requireSpecial) {\n enforcedOptions.requireSpecial = true;\n }\n });\n\n return enforcedOptions;\n }\n\n evaluateMasterPassword(passwordStrength: number, newPassword: string,\n enforcedPolicyOptions: MasterPasswordPolicyOptions): boolean {\n if (enforcedPolicyOptions == null) {\n return true;\n }\n\n if (enforcedPolicyOptions.minComplexity > 0 && enforcedPolicyOptions.minComplexity > passwordStrength) {\n return false;\n }\n\n if (enforcedPolicyOptions.minLength > 0 && enforcedPolicyOptions.minLength > newPassword.length) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireUpper && newPassword.toLocaleLowerCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireLower && newPassword.toLocaleUpperCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireNumbers && !(/[0-9]/.test(newPassword))) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireSpecial && !(/[!@#$%\\^&*]/g.test(newPassword))) {\n return false;\n }\n\n return true;\n }\n}\n","import Domain from './domainBase';\n\nexport class MasterPasswordPolicyOptions extends Domain {\n minComplexity: number = 0;\n minLength: number = 0;\n requireUpper: boolean = false;\n requireLower: boolean = false;\n requireNumbers: boolean = false;\n requireSpecial: boolean = false;\n}\n","import * as lunr from 'lunr';\n\nimport { CipherView } from '../models/view/cipherView';\n\nimport { CipherService } from '../abstractions/cipher.service';\nimport { LogService } from '../abstractions/log.service';\nimport { SearchService as SearchServiceAbstraction } from '../abstractions/search.service';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { UriMatchType } from '../enums/uriMatchType';\nimport { SendView } from '../models/view/sendView';\n\nexport class SearchService implements SearchServiceAbstraction {\n private indexing = false;\n private index: lunr.Index = null;\n\n constructor(private cipherService: CipherService, private logService: LogService) {\n }\n\n clearIndex(): void {\n this.index = null;\n }\n\n isSearchable(query: string): boolean {\n const notSearchable = query == null || (this.index == null && query.length < 2) ||\n (this.index != null && query.length < 2 && query.indexOf('>') !== 0);\n return !notSearchable;\n }\n\n async indexCiphers(): Promise {\n if (this.indexing) {\n return;\n }\n\n this.logService.time('search indexing');\n this.indexing = true;\n this.index = null;\n const builder = new lunr.Builder();\n builder.ref('id');\n builder.field('shortid', { boost: 100, extractor: (c: CipherView) => c.id.substr(0, 8) });\n builder.field('name', { boost: 10 });\n builder.field('subtitle', {\n boost: 5,\n extractor: (c: CipherView) => {\n if (c.subTitle != null && c.type === CipherType.Card) {\n return c.subTitle.replace(/\\*/g, '');\n }\n return c.subTitle;\n },\n });\n builder.field('notes');\n builder.field('login.username', {\n extractor: (c: CipherView) => c.type === CipherType.Login && c.login != null ? c.login.username : null,\n });\n builder.field('login.uris', { boost: 2, extractor: (c: CipherView) => this.uriExtractor(c) });\n builder.field('fields', { extractor: (c: CipherView) => this.fieldExtractor(c, false) });\n builder.field('fields_joined', { extractor: (c: CipherView) => this.fieldExtractor(c, true) });\n builder.field('attachments', { extractor: (c: CipherView) => this.attachmentExtractor(c, false) });\n builder.field('attachments_joined',\n { extractor: (c: CipherView) => this.attachmentExtractor(c, true) });\n builder.field('organizationid', { extractor: (c: CipherView) => c.organizationId });\n const ciphers = await this.cipherService.getAllDecrypted();\n ciphers.forEach(c => builder.add(c));\n this.index = builder.build();\n this.indexing = false;\n\n this.logService.timeEnd('search indexing');\n }\n\n async searchCiphers(query: string,\n filter: (((cipher: CipherView) => boolean) | (((cipher: CipherView) => boolean)[])) = null,\n ciphers: CipherView[] = null):\n Promise {\n const results: CipherView[] = [];\n if (query != null) {\n query = query.trim().toLowerCase();\n }\n if (query === '') {\n query = null;\n }\n\n if (ciphers == null) {\n ciphers = await this.cipherService.getAllDecrypted();\n }\n\n if (filter != null && Array.isArray(filter) && filter.length > 0) {\n ciphers = ciphers.filter(c => filter.every(f => f == null || f(c)));\n } else if (filter != null) {\n ciphers = ciphers.filter(filter as (cipher: CipherView) => boolean);\n }\n\n if (!this.isSearchable(query)) {\n return ciphers;\n }\n\n if (this.indexing) {\n await new Promise(r => setTimeout(r, 250));\n if (this.indexing) {\n await new Promise(r => setTimeout(r, 500));\n }\n }\n\n const index = this.getIndexForSearch();\n if (index == null) {\n // Fall back to basic search if index is not available\n return this.searchCiphersBasic(ciphers, query);\n }\n\n const ciphersMap = new Map();\n ciphers.forEach(c => ciphersMap.set(c.id, c));\n\n let searchResults: lunr.Index.Result[] = null;\n const isQueryString = query != null && query.length > 1 && query.indexOf('>') === 0;\n if (isQueryString) {\n try {\n searchResults = index.search(query.substr(1).trim());\n } catch { }\n } else {\n // tslint:disable-next-line\n const soWild = lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING;\n searchResults = index.query(q => {\n lunr.tokenizer(query).forEach(token => {\n const t = token.toString();\n q.term(t, { fields: ['name'], wildcard: soWild });\n q.term(t, { fields: ['subtitle'], wildcard: soWild });\n q.term(t, { fields: ['login.uris'], wildcard: soWild });\n q.term(t, {});\n });\n });\n }\n\n if (searchResults != null) {\n searchResults.forEach(r => {\n if (ciphersMap.has(r.ref)) {\n results.push(ciphersMap.get(r.ref));\n }\n });\n }\n return results;\n }\n\n searchCiphersBasic(ciphers: CipherView[], query: string, deleted: boolean = false) {\n query = query.trim().toLowerCase();\n return ciphers.filter(c => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && c.id.startsWith(query)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n return false;\n });\n }\n\n searchSends(sends: SendView[], query: string) {\n query = query.trim().toLocaleLowerCase();\n\n return sends.filter(s => {\n if (s.name != null && s.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && (s.id.startsWith(query) || s.accessId.toLocaleLowerCase().startsWith(query) || (s.file?.id != null && s.file.id.startsWith(query)))) {\n return true;\n }\n if (s.notes != null && s.notes.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (s.text?.text != null && s.text.text.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (s.file?.fileName != null && s.file.fileName.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n });\n }\n\n getIndexForSearch(): lunr.Index {\n return this.index;\n }\n\n private fieldExtractor(c: CipherView, joined: boolean) {\n if (!c.hasFields) {\n return null;\n }\n let fields: string[] = [];\n c.fields.forEach(f => {\n if (f.name != null) {\n fields.push(f.name);\n }\n if (f.type === FieldType.Text && f.value != null) {\n fields.push(f.value);\n }\n });\n fields = fields.filter(f => f.trim() !== '');\n if (fields.length === 0) {\n return null;\n }\n return joined ? fields.join(' ') : fields;\n }\n\n private attachmentExtractor(c: CipherView, joined: boolean) {\n if (!c.hasAttachments) {\n return null;\n }\n let attachments: string[] = [];\n c.attachments.forEach(a => {\n if (a != null && a.fileName != null) {\n if (joined && a.fileName.indexOf('.') > -1) {\n attachments.push(a.fileName.substr(0, a.fileName.lastIndexOf('.')));\n } else {\n attachments.push(a.fileName);\n }\n }\n });\n attachments = attachments.filter(f => f.trim() !== '');\n if (attachments.length === 0) {\n return null;\n }\n return joined ? attachments.join(' ') : attachments;\n }\n\n private uriExtractor(c: CipherView) {\n if (c.type !== CipherType.Login || c.login == null || !c.login.hasUris) {\n return null;\n }\n const uris: string[] = [];\n c.login.uris.forEach(u => {\n if (u.uri == null || u.uri === '') {\n return;\n }\n if (u.hostname != null) {\n uris.push(u.hostname);\n return;\n }\n let uri = u.uri;\n if (u.match !== UriMatchType.RegularExpression) {\n const protocolIndex = uri.indexOf('://');\n if (protocolIndex > -1) {\n uri = uri.substr(protocolIndex + 3);\n }\n const queryIndex = uri.search(/\\?|&|#/);\n if (queryIndex > -1) {\n uri = uri.substring(0, queryIndex);\n }\n }\n uris.push(uri);\n });\n return uris.length > 0 ? uris : null;\n }\n}\n","import { SendData } from '../models/data/sendData';\n\nimport { SendRequest } from '../models/request/sendRequest';\n\nimport { SendResponse } from '../models/response/sendResponse';\n\nimport { Send } from '../models/domain/send';\nimport { SendFile } from '../models/domain/sendFile';\nimport { SendText } from '../models/domain/sendText';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { SendType } from '../enums/sendType';\n\nimport { SendView } from '../models/view/sendView';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { SendService as SendServiceAbstraction } from '../abstractions/send.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { Utils } from '../misc/utils';\nimport { CipherString } from '../models/domain';\n\nconst Keys = {\n sendsPrefix: 'sends_',\n};\n\nexport class SendService implements SendServiceAbstraction {\n decryptedSendCache: SendView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private apiService: ApiService, private storageService: StorageService,\n private i18nService: I18nService, private cryptoFunctionService: CryptoFunctionService) { }\n\n clearCache(): void {\n this.decryptedSendCache = null;\n }\n\n async encrypt(model: SendView, file: File | ArrayBuffer, password: string,\n key?: SymmetricCryptoKey): Promise<[Send, ArrayBuffer]> {\n let fileData: ArrayBuffer = null;\n const send = new Send();\n send.id = model.id;\n send.type = model.type;\n send.disabled = model.disabled;\n send.maxAccessCount = model.maxAccessCount;\n if (model.key == null) {\n model.key = await this.cryptoFunctionService.randomBytes(16);\n model.cryptoKey = await this.cryptoService.makeSendKey(model.key);\n }\n if (password != null) {\n const passwordHash = await this.cryptoFunctionService.pbkdf2(password, model.key, 'sha256', 100000);\n send.password = Utils.fromBufferToB64(passwordHash);\n }\n send.key = await this.cryptoService.encrypt(model.key, key);\n send.name = await this.cryptoService.encrypt(model.name, model.cryptoKey);\n send.notes = await this.cryptoService.encrypt(model.notes, model.cryptoKey);\n if (send.type === SendType.Text) {\n send.text = new SendText();\n send.text.text = await this.cryptoService.encrypt(model.text.text, model.cryptoKey);\n send.text.hidden = model.text.hidden;\n } else if (send.type === SendType.File) {\n send.file = new SendFile();\n if (file != null) {\n if (file instanceof ArrayBuffer) {\n const [name, data] = await this.encryptFileData(model.file.fileName, file, model.cryptoKey);\n send.file.fileName = name;\n fileData = data;\n } else {\n fileData = await this.parseFile(send, file, model.cryptoKey);\n }\n }\n }\n\n return [send, fileData];\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null || !sends.hasOwnProperty(id)) {\n return null;\n }\n\n return new Send(sends[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n const response: Send[] = [];\n for (const id in sends) {\n if (sends.hasOwnProperty(id)) {\n response.push(new Send(sends[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedSendCache != null) {\n return this.decryptedSendCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const decSends: SendView[] = [];\n const promises: Promise[] = [];\n const sends = await this.getAll();\n sends.forEach(send => {\n promises.push(send.decrypt().then(f => decSends.push(f)));\n });\n\n await Promise.all(promises);\n decSends.sort(Utils.getSortFunction(this.i18nService, 'name'));\n\n this.decryptedSendCache = decSends;\n return this.decryptedSendCache;\n }\n\n async saveWithServer(sendData: [Send, ArrayBuffer]): Promise {\n const request = new SendRequest(sendData[0], sendData[1]?.byteLength);\n let response: SendResponse;\n if (sendData[0].id == null) {\n if (sendData[0].type === SendType.Text) {\n response = await this.apiService.postSend(request);\n } else {\n const fd = new FormData();\n try {\n const blob = new Blob([sendData[1]], { type: 'application/octet-stream' });\n fd.append('model', JSON.stringify(request));\n fd.append('data', blob, sendData[0].file.fileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('model', JSON.stringify(request));\n fd.append('data', Buffer.from(sendData[1]) as any, {\n filepath: sendData[0].file.fileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n response = await this.apiService.postSendFile(fd);\n }\n sendData[0].id = response.id;\n sendData[0].accessId = response.accessId;\n } else {\n response = await this.apiService.putSend(sendData[0].id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new SendData(response, userId);\n await this.upsert(data);\n }\n\n async upsert(send: SendData | SendData[]): Promise {\n const userId = await this.userService.getUserId();\n let sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null) {\n sends = {};\n }\n\n if (send instanceof SendData) {\n const s = send as SendData;\n sends[s.id] = s;\n } else {\n (send as SendData[]).forEach(s => {\n sends[s.id] = s;\n });\n }\n\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async replace(sends: { [id: string]: SendData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.sendsPrefix + userId);\n this.decryptedSendCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (sends[id] == null) {\n return;\n }\n delete sends[id];\n } else {\n (id as string[]).forEach(i => {\n delete sends[i];\n });\n }\n\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteSend(id);\n await this.delete(id);\n }\n\n async removePasswordWithServer(id: string): Promise {\n const response = await this.apiService.putSendRemovePassword(id);\n const userId = await this.userService.getUserId();\n const data = new SendData(response, userId);\n await this.upsert(data);\n }\n\n private parseFile(send: Send, file: File, key: SymmetricCryptoKey): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(file);\n reader.onload = async evt => {\n try {\n const [name, data] = await this.encryptFileData(file.name, evt.target.result as ArrayBuffer, key);\n send.file.fileName = name;\n resolve(data);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = evt => {\n reject('Error reading file.');\n };\n });\n }\n\n private async encryptFileData(fileName: string, data: ArrayBuffer,\n key: SymmetricCryptoKey): Promise<[CipherString, ArrayBuffer]> {\n const encFileName = await this.cryptoService.encrypt(fileName, key);\n const encFileData = await this.cryptoService.encryptToBytes(data, key);\n return [encFileName, encFileData];\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nimport { Send } from '../domain/send';\n\nexport class SendRequest {\n type: SendType;\n fileLength?: number;\n name: string;\n notes: string;\n key: string;\n maxAccessCount?: number;\n expirationDate: string;\n deletionDate: string;\n text: SendTextApi;\n file: SendFileApi;\n password: string;\n disabled: boolean;\n\n constructor(send: Send, fileLength?: number) {\n this.type = send.type;\n this.fileLength = fileLength;\n this.name = send.name ? send.name.encryptedString : null;\n this.notes = send.notes ? send.notes.encryptedString : null;\n this.maxAccessCount = send.maxAccessCount;\n this.expirationDate = send.expirationDate != null ? send.expirationDate.toISOString() : null;\n this.deletionDate = send.deletionDate != null ? send.deletionDate.toISOString() : null;\n this.key = send.key != null ? send.key.encryptedString : null;\n this.password = send.password;\n this.disabled = send.disabled;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextApi();\n this.text.text = send.text.text != null ? send.text.text.encryptedString : null;\n this.text.hidden = send.text.hidden;\n break;\n case SendType.File:\n this.file = new SendFileApi();\n this.file.fileName = send.file.fileName != null ? send.file.fileName.encryptedString : null;\n break;\n default:\n break;\n }\n }\n}\n","import { CryptoService } from '../../abstractions/crypto.service';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { Utils } from '../../misc/utils';\n\nimport { SendData } from '../data/sendData';\n\nimport { SendView } from '../view/sendView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SendFile } from './sendFile';\nimport { SendText } from './sendText';\n\nexport class Send extends Domain {\n id: string;\n accessId: string;\n userId: string;\n type: SendType;\n name: CipherString;\n notes: CipherString;\n file: SendFile;\n text: SendText;\n key: CipherString;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: Date;\n expirationDate: Date;\n deletionDate: Date;\n password: string;\n disabled: boolean;\n\n constructor(obj?: SendData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n accessId: null,\n userId: null,\n name: null,\n notes: null,\n key: null,\n }, alreadyEncrypted, ['id', 'accessId', 'userId']);\n\n this.type = obj.type;\n this.maxAccessCount = obj.maxAccessCount;\n this.accessCount = obj.accessCount;\n this.password = obj.password;\n this.disabled = obj.disabled;\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n this.deletionDate = obj.deletionDate != null ? new Date(obj.deletionDate) : null;\n this.expirationDate = obj.expirationDate != null ? new Date(obj.expirationDate) : null;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendText(obj.text, alreadyEncrypted);\n break;\n case SendType.File:\n this.file = new SendFile(obj.file, alreadyEncrypted);\n break;\n default:\n break;\n }\n }\n\n async decrypt(): Promise {\n const model = new SendView(this);\n\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n model.key = await cryptoService.decryptToBytes(this.key, null);\n model.cryptoKey = await cryptoService.makeSendKey(model.key);\n } catch (e) {\n // TODO: error?\n }\n\n await this.decryptObj(model, {\n name: null,\n notes: null,\n }, null, model.cryptoKey);\n\n switch (this.type) {\n case SendType.File:\n model.file = await this.file.decrypt(model.cryptoKey);\n break;\n case SendType.Text:\n model.text = await this.text.decrypt(model.cryptoKey);\n break;\n default:\n break;\n }\n\n return model;\n }\n}\n","import * as forge from 'node-forge';\n\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nimport { Utils } from '../misc/utils';\n\nimport { DecryptParameters } from '../models/domain/decryptParameters';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport class WebCryptoFunctionService implements CryptoFunctionService {\n private crypto: Crypto;\n private subtle: SubtleCrypto;\n private isIE: boolean;\n private isOldSafari: boolean;\n\n constructor(private win: Window, private platformUtilsService: PlatformUtilsService) {\n this.crypto = typeof win.crypto !== 'undefined' ? win.crypto : null;\n this.subtle = (!!this.crypto && typeof win.crypto.subtle !== 'undefined') ? win.crypto.subtle : null;\n this.isIE = platformUtilsService.isIE();\n const ua = win.navigator.userAgent;\n this.isOldSafari = platformUtilsService.isSafari() &&\n (ua.indexOf(' Version/10.') > -1 || ua.indexOf(' Version/9.') > -1);\n }\n\n async pbkdf2(password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: 'sha256' | 'sha512',\n iterations: number): Promise {\n if (this.isIE || this.isOldSafari) {\n const forgeLen = algorithm === 'sha256' ? 32 : 64;\n const passwordBytes = this.toByteString(password);\n const saltBytes = this.toByteString(salt);\n const derivedKeyBytes = (forge as any).pbkdf2(passwordBytes, saltBytes, iterations, forgeLen, algorithm);\n return Utils.fromByteStringToArray(derivedKeyBytes).buffer;\n }\n\n const wcLen = algorithm === 'sha256' ? 256 : 512;\n const passwordBuf = this.toBuf(password);\n const saltBuf = this.toBuf(salt);\n\n const pbkdf2Params: Pbkdf2Params = {\n name: 'PBKDF2',\n salt: saltBuf,\n iterations: iterations,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', passwordBuf, { name: 'PBKDF2' } as any,\n false, ['deriveBits']);\n return await this.subtle.deriveBits(pbkdf2Params, impKey, wcLen);\n }\n\n async hkdf(ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer,\n outputByteSize: number, algorithm: 'sha256' | 'sha512'): Promise {\n const saltBuf = this.toBuf(salt);\n const infoBuf = this.toBuf(info);\n\n const hkdfParams: HkdfParams = {\n name: 'HKDF',\n salt: saltBuf,\n info: infoBuf,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', ikm, { name: 'HKDF' } as any,\n false, ['deriveBits']);\n return await this.subtle.deriveBits(hkdfParams as any, impKey, outputByteSize * 8);\n }\n\n // ref: https://tools.ietf.org/html/rfc5869\n async hkdfExpand(prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number,\n algorithm: 'sha256' | 'sha512'): Promise {\n const hashLen = algorithm === 'sha256' ? 32 : 64;\n if (outputByteSize > 255 * hashLen) {\n throw new Error('outputByteSize is too large.');\n }\n const prkArr = new Uint8Array(prk);\n if (prkArr.length < hashLen) {\n throw new Error('prk is too small.');\n }\n const infoBuf = this.toBuf(info);\n const infoArr = new Uint8Array(infoBuf);\n let runningOkmLength = 0;\n let previousT = new Uint8Array(0);\n const n = Math.ceil(outputByteSize / hashLen);\n const okm = new Uint8Array(n * hashLen);\n for (let i = 0; i < n; i++) {\n const t = new Uint8Array(previousT.length + infoArr.length + 1);\n t.set(previousT);\n t.set(infoArr, previousT.length);\n t.set([i + 1], t.length - 1);\n previousT = new Uint8Array(await this.hmac(t.buffer, prk, algorithm));\n okm.set(previousT, runningOkmLength);\n runningOkmLength += previousT.length;\n if (runningOkmLength >= outputByteSize) {\n break;\n }\n }\n return okm.slice(0, outputByteSize).buffer;\n }\n\n async hash(value: string | ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5'): Promise {\n if ((this.isIE && algorithm === 'sha1') || algorithm === 'md5') {\n const md = algorithm === 'md5' ? forge.md.md5.create() : forge.md.sha1.create();\n const valueBytes = this.toByteString(value);\n md.update(valueBytes, 'raw');\n return Utils.fromByteStringToArray(md.digest().data).buffer;\n }\n\n const valueBuf = this.toBuf(value);\n return await this.subtle.digest({ name: this.toWebCryptoAlgorithm(algorithm) }, valueBuf);\n }\n\n async hmac(value: ArrayBuffer, key: ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512'): Promise {\n if (this.isIE && algorithm === 'sha512') {\n const hmac = (forge as any).hmac.create();\n const keyBytes = this.toByteString(key);\n const valueBytes = this.toByteString(value);\n hmac.start(algorithm, keyBytes);\n hmac.update(valueBytes, 'raw');\n return Utils.fromByteStringToArray(hmac.digest().data).buffer;\n }\n\n const signingAlgorithm = {\n name: 'HMAC',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', key, signingAlgorithm, false, ['sign']);\n return await this.subtle.sign(signingAlgorithm, impKey, value);\n }\n\n // Safely compare two values in a way that protects against timing attacks (Double HMAC Verification).\n // ref: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/\n // ref: https://paragonie.com/blog/2015/11/preventing-timing-attacks-on-string-comparison-with-double-hmac-strategy\n async compare(a: ArrayBuffer, b: ArrayBuffer): Promise {\n const macKey = await this.randomBytes(32);\n const signingAlgorithm = {\n name: 'HMAC',\n hash: { name: 'SHA-256' },\n };\n const impKey = await this.subtle.importKey('raw', macKey, signingAlgorithm, false, ['sign']);\n const mac1 = await this.subtle.sign(signingAlgorithm, impKey, a);\n const mac2 = await this.subtle.sign(signingAlgorithm, impKey, b);\n\n if (mac1.byteLength !== mac2.byteLength) {\n return false;\n }\n\n const arr1 = new Uint8Array(mac1);\n const arr2 = new Uint8Array(mac2);\n for (let i = 0; i < arr2.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n hmacFast(value: string, key: string, algorithm: 'sha1' | 'sha256' | 'sha512'): Promise {\n const hmac = (forge as any).hmac.create();\n hmac.start(algorithm, key);\n hmac.update(value);\n const bytes = hmac.digest().getBytes();\n return Promise.resolve(bytes);\n }\n\n async compareFast(a: string, b: string): Promise {\n const rand = await this.randomBytes(32);\n const bytes = new Uint32Array(rand);\n const buffer = forge.util.createBuffer();\n for (let i = 0; i < bytes.length; i++) {\n buffer.putInt32(bytes[i]);\n }\n const macKey = buffer.getBytes();\n\n const hmac = (forge as any).hmac.create();\n hmac.start('sha256', macKey);\n hmac.update(a);\n const mac1 = hmac.digest().getBytes();\n\n hmac.start(null, null);\n hmac.update(b);\n const mac2 = hmac.digest().getBytes();\n\n const equals = mac1 === mac2;\n return equals;\n }\n\n async aesEncrypt(data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer): Promise {\n const impKey = await this.subtle.importKey('raw', key, { name: 'AES-CBC' } as any, false, ['encrypt']);\n return await this.subtle.encrypt({ name: 'AES-CBC', iv: iv }, impKey, data);\n }\n\n aesDecryptFastParameters(data: string, iv: string, mac: string, key: SymmetricCryptoKey):\n DecryptParameters {\n const p = new DecryptParameters();\n if (key.meta != null) {\n p.encKey = key.meta.encKeyByteString;\n p.macKey = key.meta.macKeyByteString;\n }\n\n if (p.encKey == null) {\n p.encKey = forge.util.decode64(key.encKeyB64);\n }\n p.data = forge.util.decode64(data);\n p.iv = forge.util.decode64(iv);\n p.macData = p.iv + p.data;\n if (p.macKey == null && key.macKeyB64 != null) {\n p.macKey = forge.util.decode64(key.macKeyB64);\n }\n if (mac != null) {\n p.mac = forge.util.decode64(mac);\n }\n\n // cache byte string keys for later\n if (key.meta == null) {\n key.meta = {};\n }\n if (key.meta.encKeyByteString == null) {\n key.meta.encKeyByteString = p.encKey;\n }\n if (p.macKey != null && key.meta.macKeyByteString == null) {\n key.meta.macKeyByteString = p.macKey;\n }\n\n return p;\n }\n\n aesDecryptFast(parameters: DecryptParameters): Promise {\n const dataBuffer = (forge as any).util.createBuffer(parameters.data);\n const decipher = (forge as any).cipher.createDecipher('AES-CBC', parameters.encKey);\n decipher.start({ iv: parameters.iv });\n decipher.update(dataBuffer);\n decipher.finish();\n const val = decipher.output.toString('utf8');\n return Promise.resolve(val);\n }\n\n async aesDecrypt(data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer): Promise {\n const impKey = await this.subtle.importKey('raw', key, { name: 'AES-CBC' } as any, false, ['decrypt']);\n return await this.subtle.decrypt({ name: 'AES-CBC', iv: iv }, impKey, data);\n }\n\n async rsaEncrypt(data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: 'sha1' | 'sha256'): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: 'RSA-OAEP',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey('spki', publicKey, rsaParams, false, ['encrypt']);\n return await this.subtle.encrypt(rsaParams, impKey, data);\n }\n\n async rsaDecrypt(data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: 'sha1' | 'sha256'): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: 'RSA-OAEP',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey('pkcs8', privateKey, rsaParams, false, ['decrypt']);\n return await this.subtle.decrypt(rsaParams, impKey, data);\n }\n\n async rsaExtractPublicKey(privateKey: ArrayBuffer): Promise {\n const rsaParams = {\n name: 'RSA-OAEP',\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm('sha1') },\n };\n const impPrivateKey = await this.subtle.importKey('pkcs8', privateKey, rsaParams, true, ['decrypt']);\n const jwkPrivateKey = await this.subtle.exportKey('jwk', impPrivateKey);\n const jwkPublicKeyParams = {\n kty: 'RSA',\n e: jwkPrivateKey.e,\n n: jwkPrivateKey.n,\n alg: 'RSA-OAEP',\n ext: true,\n };\n const impPublicKey = await this.subtle.importKey('jwk', jwkPublicKeyParams, rsaParams, true, ['encrypt']);\n return await this.subtle.exportKey('spki', impPublicKey);\n }\n\n async rsaGenerateKeyPair(length: 1024 | 2048 | 4096): Promise<[ArrayBuffer, ArrayBuffer]> {\n const rsaParams = {\n name: 'RSA-OAEP',\n modulusLength: length,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]), // 65537\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm('sha1') },\n };\n const keyPair = await this.subtle.generateKey(rsaParams, true, ['encrypt', 'decrypt']);\n const publicKey = await this.subtle.exportKey('spki', keyPair.publicKey);\n const privateKey = await this.subtle.exportKey('pkcs8', keyPair.privateKey);\n return [publicKey, privateKey];\n }\n\n randomBytes(length: number): Promise {\n const arr = new Uint8Array(length);\n this.crypto.getRandomValues(arr);\n return Promise.resolve(arr.buffer);\n }\n\n private toBuf(value: string | ArrayBuffer): ArrayBuffer {\n let buf: ArrayBuffer;\n if (typeof (value) === 'string') {\n buf = Utils.fromUtf8ToArray(value).buffer;\n } else {\n buf = value;\n }\n return buf;\n }\n\n private toByteString(value: string | ArrayBuffer): string {\n let bytes: string;\n if (typeof (value) === 'string') {\n bytes = forge.util.encodeUtf8(value);\n } else {\n bytes = Utils.fromBufferToByteString(value);\n }\n return bytes;\n }\n\n private toWebCryptoAlgorithm(algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5'): string {\n if (algorithm === 'md5') {\n throw new Error('MD5 is not supported in WebCrypto.');\n }\n return algorithm === 'sha1' ? 'SHA-1' : algorithm === 'sha256' ? 'SHA-256' : 'SHA-512';\n }\n}\n","export class DecryptParameters {\n encKey: T;\n data: T;\n iv: T;\n macKey: T;\n mac: T;\n macData: T;\n}\n","import * as jq from 'jquery';\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\n\nimport {\n BodyOutputType,\n Toast,\n ToasterConfig,\n ToasterContainerComponent,\n ToasterService,\n} from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\nimport { Angulartics2GoogleAnalytics } from 'angulartics2/ga';\n\nimport {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n NavigationEnd,\n Router,\n} from '@angular/router';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { NotificationsService } from 'jslib/abstractions/notifications.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { SettingsService } from 'jslib/abstractions/settings.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { RouterService } from './services/router.service';\n\nconst BroadcasterSubscriptionId = 'AppComponent';\nconst IdleTimeout = 60000 * 10; // 10 minutes\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n})\nexport class AppComponent implements OnDestroy, OnInit {\n toasterConfig: ToasterConfig = new ToasterConfig({\n showCloseButton: true,\n mouseoverTimerStop: true,\n animation: 'flyRight',\n limit: 5,\n });\n\n private lastActivity: number = null;\n private idleTimer: number = null;\n private isIdle = false;\n\n constructor(private angulartics2GoogleAnalytics: Angulartics2GoogleAnalytics,\n private broadcasterService: BroadcasterService, private userService: UserService,\n private tokenService: TokenService, private folderService: FolderService,\n private settingsService: SettingsService, private syncService: SyncService,\n private passwordGenerationService: PasswordGenerationService, private cipherService: CipherService,\n private authService: AuthService, private router: Router, private analytics: Angulartics2,\n private toasterService: ToasterService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private ngZone: NgZone,\n private vaultTimeoutService: VaultTimeoutService, private storageService: StorageService,\n private cryptoService: CryptoService, private collectionService: CollectionService,\n private sanitizer: DomSanitizer, private searchService: SearchService,\n private notificationsService: NotificationsService, private routerService: RouterService,\n private stateService: StateService, private eventService: EventService,\n private policyService: PolicyService) { }\n\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n window.onmousemove = () => this.recordActivity();\n window.onmousedown = () => this.recordActivity();\n window.ontouchstart = () => this.recordActivity();\n window.onclick = () => this.recordActivity();\n window.onscroll = () => this.recordActivity();\n window.onkeypress = () => this.recordActivity();\n });\n\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'loggedIn':\n case 'loggedOut':\n case 'unlocked':\n this.notificationsService.updateConnection(false);\n break;\n case 'authBlocked':\n this.router.navigate(['/']);\n break;\n case 'logout':\n this.logOut(!!message.expired);\n break;\n case 'lockVault':\n await this.vaultTimeoutService.lock();\n break;\n case 'locked':\n this.notificationsService.updateConnection(false);\n this.router.navigate(['lock']);\n break;\n case 'lockedUrl':\n window.setTimeout(() => this.routerService.setPreviousUrl(message.url), 500);\n break;\n case 'syncStarted':\n break;\n case 'syncCompleted':\n break;\n case 'upgradeOrganization':\n const upgradeConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('upgradeOrganizationDesc'), this.i18nService.t('upgradeOrganization'),\n this.i18nService.t('upgradeOrganization'), this.i18nService.t('cancel'));\n if (upgradeConfirmed) {\n this.router.navigate(['organizations', message.organizationId, 'settings', 'billing']);\n }\n break;\n case 'premiumRequired':\n const premiumConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (premiumConfirmed) {\n this.router.navigate(['settings/premium']);\n }\n break;\n case 'showToast':\n this.showToast(message);\n break;\n case 'analyticsEventTrack':\n this.analytics.eventTrack.next({\n action: message.action,\n properties: { label: message.label },\n });\n break;\n case 'setFullWidth':\n this.setFullWidth();\n break;\n default:\n break;\n }\n });\n });\n\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n const modals = Array.from(document.querySelectorAll('.modal'));\n for (const modal of modals) {\n (jq(modal) as any).modal('hide');\n }\n\n if (document.querySelector('.swal-modal') != null) {\n Swal.close(undefined);\n }\n }\n });\n\n this.setFullWidth();\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n private async logOut(expired: boolean) {\n await this.eventService.uploadEvents();\n const userId = await this.userService.getUserId();\n\n await Promise.all([\n this.eventService.clearEvents(),\n this.syncService.setLastSync(new Date(0)),\n this.tokenService.clearToken(),\n this.cryptoService.clearKeys(),\n this.userService.clear(),\n this.settingsService.clear(userId),\n this.cipherService.clear(userId),\n this.folderService.clear(userId),\n this.collectionService.clear(userId),\n this.policyService.clear(userId),\n this.passwordGenerationService.clear(),\n this.stateService.purge(),\n ]);\n\n this.searchService.clearIndex();\n this.authService.logOut(async () => {\n this.analytics.eventTrack.next({ action: 'Logged Out' });\n if (expired) {\n this.toasterService.popAsync('warning', this.i18nService.t('loggedOut'),\n this.i18nService.t('loginExpired'));\n }\n\n Swal.close();\n this.router.navigate(['/']);\n });\n }\n\n private async recordActivity() {\n const now = (new Date()).getTime();\n if (this.lastActivity != null && now - this.lastActivity < 250) {\n return;\n }\n\n this.lastActivity = now;\n this.storageService.save(ConstantsService.lastActiveKey, now);\n\n // Idle states\n if (this.isIdle) {\n this.isIdle = false;\n this.idleStateChanged();\n }\n if (this.idleTimer != null) {\n window.clearTimeout(this.idleTimer);\n this.idleTimer = null;\n }\n this.idleTimer = window.setTimeout(() => {\n if (!this.isIdle) {\n this.isIdle = true;\n this.idleStateChanged();\n }\n }, IdleTimeout);\n }\n\n private showToast(msg: any) {\n const toast: Toast = {\n type: msg.type,\n title: msg.title,\n };\n if (typeof (msg.text) === 'string') {\n toast.body = msg.text;\n } else if (msg.text.length === 1) {\n toast.body = msg.text[0];\n } else {\n let message = '';\n msg.text.forEach((t: string) =>\n message += ('

' + this.sanitizer.sanitize(SecurityContext.HTML, t) + '

'));\n toast.body = message;\n toast.bodyOutputType = BodyOutputType.TrustedHtml;\n }\n if (msg.options != null) {\n if (msg.options.trustedHtml === true) {\n toast.bodyOutputType = BodyOutputType.TrustedHtml;\n }\n if (msg.options.timeout != null && msg.options.timeout > 0) {\n toast.timeout = msg.options.timeout;\n }\n }\n this.toasterService.popAsync(toast);\n }\n\n private idleStateChanged() {\n if (this.isIdle) {\n this.notificationsService.disconnectFromInactivity();\n } else {\n this.notificationsService.reconnectFromActivity();\n }\n }\n\n private async setFullWidth() {\n const enableFullWidth = await this.storageService.get('enableFullWidth');\n if (enableFullWidth) {\n document.body.classList.add('full-width');\n } else {\n document.body.classList.remove('full-width');\n }\n }\n}\n","\n\n","import {\n Directive,\n ElementRef,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appBlurClick]',\n})\nexport class BlurClickDirective {\n constructor(private el: ElementRef) {\n }\n\n @HostListener('click') onClick() {\n this.el.nativeElement.blur();\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n OnInit,\n} from '@angular/core';\n\n@Directive({\n selector: '[appBoxRow]',\n})\nexport class BoxRowDirective implements OnInit {\n el: HTMLElement = null;\n formEls: Element[];\n\n constructor(private elRef: ElementRef) {\n this.el = elRef.nativeElement;\n }\n\n ngOnInit(): void {\n this.formEls = Array.from(this.el.querySelectorAll('input:not([type=\"hidden\"]), select, textarea'));\n this.formEls.forEach(formEl => {\n formEl.addEventListener('focus', (event: Event) => {\n this.el.classList.add('active');\n }, false);\n\n formEl.addEventListener('blur', (event: Event) => {\n this.el.classList.remove('active');\n }, false);\n });\n }\n\n @HostListener('click', ['$event']) onClick(event: Event) {\n const target = event.target as HTMLElement;\n if (target !== this.el && !target.classList.contains('progress') &&\n !target.classList.contains('progress-bar')) {\n return;\n }\n\n if (this.formEls.length > 0) {\n const formEl = (this.formEls[0] as HTMLElement);\n if (formEl.tagName.toLowerCase() === 'input') {\n const inputEl = (formEl as HTMLInputElement);\n if (inputEl.type != null && inputEl.type.toLowerCase() === 'checkbox') {\n inputEl.click();\n return;\n }\n }\n formEl.focus();\n }\n }\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\nimport { CipherView } from '../../models/view/cipherView';\n\n@Pipe({\n name: 'searchCiphers',\n})\nexport class SearchCiphersPipe implements PipeTransform {\n transform(ciphers: CipherView[], searchText: string, deleted: boolean = false): CipherView[] {\n if (ciphers == null || ciphers.length === 0) {\n return [];\n }\n\n if (searchText == null || searchText.length < 2) {\n return ciphers.filter(c => {\n return deleted !== c.isDeleted;\n });\n }\n\n searchText = searchText.trim().toLowerCase();\n return ciphers.filter(c => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (searchText.length >= 8 && c.id.startsWith(searchText)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n\n return false;\n });\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/polyfills.a34068436143996e1f65.js b/app/polyfills.a34068436143996e1f65.js new file mode 100644 index 00000000..048b6703 --- /dev/null +++ b/app/polyfills.a34068436143996e1f65.js @@ -0,0 +1,139 @@ +!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=746)}([,,function(t,e,n){var r=n(20),o=n(55),i=n(56),a=n(51),u=n(62),c=function(t,e,n){var s,f,l,p,h=t&c.F,d=t&c.G,v=t&c.S,y=t&c.P,g=t&c.B,m=d?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,b=d?o:o[e]||(o[e]={}),_=b.prototype||(b.prototype={});for(s in d&&(n=e),n)l=((f=!h&&m&&void 0!==m[s])?m:n)[s],p=g&&f?u(l,r):y&&"function"==typeof l?u(Function.call,l):l,m&&a(m,s,l,t&c.U),b[s]!=l&&i(b,s,p),y&&_[s]!=l&&(_[s]=l)};r.core=o,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},,,,,,,,,,,,,function(t,e,n){var r=n(22);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},,,,,function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},,,,,function(t,e,n){var r=n(131)("wks"),o=n(89),i=n(20).Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},,,,function(t,e,n){var r=n(63),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},,function(t,e,n){var r=n(15),o=n(220),i=n(75),a=Object.defineProperty;e.f=n(35)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},,function(t,e,n){t.exports=!n(21)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},,,,,,,function(t,e,n){var r=n(76);t.exports=function(t){return Object(r(t))}},,,,,function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},,function(t,e,n){var r=n(2),o=n(21),i=n(76),a=/"/g,u=function(t,e,n,r){var o=String(i(t)),u="<"+e;return""!==n&&(u+=" "+n+'="'+String(r).replace(a,""")+'"'),u+">"+o+""};t.exports=function(t,e){var n={};n[t]=e(u),r(r.P+r.F*o((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3})),"String",n)}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(20),o=n(56),i=n(50),a=n(89)("src"),u=Function.toString,c=(""+u).split("toString");n(55).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(s&&(i(n,a)||o(n,a,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:u?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[a]||u.call(this)}))},function(t,e,n){var r=n(115),o=n(76);t.exports=function(t){return r(o(t))}},,,function(t,e){var n=t.exports={version:"2.6.2"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(33),o=n(85);t.exports=n(35)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(50),o=n(42),i=n(172)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},,function(t,e,n){var r=n(123),o=n(85),i=n(52),a=n(75),u=n(50),c=n(220),s=Object.getOwnPropertyDescriptor;e.f=n(35)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){"use strict";var r=n(21);t.exports=function(t,e){return!!t&&r((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},,function(t,e,n){var r=n(47);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},,,,function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(2),o=n(55),i=n(21);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i((function(){n(1)})),"Object",a)}},function(t,e,n){var r=n(62),o=n(115),i=n(42),a=n(31),u=n(234);t.exports=function(t,e){var n=1==t,c=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l,h=e||u;return function(e,u,d){for(var v,y,g=i(e),m=o(g),b=r(u,d,3),_=a(m.length),w=0,S=n?h(e,_):c?h(e,0):void 0;_>w;w++)if((p||w in m)&&(y=b(v=m[w],w,g),t))if(n)S[w]=y;else if(y)switch(t){case 3:return!0;case 5:return v;case 6:return w;case 2:S.push(v)}else if(f)return!1;return l?-1:s||f?f:S}}},,,,,,function(t,e,n){var r=n(22);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";if(n(35)){var r=n(86),o=n(20),i=n(21),a=n(2),u=n(138),c=n(187),s=n(62),f=n(99),l=n(85),p=n(56),h=n(101),d=n(63),v=n(31),y=n(245),g=n(91),m=n(75),b=n(50),_=n(96),w=n(22),S=n(42),k=n(183),E=n(83),x=n(57),T=n(92).f,O=n(133),A=n(89),M=n(27),P=n(69),j=n(150),D=n(125),C=n(204),F=n(110),I=n(134),R=n(98),N=n(184),L=n(236),Z=n(33),U=n(59),z=Z.f,B=U.f,H=o.RangeError,W=o.TypeError,K=o.Uint8Array,G=Array.prototype,J=c.ArrayBuffer,V=c.DataView,q=P(0),Y=P(2),X=P(3),$=P(4),Q=P(5),tt=P(6),et=j(!0),nt=j(!1),rt=C.values,ot=C.keys,it=C.entries,at=G.lastIndexOf,ut=G.reduce,ct=G.reduceRight,st=G.join,ft=G.sort,lt=G.slice,pt=G.toString,ht=G.toLocaleString,dt=M("iterator"),vt=M("toStringTag"),yt=A("typed_constructor"),gt=A("def_constructor"),mt=u.CONSTR,bt=u.TYPED,_t=u.VIEW,wt=P(1,(function(t,e){return Tt(D(t,t[gt]),e)})),St=i((function(){return 1===new K(new Uint16Array([1]).buffer)[0]})),kt=!!K&&!!K.prototype.set&&i((function(){new K(1).set({})})),Et=function(t,e){var n=d(t);if(n<0||n%e)throw H("Wrong offset!");return n},xt=function(t){if(w(t)&&bt in t)return t;throw W(t+" is not a typed array!")},Tt=function(t,e){if(!w(t)||!(yt in t))throw W("It is not a typed array constructor!");return new t(e)},Ot=function(t,e){return At(D(t,t[gt]),e)},At=function(t,e){for(var n=0,r=e.length,o=Tt(t,r);r>n;)o[n]=e[n++];return o},Mt=function(t,e,n){z(t,e,{get:function(){return this._d[n]}})},Pt=function(t){var e,n,r,o,i,a,u=S(t),c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,p=O(u);if(null!=p&&!k(p)){for(a=p.call(u),r=[],e=0;!(i=a.next()).done;e++)r.push(i.value);u=r}for(l&&c>2&&(f=s(f,arguments[2],2)),e=0,n=v(u.length),o=Tt(this,n);n>e;e++)o[e]=l?f(u[e],e):u[e];return o},jt=function(){for(var t=0,e=arguments.length,n=Tt(this,e);e>t;)n[t]=arguments[t++];return n},Dt=!!K&&i((function(){ht.call(new K(1))})),Ct=function(){return ht.apply(Dt?lt.call(xt(this)):xt(this),arguments)},Ft={copyWithin:function(t,e){return L.call(xt(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return $(xt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return N.apply(xt(this),arguments)},filter:function(t){return Ot(this,Y(xt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Q(xt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(xt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){q(xt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return nt(xt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(xt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return st.apply(xt(this),arguments)},lastIndexOf:function(t){return at.apply(xt(this),arguments)},map:function(t){return wt(xt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ut.apply(xt(this),arguments)},reduceRight:function(t){return ct.apply(xt(this),arguments)},reverse:function(){for(var t,e=xt(this).length,n=Math.floor(e/2),r=0;r1?arguments[1]:void 0)},sort:function(t){return ft.call(xt(this),t)},subarray:function(t,e){var n=xt(this),r=n.length,o=g(t,r);return new(D(n,n[gt]))(n.buffer,n.byteOffset+o*n.BYTES_PER_ELEMENT,v((void 0===e?r:g(e,r))-o))}},It=function(t,e){return Ot(this,lt.call(xt(this),t,e))},Rt=function(t){xt(this);var e=Et(arguments[1],1),n=this.length,r=S(t),o=v(r.length),i=0;if(o+e>n)throw H("Wrong length!");for(;i255?255:255&r),o.v[h](n*e+o.o,r,St)}(this,n,t)},enumerable:!0})};b?(d=n((function(t,n,r,o){f(t,d,s,"_d");var i,a,u,c,l=0,h=0;if(w(n)){if(!(n instanceof J||"ArrayBuffer"==(c=_(n))||"SharedArrayBuffer"==c))return bt in n?At(d,n):Pt.call(d,n);i=n,h=Et(r,e);var g=n.byteLength;if(void 0===o){if(g%e)throw H("Wrong length!");if((a=g-h)<0)throw H("Wrong length!")}else if((a=v(o)*e)+h>g)throw H("Wrong length!");u=a/e}else u=y(n),i=new J(a=u*e);for(p(t,"_d",{b:i,o:h,l:a,e:u,v:new V(i)});ldocument.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=r(t),n=new u,u.prototype=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},,function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=!1},,,function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){var r=n(223),o=n(173);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(63),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(223),o=n(173).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},,,,function(t,e,n){var r=n(67),o=n(27)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(27)("unscopables"),o=Array.prototype;null==o[r]&&n(56)(o,r,{}),t.exports=function(t){o[r][t]=!0}},function(t,e,n){"use strict";var r=n(20),o=n(33),i=n(35),a=n(27)("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(62),o=n(233),i=n(183),a=n(15),u=n(31),c=n(133),s={},f={};(e=t.exports=function(t,e,n,l,p){var h,d,v,y,g=p?function(){return t}:c(t),m=r(n,l,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(h=u(t.length);h>b;b++)if((y=e?m(a(d=t[b])[0],d[1]):m(t[b]))===s||y===f)return y}else for(v=g.call(t);!(d=v.next()).done;)if((y=o(v,m,d.value,e))===s||y===f)return y}).BREAK=s,e.RETURN=f},function(t,e,n){var r=n(51);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}t.exports=n},,,,,,,function(t,e,n){var r=n(33).f,o=n(50),i=n(27)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e){t.exports={}},function(t,e,n){var r=n(22);t.exports=function(t,e){if(!r(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},,,,function(t,e,n){var r=n(67);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(2),o=n(76),i=n(21),a=n(176),u="["+a+"]",c=RegExp("^"+u+u+"*"),s=RegExp(u+u+"*$"),f=function(t,e,n){var o={},u=i((function(){return!!a[t]()||"​…"!="​…"[t]()})),c=o[t]=u?e(l):a[t];n&&(o[n]=c),r(r.P+r.F*u,"String",o)},l=f.trim=function(t,e){return t=String(o(t)),1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(s,"")),t};t.exports=f},,,,,,,function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){"use strict";var r=n(15);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(15),o=n(47),i=n(27)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},,,,,,function(t,e,n){var r=n(55),o=n(20),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(86)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(96),o=n(27)("iterator"),i=n(110);t.exports=n(55).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},function(t,e,n){var r=n(27)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(a){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],u=i[r]();u.next=function(){return{done:n=!0}},i[r]=function(){return u},t(i)}catch(a){}return n}},function(t,e,n){"use strict";var r=n(96),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";n(237);var r=n(51),o=n(56),i=n(21),a=n(76),u=n(27),c=n(185),s=u("species"),f=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),l=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=u(t),h=!i((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),d=h?!i((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[s]=function(){return n}),n[p](""),!e})):void 0;if(!h||!d||"replace"===t&&!f||"split"===t&&!l){var v=/./[p],y=n(a,p,""[t],(function(t,e,n,r,o){return e.exec===c?h&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}})),g=y[0],m=y[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==e?function(t,e){return m.call(t,this,e)}:function(t){return m.call(t,this)})}}},function(t,e,n){"use strict";var r=n(20),o=n(2),i=n(51),a=n(101),u=n(82),c=n(100),s=n(99),f=n(22),l=n(21),p=n(134),h=n(109),d=n(177);t.exports=function(t,e,n,v,y,g){var m=r[t],b=m,_=y?"set":"add",w=b&&b.prototype,S={},k=function(t){var e=w[t];i(w,t,"delete"==t||"has"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof b&&(g||w.forEach&&!l((function(){(new b).entries().next()})))){var E=new b,x=E[_](g?{}:-0,1)!=E,T=l((function(){E.has(1)})),O=p((function(t){new b(t)})),A=!g&&l((function(){for(var t=new b,e=5;e--;)t[_](e,e);return!t.has(-0)}));O||((b=e((function(e,n){s(e,b,t);var r=d(new m,e,b);return null!=n&&c(n,y,r[_],r),r}))).prototype=w,w.constructor=b),(T||A)&&(k("delete"),k("has"),y&&k("get")),(A||x)&&k(_),g&&w.clear&&delete w.clear}else b=v.getConstructor(e,t,y,_),a(b.prototype,n),u.NEED=!0;return h(b,t),S[t]=b,o(o.G+o.W+o.F*(b!=m),S),g||v.setStrong(b,t,y),b}},function(t,e,n){for(var r,o=n(20),i=n(56),a=n(89),u=a("typed_array"),c=a("view"),s=!(!o.ArrayBuffer||!o.DataView),f=s,l=0,p="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(r=o[p[l++]])?(i(r.prototype,u,!0),i(r.prototype,c,!0)):f=!1;t.exports={ABV:s,CONSTR:f,TYPED:u,VIEW:c}},,,,,,,,,,,,function(t,e,n){var r=n(52),o=n(31),i=n(91);t.exports=function(t){return function(e,n,a){var u,c=r(e),s=o(c.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(67);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(63),o=n(76);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){"use strict";var r=n(86),o=n(2),i=n(51),a=n(56),u=n(110),c=n(180),s=n(109),f=n(57),l=n(27)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,y,g){c(n,e,d);var m,b,_,w=function(t){if(!p&&t in x)return x[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",k="values"==v,E=!1,x=t.prototype,T=x[l]||x["@@iterator"]||v&&x[v],O=T||w(v),A=v?k?w("entries"):O:void 0,M="Array"==e&&x.entries||T;if(M&&(_=f(M.call(new t)))!==Object.prototype&&_.next&&(s(_,S,!0),r||"function"==typeof _[l]||a(_,l,h)),k&&T&&"values"!==T.name&&(E=!0,O=function(){return T.call(this)}),r&&!g||!p&&!E&&x[l]||a(x,l,O),u[e]=O,u[S]=h,v)if(m={values:k?O:w("values"),keys:y?O:w("keys"),entries:A},g)for(b in m)b in x||i(x,b,m[b]);else o(o.P+o.F*(p||E),e,m);return m}},function(t,e,n){var r=n(22),o=n(67),i=n(27)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},,,,,,,,,,,,,,,,,function(t,e,n){var r=n(22),o=n(20).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){var r=n(131)("keys"),o=n(89);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(20).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(22),o=n(15),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(62)(Function.call,n(59).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var r=n(22),o=n(175).set;t.exports=function(t,e,n){var i,a=e.constructor;return a!==n&&"function"==typeof a&&(i=a.prototype)!==n.prototype&&r(i)&&o&&o(t,i),t}},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e){var n=Math.expm1;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},function(t,e,n){"use strict";var r=n(83),o=n(85),i=n(109),a={};n(56)(a,n(27)("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(154),o=n(76);t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(t))}},function(t,e,n){var r=n(27)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(o){}}return!0}},function(t,e,n){var r=n(110),o=n(27)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){"use strict";var r=n(42),o=n(91),i=n(31);t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,u=o(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,s=void 0===c?n:o(c,n);s>u;)e[u++]=t;return e}},function(t,e,n){"use strict";var r,o,i=n(124),a=RegExp.prototype.exec,u=String.prototype.replace,c=a,s=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),f=void 0!==/()??/.exec("")[1];(s||f)&&(c=function(t){var e,n,r,o,c=this;return f&&(n=new RegExp("^"+c.source+"$(?!\\s)",i.call(c))),s&&(e=c.lastIndex),r=a.call(c,t),s&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),f&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o>1,f=23===e?x(2,-24)-x(2,-77):0,l=0,p=t<0||0===t&&1/t<0?1:0;for((t=E(t))!=t||t===S?(o=t!=t?1:0,r=c):(r=T(O(t)/A),t*(i=x(2,-r))<1&&(r--,i*=2),(t+=r+s>=1?f/i:f*x(2,1-s))*i>=2&&(r++,i/=2),r+s>=c?(o=0,r=c):r+s>=1?(o=(t*i-1)*x(2,e),r+=s):(o=t*x(2,s-1)*x(2,e),r=0));e>=8;a[l++]=255&o,o/=256,e-=8);for(r=r<0;a[l++]=255&r,r/=256,u-=8);return a[--l]|=128*p,a}function C(t,e,n){var r,o=8*n-e-1,i=(1<>1,u=o-7,c=n-1,s=t[c--],f=127&s;for(s>>=7;u>0;f=256*f+t[c],c--,u-=8);for(r=f&(1<<-u)-1,f>>=-u,u+=e;u>0;r=256*r+t[c],c--,u-=8);if(0===f)f=1-a;else{if(f===i)return r?NaN:s?-S:S;r+=x(2,e),f-=a}return(s?-1:1)*r*x(2,f-e)}function F(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function I(t){return[255&t]}function R(t){return[255&t,t>>8&255]}function N(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function L(t){return D(t,52,8)}function Z(t){return D(t,23,4)}function U(t,e,n){v(t.prototype,e,{get:function(){return this[n]}})}function z(t,e,n,r){var o=h(+n);if(o+e>t[P])throw w("Wrong index!");var i=t[M]._b,a=o+t[j],u=i.slice(a,a+e);return r?u:u.reverse()}function B(t,e,n,r,o,i){var a=h(+n);if(a+e>t[P])throw w("Wrong index!");for(var u=t[M]._b,c=a+t[j],s=r(+o),f=0;fG;)(H=K[G++])in m||u(m,H,k[H]);i||(W.constructor=m)}var J=new b(new m(2)),V=b.prototype.setInt8;J.setInt8(0,2147483648),J.setInt8(1,2147483649),!J.getInt8(0)&&J.getInt8(1)||c(b.prototype,{setInt8:function(t,e){V.call(this,t,e<<24>>24)},setUint8:function(t,e){V.call(this,t,e<<24>>24)}},!0)}else m=function(t){f(this,m,"ArrayBuffer");var e=h(t);this._b=y.call(new Array(e),0),this[P]=e},b=function(t,e,n){f(this,b,"DataView"),f(t,m,"DataView");var r=t[P],o=l(e);if(o<0||o>r)throw w("Wrong offset!");if(o+(n=void 0===n?r-o:p(n))>r)throw w("Wrong length!");this[M]=t,this[j]=o,this[P]=n},o&&(U(m,"byteLength","_l"),U(b,"buffer","_b"),U(b,"byteLength","_l"),U(b,"byteOffset","_o")),c(b.prototype,{getInt8:function(t){return z(this,1,t)[0]<<24>>24},getUint8:function(t){return z(this,1,t)[0]},getInt16:function(t){var e=z(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=z(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return F(z(this,4,t,arguments[1]))},getUint32:function(t){return F(z(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return C(z(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return C(z(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){B(this,1,t,I,e)},setUint8:function(t,e){B(this,1,t,I,e)},setInt16:function(t,e){B(this,2,t,R,e,arguments[2])},setUint16:function(t,e){B(this,2,t,R,e,arguments[2])},setInt32:function(t,e){B(this,4,t,N,e,arguments[2])},setUint32:function(t,e){B(this,4,t,N,e,arguments[2])},setFloat32:function(t,e){B(this,4,t,Z,e,arguments[2])},setFloat64:function(t,e){B(this,8,t,L,e,arguments[2])}});g(m,"ArrayBuffer"),g(b,"DataView"),u(b.prototype,a.VIEW,!0),e.ArrayBuffer=m,e.DataView=b},,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(90),o=n(132),i=n(123),a=n(42),u=n(115),c=Object.assign;t.exports=!c||n(21)((function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r}))?function(t,e){for(var n=a(t),c=arguments.length,s=1,f=o.f,l=i.f;c>s;)for(var p,h=u(arguments[s++]),d=f?r(h).concat(f(h)):r(h),v=d.length,y=0;v>y;)l.call(h,p=d[y++])&&(n[p]=h[p]);return n}:c},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){"use strict";var r=n(63),o=n(76);t.exports=function(t){var e=String(o(this)),n="",i=r(t);if(i<0||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},function(t,e,n){"use strict";var r=n(33),o=n(85);t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},function(t,e,n){"use strict";var r=n(97),o=n(205),i=n(110),a=n(52);t.exports=n(153)(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r,o,i,a=n(62),u=n(201),c=n(174),s=n(171),f=n(20),l=f.process,p=f.setImmediate,h=f.clearImmediate,d=f.MessageChannel,v=f.Dispatch,y=0,g={},m=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){m.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++y]=function(){u("function"==typeof t?t:Function(t),e)},r(y),y},h=function(t){delete g[t]},"process"==n(67)(l)?r=function(t){l.nextTick(a(m,t,1))}:v&&v.now?r=function(t){v.now(a(m,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",b,!1)):r="onreadystatechange"in s("script")?function(t){c.appendChild(s("script")).onreadystatechange=function(){c.removeChild(this),m.call(t)}}:function(t){setTimeout(a(m,t,1),0)}),t.exports={set:p,clear:h}},function(t,e,n){"use strict";var r=n(47);function o(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(20).navigator;t.exports=r&&r.userAgent||""},,,,,,,,,,,,function(t,e,n){t.exports=!n(35)&&!n(21)((function(){return 7!=Object.defineProperty(n(171)("div"),"a",{get:function(){return 7}}).a}))},function(t,e,n){e.f=n(27)},function(t,e,n){var r=n(20),o=n(55),i=n(86),a=n(221),u=n(33).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){var r=n(50),o=n(52),i=n(150)(!1),a=n(172)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)n!=a&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){var r=n(33),o=n(15),i=n(90);t.exports=n(35)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,c=0;u>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(52),o=n(92).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},function(t,e,n){"use strict";var r=n(47),o=n(22),i=n(201),a=[].slice,u={},c=function(t,e,n){if(!(e in u)){for(var r=[],o=0;o>>0||(a.test(n)?16:10))}:r},function(t,e,n){var r=n(20).parseFloat,o=n(116).trim;t.exports=1/r(n(176)+"-0")!=-1/0?function(t){var e=o(String(t),3),n=r(e);return 0===n&&"-"==e.charAt(0)?-0:n}:r},function(t,e,n){var r=n(67);t.exports=function(t,e){if("number"!=typeof t&&"Number"!=r(t))throw TypeError(e);return+t}},function(t,e,n){var r=n(22),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,e,n){var r=n(15);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},function(t,e,n){var r=n(402);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){var r=n(47),o=n(42),i=n(115),a=n(31);t.exports=function(t,e,n,u,c){r(e);var s=o(t),f=i(s),l=a(s.length),p=c?l-1:0,h=c?-1:1;if(n<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,c?p<0:l<=p)throw TypeError("Reduce of empty array with no initial value")}for(;c?p>=0:l>p;p+=h)p in f&&(u=e(u,f[p],p,s));return u}},function(t,e,n){"use strict";var r=n(42),o=n(91),i=n(31);t.exports=[].copyWithin||function(t,e){var n=r(this),a=i(n.length),u=o(t,a),c=o(e,a),s=arguments.length>2?arguments[2]:void 0,f=Math.min((void 0===s?a:o(s,a))-c,a-u),l=1;for(c0;)c in n?n[u]=n[c]:delete n[u],u+=l,c+=l;return n}},function(t,e,n){"use strict";var r=n(185);n(2)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(t,e,n){n(35)&&"g"!=/./g.flags&&n(33).f(RegExp.prototype,"flags",{configurable:!0,get:n(124)})},function(t,e,n){var r=n(20),o=n(206).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,u=r.Promise,c="process"==n(67)(a);t.exports=function(){var t,e,n,s=function(){var r,o;for(c&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(i){throw t?n():e=void 0,i}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(s)};else if(!i||r.navigator&&r.navigator.standalone)if(u&&u.resolve){var f=u.resolve(void 0);n=function(){f.then(s)}}else n=function(){o.call(r,s)};else{var l=!0,p=document.createTextNode("");new i(s).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){"use strict";var r=n(241),o=n(111);t.exports=n(137)("Map",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(t){var e=r.getEntry(o(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(o(this,"Map"),0===t?0:t,e)}},r,!0)},function(t,e,n){"use strict";var r=n(33).f,o=n(83),i=n(101),a=n(62),u=n(99),c=n(100),s=n(153),f=n(205),l=n(98),p=n(35),h=n(82).fastKey,d=n(111),v=p?"_s":"size",y=function(t,e){var n,r=h(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){u(t,f,e,"_i"),t._t=e,t._i=o(null),t._f=void 0,t._l=void 0,t[v]=0,null!=r&&c(r,n,t[s],t)}));return i(f.prototype,{clear:function(){for(var t=d(this,e),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[v]=0},delete:function(t){var n=d(this,e),r=y(n,t);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(t){d(this,e);for(var n,r=a(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!y(d(this,e),t)}}),p&&r(f.prototype,"size",{get:function(){return d(this,e)[v]}}),f},def:function(t,e,n){var r,o,i=y(t,e);return i?i.v=n:(t._l=i={i:o=h(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[v]++,"F"!==o&&(t._i[o]=i)),t},getEntry:y,setStrong:function(t,e,n){s(t,e,(function(t,n){this._t=d(t,e),this._k=n,this._l=void 0}),(function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?f(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,f(1))}),n?"entries":"values",!n,!0),l(e)}}},function(t,e,n){"use strict";var r=n(241),o=n(111);t.exports=n(137)("Set",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(o(this,"Set"),t=0===t?0:t,t)}},r)},function(t,e,n){"use strict";var r,o=n(69)(0),i=n(51),a=n(82),u=n(200),c=n(244),s=n(22),f=n(21),l=n(111),p=a.getWeak,h=Object.isExtensible,d=c.ufstore,v={},y=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(t){if(s(t)){var e=p(t);return!0===e?d(l(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return c.def(l(this,"WeakMap"),t,e)}},m=t.exports=n(137)("WeakMap",y,g,c,!0,!0);f((function(){return 7!=(new m).set((Object.freeze||Object)(v),7).get(v)}))&&(u((r=c.getConstructor(y,"WeakMap")).prototype,g),a.NEED=!0,o(["delete","has","get","set"],(function(t){var e=m.prototype,n=e[t];i(e,t,(function(e,o){if(s(e)&&!h(e)){this._f||(this._f=new r);var i=this._f[t](e,o);return"set"==t?this:i}return n.call(this,e,o)}))})))},function(t,e,n){"use strict";var r=n(101),o=n(82).getWeak,i=n(15),a=n(22),u=n(99),c=n(100),s=n(69),f=n(50),l=n(111),p=s(5),h=s(6),d=0,v=function(t){return t._l||(t._l=new y)},y=function(){this.a=[]},g=function(t,e){return p(t.a,(function(t){return t[0]===e}))};y.prototype={get:function(t){var e=g(this,t);if(e)return e[1]},has:function(t){return!!g(this,t)},set:function(t,e){var n=g(this,t);n?n[1]=e:this.a.push([t,e])},delete:function(t){var e=h(this.a,(function(e){return e[0]===t}));return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,i){var s=t((function(t,r){u(t,s,e,"_i"),t._t=e,t._i=d++,t._l=void 0,null!=r&&c(r,n,t[i],t)}));return r(s.prototype,{delete:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(l(this,e)).delete(t):n&&f(n,this._i)&&delete n[this._i]},has:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(l(this,e)).has(t):n&&f(n,this._i)}}),s},def:function(t,e,n){var r=o(i(e),!0);return!0===r?v(t).set(e,n):r[t._i]=n,t},ufstore:v}},function(t,e,n){var r=n(63),o=n(31);t.exports=function(t){if(void 0===t)return 0;var e=r(t),n=o(e);if(e!==n)throw RangeError("Wrong length!");return n}},function(t,e,n){var r=n(92),o=n(132),i=n(15),a=n(20).Reflect;t.exports=a&&a.ownKeys||function(t){var e=r.f(i(t)),n=o.f;return n?e.concat(n(t)):e}},,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){var r=n(178),o=Math.pow,i=o(2,-52),a=o(2,-23),u=o(2,127)*(2-a),c=o(2,-126);t.exports=Math.fround||function(t){var e,n,o=Math.abs(t),s=r(t);return ou||n!=n?s*(1/0):s*n}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},function(t,e,n){var r=n(15),o=n(22),i=n(207);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var r=n(100);t.exports=function(t,e){var n=[];return r(t,!1,n.push,n,e),n}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(20),o=n(50),i=n(35),a=n(2),u=n(51),c=n(82).KEY,s=n(21),f=n(131),l=n(109),p=n(89),h=n(27),d=n(221),v=n(222),y=n(314),g=n(151),m=n(15),b=n(22),_=n(52),w=n(75),S=n(85),k=n(83),E=n(225),x=n(59),T=n(33),O=n(90),A=x.f,M=T.f,P=E.f,j=r.Symbol,D=r.JSON,C=D&&D.stringify,F=h("_hidden"),I=h("toPrimitive"),R={}.propertyIsEnumerable,N=f("symbol-registry"),L=f("symbols"),Z=f("op-symbols"),U=Object.prototype,z="function"==typeof j,B=r.QObject,H=!B||!B.prototype||!B.prototype.findChild,W=i&&s((function(){return 7!=k(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=A(U,e);r&&delete U[e],M(t,e,n),r&&t!==U&&M(U,e,r)}:M,K=function(t){var e=L[t]=k(j.prototype);return e._k=t,e},G=z&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},J=function(t,e,n){return t===U&&J(Z,e,n),m(t),e=w(e,!0),m(n),o(L,e)?(n.enumerable?(o(t,F)&&t[F][e]&&(t[F][e]=!1),n=k(n,{enumerable:S(0,!1)})):(o(t,F)||M(t,F,S(1,{})),t[F][e]=!0),W(t,e,n)):M(t,e,n)},V=function(t,e){m(t);for(var n,r=y(e=_(e)),o=0,i=r.length;i>o;)J(t,n=r[o++],e[n]);return t},q=function(t){var e=R.call(this,t=w(t,!0));return!(this===U&&o(L,t)&&!o(Z,t))&&(!(e||!o(this,t)||!o(L,t)||o(this,F)&&this[F][t])||e)},Y=function(t,e){if(t=_(t),e=w(e,!0),t!==U||!o(L,e)||o(Z,e)){var n=A(t,e);return!n||!o(L,e)||o(t,F)&&t[F][e]||(n.enumerable=!0),n}},X=function(t){for(var e,n=P(_(t)),r=[],i=0;n.length>i;)o(L,e=n[i++])||e==F||e==c||r.push(e);return r},$=function(t){for(var e,n=t===U,r=P(n?Z:_(t)),i=[],a=0;r.length>a;)!o(L,e=r[a++])||n&&!o(U,e)||i.push(L[e]);return i};z||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===U&&e.call(Z,n),o(this,F)&&o(this[F],t)&&(this[F][t]=!1),W(this,t,S(1,n))};return i&&H&&W(U,t,{configurable:!0,set:e}),K(t)}).prototype,"toString",(function(){return this._k})),x.f=Y,T.f=J,n(92).f=E.f=X,n(123).f=q,n(132).f=$,i&&!n(86)&&u(U,"propertyIsEnumerable",q,!0),d.f=function(t){return K(h(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)h(Q[tt++]);for(var et=O(h.store),nt=0;et.length>nt;)v(et[nt++]);a(a.S+a.F*!z,"Symbol",{for:function(t){return o(N,t+="")?N[t]:N[t]=j(t)},keyFor:function(t){if(!G(t))throw TypeError(t+" is not a symbol!");for(var e in N)if(N[e]===t)return e},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a(a.S+a.F*!z,"Object",{create:function(t,e){return void 0===e?k(t):V(k(t),e)},defineProperty:J,defineProperties:V,getOwnPropertyDescriptor:Y,getOwnPropertyNames:X,getOwnPropertySymbols:$}),D&&a(a.S+a.F*(!z||s((function(){var t=j();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))}))),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(b(e)||void 0!==t)&&!G(t))return g(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,C.apply(D,r)}}),j.prototype[I]||n(56)(j.prototype,I,j.prototype.valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){var r=n(90),o=n(132),i=n(123);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),c=i.f,s=0;u.length>s;)c.call(t,a=u[s++])&&e.push(a);return e}},function(t,e,n){var r=n(2);r(r.S,"Object",{create:n(83)})},function(t,e,n){var r=n(2);r(r.S+r.F*!n(35),"Object",{defineProperty:n(33).f})},function(t,e,n){var r=n(2);r(r.S+r.F*!n(35),"Object",{defineProperties:n(224)})},function(t,e,n){var r=n(52),o=n(59).f;n(68)("getOwnPropertyDescriptor",(function(){return function(t,e){return o(r(t),e)}}))},function(t,e,n){var r=n(42),o=n(57);n(68)("getPrototypeOf",(function(){return function(t){return o(r(t))}}))},function(t,e,n){var r=n(42),o=n(90);n(68)("keys",(function(){return function(t){return o(r(t))}}))},function(t,e,n){n(68)("getOwnPropertyNames",(function(){return n(225).f}))},function(t,e,n){var r=n(22),o=n(82).onFreeze;n(68)("freeze",(function(t){return function(e){return t&&r(e)?t(o(e)):e}}))},function(t,e,n){var r=n(22),o=n(82).onFreeze;n(68)("seal",(function(t){return function(e){return t&&r(e)?t(o(e)):e}}))},function(t,e,n){var r=n(22),o=n(82).onFreeze;n(68)("preventExtensions",(function(t){return function(e){return t&&r(e)?t(o(e)):e}}))},function(t,e,n){var r=n(22);n(68)("isFrozen",(function(t){return function(e){return!r(e)||!!t&&t(e)}}))},function(t,e,n){var r=n(22);n(68)("isSealed",(function(t){return function(e){return!r(e)||!!t&&t(e)}}))},function(t,e,n){var r=n(22);n(68)("isExtensible",(function(t){return function(e){return!!r(e)&&(!t||t(e))}}))},function(t,e,n){var r=n(2);r(r.S+r.F,"Object",{assign:n(200)})},function(t,e,n){var r=n(2);r(r.S,"Object",{is:n(226)})},function(t,e,n){var r=n(2);r(r.S,"Object",{setPrototypeOf:n(175).set})},function(t,e,n){"use strict";var r=n(96),o={};o[n(27)("toStringTag")]="z",o+""!="[object z]"&&n(51)(Object.prototype,"toString",(function(){return"[object "+r(this)+"]"}),!0)},function(t,e,n){var r=n(2);r(r.P,"Function",{bind:n(227)})},function(t,e,n){var r=n(33).f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n(35)&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(22),o=n(57),i=n(27)("hasInstance"),a=Function.prototype;i in a||n(33).f(a,i,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=o(t);)if(this.prototype===t)return!0;return!1}})},function(t,e,n){var r=n(2),o=n(228);r(r.G+r.F*(parseInt!=o),{parseInt:o})},function(t,e,n){var r=n(2),o=n(229);r(r.G+r.F*(parseFloat!=o),{parseFloat:o})},function(t,e,n){"use strict";var r=n(20),o=n(50),i=n(67),a=n(177),u=n(75),c=n(21),s=n(92).f,f=n(59).f,l=n(33).f,p=n(116).trim,h=r.Number,d=h,v=h.prototype,y="Number"==i(n(83)(v)),g="trim"in String.prototype,m=function(t){var e=u(t,!1);if("string"==typeof e&&e.length>2){var n,r,o,i=(e=g?e.trim():p(e,3)).charCodeAt(0);if(43===i||45===i){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+e}for(var a,c=e.slice(2),s=0,f=c.length;so)return NaN;return parseInt(c,r)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(y?c((function(){v.valueOf.call(n)})):"Number"!=i(n))?a(new d(m(e)),n,h):m(e)};for(var b,_=n(35)?s(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;_.length>w;w++)o(d,b=_[w])&&!o(h,b)&&l(h,b,f(d,b));h.prototype=v,v.constructor=h,n(51)(r,"Number",h)}},function(t,e,n){"use strict";var r=n(2),o=n(63),i=n(230),a=n(202),u=1..toFixed,c=Math.floor,s=[0,0,0,0,0,0],f="Number.toFixed: incorrect invocation!",l=function(t,e){for(var n=-1,r=e;++n<6;)r+=t*s[n],s[n]=r%1e7,r=c(r/1e7)},p=function(t){for(var e=6,n=0;--e>=0;)n+=s[e],s[e]=c(n/t),n=n%t*1e7},h=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==s[t]){var n=String(s[t]);e=""===e?n:e+a.call("0",7-n.length)+n}return e},d=function(t,e,n){return 0===e?n:e%2==1?d(t,e-1,n*t):d(t*t,e/2,n)};r(r.P+r.F*(!!u&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n(21)((function(){u.call({})}))),"Number",{toFixed:function(t){var e,n,r,u,c=i(this,f),s=o(t),v="",y="0";if(s<0||s>20)throw RangeError(f);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(v="-",c=-c),c>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(c*d(2,69,1))-69)<0?c*d(2,-e,1):c/d(2,e,1),n*=4503599627370496,(e=52-e)>0){for(l(0,n),r=s;r>=7;)l(1e7,0),r-=7;for(l(d(10,r,1),0),r=e-1;r>=23;)p(1<<23),r-=23;p(1<0?v+((u=y.length)<=s?"0."+a.call("0",s-u)+y:y.slice(0,u-s)+"."+y.slice(u-s)):v+y}})},function(t,e,n){"use strict";var r=n(2),o=n(21),i=n(230),a=1..toPrecision;r(r.P+r.F*(o((function(){return"1"!==a.call(1,void 0)}))||!o((function(){a.call({})}))),"Number",{toPrecision:function(t){var e=i(this,"Number#toPrecision: incorrect invocation!");return void 0===t?a.call(e):a.call(e,t)}})},function(t,e,n){var r=n(2);r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,n){var r=n(2),o=n(20).isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&o(t)}})},function(t,e,n){var r=n(2);r(r.S,"Number",{isInteger:n(231)})},function(t,e,n){var r=n(2);r(r.S,"Number",{isNaN:function(t){return t!=t}})},function(t,e,n){var r=n(2),o=n(231),i=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},function(t,e,n){var r=n(2);r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,n){var r=n(2);r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,n){var r=n(2),o=n(229);r(r.S+r.F*(Number.parseFloat!=o),"Number",{parseFloat:o})},function(t,e,n){var r=n(2),o=n(228);r(r.S+r.F*(Number.parseInt!=o),"Number",{parseInt:o})},function(t,e,n){var r=n(2),o=n(232),i=Math.sqrt,a=Math.acosh;r(r.S+r.F*!(a&&710==Math.floor(a(Number.MAX_VALUE))&&a(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:o(t-1+i(t-1)*i(t+1))}})},function(t,e,n){var r=n(2),o=Math.asinh;r(r.S+r.F*!(o&&1/o(0)>0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},function(t,e,n){var r=n(2),o=Math.atanh;r(r.S+r.F*!(o&&1/o(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,e,n){var r=n(2),o=n(178);r(r.S,"Math",{cbrt:function(t){return o(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,e,n){var r=n(2);r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,e,n){var r=n(2),o=Math.exp;r(r.S,"Math",{cosh:function(t){return(o(t=+t)+o(-t))/2}})},function(t,e,n){var r=n(2),o=n(179);r(r.S+r.F*(o!=Math.expm1),"Math",{expm1:o})},function(t,e,n){var r=n(2);r(r.S,"Math",{fround:n(269)})},function(t,e,n){var r=n(2),o=Math.abs;r(r.S,"Math",{hypot:function(t,e){for(var n,r,i=0,a=0,u=arguments.length,c=0;a0?(r=n/c)*r:n;return c===1/0?1/0:c*Math.sqrt(i)}})},function(t,e,n){var r=n(2),o=Math.imul;r(r.S+r.F*n(21)((function(){return-5!=o(4294967295,5)||2!=o.length})),"Math",{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},function(t,e,n){var r=n(2);r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},function(t,e,n){var r=n(2);r(r.S,"Math",{log1p:n(232)})},function(t,e,n){var r=n(2);r(r.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},function(t,e,n){var r=n(2);r(r.S,"Math",{sign:n(178)})},function(t,e,n){var r=n(2),o=n(179),i=Math.exp;r(r.S+r.F*n(21)((function(){return-2e-17!=!Math.sinh(-2e-17)})),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(o(t)-o(-t))/2:(i(t-1)-i(-t-1))*(Math.E/2)}})},function(t,e,n){var r=n(2),o=n(179),i=Math.exp;r(r.S,"Math",{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},function(t,e,n){var r=n(2);r(r.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,e,n){var r=n(2),o=n(91),i=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join("")}})},function(t,e,n){var r=n(2),o=n(52),i=n(31);r(r.S,"String",{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],u=0;n>u;)a.push(String(e[u++])),u=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},function(t,e,n){"use strict";var r=n(2),o=n(152)(!1);r(r.P,"String",{codePointAt:function(t){return o(this,t)}})},function(t,e,n){"use strict";var r=n(2),o=n(31),i=n(181),a="".endsWith;r(r.P+r.F*n(182)("endsWith"),"String",{endsWith:function(t){var e=i(this,t,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=o(e.length),u=void 0===n?r:Math.min(o(n),r),c=String(t);return a?a.call(e,c,u):e.slice(u-c.length,u)===c}})},function(t,e,n){"use strict";var r=n(2),o=n(181);r(r.P+r.F*n(182)("includes"),"String",{includes:function(t){return!!~o(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(2);r(r.P,"String",{repeat:n(202)})},function(t,e,n){"use strict";var r=n(2),o=n(31),i=n(181),a="".startsWith;r(r.P+r.F*n(182)("startsWith"),"String",{startsWith:function(t){var e=i(this,t,"startsWith"),n=o(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return a?a.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){"use strict";n(49)("anchor",(function(t){return function(e){return t(this,"a","name",e)}}))},function(t,e,n){"use strict";n(49)("big",(function(t){return function(){return t(this,"big","","")}}))},function(t,e,n){"use strict";n(49)("blink",(function(t){return function(){return t(this,"blink","","")}}))},function(t,e,n){"use strict";n(49)("bold",(function(t){return function(){return t(this,"b","","")}}))},function(t,e,n){"use strict";n(49)("fixed",(function(t){return function(){return t(this,"tt","","")}}))},function(t,e,n){"use strict";n(49)("fontcolor",(function(t){return function(e){return t(this,"font","color",e)}}))},function(t,e,n){"use strict";n(49)("fontsize",(function(t){return function(e){return t(this,"font","size",e)}}))},function(t,e,n){"use strict";n(49)("italics",(function(t){return function(){return t(this,"i","","")}}))},function(t,e,n){"use strict";n(49)("link",(function(t){return function(e){return t(this,"a","href",e)}}))},function(t,e,n){"use strict";n(49)("small",(function(t){return function(){return t(this,"small","","")}}))},function(t,e,n){"use strict";n(49)("strike",(function(t){return function(){return t(this,"strike","","")}}))},function(t,e,n){"use strict";n(49)("sub",(function(t){return function(){return t(this,"sub","","")}}))},function(t,e,n){"use strict";n(49)("sup",(function(t){return function(){return t(this,"sup","","")}}))},function(t,e,n){var r=n(2);r(r.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,e,n){"use strict";var r=n(2),o=n(42),i=n(75);r(r.P+r.F*n(21)((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})),"Date",{toJSON:function(t){var e=o(this),n=i(e);return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},function(t,e,n){var r=n(2),o=n(391);r(r.P+r.F*(Date.prototype.toISOString!==o),"Date",{toISOString:o})},function(t,e,n){"use strict";var r=n(21),o=Date.prototype.getTime,i=Date.prototype.toISOString,a=function(t){return t>9?t:"0"+t};t.exports=r((function(){return"0385-07-25T07:06:39.999Z"!=i.call(new Date(-50000000000001))}))||!r((function(){i.call(new Date(NaN))}))?function(){if(!isFinite(o.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),r=e<0?"-":e>9999?"+":"";return r+("00000"+Math.abs(e)).slice(r?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}:i},function(t,e,n){var r=Date.prototype,o=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&n(51)(r,"toString",(function(){var t=i.call(this);return t==t?o.call(this):"Invalid Date"}))},function(t,e,n){var r=n(27)("toPrimitive"),o=Date.prototype;r in o||n(56)(o,r,n(394))},function(t,e,n){"use strict";var r=n(15),o=n(75);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return o(r(this),"number"!=t)}},function(t,e,n){var r=n(2);r(r.S,"Array",{isArray:n(151)})},function(t,e,n){"use strict";var r=n(62),o=n(2),i=n(42),a=n(233),u=n(183),c=n(31),s=n(203),f=n(133);o(o.S+o.F*!n(134)((function(t){Array.from(t)})),"Array",{from:function(t){var e,n,o,l,p=i(t),h="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,y=void 0!==v,g=0,m=f(p);if(y&&(v=r(v,d>2?arguments[2]:void 0,2)),null==m||h==Array&&u(m))for(n=new h(e=c(p.length));e>g;g++)s(n,g,y?v(p[g],g):p[g]);else for(l=m.call(p),n=new h;!(o=l.next()).done;g++)s(n,g,y?a(l,v,[o.value,g],!0):o.value);return n.length=g,n}})},function(t,e,n){"use strict";var r=n(2),o=n(203);r(r.S+r.F*n(21)((function(){function t(){}return!(Array.of.call(t)instanceof t)})),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)o(n,t,arguments[t++]);return n.length=e,n}})},function(t,e,n){"use strict";var r=n(2),o=n(52),i=[].join;r(r.P+r.F*(n(115)!=Object||!n(60)(i)),"Array",{join:function(t){return i.call(o(this),void 0===t?",":t)}})},function(t,e,n){"use strict";var r=n(2),o=n(174),i=n(67),a=n(91),u=n(31),c=[].slice;r(r.P+r.F*n(21)((function(){o&&c.call(o)})),"Array",{slice:function(t,e){var n=u(this.length),r=i(this);if(e=void 0===e?n:e,"Array"==r)return c.call(this,t,e);for(var o=a(t,n),s=a(e,n),f=u(s-o),l=new Array(f),p=0;p1&&(r=Math.min(r,i(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in e&&e[r]===t)return r||0;return-1}})},function(t,e,n){var r=n(2);r(r.P,"Array",{copyWithin:n(236)}),n(97)("copyWithin")},function(t,e,n){var r=n(2);r(r.P,"Array",{fill:n(184)}),n(97)("fill")},function(t,e,n){"use strict";var r=n(2),o=n(69)(5),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),r(r.P+r.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(97)("find")},function(t,e,n){"use strict";var r=n(2),o=n(69)(6),i="findIndex",a=!0;i in[]&&Array(1)[i]((function(){a=!1})),r(r.P+r.F*a,"Array",{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(97)(i)},function(t,e,n){n(98)("Array")},function(t,e,n){var r=n(20),o=n(177),i=n(33).f,a=n(92).f,u=n(154),c=n(124),s=r.RegExp,f=s,l=s.prototype,p=/a/g,h=/a/g,d=new s(p)!==p;if(n(35)&&(!d||n(21)((function(){return h[n(27)("match")]=!1,s(p)!=p||s(h)==h||"/a/i"!=s(p,"i")})))){s=function(t,e){var n=this instanceof s,r=u(t),i=void 0===e;return!n&&r&&t.constructor===s&&i?t:o(d?new f(r&&!i?t.source:t,e):f((r=t instanceof s)?t.source:t,r&&i?c.call(t):e),n?this:l,s)};for(var v=function(t){t in s||i(s,t,{configurable:!0,get:function(){return f[t]},set:function(e){f[t]=e}})},y=a(f),g=0;y.length>g;)v(y[g++]);l.constructor=s,s.prototype=l,n(51)(r,"RegExp",s)}n(98)("RegExp")},function(t,e,n){"use strict";n(238);var r=n(15),o=n(124),i=n(35),a=/./.toString,u=function(t){n(51)(RegExp.prototype,"toString",t,!0)};n(21)((function(){return"/a/b"!=a.call({source:"a",flags:"b"})}))?u((function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)})):"toString"!=a.name&&u((function(){return a.call(this)}))},function(t,e,n){"use strict";var r=n(15),o=n(31),i=n(186),a=n(135);n(136)("match",1,(function(t,e,n,u){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=u(n,t,this);if(e.done)return e.value;var c=r(t),s=String(this);if(!c.global)return a(c,s);var f=c.unicode;c.lastIndex=0;for(var l,p=[],h=0;null!==(l=a(c,s));){var d=String(l[0]);p[h]=d,""===d&&(c.lastIndex=i(s,o(c.lastIndex),f)),h++}return 0===h?null:p}]}))},function(t,e,n){"use strict";var r=n(15),o=n(42),i=n(31),a=n(63),u=n(186),c=n(135),s=Math.max,f=Math.min,l=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n(136)("replace",2,(function(t,e,n,d){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=d(n,t,this,e);if(o.done)return o.value;var l=r(t),p=String(this),h="function"==typeof e;h||(e=String(e));var y=l.global;if(y){var g=l.unicode;l.lastIndex=0}for(var m=[];;){var b=c(l,p);if(null===b)break;if(m.push(b),!y)break;""===String(b[0])&&(l.lastIndex=u(p,i(l.lastIndex),g))}for(var _,w="",S=0,k=0;k=S&&(w+=p.slice(S,x)+P,S=x+E.length)}return w+p.slice(S)}];function v(t,e,r,i,a,u){var c=r+t.length,s=i.length,f=h;return void 0!==a&&(a=o(a),f=p),n.call(u,f,(function(n,o){var u;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(c);case"<":u=a[o.slice(1,-1)];break;default:var f=+o;if(0===f)return n;if(f>s){var p=l(f/10);return 0===p?n:p<=s?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}u=i[f-1]}return void 0===u?"":u}))}}))},function(t,e,n){"use strict";var r=n(15),o=n(226),i=n(135);n(136)("search",1,(function(t,e,n,a){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=a(n,t,this);if(e.done)return e.value;var u=r(t),c=String(this),s=u.lastIndex;o(s,0)||(u.lastIndex=0);var f=i(u,c);return o(u.lastIndex,s)||(u.lastIndex=s),null===f?-1:f.index}]}))},function(t,e,n){"use strict";var r=n(154),o=n(15),i=n(125),a=n(186),u=n(31),c=n(135),s=n(185),f=Math.min,l=[].push,p="length",h=!!function(){try{return new RegExp("x","y")}catch(t){}}();n(136)("split",2,(function(t,e,n,d){var v;return v="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1)[p]||2!="ab".split(/(?:ab)*/)[p]||4!=".".split(/(.?)(.?)/)[p]||".".split(/()()/)[p]>1||"".split(/.?/)[p]?function(t,e){var o=String(this);if(void 0===t&&0===e)return[];if(!r(t))return n.call(o,t,e);for(var i,a,u,c=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),h=0,d=void 0===e?4294967295:e>>>0,v=new RegExp(t.source,f+"g");(i=s.call(v,o))&&!((a=v.lastIndex)>h&&(c.push(o.slice(h,i.index)),i[p]>1&&i.index=d));)v.lastIndex===i.index&&v.lastIndex++;return h===o[p]?!u&&v.test("")||c.push(""):c.push(o.slice(h)),c[p]>d?c.slice(0,d):c}:"0".split(void 0,0)[p]?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,r){var o=t(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):v.call(String(o),n,r)},function(t,e){var r=d(v,t,this,e,v!==n);if(r.done)return r.value;var s=o(t),l=String(this),p=i(s,RegExp),y=s.unicode,g=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(h?"y":"g"),m=new p(h?s:"^(?:"+s.source+")",g),b=void 0===e?4294967295:e>>>0;if(0===b)return[];if(0===l.length)return null===c(m,l)?[l]:[];for(var _=0,w=0,S=[];wi;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&F(t)}))}},F=function(t){g.call(c,(function(){var e,n,r,o=t._v,i=I(t);if(i&&(e=_((function(){A?E.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)})),t._h=A||I(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},I=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){g.call(c,(function(){var e;A?E.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})}))},N=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),C(e,!0))},L=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=D(t))?m((function(){var r={_w:n,_d:!1};try{e.call(t,s(L,r,1),s(N,r,1))}catch(o){N.call(r,o)}})):(n._v=t,n._s=1,C(n,!1))}catch(r){N.call({_w:n,_d:!1},r)}}};j||(O=function(t){d(this,O,"Promise","_h"),h(t),r.call(this);try{t(s(L,this,1),s(N,this,1))}catch(e){N.call(this,e)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(101)(O.prototype,{then:function(t,e){var n=P(y(this,O));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=A?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&C(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=s(L,t,1),this.reject=s(N,t,1)},b.f=P=function(t){return t===O||t===a?new i(t):o(t)}),l(l.G+l.W+l.F*!j,{Promise:O}),n(109)(O,"Promise"),n(98)("Promise"),a=n(55).Promise,l(l.S+l.F*!j,"Promise",{reject:function(t){var e=P(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(u||!j),"Promise",{resolve:function(t){return S(u&&this===a?O:this,t)}}),l(l.S+l.F*!(j&&n(134)((function(t){O.all(t).catch(M)}))),"Promise",{all:function(t){var e=this,n=P(e),r=n.resolve,o=n.reject,i=_((function(){var n=[],i=0,a=1;v(t,!1,(function(t){var u=i++,c=!1;n.push(void 0),a++,e.resolve(t).then((function(t){c||(c=!0,n[u]=t,--a||r(n))}),o)})),--a||r(n)}));return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=P(e),r=n.reject,o=_((function(){v(t,!1,(function(t){e.resolve(t).then(n.resolve,r)}))}));return o.e&&r(o.v),n.promise}})},function(t,e,n){"use strict";var r=n(244),o=n(111);n(137)("WeakSet",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(o(this,"WeakSet"),t,!0)}},r,!1,!0)},function(t,e,n){"use strict";var r=n(2),o=n(138),i=n(187),a=n(15),u=n(91),c=n(31),s=n(22),f=n(20).ArrayBuffer,l=n(125),p=i.ArrayBuffer,h=i.DataView,d=o.ABV&&f.isView,v=p.prototype.slice,y=o.VIEW;r(r.G+r.W+r.F*(f!==p),{ArrayBuffer:p}),r(r.S+r.F*!o.CONSTR,"ArrayBuffer",{isView:function(t){return d&&d(t)||s(t)&&y in t}}),r(r.P+r.U+r.F*n(21)((function(){return!new p(2).slice(1,void 0).byteLength})),"ArrayBuffer",{slice:function(t,e){if(void 0!==v&&void 0===e)return v.call(a(this),t);for(var n=a(this).byteLength,r=u(t,n),o=u(void 0===e?n:e,n),i=new(l(this,p))(c(o-r)),s=new h(this),f=new h(i),d=0;r=e.length)return{value:void 0,done:!0}}while(!((t=e[this._i++])in this._t));return{value:t,done:!1}})),r(r.S,"Reflect",{enumerate:function(t){return new i(t)}})},function(t,e,n){var r=n(59),o=n(57),i=n(50),a=n(2),u=n(22),c=n(15);a(a.S,"Reflect",{get:function t(e,n){var a,s,f=arguments.length<3?e:arguments[2];return c(e)===f?e[n]:(a=r.f(e,n))?i(a,"value")?a.value:void 0!==a.get?a.get.call(f):void 0:u(s=o(e))?t(s,n,f):void 0}})},function(t,e,n){var r=n(59),o=n(2),i=n(15);o(o.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return r.f(i(t),e)}})},function(t,e,n){var r=n(2),o=n(57),i=n(15);r(r.S,"Reflect",{getPrototypeOf:function(t){return o(i(t))}})},function(t,e,n){var r=n(2);r(r.S,"Reflect",{has:function(t,e){return e in t}})},function(t,e,n){var r=n(2),o=n(15),i=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return o(t),!i||i(t)}})},function(t,e,n){var r=n(2);r(r.S,"Reflect",{ownKeys:n(246)})},function(t,e,n){var r=n(2),o=n(15),i=Object.preventExtensions;r(r.S,"Reflect",{preventExtensions:function(t){o(t);try{return i&&i(t),!0}catch(e){return!1}}})},function(t,e,n){var r=n(33),o=n(59),i=n(57),a=n(50),u=n(2),c=n(85),s=n(15),f=n(22);u(u.S,"Reflect",{set:function t(e,n,u){var l,p,h=arguments.length<4?e:arguments[3],d=o.f(s(e),n);if(!d){if(f(p=i(e)))return t(p,n,u,h);d=c(0)}if(a(d,"value")){if(!1===d.writable||!f(h))return!1;if(l=o.f(h,n)){if(l.get||l.set||!1===l.writable)return!1;l.value=u,r.f(h,n,l)}else r.f(h,n,c(0,u));return!0}return void 0!==d.set&&(d.set.call(h,u),!0)}})},function(t,e,n){var r=n(2),o=n(175);o&&r(r.S,"Reflect",{setPrototypeOf:function(t,e){o.check(t,e);try{return o.set(t,e),!0}catch(n){return!1}}})},function(t,e,n){var r=n(78),o=n(15),i=r.key,a=r.set;r.exp({defineMetadata:function(t,e,n,r){a(t,e,o(n),i(r))}})},function(t,e,n){var r=n(78),o=n(15),i=r.key,a=r.map,u=r.store;r.exp({deleteMetadata:function(t,e){var n=arguments.length<3?void 0:i(arguments[2]),r=a(o(e),n,!1);if(void 0===r||!r.delete(t))return!1;if(r.size)return!0;var c=u.get(e);return c.delete(n),!!c.size||u.delete(e)}})},function(t,e,n){var r=n(78),o=n(15),i=n(57),a=r.has,u=r.get,c=r.key,s=function(t,e,n){if(a(t,e,n))return u(t,e,n);var r=i(e);return null!==r?s(t,r,n):void 0};r.exp({getMetadata:function(t,e){return s(t,o(e),arguments.length<3?void 0:c(arguments[2]))}})},function(t,e,n){var r=n(242),o=n(272),i=n(78),a=n(15),u=n(57),c=i.keys,s=i.key,f=function(t,e){var n=c(t,e),i=u(t);if(null===i)return n;var a=f(i,e);return a.length?n.length?o(new r(n.concat(a))):a:n};i.exp({getMetadataKeys:function(t){return f(a(t),arguments.length<2?void 0:s(arguments[1]))}})},function(t,e,n){var r=n(78),o=n(15),i=r.get,a=r.key;r.exp({getOwnMetadata:function(t,e){return i(t,o(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(78),o=n(15),i=r.keys,a=r.key;r.exp({getOwnMetadataKeys:function(t){return i(o(t),arguments.length<2?void 0:a(arguments[1]))}})},function(t,e,n){var r=n(78),o=n(15),i=n(57),a=r.has,u=r.key,c=function(t,e,n){if(a(t,e,n))return!0;var r=i(e);return null!==r&&c(t,r,n)};r.exp({hasMetadata:function(t,e){return c(t,o(e),arguments.length<3?void 0:u(arguments[2]))}})},function(t,e,n){var r=n(78),o=n(15),i=r.has,a=r.key;r.exp({hasOwnMetadata:function(t,e){return i(t,o(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(78),o=n(15),i=n(47),a=r.key,u=r.set;r.exp({metadata:function(t,e){return function(n,r){u(t,e,(void 0!==r?o:i)(n),a(r))}}})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(747),n(748),n(749),!Element.prototype.matches&&Element.prototype.msMatchesSelector&&(Element.prototype.matches=Element.prototype.msMatchesSelector),n(750),n(751),n(752)},function(t,e,n){n(313),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389),n(390),n(392),n(393),n(395),n(396),n(397),n(398),n(399),n(400),n(401),n(403),n(404),n(405),n(406),n(407),n(408),n(409),n(410),n(411),n(412),n(413),n(414),n(415),n(204),n(416),n(237),n(417),n(238),n(418),n(419),n(420),n(421),n(422),n(240),n(242),n(243),n(423),n(424),n(425),n(426),n(427),n(428),n(429),n(430),n(431),n(432),n(433),n(434),n(435),n(436),n(437),n(438),n(439),n(440),n(441),n(442),n(443),n(444),n(445),n(446),n(447),n(448),t.exports=n(55)},function(t,e,n){n(449),n(450),n(451),n(452),n(453),n(454),n(455),n(456),n(457),t.exports=n(55).Reflect},function(t,e,n){(function(r){var o,i; +/** +* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes +* (c) 2010-2020 Google LLC. https://angular.io/ +* License: MIT +*/void 0===(i="function"==typeof(o=function(){"use strict"; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n("Zone");var o=t.__Zone_symbol_prefix||"__zone_symbol__";function i(t){return o+t}var a=!0===t[i("forceDuplicateZoneCheck")];if(t.Zone){if(a||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}var u=function(){function e(t,e){this._parent=t,this._name=e?e.name||"unnamed":"",this._properties=e&&e.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,e)}return e.assertZonePatched=function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(e,"root",{get:function(){for(var t=e.current;t.parent;)t=t.parent;return t},enumerable:!0,configurable:!0}),Object.defineProperty(e,"current",{get:function(){return j.zone},enumerable:!0,configurable:!0}),Object.defineProperty(e,"currentTask",{get:function(){return D},enumerable:!0,configurable:!0}),e.__load_patch=function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error("Already loaded patch: "+o)}else if(!t["__Zone_disable_"+o]){var u="Zone:"+o;n(u),M[o]=i(t,e,P),r(u,u)}},Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),e.prototype.get=function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]},e.prototype.getZoneWith=function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null},e.prototype.fork=function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)},e.prototype.wrap=function(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}},e.prototype.run=function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}},e.prototype.runGuarded=function(t,e,n,r){void 0===e&&(e=null),j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}},e.prototype.runTask=function(t,e,n){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");if(t.state!==_||t.type!==A&&t.type!==O){var r=t.state!=k;r&&t._transitionTo(k,S),t.runCount++;var o=D;D=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==_&&t.state!==x&&(t.type==A||t.data&&t.data.isPeriodic?r&&t._transitionTo(S,k):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(_,k,_))),j=j.parent,D=o}}},e.prototype.scheduleTask=function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+t.zone.name);e=e.parent}t._transitionTo(w,_);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(x,w,_),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==w&&t._transitionTo(S,w),t},e.prototype.scheduleMicroTask=function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))},e.prototype.scheduleMacroTask=function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))},e.prototype.scheduleEventTask=function(t,e,n,r,o){return this.scheduleTask(new l(A,t,e,n,r,o))},e.prototype.cancelTask=function(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");t._transitionTo(E,S,k);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(x,E),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(_,E),t.runCount=0,t},e.prototype._updateTaskCount=function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t};this.hasTask(this.zone,i)}},t}(),l=function(){function e(n,r,o,i,a,u){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=u,!o)throw new Error("callback is not defined");this.callback=o;var c=this;n===A&&i&&i.useG?this.invoke=e.invokeTask:this.invoke=function(){return e.invokeTask.call(t,c,this,arguments)}}return e.invokeTask=function(t,e,n){t||(t=this),C++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==C&&m(),C--}},Object.defineProperty(e.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),e.prototype.cancelScheduleRequest=function(){this._transitionTo(_,w)},e.prototype._transitionTo=function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+t+"', expecting state '"+e+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=t,t==_&&(this._zoneDelegates=null)},e.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)},e.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}},e}(),p=i("setTimeout"),h=i("Promise"),d=i("then"),v=[],y=!1;function g(e){if(0===C&&0===v.length)if(c||t[h]&&(c=t[h].resolve(0)),c){var n=c[d];n||(n=c.then),n.call(c,m)}else t[p](m,0);e&&v.push(e)}function m(){if(!y){for(y=!0;v.length;){var t=v;v=[];for(var e=0;e=0;n--)"function"==typeof t[n]&&(t[n]=s(t[n],e+"_"+n));return t}function g(t){return!t||!1!==t.writable&&!("function"==typeof t.get&&void 0===t.set)}var m="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!("nw"in d)&&void 0!==d.process&&"[object process]"==={}.toString.call(d.process),_=!b&&!m&&!(!p||!h.HTMLElement),w=void 0!==d.process&&"[object process]"==={}.toString.call(d.process)&&!m&&!(!p||!h.HTMLElement),S={},k=function(t){if(t=t||d.event){var e=S[t.type];e||(e=S[t.type]=l("ON_PROPERTY"+t.type));var n,r=this||t.target||d,o=r[e];if(_&&r===h&&"error"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function E(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=l("on"+r+"patched");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var u=i.get,c=i.set,s=r.substr(2),f=S[s];f||(f=S[s]=l("ON_PROPERTY"+s)),i.set=function(t){var e=this;e||n!==d||(e=d),e&&(e[f]&&e.removeEventListener(s,k),c&&c.apply(e,v),"function"==typeof t?(e[f]=t,e.addEventListener(s,k,!1)):e[f]=null)},i.get=function(){var t=this;if(t||n!==d||(t=d),!t)return null;var e=t[f];if(e)return e;if(u){var o=u&&u.call(this);if(o)return i.set.call(this,o),"function"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function x(t,e,n){if(e)for(var r=0;r=0&&"function"==typeof r[i.cbIdx]?f(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function P(t,e){t[l("OriginalDelegate")]=e}var j=!1,D=!1;function C(){try{var t=h.navigator.userAgent;if(-1!==t.indexOf("MSIE ")||-1!==t.indexOf("Trident/"))return!0}catch(e){}return!1}function F(){if(j)return D;j=!0;try{var t=h.navigator.userAgent;-1===t.indexOf("MSIE ")&&-1===t.indexOf("Trident/")&&-1===t.indexOf("Edge/")||(D=!0)}catch(e){}return D} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */Zone.__load_patch("toString",(function(t){var e=Function.prototype.toString,n=l("OriginalDelegate"),r=l("Promise"),o=l("Error"),i=function(){if("function"==typeof this){var i=this[n];if(i)return"function"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var u=t[o];if(u)return e.call(u)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?"[object Promise]":a.call(this)}})); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var I=!1;if("undefined"!=typeof window)try{var R=Object.defineProperty({},"passive",{get:function(){I=!0}});window.addEventListener("test",R,R),window.removeEventListener("test",R,R)}catch(wt){I=!1}var N={useG:!0},L={},Z={},U=new RegExp("^"+c+"(\\w+)(true|false)$"),z=l("propagationStopped");function B(t,e){var n=(e?e(t):t)+"false",r=(e?e(t):t)+"true",o=c+n,i=c+r;L[t]={},L[t].false=o,L[t].true=i}function H(t,e,r){var o=r&&r.add||"addEventListener",i=r&&r.rm||"removeEventListener",a=r&&r.listeners||"eventListeners",u=r&&r.rmAll||"removeAllListeners",s=l(o),f="."+o+":",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;"object"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;if(o&&"object"==typeof o&&o.once){var a=t.originalDelegate?t.originalDelegate:t.callback;e[i].call(e,n.type,a,o)}}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[L[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(c,"onmessage");return s&&!1===s.configurable?(a=t.ObjectCreate(c),u=c,[r,o,"send","close"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var u=Zone.__symbol__("ON_PROPERTY"+i);c[u]=a[u]}}return c[e].apply(c,n)}}))):a=c,t.patchOnProperties(a,["close","error","message","open"],u),a};var a=e.WebSocket;for(var u in i)a[u]=i[u]}(t,e),Zone[t.symbol("patchEvents")]=!0}}Zone.__load_patch("util",(function(n,r,a){a.patchOnProperties=x,a.patchMethod=A,a.bindArguments=y,a.patchMacroTask=M;var u=r.__symbol__("BLACK_LISTED_EVENTS"),f=r.__symbol__("UNPATCHED_EVENTS");n[f]&&(n[u]=n[f]),n[u]&&(r[u]=r[f]=n[u]),a.patchEventPrototype=K,a.patchEventTarget=H,a.isIEOrEdge=F,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=o,a.ArraySlice=i,a.patchClass=O,a.wrapWithCurrentZone=s,a.filterProperties=ct,a.attachOriginToPatched=P,a._redefineProperty=Object.defineProperty,a.patchCallbacks=G,a.getGlobalObjects=function(){return{globalSources:Z,zoneSymbolEventNames:L,eventNames:ut,isBrowser:_,isMix:w,isNode:b,TRUE_STR:"true",FALSE_STR:"false",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:"addEventListener",REMOVE_EVENT_LISTENER_STR:"removeEventListener"}}})), +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function(t){var e,n=t.__Zone_symbol_prefix||"__zone_symbol__";t[(e="legacyPatch",n+e)]=function(){var e=t.Zone;e.__load_patch("defineProperty",(function(t,e,n){n._redefineProperty=pt,lt()})),e.__load_patch("registerElement",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&"registerElement"in t.document&&e.patchCallbacks(e,document,"Document","registerElement",["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"])}(t,n)})),e.__load_patch("EventTargetLegacy",(function(t,e,n){yt(t,n),gt(n,t)}))}}("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:{}); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var mt=l("zoneTask");function bt(t,e,n,r){var o=null,i=null;n+=r;var a={};function u(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||("number"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[mt]=null))}},n.handleId=o.apply(t,n.args),e}function c(t){return i(t.data.handleId)}o=A(t,e+=r,(function(n){return function(o,i){if("function"==typeof i[0]){var s={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?i[1]||0:void 0,args:i},l=f(e,i[0],s,u,c);if(!l)return l;var p=l.data.handleId;return"number"==typeof p?a[p]=l:p&&(p[mt]=l),p&&p.ref&&p.unref&&"function"==typeof p.ref&&"function"==typeof p.unref&&(l.ref=p.ref.bind(p),l.unref=p.unref.bind(p)),"number"==typeof p||p?p:l}return n.apply(t,i)}})),i=A(t,n,(function(e){return function(n,r){var o,i=r[0];"number"==typeof i?o=a[i]:(o=i&&i[mt])||(o=i),o&&"string"==typeof o.type?"notScheduled"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&("number"==typeof i?delete a[i]:i&&(i[mt]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function _t(t,e){if(!Zone[e.symbol("patchEventTarget")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,c=0;c0){var o=t.invoke;t.invoke=function(){for(var n=c[e.__symbol__("loadfalse")],i=0;i-1};function f(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function l(t){return"string"!=typeof t&&(t=String(t)),t}function p(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return o&&(e[Symbol.iterator]=function(){return e}),e}function h(t){this.map={},t instanceof h?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function d(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function v(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function y(t){var e=new FileReader,n=v(e);return e.readAsArrayBuffer(t),n}function g(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:i&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:a&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:r&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():u&&i&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=g(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):u&&(ArrayBuffer.prototype.isPrototypeOf(t)||s(t))?this._bodyArrayBuffer=g(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var t=d(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(y)}),this.text=function(){var t,e,n,r=d(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,n=v(e),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?r:n),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function w(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}})),e}function S(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new h(e.headers),this.url=e.url||"",this._initBody(t)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})},m.call(_.prototype),m.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},S.error=function(){var t=new S(null,{status:0,statusText:""});return t.type="error",t};var k=[301,302,303,307,308];S.redirect=function(t,e){if(-1===k.indexOf(e))throw new RangeError("Invalid status code");return new S(null,{status:e,headers:{location:t}})};var E=self.DOMException;try{new E}catch(T){(E=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),E.prototype.constructor=E}function x(t,e){return new Promise((function(n,r){var o=new _(t,e);if(o.signal&&o.signal.aborted)return r(new E("Aborted","AbortError"));var a=new XMLHttpRequest;function u(){a.abort()}a.onload=function(){var t,e,r={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||"",e=new h,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}})),e)};r.url="responseURL"in a?a.responseURL:r.headers.get("X-Request-URL");var o="response"in a?a.response:a.responseText;n(new S(o,r))},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request failed"))},a.onabort=function(){r(new E("Aborted","AbortError"))},a.open(o.method,o.url,!0),"include"===o.credentials?a.withCredentials=!0:"omit"===o.credentials&&(a.withCredentials=!1),"responseType"in a&&i&&(a.responseType="blob"),o.headers.forEach((function(t,e){a.setRequestHeader(e,t)})),o.signal&&(o.signal.addEventListener("abort",u),a.onreadystatechange=function(){4===a.readyState&&o.signal.removeEventListener("abort",u)}),a.send(void 0===o._bodyInit?null:o._bodyInit)}))}x.polyfill=!0,self.fetch||(self.fetch=x,self.Headers=h,self.Request=_,self.Response=S)},function(t,e,n){var r,o; +/** + * @file Web Cryptography API shim + * @author Artem S Vybornov + * @license MIT + */o="undefined"!=typeof self?self:this,void 0===(r=function(){return function(t){"use strict";if("function"!=typeof Promise)throw"Promise support required";var e=t.crypto||t.msCrypto;if(e){var n=e.subtle||e.webkitSubtle;if(n){var r=t.Crypto||e.constructor||Object,o=t.SubtleCrypto||n.constructor||Object,i=(t.CryptoKey||t.Key,t.navigator.userAgent.indexOf("Edge/")>-1),a=!!t.msCrypto&&!i,u=!e.subtle&&!!e.webkitSubtle;if(a||u){var c={KoZIhvcNAQEB:"1.2.840.113549.1.1.1"},s={"1.2.840.113549.1.1.1":"KoZIhvcNAQEB"};if(["generateKey","importKey","unwrapKey"].forEach((function(t){var r=n[t];n[t]=function(o,i,c){var s,f,l,d,_=[].slice.call(arguments);switch(t){case"generateKey":s=v(o),f=i,l=c;break;case"importKey":s=v(c),f=_[3],l=_[4],"jwk"===o&&((i=g(i)).alg||(i.alg=y(s)),i.key_ops||(i.key_ops="oct"!==i.kty?"d"in i?l.filter(x):l.filter(E):l.slice()),_[1]=m(i));break;case"unwrapKey":s=_[4],f=_[5],l=_[6],_[2]=c._key}if("generateKey"===t&&"HMAC"===s.name&&s.hash)return s.length=s.length||{"SHA-1":512,"SHA-256":512,"SHA-384":1024,"SHA-512":1024}[s.hash.name],n.importKey("raw",e.getRandomValues(new Uint8Array(s.length+7>>3)),s,f,l);if(u&&"generateKey"===t&&"RSASSA-PKCS1-v1_5"===s.name&&(!s.modulusLength||s.modulusLength>=2048))return(o=v(o)).name="RSAES-PKCS1-v1_5",delete o.hash,n.generateKey(o,!0,["encrypt","decrypt"]).then((function(t){return Promise.all([n.exportKey("jwk",t.publicKey),n.exportKey("jwk",t.privateKey)])})).then((function(t){return t[0].alg=t[1].alg=y(s),t[0].key_ops=l.filter(E),t[1].key_ops=l.filter(x),Promise.all([n.importKey("jwk",t[0],s,!0,t[0].key_ops),n.importKey("jwk",t[1],s,f,t[1].key_ops)])})).then((function(t){return{publicKey:t[0],privateKey:t[1]}}));if((u||a&&"SHA-1"===(s.hash||{}).name)&&"importKey"===t&&"jwk"===o&&"HMAC"===s.name&&"oct"===i.kty)return n.importKey("raw",h(p(i.k)),c,_[3],_[4]);if(u&&"importKey"===t&&("spki"===o||"pkcs8"===o))return n.importKey("jwk",b(i),c,_[3],_[4]);if(a&&"unwrapKey"===t)return n.decrypt(_[3],c,i).then((function(t){return n.importKey(o,t,_[4],_[5],_[6])}));try{d=r.apply(n,_)}catch(w){return Promise.reject(w)}return a&&(d=new Promise((function(t,e){d.onabort=d.onerror=function(t){e(t)},d.oncomplete=function(e){t(e.target.result)}}))),d=d.then((function(t){return"HMAC"===s.name&&(s.length||(s.length=8*t.algorithm.length)),0==s.name.search("RSA")&&(s.modulusLength||(s.modulusLength=(t.publicKey||t).algorithm.modulusLength),s.publicExponent||(s.publicExponent=(t.publicKey||t).algorithm.publicExponent)),t=t.publicKey&&t.privateKey?{publicKey:new k(t.publicKey,s,f,l.filter(E)),privateKey:new k(t.privateKey,s,f,l.filter(x))}:new k(t,s,f,l)}))}})),["exportKey","wrapKey"].forEach((function(t){var e=n[t];n[t]=function(r,o,i){var c,s=[].slice.call(arguments);switch(t){case"exportKey":s[1]=o._key;break;case"wrapKey":s[1]=o._key,s[2]=i._key}if((u||a&&"SHA-1"===(o.algorithm.hash||{}).name)&&"exportKey"===t&&"jwk"===r&&"HMAC"===o.algorithm.name&&(s[0]="raw"),!u||"exportKey"!==t||"spki"!==r&&"pkcs8"!==r||(s[0]="jwk"),a&&"wrapKey"===t)return n.exportKey(r,o).then((function(t){return"jwk"===r&&(t=h(unescape(encodeURIComponent(JSON.stringify(g(t)))))),n.encrypt(s[3],i,t)}));try{c=e.apply(n,s)}catch(f){return Promise.reject(f)}return a&&(c=new Promise((function(t,e){c.onabort=c.onerror=function(t){e(t)},c.oncomplete=function(e){t(e.target.result)}}))),"exportKey"===t&&"jwk"===r&&(c=c.then((function(t){return(u||a&&"SHA-1"===(o.algorithm.hash||{}).name)&&"HMAC"===o.algorithm.name?{kty:"oct",alg:y(o.algorithm),key_ops:o.usages.slice(),ext:!0,k:l(d(t))}:((t=g(t)).alg||(t.alg=y(o.algorithm)),t.key_ops||(t.key_ops="public"===o.type?o.usages.filter(E):"private"===o.type?o.usages.filter(x):o.usages.slice()),t)}))),!u||"exportKey"!==t||"spki"!==r&&"pkcs8"!==r||(c=c.then((function(t){return t=_(g(t))}))),c}})),["encrypt","decrypt","sign","verify"].forEach((function(t){var e=n[t];n[t]=function(r,o,i,u){if(a&&(!i.byteLength||u&&!u.byteLength))throw new Error("Empy input is not allowed");var c,s=[].slice.call(arguments),f=v(r);if(a&&"decrypt"===t&&"AES-GCM"===f.name){var l=r.tagLength>>3;s[2]=(i.buffer||i).slice(0,i.byteLength-l),r.tag=(i.buffer||i).slice(i.byteLength-l)}s[1]=o._key;try{c=e.apply(n,s)}catch(p){return Promise.reject(p)}return a&&(c=new Promise((function(e,n){c.onabort=c.onerror=function(t){n(t)},c.oncomplete=function(n){if(n=n.target.result,"encrypt"===t&&n instanceof AesGcmEncryptResult){var r=n.ciphertext,o=n.tag;(n=new Uint8Array(r.byteLength+o.byteLength)).set(new Uint8Array(r),0),n.set(new Uint8Array(o),r.byteLength),n=n.buffer}e(n)}}))),c}})),a){var f=n.digest;n.digest=function(t,e){if(!e.byteLength)throw new Error("Empy input is not allowed");var r;try{r=f.call(n,t,e)}catch(o){return Promise.reject(o)}return r=new Promise((function(t,e){r.onabort=r.onerror=function(t){e(t)},r.oncomplete=function(e){t(e.target.result)}}))},t.crypto=Object.create(e,{getRandomValues:{value:function(t){return e.getRandomValues(t)}},subtle:{value:n}}),t.CryptoKey=k}u&&(e.subtle=n,t.Crypto=r,t.SubtleCrypto=o,t.CryptoKey=k)}}}function l(t){return btoa(t).replace(/\=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")}function p(t){return t=(t+="===").slice(0,-t.length%4),atob(t.replace(/-/g,"+").replace(/_/g,"/"))}function h(t){for(var e=new Uint8Array(t.length),n=0;n2&&(n=!0,e.shift());var r={ext:!0};switch(e[0][0]){case"1.2.840.113549.1.1.1":var o=["n","e","d","p","q","dp","dq","qi"],i=w(e[1]);n&&i.shift();for(var a=0;a2&&(r=!0,i.unshift(new Uint8Array([0]))),n[0][0]="1.2.840.113549.1.1.1",e=i;break;default:throw new TypeError("Unsupported key type")}return n.push(new Uint8Array(S(e)).buffer),r?n.unshift(new Uint8Array([0])):n[1]={tag:3,value:n[1]},new Uint8Array(S(n)).buffer}function w(t,e){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),e||(e={pos:0,end:t.length}),e.end-e.pos<2||e.end>t.length)throw new RangeError("Malformed DER");var n,r=t[e.pos++],o=t[e.pos++];if(o>=128){if(o&=127,e.end-e.pos=128){var u=r;for(r=4,e.splice(o,0,u>>24&255,u>>16&255,u>>8&255,255&u);r>1&&!(u>>24);)u<<=8,r--;r<4&&e.splice(o,4-r),r|=128}return e.splice(o-2,2,n,r),e}function k(t,e,n,r){Object.defineProperties(this,{_key:{value:t},type:{value:t.type,enumerable:!0},extractable:{value:void 0===n?t.extractable:n,enumerable:!0},algorithm:{value:void 0===e?t.algorithm:e,enumerable:!0},usages:{value:void 0===r?t.usages:r,enumerable:!0}})}function E(t){return"verify"===t||"encrypt"===t||"wrapKey"===t}function x(t){return"sign"===t||"decrypt"===t||"unwrapKey"===t}}(o)}.apply(e,[]))||(t.exports=r)},function(t,e,n){t.exports=function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";n(84);var r=function(t){return t&&t.__esModule?t:{default:t}}(n(41)),o=function(){r.default.addPickerToOtherInputs(),r.default.supportsDateInput()||r.default.addPickerToDateInputs()};o(),document.addEventListener("DOMContentLoaded",(function(){o()})),document.querySelector("body").addEventListener("mousedown",(function(){o()}))},function(t,e,n){t.exports=!n(11)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)("wks"),o=n(15),i=n(2).Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u="prototype",c=function(t,e,n){var s,f,l,p=t&c.F,h=t&c.G,d=t&c.S,v=t&c.P,y=t&c.B,g=t&c.W,m=h?o:o[e]||(o[e]={}),b=m[u],_=h?r:d?r[e]:(r[e]||{})[u];for(s in h&&(n=e),n)(f=!p&&_&&void 0!==_[s])&&s in m||(l=f?_[s]:n[s],m[s]=h&&"function"!=typeof _[s]?n[s]:y&&f?i(l,r):g&&_[s]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((m.virtual||(m.virtual={}))[s]=l,t&c.R&&b&&!b[s]&&a(b,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)("keys"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(2),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var r=function(t){return t&&t.__esModule?t:{default:t}}(n(45));e.default=function(){function t(t,e){for(var n=0;ndocument.F=Object<\/script>"),t.close(),s=t.F;r--;)delete s[c][i[r]];return s()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[c]=r(t),n=new u,u[c]=null,n[a]=t):n=s(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,c=0;u>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(38),o=n(17).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)n!=a&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){t.exports=n(6)},function(t,e,n){"use strict";function r(t,e){for(t=String(t),e=e||2;t.length0?"-":"+")+r(100*Math.floor(Math.abs(S)/60)+Math.abs(S)%60,4),S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10],W:k,N:E};return s.replace(t,(function(t){return t in x?x[t]:t.slice(1,t.length-1)}))}}();c.masks={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},c.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]},e.default=c},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=r(n(44)),i=r(n(28)),a=r(n(29)),u=r(n(43)),c=r(n(42)),s=r(n(40)),f=function(){function t(e){var n=this;(0,i.default)(this,t),this.element=e,this.element.setAttribute("data-has-picker",""),this.locale=this.element.getAttribute("lang")||document.body.getAttribute("lang")||"en",this.format=this.element.getAttribute("date-format")||document.body.getAttribute("date-format")||this.element.getAttribute("data-date-format")||document.body.getAttribute("data-date-format")||"yyyy-mm-dd",this.localeText=this.getLocaleText(),(0,o.default)(this.element,{valueAsDate:{get:function(){if(!n.element.value)return null;var t=n.format||"yyyy-mm-dd",e=n.element.value.match(/(\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,(function(t){o[t]=r++})),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0,s.default)(t,n.format)}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t)}}});var r=function(t){var e=n.element;e.locale=n.localeText,u.default.attachTo(e)};this.element.addEventListener("focus",r),this.element.addEventListener("mouseup",r),this.element.addEventListener("keydown",(function(t){var e=new Date;switch(t.keyCode){case 9:case 27:u.default.hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,u.default.pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,u.default.pingInput())}u.default.sync()})),this.element.addEventListener("keyup",(function(t){u.default.sync()}))}return(0,a.default)(t,[{key:"getLocaleText",value:function(){var t=this.locale.toLowerCase();for(var e in c.default){var n=e.split("_");if(n.map((function(t){return t.toLowerCase()})),~n.indexOf(t)||~n.indexOf(t.substr(0,2)))return c.default[e]}}}],[{key:"supportsDateInput",value:function(){var t=document.createElement("input");t.setAttribute("type","date");var e="not-a-date";return t.setAttribute("value",e),!(t.value===e)}},{key:"addPickerToDateInputs",value:function(){var e=document.querySelectorAll('input[type="date"]:not([data-has-picker])'),n=e.length;if(!n)return!1;for(var r=0;r"],n=0,r=this.locale.days.length;n'+this.locale.days[n]+"");this.daysHead.innerHTML=e.join(""),t.createRangeSelect(this.month,0,11,this.locale.months)}},{key:"refreshDaysMatrix",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],c=0;c":"")+"\n \n "),c+1<=r)u.push("");else{var s=c+1-r,f=a&&i.getDate()===s;u.push("\n "+s+"\n ")}this.days.innerHTML=u.join("")}},{key:"pingInput",value:function(){var t=void 0,e=void 0;try{t=new Event("input"),e=new Event("change")}catch(n){(t=document.createEvent("KeyboardEvent")).initEvent("input",!0,!1),(e=document.createEvent("KeyboardEvent")).initEvent("change",!0,!1)}this.input.dispatchEvent(t),this.input.dispatchEvent(e)}}],[{key:"createRangeSelect",value:function(t,e,n,r){t.innerHTML="";for(var o=e;o<=n;++o){var i=document.createElement("option");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o}return t}},{key:"absoluteDate",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new a,e.default=window.thePicker},function(t,e,n){t.exports={default:n(49),__esModule:!0}},function(t,e,n){t.exports={default:n(50),__esModule:!0}},function(t,e,n){t.exports={default:n(51),__esModule:!0}},function(t,e,n){t.exports={default:n(52),__esModule:!0}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=r(n(47)),i=r(n(46)),a="function"==typeof i.default&&"symbol"==typeof o.default?function(t){return typeof t}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default?"symbol":typeof t};e.default="function"==typeof i.default&&"symbol"===a(o.default)?function(t){return void 0===t?"undefined":a(t)}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default?"symbol":void 0===t?"undefined":a(t)}},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)}},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol},function(t,e,n){n(76),n(80),t.exports=n(27).f("iterator")},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,c=r(e),s=o(c.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),c=i.f,s=0;u.length>s;)c.call(t,a=u[s++])&&e.push(a);return e}},function(t,e,n){t.exports=n(2).document&&document.documentElement},function(t,e,n){var r=n(30);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,c=0;u>c;)if(i[n=a[c++]]===e)return n}},function(t,e,n){var r=n(15)("meta"),o=n(12),i=n(3),a=n(4).f,u=0,c=Object.isExtensible||function(){return!0},s=!n(11)((function(){return c(Object.preventExtensions({}))})),f=function(t){a(t,r,{value:{i:"O"+ ++u,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";f(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;f(t)}return t[r].w},onFreeze:function(t){return s&&l.NEED&&c(t)&&!i(t,r)&&f(t),t}}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),c=n(32),s=Object.getOwnPropertyDescriptor;e.f=n(1)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(71),i=n(22)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperties:n(35)})},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperty:n(4).f})},function(t,e){},function(t,e,n){"use strict";var r=n(68)(!0);n(33)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},function(t,e,n){"use strict";var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),c=n(64).KEY,s=n(11),f=n(23),l=n(21),p=n(15),h=n(7),d=n(27),v=n(26),y=n(63),g=n(57),m=n(60),b=n(9),_=n(5),w=n(25),S=n(14),k=n(34),E=n(66),x=n(65),T=n(4),O=n(13),A=x.f,M=T.f,P=E.f,j=r.Symbol,D=r.JSON,C=D&&D.stringify,F="prototype",I=h("_hidden"),R=h("toPrimitive"),N={}.propertyIsEnumerable,L=f("symbol-registry"),Z=f("symbols"),U=f("op-symbols"),z=Object[F],B="function"==typeof j,H=r.QObject,W=!H||!H[F]||!H[F].findChild,K=i&&s((function(){return 7!=k(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=A(z,e);r&&delete z[e],M(t,e,n),r&&t!==z&&M(z,e,r)}:M,G=function(t){var e=Z[t]=k(j[F]);return e._k=t,e},J=B&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},V=function(t,e,n){return t===z&&V(U,e,n),b(t),e=w(e,!0),b(n),o(Z,e)?(n.enumerable?(o(t,I)&&t[I][e]&&(t[I][e]=!1),n=k(n,{enumerable:S(0,!1)})):(o(t,I)||M(t,I,S(1,{})),t[I][e]=!0),K(t,e,n)):M(t,e,n)},q=function(t,e){b(t);for(var n,r=g(e=_(e)),o=0,i=r.length;i>o;)V(t,n=r[o++],e[n]);return t},Y=function(t){var e=N.call(this,t=w(t,!0));return!(this===z&&o(Z,t)&&!o(U,t))&&(!(e||!o(this,t)||!o(Z,t)||o(this,I)&&this[I][t])||e)},X=function(t,e){if(t=_(t),e=w(e,!0),t!==z||!o(Z,e)||o(U,e)){var n=A(t,e);return!n||!o(Z,e)||o(t,I)&&t[I][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=P(_(t)),r=[],i=0;n.length>i;)o(Z,e=n[i++])||e==I||e==c||r.push(e);return r},Q=function(t){for(var e,n=t===z,r=P(n?U:_(t)),i=[],a=0;r.length>a;)!o(Z,e=r[a++])||n&&!o(z,e)||i.push(Z[e]);return i};B||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(U,n),o(this,I)&&o(this[I],t)&&(this[I][t]=!1),K(this,t,S(1,n))};return i&&W&&K(z,t,{configurable:!0,set:e}),G(t)})[F],"toString",(function(){return this._k})),x.f=X,T.f=V,n(36).f=E.f=$,n(20).f=Y,n(37).f=Q,i&&!n(19)&&u(z,"propertyIsEnumerable",Y,!0),d.f=function(t){return G(h(t))}),a(a.G+a.W+a.F*!B,{Symbol:j});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)h(tt[et++]);for(tt=O(h.store),et=0;tt.length>et;)v(tt[et++]);a(a.S+a.F*!B,"Symbol",{for:function(t){return o(L,t+="")?L[t]:L[t]=j(t)},keyFor:function(t){if(J(t))return y(L,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!B,"Object",{create:function(t,e){return void 0===e?k(t):q(k(t),e)},defineProperty:V,defineProperties:q,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Q}),D&&a(a.S+a.F*(!B||s((function(){var t=j();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))}))),"JSON",{stringify:function(t){if(void 0!==t&&!J(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return"function"==typeof(e=r[1])&&(n=e),!n&&m(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!J(e))return e}),r[1]=e,C.apply(D,r)}}}),j[F][R]||n(6)(j[F],R,j[F].valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){n(26)("asyncIterator")},function(t,e,n){n(26)("observable")},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)("toStringTag"),u=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],c=0;c<5;c++){var s=u[c],f=r[s],l=f&&f.prototype;l&&!l[a]&&o(l,a,s),i[s]=i.Array}},function(t,e,n){(t.exports=n(82)()).push([t.id,"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}",""])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&b.splice(e,1)}function u(t){var e=document.createElement("style");return e.type="text/css",i(t,e),e}function c(t){var e=document.createElement("link");return e.rel="stylesheet",i(t,e),e}function s(t,e){var n,r,o;if(e.singleton){var i=m++;n=g||(g=u(e)),r=f.bind(null,n,i,!1),o=f.bind(null,n,i,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),r=p.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=u(e),r=l.bind(null,n),o=function(){a(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}function f(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=_(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function l(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute("media",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e){var n=e.css,r=e.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var h={},d=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}},v=d((function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())})),y=d((function(){return document.head||document.getElementsByTagName("head")[0]})),g=null,m=0,b=[];t.exports=function(t,e){void 0===(e=e||{}).singleton&&(e.singleton=v()),void 0===e.insertAt&&(e.insertAt="bottom");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var core = module.exports = { version: '2.6.2' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = false;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","module.exports = {};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","exports.f = {}.propertyIsEnumerable;\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('./_set-species')('Array');\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\n\n// eslint-disable-next-line no-empty\nvar SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })();\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? 0xffffffff : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","/* tslint:disable */\nimport 'core-js/es6';\nimport 'core-js/es7/reflect';\nrequire('zone.js/dist/zone');\n\n// IE11 fix, ref: https://github.com/angular/angular/issues/24769\nif (!Element.prototype.matches && (Element.prototype as any).msMatchesSelector) {\n Element.prototype.matches = (Element.prototype as any).msMatchesSelector;\n}\n\nif (process.env.ENV === 'production') {\n // Production\n} else {\n // Development and test\n Error['stackTraceLimit'] = Infinity;\n require('zone.js/dist/long-stack-trace-zone');\n}\n\n// Other polyfills\nrequire('whatwg-fetch');\nrequire('webcrypto-shim');\nrequire('date-input-polyfill');\n/* tslint:enable */\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\nrequire('../modules/es6.function.bind');\nrequire('../modules/es6.function.name');\nrequire('../modules/es6.function.has-instance');\nrequire('../modules/es6.parse-int');\nrequire('../modules/es6.parse-float');\nrequire('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nrequire('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nrequire('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.date.now');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-string');\nrequire('../modules/es6.date.to-primitive');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nrequire('../modules/es6.regexp.constructor');\nrequire('../modules/es6.regexp.exec');\nrequire('../modules/es6.regexp.to-string');\nrequire('../modules/es6.regexp.flags');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nrequire('../modules/es6.promise');\nrequire('../modules/es6.map');\nrequire('../modules/es6.set');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es6.typed.array-buffer');\nrequire('../modules/es6.typed.data-view');\nrequire('../modules/es6.typed.int8-array');\nrequire('../modules/es6.typed.uint8-array');\nrequire('../modules/es6.typed.uint8-clamped-array');\nrequire('../modules/es6.typed.int16-array');\nrequire('../modules/es6.typed.uint16-array');\nrequire('../modules/es6.typed.int32-array');\nrequire('../modules/es6.typed.uint32-array');\nrequire('../modules/es6.typed.float32-array');\nrequire('../modules/es6.typed.float64-array');\nrequire('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core');\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","/**\n* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes\n* (c) 2010-2020 Google LLC. https://angular.io/\n* License: MIT\n*/\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}((function () {\n 'use strict';\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var Zone$1 = (function (global) {\n var performance = global['performance'];\n function mark(name) { performance && performance['mark'] && performance['mark'](name); }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n var symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n var checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () { return _currentZoneFrame.zone; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () { return _currentTask; },\n enumerable: true,\n configurable: true\n });\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () { return this._parent; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () { return this._name; },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this.name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n return Zone;\n }());\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) { return delegate.scheduleTask(target, task); },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS =\n zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt = zoneSpec &&\n (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone = zoneSpec &&\n (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ?\n this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () { return this._zone; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () { return this._state; },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () { this._transitionTo(notScheduled, scheduling); };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ? ' or \\'' + fromState2 + '\\'' : '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n patchMacroTask: function () { return noop; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: function () { return noop; },\n isIEOrEdge: function () { return false; },\n getGlobalObjects: function () { return undefined; },\n ObjectDefineProperty: function () { return noop; },\n ObjectGetOwnPropertyDescriptor: function () { return undefined; },\n ObjectCreate: function () { return undefined; },\n ArraySlice: function () { return []; },\n patchClass: function () { return noop; },\n wrapWithCurrentZone: function () { return noop; },\n filterProperties: function () { return []; },\n attachOriginToPatched: function () { return noop; },\n _redefineProperty: function () { return noop; },\n patchCallbacks: function () { return noop; }\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () { throw uncaughtPromiseError; });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) { return value && value.then; }\n function forwardResolution(value) { return value; }\n function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () { resolvePromise(promise, false, err); })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () { resolvePromise(promise, false, err); })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n var uncaughtPromiseError = value;\n if (!isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // and the rejected value is an Error object,\n // use the value instead of wrapping it.\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var noop = function () { };\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () { return ZONE_AWARE_PROMISE_TO_STRING; };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) { resolve(value); }\n function onReject(error) { reject(error); }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) { return ZoneAwarePromise.allWithCallback(values); };\n ZoneAwarePromise.allSettled = function (values) {\n var P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: function (value) { return ({ status: 'fulfilled', value: value }); },\n errorCallback: function (err) { return ({ status: 'rejected', reason: err }); }\n });\n };\n ZoneAwarePromise.allWithCallback = function (values, callback) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_2 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n try {\n value.then(function (value) {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, function (err) {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n _loop_2(value);\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.toStringTag, {\n get: function () { return 'Promise'; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.species, {\n get: function () { return ZoneAwarePromise; },\n enumerable: true,\n configurable: true\n });\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) { originalThen.call(_this, resolve, reject); });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global[api.symbol('fetch')] = fetch_1;\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n /// \n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n var ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n var ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n var ObjectCreate = Object.create;\n /** Array.prototype.slice */\n var ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n var ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n var REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n var ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n var TRUE_STR = 'true';\n /** false string const */\n var FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n var ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n var zoneSymbol = Zone.__symbol__;\n var isWindowExists = typeof window !== 'undefined';\n var internalWindow = isWindowExists ? window : undefined;\n var _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\n var REMOVE_ATTRIBUTE = 'removeAttribute';\n var NULL_ON_PROP_VALUE = [null];\n function bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_3 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_3(i);\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n var isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\n var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n var zoneSymbolEventNames = {};\n var wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n var originalInstanceKey = zoneSymbol('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () { return this[originalInstanceKey][prop]; }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n var symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach(function (symbol) {\n var desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () { return src[symbol]; },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n }\n var shouldCopySymbolProperties = false;\n function patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () { return patchDelegate_1(this, arguments); };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n }\n var isDetectedIEOrEdge = false;\n var ieOrEdge = false;\n function isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n var OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n };\n var zoneSymbolEventNames$1 = {};\n var globalSources = {};\n var EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n var IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\n function prepareEventNames(eventName, eventNameToString) {\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n }\n function patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')];\n var passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n var options = buildEventListenerOptions(arguments[2], passive);\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var once = options && typeof options === 'object' ? options.once : false;\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames$1[eventName];\n }\n var symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var options = arguments[2];\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n var onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n if (!eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n var symbolEventName = zoneSymbolEventNames$1[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames$1[eventName];\n }\n var captureFalseTasks = target[symbolEventName[FALSE_STR]];\n var captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n }\n function patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCallbacks(api, target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = targetName + \".\" + method + \"::\" + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n ];\n var documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n ];\n var windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplayconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n ];\n var htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n ];\n var mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\n var ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n ];\n var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\n var formEventNames = ['autocomplete', 'autocompleteerror'];\n var detailEventNames = ['toggle'];\n var frameEventNames = ['load'];\n var frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\n var marqueeEventNames = ['bounce', 'finish', 'start'];\n var XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n ];\n var IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\n var websocketEventNames = ['close', 'error', 'open', 'message'];\n var workerEventNames = ['error', 'message'];\n var eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow_1 = window;\n var ignoreErrorProperties = isIE ? [{ target: internalWindow_1, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow_1, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow_1));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow_1['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow_1['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow_1['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow_1['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = function () { return ({ globalSources: globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames: eventNames, isBrowser: isBrowser, isMix: isMix, isNode: isNode, TRUE_STR: TRUE_STR,\n FALSE_STR: FALSE_STR, ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR }); };\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\n var zoneSymbol$1;\n var _defineProperty;\n var _getOwnPropertyDescriptor;\n var _create;\n var unconfigurablesKey;\n function propertyPatch() {\n zoneSymbol$1 = Zone.__symbol__;\n _defineProperty = Object[zoneSymbol$1('defineProperty')] = Object.defineProperty;\n _getOwnPropertyDescriptor = Object[zoneSymbol$1('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\n _create = Object.create;\n unconfigurablesKey = zoneSymbol$1('unconfigurables');\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) { Object.defineProperty(obj, prop, props[prop]); });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n }\n function _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n }\n function isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n }\n function rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n }\n function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetLegacyPatch(_global, api) {\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, globalSources = _a.globalSources, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = api.isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n var pointerEventsMap = {\n 'MSPointerCancel': 'pointercancel',\n 'MSPointerDown': 'pointerdown',\n 'MSPointerEnter': 'pointerenter',\n 'MSPointerHover': 'pointerhover',\n 'MSPointerLeave': 'pointerleave',\n 'MSPointerMove': 'pointermove',\n 'MSPointerOut': 'pointerout',\n 'MSPointerOver': 'pointerover',\n 'MSPointerUp': 'pointerup'\n };\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555_ARRAY.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n api.patchEventTarget(_global, apiTypes, {\n vh: checkIEAndCrossContext,\n transferEventName: function (eventName) {\n var pointerEventName = pointerEventsMap[eventName];\n return pointerEventName || eventName;\n }\n });\n Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET];\n return true;\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // we have to patch the instance since the proto is non-configurable\n function apply(api, _global) {\n var _a = api.getGlobalObjects(), ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR;\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n api.patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = api.ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = api.ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function propertyDescriptorLegacyPatch(api, _global) {\n var _a = api.getGlobalObjects(), isNode = _a.isNode, isMix = _a.isMix;\n if (isNode && !isMix) {\n return;\n }\n if (!canPatchViaPropertyDescriptor(api, _global)) {\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents(api);\n api.patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n Zone[api.symbol('patchEvents')] = true;\n }\n }\n function canPatchViaPropertyDescriptor(api, _global) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((isBrowser || isMix) &&\n !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n // try to use onclick to detect whether we can patch via propertyDescriptor\n // because XMLHttpRequest is not available in service worker\n if (desc) {\n api.ObjectDefineProperty(Element.prototype, 'onclick', { enumerable: true, configurable: true, get: function () { return true; } });\n var div = document.createElement('div');\n var result = !!div.onclick;\n api.ObjectDefineProperty(Element.prototype, 'onclick', desc);\n return result;\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { enumerable: true, configurable: true, get: function () { return true; } });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake');\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () { return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1]; },\n set: function (value) { this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value; }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n }\n // Whenever any eventListener fires, we check the eventListener target and all parents\n // for `onwhatever` properties and replace them with zone-bound functions\n // - Chrome (for now)\n function patchViaCapturingAllTheEvents(api) {\n var eventNames = api.getGlobalObjects().eventNames;\n var unboundKey = api.symbol('unbound');\n var _loop_4 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = api.wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_4(i);\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function registerElementPatch(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n (function (_global) {\n var symbolPrefix = _global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n _global[__symbol__('legacyPatch')] = function () {\n var Zone = _global['Zone'];\n Zone.__load_patch('defineProperty', function (global, Zone, api) {\n api._redefineProperty = _redefineProperty;\n propertyPatch();\n });\n Zone.__load_patch('registerElement', function (global, Zone, api) {\n registerElementPatch(global, api);\n });\n Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) {\n eventTargetLegacyPatch(global, api);\n propertyDescriptorLegacyPatch(api, global);\n });\n };\n })(typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {});\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var taskSymbol = zoneSymbol('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) { return clearNative(task.data.handleId); }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCustomElements(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n var EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('legacy', function (global) {\n var legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_2 = blockingMethods[i];\n patchMethod(global, name_2, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', function (global, Zone, api) {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', function (global, Zone, api) {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) { return target[XHR_TASK]; }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n if (loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n });\n Zone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n})));\n","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","/**\n * @file Web Cryptography API shim\n * @author Artem S Vybornov \n * @license MIT\n */\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function () {\n return factory(global);\n });\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports\n module.exports = factory(global);\n } else {\n factory(global);\n }\n}(typeof self !== 'undefined' ? self : this, function (global) {\n 'use strict';\n\n if ( typeof Promise !== 'function' )\n throw \"Promise support required\";\n\n var _crypto = global.crypto || global.msCrypto;\n if ( !_crypto ) return;\n\n var _subtle = _crypto.subtle || _crypto.webkitSubtle;\n if ( !_subtle ) return;\n\n var _Crypto = global.Crypto || _crypto.constructor || Object,\n _SubtleCrypto = global.SubtleCrypto || _subtle.constructor || Object,\n _CryptoKey = global.CryptoKey || global.Key || Object;\n\n var isEdge = global.navigator.userAgent.indexOf('Edge/') > -1;\n var isIE = !!global.msCrypto && !isEdge;\n var isWebkit = !_crypto.subtle && !!_crypto.webkitSubtle;\n if ( !isIE && !isWebkit ) return;\n\n function s2a ( s ) {\n return btoa(s).replace(/\\=+$/, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n\n function a2s ( s ) {\n s += '===', s = s.slice( 0, -s.length % 4 );\n return atob( s.replace(/-/g, '+').replace(/_/g, '/') );\n }\n\n function s2b ( s ) {\n var b = new Uint8Array(s.length);\n for ( var i = 0; i < s.length; i++ ) b[i] = s.charCodeAt(i);\n return b;\n }\n\n function b2s ( b ) {\n if ( b instanceof ArrayBuffer ) b = new Uint8Array(b);\n return String.fromCharCode.apply( String, b );\n }\n\n function alg ( a ) {\n var r = { 'name': (a.name || a || '').toUpperCase().replace('V','v') };\n switch ( r.name ) {\n case 'SHA-1':\n case 'SHA-256':\n case 'SHA-384':\n case 'SHA-512':\n break;\n case 'AES-CBC':\n case 'AES-GCM':\n case 'AES-KW':\n if ( a.length ) r['length'] = a.length;\n break;\n case 'HMAC':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.length ) r['length'] = a.length;\n break;\n case 'RSAES-PKCS1-v1_5':\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n case 'RSASSA-PKCS1-v1_5':\n case 'RSA-OAEP':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n default:\n throw new SyntaxError(\"Bad algorithm name\");\n }\n return r;\n };\n\n function jwkAlg ( a ) {\n return {\n 'HMAC': {\n 'SHA-1': 'HS1',\n 'SHA-256': 'HS256',\n 'SHA-384': 'HS384',\n 'SHA-512': 'HS512',\n },\n 'RSASSA-PKCS1-v1_5': {\n 'SHA-1': 'RS1',\n 'SHA-256': 'RS256',\n 'SHA-384': 'RS384',\n 'SHA-512': 'RS512',\n },\n 'RSAES-PKCS1-v1_5': {\n '': 'RSA1_5',\n },\n 'RSA-OAEP': {\n 'SHA-1': 'RSA-OAEP',\n 'SHA-256': 'RSA-OAEP-256',\n },\n 'AES-KW': {\n '128': 'A128KW',\n '192': 'A192KW',\n '256': 'A256KW',\n },\n 'AES-GCM': {\n '128': 'A128GCM',\n '192': 'A192GCM',\n '256': 'A256GCM',\n },\n 'AES-CBC': {\n '128': 'A128CBC',\n '192': 'A192CBC',\n '256': 'A256CBC',\n },\n }[a.name][ ( a.hash || {} ).name || a.length || '' ];\n }\n\n function b2jwk ( k ) {\n if ( k instanceof ArrayBuffer || k instanceof Uint8Array ) k = JSON.parse( decodeURIComponent( escape( b2s(k) ) ) );\n var jwk = { 'kty': k.kty, 'alg': k.alg, 'ext': k.ext || k.extractable };\n switch ( jwk.kty ) {\n case 'oct':\n jwk.k = k.k;\n case 'RSA':\n [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi', 'oth' ].forEach( function ( x ) { if ( x in k ) jwk[x] = k[x] } );\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2b ( k ) {\n var jwk = b2jwk(k);\n if ( isIE ) jwk['extractable'] = jwk.ext, delete jwk.ext;\n return s2b( unescape( encodeURIComponent( JSON.stringify(jwk) ) ) ).buffer;\n }\n\n function pkcs2jwk ( k ) {\n var info = b2der(k), prv = false;\n if ( info.length > 2 ) prv = true, info.shift(); // remove version from PKCS#8 PrivateKeyInfo structure\n var jwk = { 'ext': true };\n switch ( info[0][0] ) {\n case '1.2.840.113549.1.1.1':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = b2der( info[1] );\n if ( prv ) rsaKey.shift(); // remove version from PKCS#1 RSAPrivateKey structure\n for ( var i = 0; i < rsaKey.length; i++ ) {\n if ( !rsaKey[i][0] ) rsaKey[i] = rsaKey[i].subarray(1);\n jwk[ rsaComp[i] ] = s2a( b2s( rsaKey[i] ) );\n }\n jwk['kty'] = 'RSA';\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2pkcs ( k ) {\n var key, info = [ [ '', null ] ], prv = false;\n switch ( k.kty ) {\n case 'RSA':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = [];\n for ( var i = 0; i < rsaComp.length; i++ ) {\n if ( !( rsaComp[i] in k ) ) break;\n var b = rsaKey[i] = s2b( a2s( k[ rsaComp[i] ] ) );\n if ( b[0] & 0x80 ) rsaKey[i] = new Uint8Array(b.length + 1), rsaKey[i].set( b, 1 );\n }\n if ( rsaKey.length > 2 ) prv = true, rsaKey.unshift( new Uint8Array([0]) ); // add version to PKCS#1 RSAPrivateKey structure\n info[0][0] = '1.2.840.113549.1.1.1';\n key = rsaKey;\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n info.push( new Uint8Array( der2b(key) ).buffer );\n if ( !prv ) info[1] = { 'tag': 0x03, 'value': info[1] };\n else info.unshift( new Uint8Array([0]) ); // add version to PKCS#8 PrivateKeyInfo structure\n return new Uint8Array( der2b(info) ).buffer;\n }\n\n var oid2str = { 'KoZIhvcNAQEB': '1.2.840.113549.1.1.1' },\n str2oid = { '1.2.840.113549.1.1.1': 'KoZIhvcNAQEB' };\n\n function b2der ( buf, ctx ) {\n if ( buf instanceof ArrayBuffer ) buf = new Uint8Array(buf);\n if ( !ctx ) ctx = { pos: 0, end: buf.length };\n\n if ( ctx.end - ctx.pos < 2 || ctx.end > buf.length ) throw new RangeError(\"Malformed DER\");\n\n var tag = buf[ctx.pos++],\n len = buf[ctx.pos++];\n\n if ( len >= 0x80 ) {\n len &= 0x7f;\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n for ( var xlen = 0; len--; ) xlen <<= 8, xlen |= buf[ctx.pos++];\n len = xlen;\n }\n\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n\n var rv;\n\n switch ( tag ) {\n case 0x02: // Universal Primitive INTEGER\n rv = buf.subarray( ctx.pos, ctx.pos += len );\n break;\n case 0x03: // Universal Primitive BIT STRING\n if ( buf[ctx.pos++] ) throw new Error( \"Unsupported bit string\" );\n len--;\n case 0x04: // Universal Primitive OCTET STRING\n rv = new Uint8Array( buf.subarray( ctx.pos, ctx.pos += len ) ).buffer;\n break;\n case 0x05: // Universal Primitive NULL\n rv = null;\n break;\n case 0x06: // Universal Primitive OBJECT IDENTIFIER\n var oid = btoa( b2s( buf.subarray( ctx.pos, ctx.pos += len ) ) );\n if ( !( oid in oid2str ) ) throw new Error( \"Unsupported OBJECT ID \" + oid );\n rv = oid2str[oid];\n break;\n case 0x30: // Universal Constructed SEQUENCE\n rv = [];\n for ( var end = ctx.pos + len; ctx.pos < end; ) rv.push( b2der( buf, ctx ) );\n break;\n default:\n throw new Error( \"Unsupported DER tag 0x\" + tag.toString(16) );\n }\n\n return rv;\n }\n\n function der2b ( val, buf ) {\n if ( !buf ) buf = [];\n\n var tag = 0, len = 0,\n pos = buf.length + 2;\n\n buf.push( 0, 0 ); // placeholder\n\n if ( val instanceof Uint8Array ) { // Universal Primitive INTEGER\n tag = 0x02, len = val.length;\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val instanceof ArrayBuffer ) { // Universal Primitive OCTET STRING\n tag = 0x04, len = val.byteLength, val = new Uint8Array(val);\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val === null ) { // Universal Primitive NULL\n tag = 0x05, len = 0;\n }\n else if ( typeof val === 'string' && val in str2oid ) { // Universal Primitive OBJECT IDENTIFIER\n var oid = s2b( atob( str2oid[val] ) );\n tag = 0x06, len = oid.length;\n for ( var i = 0; i < len; i++ ) buf.push( oid[i] );\n }\n else if ( val instanceof Array ) { // Universal Constructed SEQUENCE\n for ( var i = 0; i < val.length; i++ ) der2b( val[i], buf );\n tag = 0x30, len = buf.length - pos;\n }\n else if ( typeof val === 'object' && val.tag === 0x03 && val.value instanceof ArrayBuffer ) { // Tag hint\n val = new Uint8Array(val.value), tag = 0x03, len = val.byteLength;\n buf.push(0); for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n len++;\n }\n else {\n throw new Error( \"Unsupported DER value \" + val );\n }\n\n if ( len >= 0x80 ) {\n var xlen = len, len = 4;\n buf.splice( pos, 0, (xlen >> 24) & 0xff, (xlen >> 16) & 0xff, (xlen >> 8) & 0xff, xlen & 0xff );\n while ( len > 1 && !(xlen >> 24) ) xlen <<= 8, len--;\n if ( len < 4 ) buf.splice( pos, 4 - len );\n len |= 0x80;\n }\n\n buf.splice( pos - 2, 2, tag, len );\n\n return buf;\n }\n\n function CryptoKey ( key, alg, ext, use ) {\n Object.defineProperties( this, {\n _key: {\n value: key\n },\n type: {\n value: key.type,\n enumerable: true,\n },\n extractable: {\n value: (ext === undefined) ? key.extractable : ext,\n enumerable: true,\n },\n algorithm: {\n value: (alg === undefined) ? key.algorithm : alg,\n enumerable: true,\n },\n usages: {\n value: (use === undefined) ? key.usages : use,\n enumerable: true,\n },\n });\n }\n\n function isPubKeyUse ( u ) {\n return u === 'verify' || u === 'encrypt' || u === 'wrapKey';\n }\n\n function isPrvKeyUse ( u ) {\n return u === 'sign' || u === 'decrypt' || u === 'unwrapKey';\n }\n\n [ 'generateKey', 'importKey', 'unwrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments),\n ka, kx, ku;\n\n switch ( m ) {\n case 'generateKey':\n ka = alg(a), kx = b, ku = c;\n break;\n case 'importKey':\n ka = alg(c), kx = args[3], ku = args[4];\n if ( a === 'jwk' ) {\n b = b2jwk(b);\n if ( !b.alg ) b.alg = jwkAlg(ka);\n if ( !b.key_ops ) b.key_ops = ( b.kty !== 'oct' ) ? ( 'd' in b ) ? ku.filter(isPrvKeyUse) : ku.filter(isPubKeyUse) : ku.slice();\n args[1] = jwk2b(b);\n }\n break;\n case 'unwrapKey':\n ka = args[4], kx = args[5], ku = args[6];\n args[2] = c._key;\n break;\n }\n\n if ( m === 'generateKey' && ka.name === 'HMAC' && ka.hash ) {\n ka.length = ka.length || { 'SHA-1': 512, 'SHA-256': 512, 'SHA-384': 1024, 'SHA-512': 1024 }[ka.hash.name];\n return _subtle.importKey( 'raw', _crypto.getRandomValues( new Uint8Array( (ka.length+7)>>3 ) ), ka, kx, ku );\n }\n\n if ( isWebkit && m === 'generateKey' && ka.name === 'RSASSA-PKCS1-v1_5' && ( !ka.modulusLength || ka.modulusLength >= 2048 ) ) {\n a = alg(a), a.name = 'RSAES-PKCS1-v1_5', delete a.hash;\n return _subtle.generateKey( a, true, [ 'encrypt', 'decrypt' ] )\n .then( function ( k ) {\n return Promise.all([\n _subtle.exportKey( 'jwk', k.publicKey ),\n _subtle.exportKey( 'jwk', k.privateKey ),\n ]);\n })\n .then( function ( keys ) {\n keys[0].alg = keys[1].alg = jwkAlg(ka);\n keys[0].key_ops = ku.filter(isPubKeyUse), keys[1].key_ops = ku.filter(isPrvKeyUse);\n return Promise.all([\n _subtle.importKey( 'jwk', keys[0], ka, true, keys[0].key_ops ),\n _subtle.importKey( 'jwk', keys[1], ka, kx, keys[1].key_ops ),\n ]);\n })\n .then( function ( keys ) {\n return {\n publicKey: keys[0],\n privateKey: keys[1],\n };\n });\n }\n\n if ( ( isWebkit || ( isIE && ( ka.hash || {} ).name === 'SHA-1' ) )\n && m === 'importKey' && a === 'jwk' && ka.name === 'HMAC' && b.kty === 'oct' ) {\n return _subtle.importKey( 'raw', s2b( a2s(b.k) ), c, args[3], args[4] );\n }\n\n if ( isWebkit && m === 'importKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n return _subtle.importKey( 'jwk', pkcs2jwk(b), c, args[3], args[4] );\n }\n\n if ( isIE && m === 'unwrapKey' ) {\n return _subtle.decrypt( args[3], c, b )\n .then( function ( k ) {\n return _subtle.importKey( a, k, args[4], args[5], args[6] );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n op = op.then( function ( k ) {\n if ( ka.name === 'HMAC' ) {\n if ( !ka.length ) ka.length = 8 * k.algorithm.length;\n }\n if ( ka.name.search('RSA') == 0 ) {\n if ( !ka.modulusLength ) ka.modulusLength = (k.publicKey || k).algorithm.modulusLength;\n if ( !ka.publicExponent ) ka.publicExponent = (k.publicKey || k).algorithm.publicExponent;\n }\n if ( k.publicKey && k.privateKey ) {\n k = {\n publicKey: new CryptoKey( k.publicKey, ka, kx, ku.filter(isPubKeyUse) ),\n privateKey: new CryptoKey( k.privateKey, ka, kx, ku.filter(isPrvKeyUse) ),\n };\n }\n else {\n k = new CryptoKey( k, ka, kx, ku );\n }\n return k;\n });\n\n return op;\n }\n });\n\n [ 'exportKey', 'wrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments);\n\n switch ( m ) {\n case 'exportKey':\n args[1] = b._key;\n break;\n case 'wrapKey':\n args[1] = b._key, args[2] = c._key;\n break;\n }\n\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && m === 'exportKey' && a === 'jwk' && b.algorithm.name === 'HMAC' ) {\n args[0] = 'raw';\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n args[0] = 'jwk';\n }\n\n if ( isIE && m === 'wrapKey' ) {\n return _subtle.exportKey( a, b )\n .then( function ( k ) {\n if ( a === 'jwk' ) k = s2b( unescape( encodeURIComponent( JSON.stringify( b2jwk(k) ) ) ) );\n return _subtle.encrypt( args[3], c, k );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n if ( m === 'exportKey' && a === 'jwk' ) {\n op = op.then( function ( k ) {\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && b.algorithm.name === 'HMAC') {\n return { 'kty': 'oct', 'alg': jwkAlg(b.algorithm), 'key_ops': b.usages.slice(), 'ext': true, 'k': s2a( b2s(k) ) };\n }\n k = b2jwk(k);\n if ( !k.alg ) k['alg'] = jwkAlg(b.algorithm);\n if ( !k.key_ops ) k['key_ops'] = ( b.type === 'public' ) ? b.usages.filter(isPubKeyUse) : ( b.type === 'private' ) ? b.usages.filter(isPrvKeyUse) : b.usages.slice();\n return k;\n });\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n op = op.then( function ( k ) {\n k = jwk2pkcs( b2jwk(k) );\n return k;\n });\n }\n\n return op;\n }\n });\n\n [ 'encrypt', 'decrypt', 'sign', 'verify' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c, d ) {\n if ( isIE && ( !c.byteLength || ( d && !d.byteLength ) ) )\n throw new Error(\"Empy input is not allowed\");\n\n var args = [].slice.call(arguments),\n ka = alg(a);\n\n if ( isIE && m === 'decrypt' && ka.name === 'AES-GCM' ) {\n var tl = a.tagLength >> 3;\n args[2] = (c.buffer || c).slice( 0, c.byteLength - tl ),\n a.tag = (c.buffer || c).slice( c.byteLength - tl );\n }\n\n args[1] = b._key;\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) {\n rej(e);\n };\n\n op.oncomplete = function ( r ) {\n var r = r.target.result;\n\n if ( m === 'encrypt' && r instanceof AesGcmEncryptResult ) {\n var c = r.ciphertext, t = r.tag;\n r = new Uint8Array( c.byteLength + t.byteLength );\n r.set( new Uint8Array(c), 0 );\n r.set( new Uint8Array(t), c.byteLength );\n r = r.buffer;\n }\n\n res(r);\n };\n });\n }\n\n return op;\n }\n });\n\n if ( isIE ) {\n var _digest = _subtle.digest;\n\n _subtle['digest'] = function ( a, b ) {\n if ( !b.byteLength )\n throw new Error(\"Empy input is not allowed\");\n\n var op;\n try {\n op = _digest.call( _subtle, a, b );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n\n return op;\n };\n\n global.crypto = Object.create( _crypto, {\n getRandomValues: { value: function ( a ) { return _crypto.getRandomValues(a) } },\n subtle: { value: _subtle },\n });\n\n global.CryptoKey = CryptoKey;\n }\n\n if ( isWebkit ) {\n _crypto.subtle = _subtle;\n\n global.Crypto = _Crypto;\n global.SubtleCrypto = _SubtleCrypto;\n global.CryptoKey = CryptoKey;\n }\n}));\n","!function(t,e){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var n=e();for(var r in n)(\"object\"==typeof exports?exports:t)[r]=n[r]}}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}n(84);var o=n(41),i=r(o),a=function(){i[\"default\"].addPickerToOtherInputs(),i[\"default\"].supportsDateInput()||i[\"default\"].addPickerToDateInputs()};a(),document.addEventListener(\"DOMContentLoaded\",function(){a()}),document.querySelector(\"body\").addEventListener(\"mousedown\",function(){a()})},function(t,e,n){t.exports=!n(11)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)(\"wks\"),o=n(15),i=n(2).Symbol,a=\"function\"==typeof i,u=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)(\"Symbol.\"+t))};u.store=r},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u=\"prototype\",s=function(t,e,n){var c,l,f,d=t&s.F,p=t&s.G,h=t&s.S,y=t&s.P,m=t&s.B,v=t&s.W,b=p?o:o[e]||(o[e]={}),g=b[u],x=p?r:h?r[e]:(r[e]||{})[u];p&&(n=e);for(c in n)l=!d&&x&&void 0!==x[c],l&&c in b||(f=l?x[c]:n[c],b[c]=p&&\"function\"!=typeof x[c]?n[c]:m&&l?i(f,r):v&&x[c]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(f):y&&\"function\"==typeof f?i(Function.call,f):f,y&&((b.virtual||(b.virtual={}))[c]=f,t&s.R&&g&&!g[c]&&a(g,c,f)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)(\"keys\"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(2),o=\"__core-js_shared__\",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});\"_\"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e){\"use strict\";e.__esModule=!0,e[\"default\"]=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}e.__esModule=!0;var o=n(45),i=r(o);e[\"default\"]=function(){function t(t,e){for(var n=0;n\";for(e.style.display=\"none\",n(58).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(o+\"script\"+a+\"document.F=Object\"+o+\"/script\"+a),t.close(),c=t.F;r--;)delete c[s][i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[s]=r(t),n=new u,u[s]=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,s=0;u>s;)r.f(t,n=a[s++],e[n]);return t}},function(t,e,n){var r=n(38),o=n(17).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)(\"IE_PROTO\");t.exports=function(t,e){var n,u=o(t),s=0,c=[];for(n in u)n!=a&&r(u,n)&&c.push(n);for(;e.length>s;)r(u,n=e[s++])&&(~i(c,n)||c.push(n));return c}},function(t,e,n){t.exports=n(6)},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}function o(t,e){for(t=String(t),e=e||2;t.length0?\"-\":\"+\")+o(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:[\"th\",\"st\",\"nd\",\"rd\"][h%10>3?0:(h%100-h%10!=10)*h%10],W:S,N:O};return s.replace(t,function(t){return t in D?D[t]:t.slice(1,t.length-1)})}}();l.masks={\"default\":\"ddd mmm dd yyyy HH:MM:ss\",shortDate:\"m/d/yy\",mediumDate:\"mmm d, yyyy\",longDate:\"mmmm d, yyyy\",fullDate:\"dddd, mmmm d, yyyy\",shortTime:\"h:MM TT\",mediumTime:\"h:MM:ss TT\",longTime:\"h:MM:ss TT Z\",isoDate:\"yyyy-mm-dd\",isoTime:\"HH:MM:ss\",isoDateTime:\"yyyy-mm-dd'T'HH:MM:sso\",isoUtcDateTime:\"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",expiresHeaderFormat:\"ddd, dd mmm yyyy HH:MM:ss Z\"},l.i18n={dayNames:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},e[\"default\"]=l},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(44),i=r(o),a=n(28),u=r(a),s=n(29),c=r(s),l=n(43),f=r(l),d=n(42),p=r(d),h=n(40),y=r(h),m=function(){function t(e){var n=this;(0,u[\"default\"])(this,t),this.element=e,this.element.setAttribute(\"data-has-picker\",\"\"),this.locale=this.element.getAttribute(\"lang\")||document.body.getAttribute(\"lang\")||\"en\",this.format=this.element.getAttribute(\"date-format\")||document.body.getAttribute(\"date-format\")||this.element.getAttribute(\"data-date-format\")||document.body.getAttribute(\"data-date-format\")||\"yyyy-mm-dd\",this.localeText=this.getLocaleText(),(0,i[\"default\"])(this.element,{valueAsDate:{get:function(){if(!n.element.value)return null;var t=n.format||\"yyyy-mm-dd\",e=n.element.value.match(/(\\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,function(t){o[t]=r++}),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0,y[\"default\"])(t,n.format)}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t)}}});var r=function(t){var e=n.element;e.locale=n.localeText,f[\"default\"].attachTo(e)};this.element.addEventListener(\"focus\",r),this.element.addEventListener(\"mouseup\",r),this.element.addEventListener(\"keydown\",function(t){var e=new Date;switch(t.keyCode){case 9:case 27:f[\"default\"].hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,f[\"default\"].pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,f[\"default\"].pingInput())}f[\"default\"].sync()}),this.element.addEventListener(\"keyup\",function(t){f[\"default\"].sync()})}return(0,c[\"default\"])(t,[{key:\"getLocaleText\",value:function(){var t=this.locale.toLowerCase();for(var e in p[\"default\"]){var n=e.split(\"_\");if(n.map(function(t){return t.toLowerCase()}),~n.indexOf(t)||~n.indexOf(t.substr(0,2)))return p[\"default\"][e]}}}],[{key:\"supportsDateInput\",value:function(){var t=document.createElement(\"input\");t.setAttribute(\"type\",\"date\");var e=\"not-a-date\";return t.setAttribute(\"value\",e),!(t.value===e)}},{key:\"addPickerToDateInputs\",value:function(){var e=document.querySelectorAll('input[type=\"date\"]:not([data-has-picker])'),n=e.length;if(!n)return!1;for(var r=0;r\"],n=0,r=this.locale.days.length;n'+this.locale.days[n]+\"\");this.daysHead.innerHTML=e.join(\"\"),t.createRangeSelect(this.month,0,11,this.locale.months)}},{key:\"refreshDaysMatrix\",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],s=0;s\":\"\")+\"\\n \\n \"),s+1<=r)u.push(\"\");else{var c=s+1-r,l=a&&i.getDate()===c;u.push(\"\\n \"+c+\"\\n \")}this.days.innerHTML=u.join(\"\")}},{key:\"pingInput\",value:function(){var t=void 0,e=void 0;try{t=new Event(\"input\"),e=new Event(\"change\")}catch(n){t=document.createEvent(\"KeyboardEvent\"),t.initEvent(\"input\",!0,!1),e=document.createEvent(\"KeyboardEvent\"),e.initEvent(\"change\",!0,!1)}this.input.dispatchEvent(t),this.input.dispatchEvent(e)}}],[{key:\"createRangeSelect\",value:function(t,e,n,r){t.innerHTML=\"\";for(var o=e;o<=n;++o){var i=document.createElement(\"option\");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o}return t}},{key:\"absoluteDate\",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new s,e[\"default\"]=window.thePicker},function(t,e,n){t.exports={\"default\":n(49),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(50),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(51),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(52),__esModule:!0}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}e.__esModule=!0;var o=n(47),i=r(o),a=n(46),u=r(a),s=\"function\"==typeof u[\"default\"]&&\"symbol\"==typeof i[\"default\"]?function(t){return typeof t}:function(t){return t&&\"function\"==typeof u[\"default\"]&&t.constructor===u[\"default\"]?\"symbol\":typeof t};e[\"default\"]=\"function\"==typeof u[\"default\"]&&\"symbol\"===s(i[\"default\"])?function(t){return\"undefined\"==typeof t?\"undefined\":s(t)}:function(t){return t&&\"function\"==typeof u[\"default\"]&&t.constructor===u[\"default\"]?\"symbol\":\"undefined\"==typeof t?\"undefined\":s(t)}},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)}},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol},function(t,e,n){n(76),n(80),t.exports=n(27).f(\"iterator\")},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,s=r(e),c=o(s.length),l=i(a,c);if(t&&n!=n){for(;c>l;)if(u=s[l++],u!=u)return!0}else for(;c>l;l++)if((t||l in s)&&s[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),s=i.f,c=0;u.length>c;)s.call(t,a=u[c++])&&e.push(a);return e}},function(t,e,n){t.exports=n(2).document&&document.documentElement},function(t,e,n){var r=n(30);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==r(t)?t.split(\"\"):Object(t)}},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},function(t,e,n){\"use strict\";var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)(\"iterator\"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+\" Iterator\")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,s=0;u>s;)if(i[n=a[s++]]===e)return n}},function(t,e,n){var r=n(15)(\"meta\"),o=n(12),i=n(3),a=n(4).f,u=0,s=Object.isExtensible||function(){return!0},c=!n(11)(function(){return s(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:\"O\"+ ++u,w:{}}})},f=function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,r)){if(!s(t))return\"F\";if(!e)return\"E\";l(t)}return t[r].i},d=function(t,e){if(!i(t,r)){if(!s(t))return!0;if(!e)return!1;l(t)}return t[r].w},p=function(t){return c&&h.NEED&&s(t)&&!i(t,r)&&l(t),t},h=t.exports={KEY:r,NEED:!1,fastKey:f,getWeak:d,onFreeze:p}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),s=n(32),c=Object.getOwnPropertyDescriptor;e.f=n(1)?c:function(t,e){if(t=i(t),e=a(e,!0),s)try{return c(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return o(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?u(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(71),i=n(22)(\"IE_PROTO\"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),s=r(n),c=u.length;return s<0||s>=c?t?\"\":void 0:(i=u.charCodeAt(s),i<55296||i>56319||s+1===c||(a=u.charCodeAt(s+1))<56320||a>57343?t?u.charAt(s):i:t?u.slice(s,s+2):(i-55296<<10)+(a-56320)+65536)}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){\"use strict\";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,\"Array\",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):\"keys\"==e?o(0,n):\"values\"==e?o(0,t[n]):o(0,[n,t[n]])},\"values\"),i.Arguments=i.Array,r(\"keys\"),r(\"values\"),r(\"entries\")},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),\"Object\",{defineProperties:n(35)})},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),\"Object\",{defineProperty:n(4).f})},function(t,e){},function(t,e,n){\"use strict\";var r=n(68)(!0);n(33)(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){\"use strict\";var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),s=n(64).KEY,c=n(11),l=n(23),f=n(21),d=n(15),p=n(7),h=n(27),y=n(26),m=n(63),v=n(57),b=n(60),g=n(9),x=n(5),M=n(25),w=n(14),S=n(34),O=n(66),D=n(65),T=n(4),_=n(13),A=D.f,k=T.f,E=O.f,j=r.Symbol,C=r.JSON,N=C&&C.stringify,L=\"prototype\",P=p(\"_hidden\"),F=p(\"toPrimitive\"),J={}.propertyIsEnumerable,H=l(\"symbol-registry\"),I=l(\"symbols\"),Y=l(\"op-symbols\"),R=Object[L],z=\"function\"==typeof j,U=r.QObject,B=!U||!U[L]||!U[L].findChild,W=i&&c(function(){return 7!=S(k({},\"a\",{get:function(){return k(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var r=A(R,e);r&&delete R[e],k(t,e,n),r&&t!==R&&k(R,e,r)}:k,Z=function(t){var e=I[t]=S(j[L]);return e._k=t,e},G=z&&\"symbol\"==typeof j.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof j},K=function(t,e,n){return t===R&&K(Y,e,n),g(t),e=M(e,!0),g(n),o(I,e)?(n.enumerable?(o(t,P)&&t[P][e]&&(t[P][e]=!1),n=S(n,{enumerable:w(0,!1)})):(o(t,P)||k(t,P,w(1,{})),t[P][e]=!0),W(t,e,n)):k(t,e,n)},V=function(t,e){g(t);for(var n,r=v(e=x(e)),o=0,i=r.length;i>o;)K(t,n=r[o++],e[n]);return t},q=function(t,e){return void 0===e?S(t):V(S(t),e)},Q=function(t){var e=J.call(this,t=M(t,!0));return!(this===R&&o(I,t)&&!o(Y,t))&&(!(e||!o(this,t)||!o(I,t)||o(this,P)&&this[P][t])||e)},X=function(t,e){if(t=x(t),e=M(e,!0),t!==R||!o(I,e)||o(Y,e)){var n=A(t,e);return!n||!o(I,e)||o(t,P)&&t[P][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=E(x(t)),r=[],i=0;n.length>i;)o(I,e=n[i++])||e==P||e==s||r.push(e);return r},tt=function(t){for(var e,n=t===R,r=E(n?Y:x(t)),i=[],a=0;r.length>a;)!o(I,e=r[a++])||n&&!o(R,e)||i.push(I[e]);return i};z||(j=function(){if(this instanceof j)throw TypeError(\"Symbol is not a constructor!\");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===R&&e.call(Y,n),o(this,P)&&o(this[P],t)&&(this[P][t]=!1),W(this,t,w(1,n))};return i&&B&&W(R,t,{configurable:!0,set:e}),Z(t)},u(j[L],\"toString\",function(){return this._k}),D.f=X,T.f=K,n(36).f=O.f=$,n(20).f=Q,n(37).f=tt,i&&!n(19)&&u(R,\"propertyIsEnumerable\",Q,!0),h.f=function(t){return Z(p(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var et=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),nt=0;et.length>nt;)p(et[nt++]);for(var et=_(p.store),nt=0;et.length>nt;)y(et[nt++]);a(a.S+a.F*!z,\"Symbol\",{\"for\":function(t){return o(H,t+=\"\")?H[t]:H[t]=j(t)},keyFor:function(t){if(G(t))return m(H,t);throw TypeError(t+\" is not a symbol!\")},useSetter:function(){B=!0},useSimple:function(){B=!1}}),a(a.S+a.F*!z,\"Object\",{create:q,defineProperty:K,defineProperties:V,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:tt}),C&&a(a.S+a.F*(!z||c(function(){var t=j();return\"[null]\"!=N([t])||\"{}\"!=N({a:t})||\"{}\"!=N(Object(t))})),\"JSON\",{stringify:function(t){if(void 0!==t&&!G(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return e=r[1],\"function\"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,N.apply(C,r)}}}),j[L][F]||n(6)(j[L],F,j[L].valueOf),f(j,\"Symbol\"),f(Math,\"Math\",!0),f(r.JSON,\"JSON\",!0)},function(t,e,n){n(26)(\"asyncIterator\")},function(t,e,n){n(26)(\"observable\")},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)(\"toStringTag\"),u=[\"NodeList\",\"DOMTokenList\",\"MediaList\",\"StyleSheetList\",\"CSSRuleList\"],s=0;s<5;s++){var c=u[s],l=r[c],f=l&&l.prototype;f&&!f[a]&&o(f,a,c),i[c]=i.Array}},function(t,e,n){e=t.exports=n(82)(),e.push([t.id,\"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}\",\"\"]);\n},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&g.splice(e,1)}function u(t){var e=document.createElement(\"style\");return e.type=\"text/css\",i(t,e),e}function s(t){var e=document.createElement(\"link\");return e.rel=\"stylesheet\",i(t,e),e}function c(t,e){var n,r,o;if(e.singleton){var i=b++;n=v||(v=u(e)),r=l.bind(null,n,i,!1),o=l.bind(null,n,i,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=s(e),r=d.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=u(e),r=f.bind(null,n),o=function(){a(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}function l(t,e,n,r){var o=n?\"\":r.css;if(t.styleSheet)t.styleSheet.cssText=x(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function f(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute(\"media\",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function d(t,e){var n=e.css,r=e.sourceMap;r&&(n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\");var o=new Blob([n],{type:\"text/css\"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var p={},h=function(t){var e;return function(){return\"undefined\"==typeof e&&(e=t.apply(this,arguments)),e}},y=h(function(){return/msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase())}),m=h(function(){return document.head||document.getElementsByTagName(\"head\")[0]}),v=null,b=0,g=[];t.exports=function(t,e){e=e||{},\"undefined\"==typeof e.singleton&&(e.singleton=y()),\"undefined\"==typeof e.insertAt&&(e.insertAt=\"bottom\");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a0?o(r(t),9007199254740991):0}},,,function(t,e,n){var r=n(16),o=n(220),i=n(76),a=Object.defineProperty;e.f=n(35)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){t.exports=!n(22)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},,,,,,,,function(t,e,n){var r=n(77);t.exports=function(t){return Object(r(t))}},,,,,function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},,function(t,e,n){var r=n(2),o=n(22),i=n(77),a=/"/g,u=function(t,e,n,r){var o=String(i(t)),u="<"+e;return""!==n&&(u+=" "+n+'="'+String(r).replace(a,""")+'"'),u+">"+o+""};t.exports=function(t,e){var n={};n[t]=e(u),r(r.P+r.F*o(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(21),o=n(56),i=n(51),a=n(90)("src"),u=Function.toString,c=(""+u).split("toString");n(55).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(s&&(i(n,a)||o(n,a,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:u?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||u.call(this)})},function(t,e,n){var r=n(116),o=n(77);t.exports=function(t){return r(o(t))}},,function(t,e){var n=t.exports={version:"2.6.2"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(34),o=n(86);t.exports=n(35)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},,function(t,e,n){var r=n(51),o=n(43),i=n(175)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},,function(t,e,n){var r=n(124),o=n(86),i=n(53),a=n(76),u=n(51),c=n(220),s=Object.getOwnPropertyDescriptor;e.f=n(35)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){"use strict";var r=n(22);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},,function(t,e,n){var r=n(48);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},,,,,function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(2),o=n(55),i=n(22);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(t,e,n){var r=n(63),o=n(116),i=n(43),a=n(31),u=n(234);t.exports=function(t,e){var n=1==t,c=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l,h=e||u;return function(e,u,d){for(var v,y,g=i(e),m=o(g),b=r(u,d,3),_=a(m.length),w=0,S=n?h(e,_):c?h(e,0):void 0;_>w;w++)if((p||w in m)&&(y=b(v=m[w],w,g),t))if(n)S[w]=y;else if(y)switch(t){case 3:return!0;case 5:return v;case 6:return w;case 2:S.push(v)}else if(f)return!1;return l?-1:s||f?f:S}}},,,,,function(t,e,n){var r=n(23);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";if(n(35)){var r=n(87),o=n(21),i=n(22),a=n(2),u=n(139),c=n(190),s=n(63),f=n(98),l=n(86),p=n(56),h=n(100),d=n(64),v=n(31),y=n(245),g=n(92),m=n(76),b=n(51),_=n(95),w=n(23),S=n(43),k=n(186),E=n(84),x=n(58),T=n(93).f,O=n(134),A=n(90),P=n(29),M=n(71),j=n(152),D=n(126),C=n(206),F=n(108),I=n(135),R=n(97),N=n(187),L=n(236),Z=n(34),U=n(60),z=Z.f,B=U.f,H=o.RangeError,W=o.TypeError,K=o.Uint8Array,G=Array.prototype,J=c.ArrayBuffer,V=c.DataView,q=M(0),Y=M(2),X=M(3),$=M(4),Q=M(5),tt=M(6),et=j(!0),nt=j(!1),rt=C.values,ot=C.keys,it=C.entries,at=G.lastIndexOf,ut=G.reduce,ct=G.reduceRight,st=G.join,ft=G.sort,lt=G.slice,pt=G.toString,ht=G.toLocaleString,dt=P("iterator"),vt=P("toStringTag"),yt=A("typed_constructor"),gt=A("def_constructor"),mt=u.CONSTR,bt=u.TYPED,_t=u.VIEW,wt=M(1,function(t,e){return Tt(D(t,t[gt]),e)}),St=i(function(){return 1===new K(new Uint16Array([1]).buffer)[0]}),kt=!!K&&!!K.prototype.set&&i(function(){new K(1).set({})}),Et=function(t,e){var n=d(t);if(n<0||n%e)throw H("Wrong offset!");return n},xt=function(t){if(w(t)&&bt in t)return t;throw W(t+" is not a typed array!")},Tt=function(t,e){if(!(w(t)&&yt in t))throw W("It is not a typed array constructor!");return new t(e)},Ot=function(t,e){return At(D(t,t[gt]),e)},At=function(t,e){for(var n=0,r=e.length,o=Tt(t,r);r>n;)o[n]=e[n++];return o},Pt=function(t,e,n){z(t,e,{get:function(){return this._d[n]}})},Mt=function(t){var e,n,r,o,i,a,u=S(t),c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,p=O(u);if(null!=p&&!k(p)){for(a=p.call(u),r=[],e=0;!(i=a.next()).done;e++)r.push(i.value);u=r}for(l&&c>2&&(f=s(f,arguments[2],2)),e=0,n=v(u.length),o=Tt(this,n);n>e;e++)o[e]=l?f(u[e],e):u[e];return o},jt=function(){for(var t=0,e=arguments.length,n=Tt(this,e);e>t;)n[t]=arguments[t++];return n},Dt=!!K&&i(function(){ht.call(new K(1))}),Ct=function(){return ht.apply(Dt?lt.call(xt(this)):xt(this),arguments)},Ft={copyWithin:function(t,e){return L.call(xt(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return $(xt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return N.apply(xt(this),arguments)},filter:function(t){return Ot(this,Y(xt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Q(xt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(xt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){q(xt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return nt(xt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(xt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return st.apply(xt(this),arguments)},lastIndexOf:function(t){return at.apply(xt(this),arguments)},map:function(t){return wt(xt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ut.apply(xt(this),arguments)},reduceRight:function(t){return ct.apply(xt(this),arguments)},reverse:function(){for(var t,e=xt(this).length,n=Math.floor(e/2),r=0;r1?arguments[1]:void 0)},sort:function(t){return ft.call(xt(this),t)},subarray:function(t,e){var n=xt(this),r=n.length,o=g(t,r);return new(D(n,n[gt]))(n.buffer,n.byteOffset+o*n.BYTES_PER_ELEMENT,v((void 0===e?r:g(e,r))-o))}},It=function(t,e){return Ot(this,lt.call(xt(this),t,e))},Rt=function(t){xt(this);var e=Et(arguments[1],1),n=this.length,r=S(t),o=v(r.length),i=0;if(o+e>n)throw H("Wrong length!");for(;i255?255:255&r),o.v[h](n*e+o.o,r,St)}(this,n,t)},enumerable:!0})};b?(d=n(function(t,n,r,o){f(t,d,s,"_d");var i,a,u,c,l=0,h=0;if(w(n)){if(!(n instanceof J||"ArrayBuffer"==(c=_(n))||"SharedArrayBuffer"==c))return bt in n?At(d,n):Mt.call(d,n);i=n,h=Et(r,e);var g=n.byteLength;if(void 0===o){if(g%e)throw H("Wrong length!");if((a=g-h)<0)throw H("Wrong length!")}else if((a=v(o)*e)+h>g)throw H("Wrong length!");u=a/e}else u=y(n),i=new J(a=u*e);for(p(t,"_d",{b:i,o:h,l:a,e:u,v:new V(i)});ldocument.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=r(t),n=new u,u.prototype=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},,function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=!1},,,function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){var r=n(223),o=n(176);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(64),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(223),o=n(176).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},,function(t,e,n){var r=n(69),o=n(29)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(29)("unscopables"),o=Array.prototype;null==o[r]&&n(56)(o,r,{}),t.exports=function(t){o[r][t]=!0}},function(t,e,n){"use strict";var r=n(21),o=n(34),i=n(35),a=n(29)("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(63),o=n(233),i=n(186),a=n(16),u=n(31),c=n(134),s={},f={};(e=t.exports=function(t,e,n,l,p){var h,d,v,y,g=p?function(){return t}:c(t),m=r(n,l,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(h=u(t.length);h>b;b++)if((y=e?m(a(d=t[b])[0],d[1]):m(t[b]))===s||y===f)return y}else for(v=g.call(t);!(d=v.next()).done;)if((y=o(v,m,d.value,e))===s||y===f)return y}).BREAK=s,e.RETURN=f},function(t,e,n){var r=n(52);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},,,,,,,function(t,e,n){var r=n(34).f,o=n(51),i=n(29)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e){t.exports={}},function(t,e,n){var r=n(23);t.exports=function(t,e){if(!r(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}t.exports=n},,,,,,function(t,e,n){var r=n(69);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(2),o=n(77),i=n(22),a=n(179),u="["+a+"]",c=RegExp("^"+u+u+"*"),s=RegExp(u+u+"*$"),f=function(t,e,n){var o={},u=i(function(){return!!a[t]()||"​…"!="​…"[t]()}),c=o[t]=u?e(l):a[t];n&&(o[n]=c),r(r.P+r.F*u,"String",o)},l=f.trim=function(t,e){return t=String(o(t)),1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(s,"")),t};t.exports=f},,,,,,,function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){"use strict";var r=n(16);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(16),o=n(48),i=n(29)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},,,,,,function(t,e,n){var r=n(55),o=n(21),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(87)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(95),o=n(29)("iterator"),i=n(108);t.exports=n(55).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},function(t,e,n){var r=n(29)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(a){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],u=i[r]();u.next=function(){return{done:n=!0}},i[r]=function(){return u},t(i)}catch(a){}return n}},function(t,e,n){"use strict";var r=n(95),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";n(237);var r=n(52),o=n(56),i=n(22),a=n(77),u=n(29),c=n(188),s=u("species"),f=!i(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),l=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=u(t),h=!i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),d=h?!i(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[s]=function(){return n}),n[p](""),!e}):void 0;if(!h||!d||"replace"===t&&!f||"split"===t&&!l){var v=/./[p],y=n(a,p,""[t],function(t,e,n,r,o){return e.exec===c?h&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),g=y[0],m=y[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==e?function(t,e){return m.call(t,this,e)}:function(t){return m.call(t,this)})}}},function(t,e,n){"use strict";var r=n(21),o=n(2),i=n(52),a=n(100),u=n(83),c=n(99),s=n(98),f=n(23),l=n(22),p=n(135),h=n(107),d=n(180);t.exports=function(t,e,n,v,y,g){var m=r[t],b=m,_=y?"set":"add",w=b&&b.prototype,S={},k=function(t){var e=w[t];i(w,t,"delete"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof b&&(g||w.forEach&&!l(function(){(new b).entries().next()}))){var E=new b,x=E[_](g?{}:-0,1)!=E,T=l(function(){E.has(1)}),O=p(function(t){new b(t)}),A=!g&&l(function(){for(var t=new b,e=5;e--;)t[_](e,e);return!t.has(-0)});O||((b=e(function(e,n){s(e,b,t);var r=d(new m,e,b);return null!=n&&c(n,y,r[_],r),r})).prototype=w,w.constructor=b),(T||A)&&(k("delete"),k("has"),y&&k("get")),(A||x)&&k(_),g&&w.clear&&delete w.clear}else b=v.getConstructor(e,t,y,_),a(b.prototype,n),u.NEED=!0;return h(b,t),S[t]=b,o(o.G+o.W+o.F*(b!=m),S),g||v.setStrong(b,t,y),b}},function(t,e,n){for(var r,o=n(21),i=n(56),a=n(90),u=a("typed_array"),c=a("view"),s=!(!o.ArrayBuffer||!o.DataView),f=s,l=0,p="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(r=o[p[l++]])?(i(r.prototype,u,!0),i(r.prototype,c,!0)):f=!1;t.exports={ABV:s,CONSTR:f,TYPED:u,VIEW:c}},,,,,,,,,,,,,function(t,e,n){var r=n(53),o=n(31),i=n(92);t.exports=function(t){return function(e,n,a){var u,c=r(e),s=o(c.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(69);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(64),o=n(77);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){"use strict";var r=n(87),o=n(2),i=n(52),a=n(56),u=n(108),c=n(183),s=n(107),f=n(58),l=n(29)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,y,g){c(n,e,d);var m,b,_,w=function(t){if(!p&&t in x)return x[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",k="values"==v,E=!1,x=t.prototype,T=x[l]||x["@@iterator"]||v&&x[v],O=T||w(v),A=v?k?w("entries"):O:void 0,P="Array"==e&&x.entries||T;if(P&&(_=f(P.call(new t)))!==Object.prototype&&_.next&&(s(_,S,!0),r||"function"==typeof _[l]||a(_,l,h)),k&&T&&"values"!==T.name&&(E=!0,O=function(){return T.call(this)}),r&&!g||!p&&!E&&x[l]||a(x,l,O),u[e]=O,u[S]=h,v)if(m={values:k?O:w("values"),keys:y?O:w("keys"),entries:A},g)for(b in m)b in x||i(x,b,m[b]);else o(o.P+o.F*(p||E),e,m);return m}},function(t,e,n){var r=n(23),o=n(69),i=n(29)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},,,,,,,,,,,,,,,,,,function(t,e,n){var r=n(23),o=n(21).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){var r=n(132)("keys"),o=n(90);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(21).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(23),o=n(16),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(63)(Function.call,n(60).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var r=n(23),o=n(178).set;t.exports=function(t,e,n){var i,a=e.constructor;return a!==n&&"function"==typeof a&&(i=a.prototype)!==n.prototype&&r(i)&&o&&o(t,i),t}},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e){var n=Math.expm1;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},function(t,e,n){"use strict";var r=n(84),o=n(86),i=n(107),a={};n(56)(a,n(29)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(156),o=n(77);t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(t))}},function(t,e,n){var r=n(29)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(o){}}return!0}},function(t,e,n){var r=n(108),o=n(29)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){"use strict";var r=n(43),o=n(92),i=n(31);t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,u=o(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,s=void 0===c?n:o(c,n);s>u;)e[u++]=t;return e}},function(t,e,n){"use strict";var r,o,i=n(125),a=RegExp.prototype.exec,u=String.prototype.replace,c=a,s=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),f=void 0!==/()??/.exec("")[1];(s||f)&&(c=function(t){var e,n,r,o,c=this;return f&&(n=new RegExp("^"+c.source+"$(?!\\s)",i.call(c))),s&&(e=c.lastIndex),r=a.call(c,t),s&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),f&&r&&r.length>1&&u.call(r[0],n,function(){for(o=1;o>1,f=23===e?O(2,-24)-O(2,-77):0,l=0,p=t<0||0===t&&1/t<0?1:0;for((t=T(t))!=t||t===E?(o=t!=t?1:0,r=c):(r=A(P(t)/M),t*(i=O(2,-r))<1&&(r--,i*=2),(t+=r+s>=1?f/i:f*O(2,1-s))*i>=2&&(r++,i/=2),r+s>=c?(o=0,r=c):r+s>=1?(o=(t*i-1)*O(2,e),r+=s):(o=t*O(2,s-1)*O(2,e),r=0));e>=8;a[l++]=255&o,o/=256,e-=8);for(r=r<0;a[l++]=255&r,r/=256,u-=8);return a[--l]|=128*p,a}function I(t,e,n){var r,o=8*n-e-1,i=(1<>1,u=o-7,c=n-1,s=t[c--],f=127&s;for(s>>=7;u>0;f=256*f+t[c],c--,u-=8);for(r=f&(1<<-u)-1,f>>=-u,u+=e;u>0;r=256*r+t[c],c--,u-=8);if(0===f)f=1-a;else{if(f===i)return r?NaN:s?-E:E;r+=O(2,e),f-=a}return(s?-1:1)*r*O(2,f-e)}function R(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function N(t){return[255&t]}function L(t){return[255&t,t>>8&255]}function Z(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function U(t){return F(t,52,8)}function z(t){return F(t,23,4)}function B(t,e,n){v(t[m],e,{get:function(){return this[n]}})}function H(t,e,n,r){var o=h(+n);if(o+e>t[D])throw k(b);var i=t[j]._b,a=o+t[C],u=i.slice(a,a+e);return r?u:u.reverse()}function W(t,e,n,r,o,i){var a=h(+n);if(a+e>t[D])throw k(b);for(var u=t[j]._b,c=a+t[C],s=r(+o),f=0;fV;)(K=J[V++])in _||u(_,K,x[K]);i||(G.constructor=_)}var q=new w(new _(2)),Y=w[m].setInt8;q.setInt8(0,2147483648),q.setInt8(1,2147483649),!q.getInt8(0)&&q.getInt8(1)||c(w[m],{setInt8:function(t,e){Y.call(this,t,e<<24>>24)},setUint8:function(t,e){Y.call(this,t,e<<24>>24)}},!0)}else _=function(t){f(this,_,"ArrayBuffer");var e=h(t);this._b=y.call(new Array(e),0),this[D]=e},w=function(t,e,n){f(this,w,"DataView"),f(t,_,"DataView");var r=t[D],o=l(e);if(o<0||o>r)throw k("Wrong offset!");if(o+(n=void 0===n?r-o:p(n))>r)throw k("Wrong length!");this[j]=t,this[C]=o,this[D]=n},o&&(B(_,"byteLength","_l"),B(w,"buffer","_b"),B(w,"byteLength","_l"),B(w,"byteOffset","_o")),c(w[m],{getInt8:function(t){return H(this,1,t)[0]<<24>>24},getUint8:function(t){return H(this,1,t)[0]},getInt16:function(t){var e=H(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=H(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return R(H(this,4,t,arguments[1]))},getUint32:function(t){return R(H(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return I(H(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return I(H(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){W(this,1,t,N,e)},setUint8:function(t,e){W(this,1,t,N,e)},setInt16:function(t,e){W(this,2,t,L,e,arguments[2])},setUint16:function(t,e){W(this,2,t,L,e,arguments[2])},setInt32:function(t,e){W(this,4,t,Z,e,arguments[2])},setUint32:function(t,e){W(this,4,t,Z,e,arguments[2])},setFloat32:function(t,e){W(this,4,t,z,e,arguments[2])},setFloat64:function(t,e){W(this,8,t,U,e,arguments[2])}});g(_,"ArrayBuffer"),g(w,"DataView"),u(w[m],a.VIEW,!0),e.ArrayBuffer=_,e.DataView=w},,,,,,,,,,,,function(t,e,n){"use strict";var r=n(91),o=n(133),i=n(124),a=n(43),u=n(116),c=Object.assign;t.exports=!c||n(22)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,s=1,f=o.f,l=i.f;c>s;)for(var p,h=u(arguments[s++]),d=f?r(h).concat(f(h)):r(h),v=d.length,y=0;v>y;)l.call(h,p=d[y++])&&(n[p]=h[p]);return n}:c},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){"use strict";var r=n(64),o=n(77);t.exports=function(t){var e=String(o(this)),n="",i=r(t);if(i<0||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},function(t,e,n){"use strict";var r=n(34),o=n(86);t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},function(t,e,n){"use strict";var r=n(96),o=n(207),i=n(108),a=n(53);t.exports=n(155)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r,o,i,a=n(63),u=n(203),c=n(177),s=n(174),f=n(21),l=f.process,p=f.setImmediate,h=f.clearImmediate,d=f.MessageChannel,v=f.Dispatch,y=0,g={},m=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){m.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++y]=function(){u("function"==typeof t?t:Function(t),e)},r(y),y},h=function(t){delete g[t]},"process"==n(69)(l)?r=function(t){l.nextTick(a(m,t,1))}:v&&v.now?r=function(t){v.now(a(m,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",b,!1)):r="onreadystatechange"in s("script")?function(t){c.appendChild(s("script")).onreadystatechange=function(){c.removeChild(this),m.call(t)}}:function(t){setTimeout(a(m,t,1),0)}),t.exports={set:p,clear:h}},function(t,e,n){"use strict";var r=n(48);function o(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(21).navigator;t.exports=r&&r.userAgent||""},,,,,,,,,,function(t,e,n){t.exports=!n(35)&&!n(22)(function(){return 7!=Object.defineProperty(n(174)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){e.f=n(29)},function(t,e,n){var r=n(21),o=n(55),i=n(87),a=n(221),u=n(34).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){var r=n(51),o=n(53),i=n(152)(!1),a=n(175)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)n!=a&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){var r=n(34),o=n(16),i=n(91);t.exports=n(35)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,c=0;u>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(53),o=n(93).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},function(t,e,n){"use strict";var r=n(48),o=n(23),i=n(203),a=[].slice,u={};t.exports=Function.bind||function(t){var e=r(this),n=a.call(arguments,1),c=function(){var r=n.concat(a.call(arguments));return this instanceof c?function(t,e,n){if(!(e in u)){for(var r=[],o=0;o>>0||(a.test(n)?16:10))}:r},function(t,e,n){var r=n(21).parseFloat,o=n(117).trim;t.exports=1/r(n(179)+"-0")!=-1/0?function(t){var e=o(String(t),3),n=r(e);return 0===n&&"-"==e.charAt(0)?-0:n}:r},function(t,e,n){var r=n(69);t.exports=function(t,e){if("number"!=typeof t&&"Number"!=r(t))throw TypeError(e);return+t}},function(t,e,n){var r=n(23),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,e,n){var r=n(16);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},function(t,e,n){var r=n(399);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){var r=n(48),o=n(43),i=n(116),a=n(31);t.exports=function(t,e,n,u,c){r(e);var s=o(t),f=i(s),l=a(s.length),p=c?l-1:0,h=c?-1:1;if(n<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,c?p<0:l<=p)throw TypeError("Reduce of empty array with no initial value")}for(;c?p>=0:l>p;p+=h)p in f&&(u=e(u,f[p],p,s));return u}},function(t,e,n){"use strict";var r=n(43),o=n(92),i=n(31);t.exports=[].copyWithin||function(t,e){var n=r(this),a=i(n.length),u=o(t,a),c=o(e,a),s=arguments.length>2?arguments[2]:void 0,f=Math.min((void 0===s?a:o(s,a))-c,a-u),l=1;for(c0;)c in n?n[u]=n[c]:delete n[u],u+=l,c+=l;return n}},function(t,e,n){"use strict";var r=n(188);n(2)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(t,e,n){n(35)&&"g"!=/./g.flags&&n(34).f(RegExp.prototype,"flags",{configurable:!0,get:n(125)})},function(t,e,n){var r=n(21),o=n(208).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,u=r.Promise,c="process"==n(69)(a);t.exports=function(){var t,e,n,s=function(){var r,o;for(c&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(i){throw t?n():e=void 0,i}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(s)};else if(!i||r.navigator&&r.navigator.standalone)if(u&&u.resolve){var f=u.resolve(void 0);n=function(){f.then(s)}}else n=function(){o.call(r,s)};else{var l=!0,p=document.createTextNode("");new i(s).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){"use strict";var r=n(241),o=n(109);t.exports=n(138)("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=r.getEntry(o(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(o(this,"Map"),0===t?0:t,e)}},r,!0)},function(t,e,n){"use strict";var r=n(34).f,o=n(84),i=n(100),a=n(63),u=n(98),c=n(99),s=n(155),f=n(207),l=n(97),p=n(35),h=n(83).fastKey,d=n(109),v=p?"_s":"size",y=function(t,e){var n,r=h(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,s){var f=t(function(t,r){u(t,f,e,"_i"),t._t=e,t._i=o(null),t._f=void 0,t._l=void 0,t[v]=0,null!=r&&c(r,n,t[s],t)});return i(f.prototype,{clear:function(){for(var t=d(this,e),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[v]=0},delete:function(t){var n=d(this,e),r=y(n,t);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(t){d(this,e);for(var n,r=a(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!y(d(this,e),t)}}),p&&r(f.prototype,"size",{get:function(){return d(this,e)[v]}}),f},def:function(t,e,n){var r,o,i=y(t,e);return i?i.v=n:(t._l=i={i:o=h(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[v]++,"F"!==o&&(t._i[o]=i)),t},getEntry:y,setStrong:function(t,e,n){s(t,e,function(t,n){this._t=d(t,e),this._k=n,this._l=void 0},function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?f(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,f(1))},n?"entries":"values",!n,!0),l(e)}}},function(t,e,n){"use strict";var r=n(241),o=n(109);t.exports=n(138)("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(o(this,"Set"),t=0===t?0:t,t)}},r)},function(t,e,n){"use strict";var r,o=n(71)(0),i=n(52),a=n(83),u=n(202),c=n(244),s=n(23),f=n(22),l=n(109),p=a.getWeak,h=Object.isExtensible,d=c.ufstore,v={},y=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(t){if(s(t)){var e=p(t);return!0===e?d(l(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return c.def(l(this,"WeakMap"),t,e)}},m=t.exports=n(138)("WeakMap",y,g,c,!0,!0);f(function(){return 7!=(new m).set((Object.freeze||Object)(v),7).get(v)})&&(u((r=c.getConstructor(y,"WeakMap")).prototype,g),a.NEED=!0,o(["delete","has","get","set"],function(t){var e=m.prototype,n=e[t];i(e,t,function(e,o){if(s(e)&&!h(e)){this._f||(this._f=new r);var i=this._f[t](e,o);return"set"==t?this:i}return n.call(this,e,o)})}))},function(t,e,n){"use strict";var r=n(100),o=n(83).getWeak,i=n(16),a=n(23),u=n(98),c=n(99),s=n(71),f=n(51),l=n(109),p=s(5),h=s(6),d=0,v=function(t){return t._l||(t._l=new y)},y=function(){this.a=[]},g=function(t,e){return p(t.a,function(t){return t[0]===e})};y.prototype={get:function(t){var e=g(this,t);if(e)return e[1]},has:function(t){return!!g(this,t)},set:function(t,e){var n=g(this,t);n?n[1]=e:this.a.push([t,e])},delete:function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,i){var s=t(function(t,r){u(t,s,e,"_i"),t._t=e,t._i=d++,t._l=void 0,null!=r&&c(r,n,t[i],t)});return r(s.prototype,{delete:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(l(this,e)).delete(t):n&&f(n,this._i)&&delete n[this._i]},has:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(l(this,e)).has(t):n&&f(n,this._i)}}),s},def:function(t,e,n){var r=o(i(e),!0);return!0===r?v(t).set(e,n):r[t._i]=n,t},ufstore:v}},function(t,e,n){var r=n(64),o=n(31);t.exports=function(t){if(void 0===t)return 0;var e=r(t),n=o(e);if(e!==n)throw RangeError("Wrong length!");return n}},function(t,e,n){var r=n(93),o=n(133),i=n(16),a=n(21).Reflect;t.exports=a&&a.ownKeys||function(t){var e=r.f(i(t)),n=o.f;return n?e.concat(n(t)):e}},,,,,,,,,,,,,,,,,,,,,function(t,e,n){var r=n(181),o=Math.pow,i=o(2,-52),a=o(2,-23),u=o(2,127)*(2-a),c=o(2,-126);t.exports=Math.fround||function(t){var e,n,o=Math.abs(t),s=r(t);return ou||n!=n?s*(1/0):s*n}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},function(t,e,n){var r=n(16),o=n(23),i=n(209);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var r=n(99);t.exports=function(t,e){var n=[];return r(t,!1,n.push,n,e),n}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(21),o=n(51),i=n(35),a=n(2),u=n(52),c=n(83).KEY,s=n(22),f=n(132),l=n(107),p=n(90),h=n(29),d=n(221),v=n(222),y=n(311),g=n(153),m=n(16),b=n(23),_=n(53),w=n(76),S=n(86),k=n(84),E=n(225),x=n(60),T=n(34),O=n(91),A=x.f,P=T.f,M=E.f,j=r.Symbol,D=r.JSON,C=D&&D.stringify,F=h("_hidden"),I=h("toPrimitive"),R={}.propertyIsEnumerable,N=f("symbol-registry"),L=f("symbols"),Z=f("op-symbols"),U=Object.prototype,z="function"==typeof j,B=r.QObject,H=!B||!B.prototype||!B.prototype.findChild,W=i&&s(function(){return 7!=k(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(U,e);r&&delete U[e],P(t,e,n),r&&t!==U&&P(U,e,r)}:P,K=function(t){var e=L[t]=k(j.prototype);return e._k=t,e},G=z&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},J=function(t,e,n){return t===U&&J(Z,e,n),m(t),e=w(e,!0),m(n),o(L,e)?(n.enumerable?(o(t,F)&&t[F][e]&&(t[F][e]=!1),n=k(n,{enumerable:S(0,!1)})):(o(t,F)||P(t,F,S(1,{})),t[F][e]=!0),W(t,e,n)):P(t,e,n)},V=function(t,e){m(t);for(var n,r=y(e=_(e)),o=0,i=r.length;i>o;)J(t,n=r[o++],e[n]);return t},q=function(t){var e=R.call(this,t=w(t,!0));return!(this===U&&o(L,t)&&!o(Z,t))&&(!(e||!o(this,t)||!o(L,t)||o(this,F)&&this[F][t])||e)},Y=function(t,e){if(t=_(t),e=w(e,!0),t!==U||!o(L,e)||o(Z,e)){var n=A(t,e);return!n||!o(L,e)||o(t,F)&&t[F][e]||(n.enumerable=!0),n}},X=function(t){for(var e,n=M(_(t)),r=[],i=0;n.length>i;)o(L,e=n[i++])||e==F||e==c||r.push(e);return r},$=function(t){for(var e,n=t===U,r=M(n?Z:_(t)),i=[],a=0;r.length>a;)!o(L,e=r[a++])||n&&!o(U,e)||i.push(L[e]);return i};z||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===U&&e.call(Z,n),o(this,F)&&o(this[F],t)&&(this[F][t]=!1),W(this,t,S(1,n))};return i&&H&&W(U,t,{configurable:!0,set:e}),K(t)}).prototype,"toString",function(){return this._k}),x.f=Y,T.f=J,n(93).f=E.f=X,n(124).f=q,n(133).f=$,i&&!n(87)&&u(U,"propertyIsEnumerable",q,!0),d.f=function(t){return K(h(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)h(Q[tt++]);for(var et=O(h.store),nt=0;et.length>nt;)v(et[nt++]);a(a.S+a.F*!z,"Symbol",{for:function(t){return o(N,t+="")?N[t]:N[t]=j(t)},keyFor:function(t){if(!G(t))throw TypeError(t+" is not a symbol!");for(var e in N)if(N[e]===t)return e},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a(a.S+a.F*!z,"Object",{create:function(t,e){return void 0===e?k(t):V(k(t),e)},defineProperty:J,defineProperties:V,getOwnPropertyDescriptor:Y,getOwnPropertyNames:X,getOwnPropertySymbols:$}),D&&a(a.S+a.F*(!z||s(function(){var t=j();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(b(e)||void 0!==t)&&!G(t))return g(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,C.apply(D,r)}}),j.prototype[I]||n(56)(j.prototype,I,j.prototype.valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){var r=n(91),o=n(133),i=n(124);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),c=i.f,s=0;u.length>s;)c.call(t,a=u[s++])&&e.push(a);return e}},function(t,e,n){var r=n(2);r(r.S,"Object",{create:n(84)})},function(t,e,n){var r=n(2);r(r.S+r.F*!n(35),"Object",{defineProperty:n(34).f})},function(t,e,n){var r=n(2);r(r.S+r.F*!n(35),"Object",{defineProperties:n(224)})},function(t,e,n){var r=n(53),o=n(60).f;n(70)("getOwnPropertyDescriptor",function(){return function(t,e){return o(r(t),e)}})},function(t,e,n){var r=n(43),o=n(58);n(70)("getPrototypeOf",function(){return function(t){return o(r(t))}})},function(t,e,n){var r=n(43),o=n(91);n(70)("keys",function(){return function(t){return o(r(t))}})},function(t,e,n){n(70)("getOwnPropertyNames",function(){return n(225).f})},function(t,e,n){var r=n(23),o=n(83).onFreeze;n(70)("freeze",function(t){return function(e){return t&&r(e)?t(o(e)):e}})},function(t,e,n){var r=n(23),o=n(83).onFreeze;n(70)("seal",function(t){return function(e){return t&&r(e)?t(o(e)):e}})},function(t,e,n){var r=n(23),o=n(83).onFreeze;n(70)("preventExtensions",function(t){return function(e){return t&&r(e)?t(o(e)):e}})},function(t,e,n){var r=n(23);n(70)("isFrozen",function(t){return function(e){return!r(e)||!!t&&t(e)}})},function(t,e,n){var r=n(23);n(70)("isSealed",function(t){return function(e){return!r(e)||!!t&&t(e)}})},function(t,e,n){var r=n(23);n(70)("isExtensible",function(t){return function(e){return!!r(e)&&(!t||t(e))}})},function(t,e,n){var r=n(2);r(r.S+r.F,"Object",{assign:n(202)})},function(t,e,n){var r=n(2);r(r.S,"Object",{is:n(226)})},function(t,e,n){var r=n(2);r(r.S,"Object",{setPrototypeOf:n(178).set})},function(t,e,n){"use strict";var r=n(95),o={};o[n(29)("toStringTag")]="z",o+""!="[object z]"&&n(52)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(t,e,n){var r=n(2);r(r.P,"Function",{bind:n(227)})},function(t,e,n){var r=n(34).f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n(35)&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(23),o=n(58),i=n(29)("hasInstance"),a=Function.prototype;i in a||n(34).f(a,i,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=o(t);)if(this.prototype===t)return!0;return!1}})},function(t,e,n){var r=n(2),o=n(228);r(r.G+r.F*(parseInt!=o),{parseInt:o})},function(t,e,n){var r=n(2),o=n(229);r(r.G+r.F*(parseFloat!=o),{parseFloat:o})},function(t,e,n){"use strict";var r=n(21),o=n(51),i=n(69),a=n(180),u=n(76),c=n(22),s=n(93).f,f=n(60).f,l=n(34).f,p=n(117).trim,h=r.Number,d=h,v=h.prototype,y="Number"==i(n(84)(v)),g="trim"in String.prototype,m=function(t){var e=u(t,!1);if("string"==typeof e&&e.length>2){var n,r,o,i=(e=g?e.trim():p(e,3)).charCodeAt(0);if(43===i||45===i){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+e}for(var a,c=e.slice(2),s=0,f=c.length;so)return NaN;return parseInt(c,r)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(y?c(function(){v.valueOf.call(n)}):"Number"!=i(n))?a(new d(m(e)),n,h):m(e)};for(var b,_=n(35)?s(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;_.length>w;w++)o(d,b=_[w])&&!o(h,b)&&l(h,b,f(d,b));h.prototype=v,v.constructor=h,n(52)(r,"Number",h)}},function(t,e,n){"use strict";var r=n(2),o=n(64),i=n(230),a=n(204),u=1..toFixed,c=Math.floor,s=[0,0,0,0,0,0],f="Number.toFixed: incorrect invocation!",l=function(t,e){for(var n=-1,r=e;++n<6;)r+=t*s[n],s[n]=r%1e7,r=c(r/1e7)},p=function(t){for(var e=6,n=0;--e>=0;)n+=s[e],s[e]=c(n/t),n=n%t*1e7},h=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==s[t]){var n=String(s[t]);e=""===e?n:e+a.call("0",7-n.length)+n}return e},d=function(t,e,n){return 0===e?n:e%2==1?d(t,e-1,n*t):d(t*t,e/2,n)};r(r.P+r.F*(!!u&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n(22)(function(){u.call({})})),"Number",{toFixed:function(t){var e,n,r,u,c=i(this,f),s=o(t),v="",y="0";if(s<0||s>20)throw RangeError(f);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(v="-",c=-c),c>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(c*d(2,69,1))-69)<0?c*d(2,-e,1):c/d(2,e,1),n*=4503599627370496,(e=52-e)>0){for(l(0,n),r=s;r>=7;)l(1e7,0),r-=7;for(l(d(10,r,1),0),r=e-1;r>=23;)p(1<<23),r-=23;p(1<0?v+((u=y.length)<=s?"0."+a.call("0",s-u)+y:y.slice(0,u-s)+"."+y.slice(u-s)):v+y}})},function(t,e,n){"use strict";var r=n(2),o=n(22),i=n(230),a=1..toPrecision;r(r.P+r.F*(o(function(){return"1"!==a.call(1,void 0)})||!o(function(){a.call({})})),"Number",{toPrecision:function(t){var e=i(this,"Number#toPrecision: incorrect invocation!");return void 0===t?a.call(e):a.call(e,t)}})},function(t,e,n){var r=n(2);r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,n){var r=n(2),o=n(21).isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&o(t)}})},function(t,e,n){var r=n(2);r(r.S,"Number",{isInteger:n(231)})},function(t,e,n){var r=n(2);r(r.S,"Number",{isNaN:function(t){return t!=t}})},function(t,e,n){var r=n(2),o=n(231),i=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},function(t,e,n){var r=n(2);r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,n){var r=n(2);r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,n){var r=n(2),o=n(229);r(r.S+r.F*(Number.parseFloat!=o),"Number",{parseFloat:o})},function(t,e,n){var r=n(2),o=n(228);r(r.S+r.F*(Number.parseInt!=o),"Number",{parseInt:o})},function(t,e,n){var r=n(2),o=n(232),i=Math.sqrt,a=Math.acosh;r(r.S+r.F*!(a&&710==Math.floor(a(Number.MAX_VALUE))&&a(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:o(t-1+i(t-1)*i(t+1))}})},function(t,e,n){var r=n(2),o=Math.asinh;r(r.S+r.F*!(o&&1/o(0)>0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},function(t,e,n){var r=n(2),o=Math.atanh;r(r.S+r.F*!(o&&1/o(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,e,n){var r=n(2),o=n(181);r(r.S,"Math",{cbrt:function(t){return o(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,e,n){var r=n(2);r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,e,n){var r=n(2),o=Math.exp;r(r.S,"Math",{cosh:function(t){return(o(t=+t)+o(-t))/2}})},function(t,e,n){var r=n(2),o=n(182);r(r.S+r.F*(o!=Math.expm1),"Math",{expm1:o})},function(t,e,n){var r=n(2);r(r.S,"Math",{fround:n(267)})},function(t,e,n){var r=n(2),o=Math.abs;r(r.S,"Math",{hypot:function(t,e){for(var n,r,i=0,a=0,u=arguments.length,c=0;a0?(r=n/c)*r:n;return c===1/0?1/0:c*Math.sqrt(i)}})},function(t,e,n){var r=n(2),o=Math.imul;r(r.S+r.F*n(22)(function(){return-5!=o(4294967295,5)||2!=o.length}),"Math",{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},function(t,e,n){var r=n(2);r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},function(t,e,n){var r=n(2);r(r.S,"Math",{log1p:n(232)})},function(t,e,n){var r=n(2);r(r.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},function(t,e,n){var r=n(2);r(r.S,"Math",{sign:n(181)})},function(t,e,n){var r=n(2),o=n(182),i=Math.exp;r(r.S+r.F*n(22)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(o(t)-o(-t))/2:(i(t-1)-i(-t-1))*(Math.E/2)}})},function(t,e,n){var r=n(2),o=n(182),i=Math.exp;r(r.S,"Math",{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},function(t,e,n){var r=n(2);r(r.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,e,n){var r=n(2),o=n(92),i=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join("")}})},function(t,e,n){var r=n(2),o=n(53),i=n(31);r(r.S,"String",{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],u=0;n>u;)a.push(String(e[u++])),u=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(2),o=n(154)(!1);r(r.P,"String",{codePointAt:function(t){return o(this,t)}})},function(t,e,n){"use strict";var r=n(2),o=n(31),i=n(184),a="".endsWith;r(r.P+r.F*n(185)("endsWith"),"String",{endsWith:function(t){var e=i(this,t,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=o(e.length),u=void 0===n?r:Math.min(o(n),r),c=String(t);return a?a.call(e,c,u):e.slice(u-c.length,u)===c}})},function(t,e,n){"use strict";var r=n(2),o=n(184);r(r.P+r.F*n(185)("includes"),"String",{includes:function(t){return!!~o(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(2);r(r.P,"String",{repeat:n(204)})},function(t,e,n){"use strict";var r=n(2),o=n(31),i=n(184),a="".startsWith;r(r.P+r.F*n(185)("startsWith"),"String",{startsWith:function(t){var e=i(this,t,"startsWith"),n=o(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return a?a.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){"use strict";n(50)("anchor",function(t){return function(e){return t(this,"a","name",e)}})},function(t,e,n){"use strict";n(50)("big",function(t){return function(){return t(this,"big","","")}})},function(t,e,n){"use strict";n(50)("blink",function(t){return function(){return t(this,"blink","","")}})},function(t,e,n){"use strict";n(50)("bold",function(t){return function(){return t(this,"b","","")}})},function(t,e,n){"use strict";n(50)("fixed",function(t){return function(){return t(this,"tt","","")}})},function(t,e,n){"use strict";n(50)("fontcolor",function(t){return function(e){return t(this,"font","color",e)}})},function(t,e,n){"use strict";n(50)("fontsize",function(t){return function(e){return t(this,"font","size",e)}})},function(t,e,n){"use strict";n(50)("italics",function(t){return function(){return t(this,"i","","")}})},function(t,e,n){"use strict";n(50)("link",function(t){return function(e){return t(this,"a","href",e)}})},function(t,e,n){"use strict";n(50)("small",function(t){return function(){return t(this,"small","","")}})},function(t,e,n){"use strict";n(50)("strike",function(t){return function(){return t(this,"strike","","")}})},function(t,e,n){"use strict";n(50)("sub",function(t){return function(){return t(this,"sub","","")}})},function(t,e,n){"use strict";n(50)("sup",function(t){return function(){return t(this,"sup","","")}})},function(t,e,n){var r=n(2);r(r.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,e,n){"use strict";var r=n(2),o=n(43),i=n(76);r(r.P+r.F*n(22)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(t){var e=o(this),n=i(e);return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},function(t,e,n){var r=n(2),o=n(388);r(r.P+r.F*(Date.prototype.toISOString!==o),"Date",{toISOString:o})},function(t,e,n){"use strict";var r=n(22),o=Date.prototype.getTime,i=Date.prototype.toISOString,a=function(t){return t>9?t:"0"+t};t.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=i.call(new Date(-5e13-1))})||!r(function(){i.call(new Date(NaN))})?function(){if(!isFinite(o.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),r=e<0?"-":e>9999?"+":"";return r+("00000"+Math.abs(e)).slice(r?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}:i},function(t,e,n){var r=Date.prototype,o=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&n(52)(r,"toString",function(){var t=i.call(this);return t==t?o.call(this):"Invalid Date"})},function(t,e,n){var r=n(29)("toPrimitive"),o=Date.prototype;r in o||n(56)(o,r,n(391))},function(t,e,n){"use strict";var r=n(16),o=n(76);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return o(r(this),"number"!=t)}},function(t,e,n){var r=n(2);r(r.S,"Array",{isArray:n(153)})},function(t,e,n){"use strict";var r=n(63),o=n(2),i=n(43),a=n(233),u=n(186),c=n(31),s=n(205),f=n(134);o(o.S+o.F*!n(135)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,o,l,p=i(t),h="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,y=void 0!==v,g=0,m=f(p);if(y&&(v=r(v,d>2?arguments[2]:void 0,2)),null==m||h==Array&&u(m))for(n=new h(e=c(p.length));e>g;g++)s(n,g,y?v(p[g],g):p[g]);else for(l=m.call(p),n=new h;!(o=l.next()).done;g++)s(n,g,y?a(l,v,[o.value,g],!0):o.value);return n.length=g,n}})},function(t,e,n){"use strict";var r=n(2),o=n(205);r(r.S+r.F*n(22)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)o(n,t,arguments[t++]);return n.length=e,n}})},function(t,e,n){"use strict";var r=n(2),o=n(53),i=[].join;r(r.P+r.F*(n(116)!=Object||!n(61)(i)),"Array",{join:function(t){return i.call(o(this),void 0===t?",":t)}})},function(t,e,n){"use strict";var r=n(2),o=n(177),i=n(69),a=n(92),u=n(31),c=[].slice;r(r.P+r.F*n(22)(function(){o&&c.call(o)}),"Array",{slice:function(t,e){var n=u(this.length),r=i(this);if(e=void 0===e?n:e,"Array"==r)return c.call(this,t,e);for(var o=a(t,n),s=a(e,n),f=u(s-o),l=new Array(f),p=0;p1&&(r=Math.min(r,i(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in e&&e[r]===t)return r||0;return-1}})},function(t,e,n){var r=n(2);r(r.P,"Array",{copyWithin:n(236)}),n(96)("copyWithin")},function(t,e,n){var r=n(2);r(r.P,"Array",{fill:n(187)}),n(96)("fill")},function(t,e,n){"use strict";var r=n(2),o=n(71)(5),i=!0;"find"in[]&&Array(1).find(function(){i=!1}),r(r.P+r.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(96)("find")},function(t,e,n){"use strict";var r=n(2),o=n(71)(6),i="findIndex",a=!0;i in[]&&Array(1)[i](function(){a=!1}),r(r.P+r.F*a,"Array",{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(96)(i)},function(t,e,n){n(97)("Array")},function(t,e,n){var r=n(21),o=n(180),i=n(34).f,a=n(93).f,u=n(156),c=n(125),s=r.RegExp,f=s,l=s.prototype,p=/a/g,h=/a/g,d=new s(p)!==p;if(n(35)&&(!d||n(22)(function(){return h[n(29)("match")]=!1,s(p)!=p||s(h)==h||"/a/i"!=s(p,"i")}))){s=function(t,e){var n=this instanceof s,r=u(t),i=void 0===e;return!n&&r&&t.constructor===s&&i?t:o(d?new f(r&&!i?t.source:t,e):f((r=t instanceof s)?t.source:t,r&&i?c.call(t):e),n?this:l,s)};for(var v=function(t){t in s||i(s,t,{configurable:!0,get:function(){return f[t]},set:function(e){f[t]=e}})},y=a(f),g=0;y.length>g;)v(y[g++]);l.constructor=s,s.prototype=l,n(52)(r,"RegExp",s)}n(97)("RegExp")},function(t,e,n){"use strict";n(238);var r=n(16),o=n(125),i=n(35),a=/./.toString,u=function(t){n(52)(RegExp.prototype,"toString",t,!0)};n(22)(function(){return"/a/b"!=a.call({source:"a",flags:"b"})})?u(function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)}):"toString"!=a.name&&u(function(){return a.call(this)})},function(t,e,n){"use strict";var r=n(16),o=n(31),i=n(189),a=n(136);n(137)("match",1,function(t,e,n,u){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=u(n,t,this);if(e.done)return e.value;var c=r(t),s=String(this);if(!c.global)return a(c,s);var f=c.unicode;c.lastIndex=0;for(var l,p=[],h=0;null!==(l=a(c,s));){var d=String(l[0]);p[h]=d,""===d&&(c.lastIndex=i(s,o(c.lastIndex),f)),h++}return 0===h?null:p}]})},function(t,e,n){"use strict";var r=n(16),o=n(43),i=n(31),a=n(64),u=n(189),c=n(136),s=Math.max,f=Math.min,l=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n(137)("replace",2,function(t,e,n,d){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=d(n,t,this,e);if(o.done)return o.value;var l=r(t),p=String(this),h="function"==typeof e;h||(e=String(e));var y=l.global;if(y){var g=l.unicode;l.lastIndex=0}for(var m=[];;){var b=c(l,p);if(null===b)break;if(m.push(b),!y)break;""===String(b[0])&&(l.lastIndex=u(p,i(l.lastIndex),g))}for(var _,w="",S=0,k=0;k=S&&(w+=p.slice(S,x)+M,S=x+E.length)}return w+p.slice(S)}];function v(t,e,r,i,a,u){var c=r+t.length,s=i.length,f=h;return void 0!==a&&(a=o(a),f=p),n.call(u,f,function(n,o){var u;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(c);case"<":u=a[o.slice(1,-1)];break;default:var f=+o;if(0===f)return n;if(f>s){var p=l(f/10);return 0===p?n:p<=s?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}u=i[f-1]}return void 0===u?"":u})}})},function(t,e,n){"use strict";var r=n(16),o=n(226),i=n(136);n(137)("search",1,function(t,e,n,a){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=a(n,t,this);if(e.done)return e.value;var u=r(t),c=String(this),s=u.lastIndex;o(s,0)||(u.lastIndex=0);var f=i(u,c);return o(u.lastIndex,s)||(u.lastIndex=s),null===f?-1:f.index}]})},function(t,e,n){"use strict";var r=n(156),o=n(16),i=n(126),a=n(189),u=n(31),c=n(136),s=n(188),f=Math.min,l=[].push,p=!!function(){try{return new RegExp("x","y")}catch(t){}}();n(137)("split",2,function(t,e,n,h){var d;return d="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,e){var o=String(this);if(void 0===t&&0===e)return[];if(!r(t))return n.call(o,t,e);for(var i,a,u,c=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),p=0,h=void 0===e?4294967295:e>>>0,d=new RegExp(t.source,f+"g");(i=s.call(d,o))&&!((a=d.lastIndex)>p&&(c.push(o.slice(p,i.index)),i.length>1&&i.index=h));)d.lastIndex===i.index&&d.lastIndex++;return p===o.length?!u&&d.test("")||c.push(""):c.push(o.slice(p)),c.length>h?c.slice(0,h):c}:"0".split(void 0,0).length?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,r){var o=t(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):d.call(String(o),n,r)},function(t,e){var r=h(d,t,this,e,d!==n);if(r.done)return r.value;var s=o(t),l=String(this),v=i(s,RegExp),y=s.unicode,g=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(p?"y":"g"),m=new v(p?s:"^(?:"+s.source+")",g),b=void 0===e?4294967295:e>>>0;if(0===b)return[];if(0===l.length)return null===c(m,l)?[l]:[];for(var _=0,w=0,S=[];wi;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&F(t)})}},F=function(t){g.call(c,function(){var e,n,r,o=t._v,i=I(t);if(i&&(e=_(function(){A?E.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=A||I(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},I=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){g.call(c,function(){var e;A?E.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},N=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),C(e,!0))},L=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=D(t))?m(function(){var r={_w:n,_d:!1};try{e.call(t,s(L,r,1),s(N,r,1))}catch(o){N.call(r,o)}}):(n._v=t,n._s=1,C(n,!1))}catch(r){N.call({_w:n,_d:!1},r)}}};j||(O=function(t){d(this,O,"Promise","_h"),h(t),r.call(this);try{t(s(L,this,1),s(N,this,1))}catch(e){N.call(this,e)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(100)(O.prototype,{then:function(t,e){var n=M(y(this,O));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=A?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&C(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=s(L,t,1),this.reject=s(N,t,1)},b.f=M=function(t){return t===O||t===a?new i(t):o(t)}),l(l.G+l.W+l.F*!j,{Promise:O}),n(107)(O,"Promise"),n(97)("Promise"),a=n(55).Promise,l(l.S+l.F*!j,"Promise",{reject:function(t){var e=M(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(u||!j),"Promise",{resolve:function(t){return S(u&&this===a?O:this,t)}}),l(l.S+l.F*!(j&&n(135)(function(t){O.all(t).catch(P)})),"Promise",{all:function(t){var e=this,n=M(e),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;v(t,!1,function(t){var u=i++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[u]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=M(e),r=n.reject,o=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(t,e,n){"use strict";var r=n(244),o=n(109);n(138)("WeakSet",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(o(this,"WeakSet"),t,!0)}},r,!1,!0)},function(t,e,n){"use strict";var r=n(2),o=n(139),i=n(190),a=n(16),u=n(92),c=n(31),s=n(23),f=n(21).ArrayBuffer,l=n(126),p=i.ArrayBuffer,h=i.DataView,d=o.ABV&&f.isView,v=p.prototype.slice,y=o.VIEW;r(r.G+r.W+r.F*(f!==p),{ArrayBuffer:p}),r(r.S+r.F*!o.CONSTR,"ArrayBuffer",{isView:function(t){return d&&d(t)||s(t)&&y in t}}),r(r.P+r.U+r.F*n(22)(function(){return!new p(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function(t,e){if(void 0!==v&&void 0===e)return v.call(a(this),t);for(var n=a(this).byteLength,r=u(t,n),o=u(void 0===e?n:e,n),i=new(l(this,p))(c(o-r)),s=new h(this),f=new h(i),d=0;r=e.length)return{value:void 0,done:!0}}while(!((t=e[this._i++])in this._t));return{value:t,done:!1}}),r(r.S,"Reflect",{enumerate:function(t){return new i(t)}})},function(t,e,n){var r=n(60),o=n(58),i=n(51),a=n(2),u=n(23),c=n(16);a(a.S,"Reflect",{get:function t(e,n){var a,s,f=arguments.length<3?e:arguments[2];return c(e)===f?e[n]:(a=r.f(e,n))?i(a,"value")?a.value:void 0!==a.get?a.get.call(f):void 0:u(s=o(e))?t(s,n,f):void 0}})},function(t,e,n){var r=n(60),o=n(2),i=n(16);o(o.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return r.f(i(t),e)}})},function(t,e,n){var r=n(2),o=n(58),i=n(16);r(r.S,"Reflect",{getPrototypeOf:function(t){return o(i(t))}})},function(t,e,n){var r=n(2);r(r.S,"Reflect",{has:function(t,e){return e in t}})},function(t,e,n){var r=n(2),o=n(16),i=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return o(t),!i||i(t)}})},function(t,e,n){var r=n(2);r(r.S,"Reflect",{ownKeys:n(246)})},function(t,e,n){var r=n(2),o=n(16),i=Object.preventExtensions;r(r.S,"Reflect",{preventExtensions:function(t){o(t);try{return i&&i(t),!0}catch(e){return!1}}})},function(t,e,n){var r=n(34),o=n(60),i=n(58),a=n(51),u=n(2),c=n(86),s=n(16),f=n(23);u(u.S,"Reflect",{set:function t(e,n,u){var l,p,h=arguments.length<4?e:arguments[3],d=o.f(s(e),n);if(!d){if(f(p=i(e)))return t(p,n,u,h);d=c(0)}if(a(d,"value")){if(!1===d.writable||!f(h))return!1;if(l=o.f(h,n)){if(l.get||l.set||!1===l.writable)return!1;l.value=u,r.f(h,n,l)}else r.f(h,n,c(0,u));return!0}return void 0!==d.set&&(d.set.call(h,u),!0)}})},function(t,e,n){var r=n(2),o=n(178);o&&r(r.S,"Reflect",{setPrototypeOf:function(t,e){o.check(t,e);try{return o.set(t,e),!0}catch(n){return!1}}})},function(t,e,n){var r=n(79),o=n(16),i=r.key,a=r.set;r.exp({defineMetadata:function(t,e,n,r){a(t,e,o(n),i(r))}})},function(t,e,n){var r=n(79),o=n(16),i=r.key,a=r.map,u=r.store;r.exp({deleteMetadata:function(t,e){var n=arguments.length<3?void 0:i(arguments[2]),r=a(o(e),n,!1);if(void 0===r||!r.delete(t))return!1;if(r.size)return!0;var c=u.get(e);return c.delete(n),!!c.size||u.delete(e)}})},function(t,e,n){var r=n(79),o=n(16),i=n(58),a=r.has,u=r.get,c=r.key,s=function(t,e,n){if(a(t,e,n))return u(t,e,n);var r=i(e);return null!==r?s(t,r,n):void 0};r.exp({getMetadata:function(t,e){return s(t,o(e),arguments.length<3?void 0:c(arguments[2]))}})},function(t,e,n){var r=n(242),o=n(270),i=n(79),a=n(16),u=n(58),c=i.keys,s=i.key,f=function(t,e){var n=c(t,e),i=u(t);if(null===i)return n;var a=f(i,e);return a.length?n.length?o(new r(n.concat(a))):a:n};i.exp({getMetadataKeys:function(t){return f(a(t),arguments.length<2?void 0:s(arguments[1]))}})},function(t,e,n){var r=n(79),o=n(16),i=r.get,a=r.key;r.exp({getOwnMetadata:function(t,e){return i(t,o(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(79),o=n(16),i=r.keys,a=r.key;r.exp({getOwnMetadataKeys:function(t){return i(o(t),arguments.length<2?void 0:a(arguments[1]))}})},function(t,e,n){var r=n(79),o=n(16),i=n(58),a=r.has,u=r.key,c=function(t,e,n){if(a(t,e,n))return!0;var r=i(e);return null!==r&&c(t,r,n)};r.exp({hasMetadata:function(t,e){return c(t,o(e),arguments.length<3?void 0:u(arguments[2]))}})},function(t,e,n){var r=n(79),o=n(16),i=r.has,a=r.key;r.exp({hasOwnMetadata:function(t,e){return i(t,o(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(79),o=n(16),i=n(48),a=r.key,u=r.set;r.exp({metadata:function(t,e){return function(n,r){u(t,e,(void 0!==r?o:i)(n),a(r))}}})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(738),n(739),n(740),!Element.prototype.matches&&Element.prototype.msMatchesSelector&&(Element.prototype.matches=Element.prototype.msMatchesSelector),n(741),n(742),n(743)},function(t,e,n){n(310),n(312),n(313),n(314),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(389),n(390),n(392),n(393),n(394),n(395),n(396),n(397),n(398),n(400),n(401),n(402),n(403),n(404),n(405),n(406),n(407),n(408),n(409),n(410),n(411),n(412),n(206),n(413),n(237),n(414),n(238),n(415),n(416),n(417),n(418),n(419),n(240),n(242),n(243),n(420),n(421),n(422),n(423),n(424),n(425),n(426),n(427),n(428),n(429),n(430),n(431),n(432),n(433),n(434),n(435),n(436),n(437),n(438),n(439),n(440),n(441),n(442),n(443),n(444),n(445),t.exports=n(55)},function(t,e,n){n(446),n(447),n(448),n(449),n(450),n(451),n(452),n(453),n(454),t.exports=n(55).Reflect},function(t,e,n){(function(r){var o,i; -/** -* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes -* (c) 2010-2020 Google LLC. https://angular.io/ -* License: MIT -*/void 0===(i="function"==typeof(o=function(){"use strict"; -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n("Zone");var o=t.__Zone_symbol_prefix||"__zone_symbol__";function i(t){return o+t}var a=!0===t[i("forceDuplicateZoneCheck")];if(t.Zone){if(a||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}var u=function(){function e(t,e){this._parent=t,this._name=e?e.name||"unnamed":"",this._properties=e&&e.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,e)}return e.assertZonePatched=function(){if(t.Promise!==P.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(e,"root",{get:function(){for(var t=e.current;t.parent;)t=t.parent;return t},enumerable:!0,configurable:!0}),Object.defineProperty(e,"current",{get:function(){return j.zone},enumerable:!0,configurable:!0}),Object.defineProperty(e,"currentTask",{get:function(){return D},enumerable:!0,configurable:!0}),e.__load_patch=function(o,i){if(P.hasOwnProperty(o)){if(a)throw Error("Already loaded patch: "+o)}else if(!t["__Zone_disable_"+o]){var u="Zone:"+o;n(u),P[o]=i(t,e,M),r(u,u)}},Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),e.prototype.get=function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]},e.prototype.getZoneWith=function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null},e.prototype.fork=function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)},e.prototype.wrap=function(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}},e.prototype.run=function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}},e.prototype.runGuarded=function(t,e,n,r){void 0===e&&(e=null),j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}},e.prototype.runTask=function(t,e,n){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");if(t.state!==_||t.type!==A&&t.type!==O){var r=t.state!=k;r&&t._transitionTo(k,S),t.runCount++;var o=D;D=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==_&&t.state!==x&&(t.type==A||t.data&&t.data.isPeriodic?r&&t._transitionTo(S,k):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(_,k,_))),j=j.parent,D=o}}},e.prototype.scheduleTask=function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+t.zone.name);e=e.parent}t._transitionTo(w,_);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(x,w,_),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==w&&t._transitionTo(S,w),t},e.prototype.scheduleMicroTask=function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))},e.prototype.scheduleMacroTask=function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))},e.prototype.scheduleEventTask=function(t,e,n,r,o){return this.scheduleTask(new l(A,t,e,n,r,o))},e.prototype.cancelTask=function(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");t._transitionTo(E,S,k);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(x,E),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(_,E),t.runCount=0,t},e.prototype._updateTaskCount=function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t};this.hasTask(this.zone,i)}},t}(),l=function(){function e(n,r,o,i,a,u){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=u,!o)throw new Error("callback is not defined");this.callback=o;var c=this;n===A&&i&&i.useG?this.invoke=e.invokeTask:this.invoke=function(){return e.invokeTask.call(t,c,this,arguments)}}return e.invokeTask=function(t,e,n){t||(t=this),C++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==C&&m(),C--}},Object.defineProperty(e.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),e.prototype.cancelScheduleRequest=function(){this._transitionTo(_,w)},e.prototype._transitionTo=function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+t+"', expecting state '"+e+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=t,t==_&&(this._zoneDelegates=null)},e.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)},e.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}},e}(),p=i("setTimeout"),h=i("Promise"),d=i("then"),v=[],y=!1;function g(e){if(0===C&&0===v.length)if(c||t[h]&&(c=t[h].resolve(0)),c){var n=c[d];n||(n=c.then),n.call(c,m)}else t[p](m,0);e&&v.push(e)}function m(){if(!y){for(y=!0;v.length;){var t=v;v=[];for(var e=0;e=0;n--)"function"==typeof t[n]&&(t[n]=h(t[n],e+"_"+n));return t}function S(t){return!t||!1!==t.writable&&!("function"==typeof t.get&&void 0===t.set)}var k="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,E=!("nw"in m)&&void 0!==m.process&&"[object process]"==={}.toString.call(m.process),x=!E&&!k&&!(!y||!g.HTMLElement),T=void 0!==m.process&&"[object process]"==={}.toString.call(m.process)&&!k&&!(!y||!g.HTMLElement),O={},A=function(t){if(t=t||m.event){var e=O[t.type];e||(e=O[t.type]=v("ON_PROPERTY"+t.type));var n,r=this||t.target||m,o=r[e];if(x&&r===g&&"error"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function P(n,r,o){var i=t(n,r);if(!i&&o){var a=t(o,r);a&&(i={enumerable:!0,configurable:!0})}if(i&&i.configurable){var u=v("on"+r+"patched");if(!n.hasOwnProperty(u)||!n[u]){delete i.writable,delete i.value;var c=i.get,s=i.set,f=r.substr(2),l=O[f];l||(l=O[f]=v("ON_PROPERTY"+f)),i.set=function(t){var e=this;if(e||n!==m||(e=m),e){var r=e[l];r&&e.removeEventListener(f,A),s&&s.apply(e,_),"function"==typeof t?(e[l]=t,e.addEventListener(f,A,!1)):e[l]=null}},i.get=function(){var t=this;if(t||n!==m||(t=m),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),"function"==typeof t[b]&&t.removeAttribute(r),o}return null},e(n,r,i),n[u]=!0}}}function M(t,e,n){if(e)for(var r=0;r=0&&"function"==typeof r[i.cbIdx]?d(i.name,r[i.cbIdx],i,o):t.apply(e,r)}})}function R(t,e){t[v("OriginalDelegate")]=e}var N=!1,L=!1;function Z(){if(N)return L;N=!0;try{var t=g.navigator.userAgent;-1===t.indexOf("MSIE ")&&-1===t.indexOf("Trident/")&&-1===t.indexOf("Edge/")||(L=!0)}catch(e){}return L} -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */Zone.__load_patch("toString",function(t){var e=Function.prototype.toString,n=v("OriginalDelegate"),r=v("Promise"),o=v("Error"),i=function(){if("function"==typeof this){var i=this[n];if(i)return"function"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var u=t[o];if(u)return e.call(u)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?"[object Promise]":a.call(this)}}); -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -var U=!1;if("undefined"!=typeof window)try{var z=Object.defineProperty({},"passive",{get:function(){U=!0}});window.addEventListener("test",z,z),window.removeEventListener("test",z,z)}catch(Tt){U=!1}var B={useG:!0},H={},W={},K=new RegExp("^"+p+"(\\w+)(true|false)$"),G=v("propagationStopped");function J(t,e){var n=(e?e(t):t)+l,r=(e?e(t):t)+f,o=p+n,i=p+r;H[t]={},H[t][l]=o,H[t][f]=i}function V(t,e,r){var o=r&&r.add||a,i=r&&r.rm||u,c=r&&r.listeners||"eventListeners",s=r&&r.rmAll||"removeAllListeners",h=v(o),d="."+o+":",y="prependListener",g="."+y+":",m=function(t,e,n){if(!t.isRemoved){var r=t.callback;"object"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;if(o&&"object"==typeof o&&o.once){var a=t.originalDelegate?t.originalDelegate:t.callback;e[i].call(e,n.type,a,o)}}},b=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[H[e.type][l]];if(r)if(1===r.length)m(r[0],n,e);else for(var o=r.slice(),i=0;i1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(c,"onmessage");return s&&!1===s.configurable?(a=t.ObjectCreate(c),u=c,[r,o,"send","close"].forEach(function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var u=Zone.__symbol__("ON_PROPERTY"+i);c[u]=a[u]}}return c[e].apply(c,n)}})):a=c,t.patchOnProperties(a,["close","error","message","open"],u),a};var a=e.WebSocket;for(var u in i)a[u]=i[u]}(t,e),Zone[t.symbol("patchEvents")]=!0}}Zone.__load_patch("util",function(n,r,c){c.patchOnProperties=M,c.patchMethod=F,c.bindArguments=w,c.patchMacroTask=I;var s=r.__symbol__("BLACK_LISTED_EVENTS"),d=r.__symbol__("UNPATCHED_EVENTS");n[d]&&(n[s]=n[d]),n[s]&&(r[s]=r[d]=n[s]),c.patchEventPrototype=Y,c.patchEventTarget=V,c.isIEOrEdge=Z,c.ObjectDefineProperty=e,c.ObjectGetOwnPropertyDescriptor=t,c.ObjectCreate=o,c.ArraySlice=i,c.patchClass=D,c.wrapWithCurrentZone=h,c.filterProperties=ht,c.attachOriginToPatched=R,c._redefineProperty=Object.defineProperty,c.patchCallbacks=X,c.getGlobalObjects=function(){return{globalSources:W,zoneSymbolEventNames:H,eventNames:pt,isBrowser:x,isMix:T,isNode:E,TRUE_STR:f,FALSE_STR:l,ZONE_SYMBOL_PREFIX:p,ADD_EVENT_LISTENER_STR:a,REMOVE_EVENT_LISTENER_STR:u}}}), -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function(t){var e,n=t.__Zone_symbol_prefix||"__zone_symbol__";t[(e="legacyPatch",n+e)]=function(){var e=t.Zone;e.__load_patch("defineProperty",function(t,e,n){n._redefineProperty=gt,yt()}),e.__load_patch("registerElement",function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&"registerElement"in t.document&&e.patchCallbacks(e,document,"Document","registerElement",["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"])} -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */(t,n)}),e.__load_patch("EventTargetLegacy",function(t,e,n){wt(t,n),St(n,t)})}}("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:{}); -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -var kt=v("zoneTask");function Et(t,e,n,r){var o=null,i=null;n+=r;var a={};function u(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||("number"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[kt]=null))}},n.handleId=o.apply(t,n.args),e}function c(t){return i(t.data.handleId)}o=F(t,e+=r,function(n){return function(o,i){if("function"==typeof i[0]){var s={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?i[1]||0:void 0,args:i},f=d(e,i[0],s,u,c);if(!f)return f;var l=f.data.handleId;return"number"==typeof l?a[l]=f:l&&(l[kt]=f),l&&l.ref&&l.unref&&"function"==typeof l.ref&&"function"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),"number"==typeof l||l?l:f}return n.apply(t,i)}}),i=F(t,n,function(e){return function(n,r){var o,i=r[0];"number"==typeof i?o=a[i]:(o=i&&i[kt])||(o=i),o&&"string"==typeof o.type?"notScheduled"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&("number"==typeof i?delete a[i]:i&&(i[kt]=null),o.zone.cancelTask(o)):e.apply(t,r)}})} -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function xt(t,e){if(!Zone[e.symbol("patchEventTarget")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,c=0;c0){var o=t.invoke;t.invoke=function(){for(var n=a[e.__symbol__("loadfalse")],i=0;i-1};function a(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function u(t){return"string"!=typeof t&&(t=String(t)),t}function c(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return r.iterable&&(e[Symbol.iterator]=function(){return e}),e}function s(t){this.map={},t instanceof s?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function f(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function l(t){return new Promise(function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}})}function p(t){var e=new FileReader,n=l(e);return e.readAsArrayBuffer(t),n}function h(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function d(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:r.blob&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:r.formData&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:r.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():r.arrayBuffer&&r.blob&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=h(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):r.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(t)||i(t))?this._bodyArrayBuffer=h(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},r.blob&&(this.blob=function(){var t=f(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(p)}),this.text=function(){var t,e,n,r=f(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,n=l(e),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?r:n),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function g(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}}),e}function m(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new s(e.headers),this.url=e.url||"",this._initBody(t)}y.prototype.clone=function(){return new y(this,{body:this._bodyInit})},d.call(y.prototype),d.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new s(this.headers),url:this.url})},m.error=function(){var t=new m(null,{status:0,statusText:""});return t.type="error",t};var b=[301,302,303,307,308];m.redirect=function(t,e){if(-1===b.indexOf(e))throw new RangeError("Invalid status code");return new m(null,{status:e,headers:{location:t}})};var _=self.DOMException;try{new _}catch(S){(_=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),_.prototype.constructor=_}function w(t,e){return new Promise(function(n,o){var i=new y(t,e);if(i.signal&&i.signal.aborted)return o(new _("Aborted","AbortError"));var a=new XMLHttpRequest;function u(){a.abort()}a.onload=function(){var t,e,r={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||"",e=new s,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}}),e)};r.url="responseURL"in a?a.responseURL:r.headers.get("X-Request-URL");var o="response"in a?a.response:a.responseText;n(new m(o,r))},a.onerror=function(){o(new TypeError("Network request failed"))},a.ontimeout=function(){o(new TypeError("Network request failed"))},a.onabort=function(){o(new _("Aborted","AbortError"))},a.open(i.method,i.url,!0),"include"===i.credentials?a.withCredentials=!0:"omit"===i.credentials&&(a.withCredentials=!1),"responseType"in a&&r.blob&&(a.responseType="blob"),i.headers.forEach(function(t,e){a.setRequestHeader(e,t)}),i.signal&&(i.signal.addEventListener("abort",u),a.onreadystatechange=function(){4===a.readyState&&i.signal.removeEventListener("abort",u)}),a.send(void 0===i._bodyInit?null:i._bodyInit)})}w.polyfill=!0,self.fetch||(self.fetch=w,self.Headers=s,self.Request=y,self.Response=m)},function(t,e,n){var r,o; -/** - * @file Web Cryptography API shim - * @author Artem S Vybornov - * @license MIT - */ -/** - * @file Web Cryptography API shim - * @author Artem S Vybornov - * @license MIT - */ -o="undefined"!=typeof self?self:this,void 0===(r=function(){return function(t){"use strict";if("function"!=typeof Promise)throw"Promise support required";var e=t.crypto||t.msCrypto;if(e){var n=e.subtle||e.webkitSubtle;if(n){var r=t.Crypto||e.constructor||Object,o=t.SubtleCrypto||n.constructor||Object,i=(t.CryptoKey||t.Key||Object,t.navigator.userAgent.indexOf("Edge/")>-1),a=!!t.msCrypto&&!i,u=!e.subtle&&!!e.webkitSubtle;if(a||u){var c={KoZIhvcNAQEB:"1.2.840.113549.1.1.1"},s={"1.2.840.113549.1.1.1":"KoZIhvcNAQEB"};if(["generateKey","importKey","unwrapKey"].forEach(function(t){var r=n[t];n[t]=function(o,i,c){var s,f,b,k,E,x=[].slice.call(arguments);switch(t){case"generateKey":s=v(o),f=i,b=c;break;case"importKey":s=v(c),f=x[3],b=x[4],"jwk"===o&&((i=g(i)).alg||(i.alg=y(s)),i.key_ops||(i.key_ops="oct"!==i.kty?"d"in i?b.filter(S):b.filter(w):b.slice()),x[1]=(E=g(i),a&&(E.extractable=E.ext,delete E.ext),h(unescape(encodeURIComponent(JSON.stringify(E)))).buffer));break;case"unwrapKey":s=x[4],f=x[5],b=x[6],x[2]=c._key}if("generateKey"===t&&"HMAC"===s.name&&s.hash)return s.length=s.length||{"SHA-1":512,"SHA-256":512,"SHA-384":1024,"SHA-512":1024}[s.hash.name],n.importKey("raw",e.getRandomValues(new Uint8Array(s.length+7>>3)),s,f,b);if(u&&"generateKey"===t&&"RSASSA-PKCS1-v1_5"===s.name&&(!s.modulusLength||s.modulusLength>=2048))return(o=v(o)).name="RSAES-PKCS1-v1_5",delete o.hash,n.generateKey(o,!0,["encrypt","decrypt"]).then(function(t){return Promise.all([n.exportKey("jwk",t.publicKey),n.exportKey("jwk",t.privateKey)])}).then(function(t){return t[0].alg=t[1].alg=y(s),t[0].key_ops=b.filter(w),t[1].key_ops=b.filter(S),Promise.all([n.importKey("jwk",t[0],s,!0,t[0].key_ops),n.importKey("jwk",t[1],s,f,t[1].key_ops)])}).then(function(t){return{publicKey:t[0],privateKey:t[1]}});if((u||a&&"SHA-1"===(s.hash||{}).name)&&"importKey"===t&&"jwk"===o&&"HMAC"===s.name&&"oct"===i.kty)return n.importKey("raw",h(p(i.k)),c,x[3],x[4]);if(u&&"importKey"===t&&("spki"===o||"pkcs8"===o))return n.importKey("jwk",function(t){var e=m(t),n=!1;e.length>2&&(n=!0,e.shift());var r={ext:!0};switch(e[0][0]){case"1.2.840.113549.1.1.1":var o=["n","e","d","p","q","dp","dq","qi"],i=m(e[1]);n&&i.shift();for(var a=0;a2&&(r=!0,i.unshift(new Uint8Array([0]))),n[0][0]="1.2.840.113549.1.1.1",e=i;break;default:throw new TypeError("Unsupported key type")}return n.push(new Uint8Array(b(e)).buffer),r?n.unshift(new Uint8Array([0])):n[1]={tag:3,value:n[1]},new Uint8Array(b(n)).buffer}(g(t))})),c}}),["encrypt","decrypt","sign","verify"].forEach(function(t){var e=n[t];n[t]=function(r,o,i,u){if(a&&(!i.byteLength||u&&!u.byteLength))throw new Error("Empy input is not allowed");var c,s=[].slice.call(arguments),f=v(r);if(a&&"decrypt"===t&&"AES-GCM"===f.name){var l=r.tagLength>>3;s[2]=(i.buffer||i).slice(0,i.byteLength-l),r.tag=(i.buffer||i).slice(i.byteLength-l)}s[1]=o._key;try{c=e.apply(n,s)}catch(p){return Promise.reject(p)}return a&&(c=new Promise(function(e,n){c.onabort=c.onerror=function(t){n(t)},c.oncomplete=function(n){if(n=n.target.result,"encrypt"===t&&n instanceof AesGcmEncryptResult){var r=n.ciphertext,o=n.tag;(n=new Uint8Array(r.byteLength+o.byteLength)).set(new Uint8Array(r),0),n.set(new Uint8Array(o),r.byteLength),n=n.buffer}e(n)}})),c}}),a){var f=n.digest;n.digest=function(t,e){if(!e.byteLength)throw new Error("Empy input is not allowed");var r;try{r=f.call(n,t,e)}catch(o){return Promise.reject(o)}return r=new Promise(function(t,e){r.onabort=r.onerror=function(t){e(t)},r.oncomplete=function(e){t(e.target.result)}})},t.crypto=Object.create(e,{getRandomValues:{value:function(t){return e.getRandomValues(t)}},subtle:{value:n}}),t.CryptoKey=_}u&&(e.subtle=n,t.Crypto=r,t.SubtleCrypto=o,t.CryptoKey=_)}}}function l(t){return btoa(t).replace(/\=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")}function p(t){return t=(t+="===").slice(0,-t.length%4),atob(t.replace(/-/g,"+").replace(/_/g,"/"))}function h(t){for(var e=new Uint8Array(t.length),n=0;nt.length)throw new RangeError("Malformed DER");var n,r=t[e.pos++],o=t[e.pos++];if(o>=128){if(o&=127,e.end-e.pos=128){var u=r,r=4;for(e.splice(o,0,u>>24&255,u>>16&255,u>>8&255,255&u);r>1&&!(u>>24);)u<<=8,r--;r<4&&e.splice(o,4-r),r|=128}return e.splice(o-2,2,n,r),e}function _(t,e,n,r){Object.defineProperties(this,{_key:{value:t},type:{value:t.type,enumerable:!0},extractable:{value:void 0===n?t.extractable:n,enumerable:!0},algorithm:{value:void 0===e?t.algorithm:e,enumerable:!0},usages:{value:void 0===r?t.usages:r,enumerable:!0}})}function w(t){return"verify"===t||"encrypt"===t||"wrapKey"===t}function S(t){return"sign"===t||"decrypt"===t||"unwrapKey"===t}}(o)}.apply(e,[]))||(t.exports=r)},function(t,e,n){t.exports=function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";n(84);var r=n(41),o=function(t){return t&&t.__esModule?t:{default:t}}(r),i=function(){o.default.addPickerToOtherInputs(),o.default.supportsDateInput()||o.default.addPickerToDateInputs()};i(),document.addEventListener("DOMContentLoaded",function(){i()}),document.querySelector("body").addEventListener("mousedown",function(){i()})},function(t,e,n){t.exports=!n(11)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)("wks"),o=n(15),i=n(2).Symbol,a="function"==typeof i,u=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))};u.store=r},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u="prototype",c=function(t,e,n){var s,f,l,p=t&c.F,h=t&c.G,d=t&c.S,v=t&c.P,y=t&c.B,g=t&c.W,m=h?o:o[e]||(o[e]={}),b=m[u],_=h?r:d?r[e]:(r[e]||{})[u];for(s in h&&(n=e),n)(f=!p&&_&&void 0!==_[s])&&s in m||(l=f?_[s]:n[s],m[s]=h&&"function"!=typeof _[s]?n[s]:y&&f?i(l,r):g&&_[s]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((m.virtual||(m.virtual={}))[s]=l,t&c.R&&b&&!b[s]&&a(b,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)("keys"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(2),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var r=n(45),o=function(t){return t&&t.__esModule?t:{default:t}}(r);e.default=function(){function t(t,e){for(var n=0;ndocument.F=Object<\/script>"),t.close(),s=t.F;r--;)delete s[c][i[r]];return s()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[c]=r(t),n=new u,u[c]=null,n[a]=t):n=s(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,c=0;u>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(38),o=n(17).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)n!=a&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){t.exports=n(6)},function(t,e,n){"use strict";function r(t,e){for(t=String(t),e=e||2;t.length0?"-":"+")+r(100*Math.floor(Math.abs(_)/60)+Math.abs(_)%60,4),S:["th","st","nd","rd"][p%10>3?0:(p%100-p%10!=10)*p%10],W:w,N:S};return a.replace(t,function(t){return t in k?k[t]:t.slice(1,t.length-1)})}}();u.masks={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},u.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]},e.default=u},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(44),i=r(o),a=n(28),u=r(a),c=n(29),s=r(c),f=n(43),l=r(f),p=n(42),h=r(p),d=n(40),v=r(d),y=function(){function t(e){var n=this;(0,u.default)(this,t),this.element=e,this.element.setAttribute("data-has-picker",""),this.locale=this.element.getAttribute("lang")||document.body.getAttribute("lang")||"en",this.format=this.element.getAttribute("date-format")||document.body.getAttribute("date-format")||this.element.getAttribute("data-date-format")||document.body.getAttribute("data-date-format")||"yyyy-mm-dd",this.localeText=this.getLocaleText(),(0,i.default)(this.element,{valueAsDate:{get:function(){if(!n.element.value)return null;var t=n.format||"yyyy-mm-dd",e=n.element.value.match(/(\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,function(t){o[t]=r++}),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0,v.default)(t,n.format)}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t)}}});var r=function(t){var e=n.element;e.locale=n.localeText,l.default.attachTo(e)};this.element.addEventListener("focus",r),this.element.addEventListener("mouseup",r),this.element.addEventListener("keydown",function(t){var e=new Date;switch(t.keyCode){case 9:case 27:l.default.hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,l.default.pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,l.default.pingInput())}l.default.sync()}),this.element.addEventListener("keyup",function(t){l.default.sync()})}return(0,s.default)(t,[{key:"getLocaleText",value:function(){var t=this.locale.toLowerCase();for(var e in h.default){var n=e.split("_");if(n.map(function(t){return t.toLowerCase()}),~n.indexOf(t)||~n.indexOf(t.substr(0,2)))return h.default[e]}}}],[{key:"supportsDateInput",value:function(){var t=document.createElement("input");t.setAttribute("type","date");var e="not-a-date";return t.setAttribute("value",e),!(t.value===e)}},{key:"addPickerToDateInputs",value:function(){var e=document.querySelectorAll('input[type="date"]:not([data-has-picker])'),n=e.length;if(!n)return!1;for(var r=0;r"],n=0,r=this.locale.days.length;n'+this.locale.days[n]+"");this.daysHead.innerHTML=e.join(""),t.createRangeSelect(this.month,0,11,this.locale.months)}},{key:"refreshDaysMatrix",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],c=0;c":"")+"\n \n "),c+1<=r)u.push("");else{var s=c+1-r,f=a&&i.getDate()===s;u.push("\n "+s+"\n ")}this.days.innerHTML=u.join("")}},{key:"pingInput",value:function(){var t=void 0,e=void 0;try{t=new Event("input"),e=new Event("change")}catch(n){(t=document.createEvent("KeyboardEvent")).initEvent("input",!0,!1),(e=document.createEvent("KeyboardEvent")).initEvent("change",!0,!1)}this.input.dispatchEvent(t),this.input.dispatchEvent(e)}}],[{key:"createRangeSelect",value:function(t,e,n,r){t.innerHTML="";for(var o=e;o<=n;++o){var i=document.createElement("option");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o}return t}},{key:"absoluteDate",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new c,e.default=window.thePicker},function(t,e,n){t.exports={default:n(49),__esModule:!0}},function(t,e,n){t.exports={default:n(50),__esModule:!0}},function(t,e,n){t.exports={default:n(51),__esModule:!0}},function(t,e,n){t.exports={default:n(52),__esModule:!0}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(47),i=r(o),a=n(46),u=r(a),c="function"==typeof u.default&&"symbol"==typeof i.default?function(t){return typeof t}:function(t){return t&&"function"==typeof u.default&&t.constructor===u.default?"symbol":typeof t};e.default="function"==typeof u.default&&"symbol"===c(i.default)?function(t){return void 0===t?"undefined":c(t)}:function(t){return t&&"function"==typeof u.default&&t.constructor===u.default?"symbol":void 0===t?"undefined":c(t)}},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)}},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol},function(t,e,n){n(76),n(80),t.exports=n(27).f("iterator")},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,c=r(e),s=o(c.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),c=i.f,s=0;u.length>s;)c.call(t,a=u[s++])&&e.push(a);return e}},function(t,e,n){t.exports=n(2).document&&document.documentElement},function(t,e,n){var r=n(30);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,c=0;u>c;)if(i[n=a[c++]]===e)return n}},function(t,e,n){var r=n(15)("meta"),o=n(12),i=n(3),a=n(4).f,u=0,c=Object.isExtensible||function(){return!0},s=!n(11)(function(){return c(Object.preventExtensions({}))}),f=function(t){a(t,r,{value:{i:"O"+ ++u,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";f(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;f(t)}return t[r].w},onFreeze:function(t){return s&&l.NEED&&c(t)&&!i(t,r)&&f(t),t}}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),c=n(32),s=Object.getOwnPropertyDescriptor;e.f=n(1)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(71),i=n(22)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperties:n(35)})},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperty:n(4).f})},function(t,e){},function(t,e,n){"use strict";var r=n(68)(!0);n(33)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),c=n(64).KEY,s=n(11),f=n(23),l=n(21),p=n(15),h=n(7),d=n(27),v=n(26),y=n(63),g=n(57),m=n(60),b=n(9),_=n(5),w=n(25),S=n(14),k=n(34),E=n(66),x=n(65),T=n(4),O=n(13),A=x.f,P=T.f,M=E.f,j=r.Symbol,D=r.JSON,C=D&&D.stringify,F="prototype",I=h("_hidden"),R=h("toPrimitive"),N={}.propertyIsEnumerable,L=f("symbol-registry"),Z=f("symbols"),U=f("op-symbols"),z=Object[F],B="function"==typeof j,H=r.QObject,W=!H||!H[F]||!H[F].findChild,K=i&&s(function(){return 7!=k(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(z,e);r&&delete z[e],P(t,e,n),r&&t!==z&&P(z,e,r)}:P,G=function(t){var e=Z[t]=k(j[F]);return e._k=t,e},J=B&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},V=function(t,e,n){return t===z&&V(U,e,n),b(t),e=w(e,!0),b(n),o(Z,e)?(n.enumerable?(o(t,I)&&t[I][e]&&(t[I][e]=!1),n=k(n,{enumerable:S(0,!1)})):(o(t,I)||P(t,I,S(1,{})),t[I][e]=!0),K(t,e,n)):P(t,e,n)},q=function(t,e){b(t);for(var n,r=g(e=_(e)),o=0,i=r.length;i>o;)V(t,n=r[o++],e[n]);return t},Y=function(t){var e=N.call(this,t=w(t,!0));return!(this===z&&o(Z,t)&&!o(U,t))&&(!(e||!o(this,t)||!o(Z,t)||o(this,I)&&this[I][t])||e)},X=function(t,e){if(t=_(t),e=w(e,!0),t!==z||!o(Z,e)||o(U,e)){var n=A(t,e);return!n||!o(Z,e)||o(t,I)&&t[I][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=M(_(t)),r=[],i=0;n.length>i;)o(Z,e=n[i++])||e==I||e==c||r.push(e);return r},Q=function(t){for(var e,n=t===z,r=M(n?U:_(t)),i=[],a=0;r.length>a;)!o(Z,e=r[a++])||n&&!o(z,e)||i.push(Z[e]);return i};B||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(U,n),o(this,I)&&o(this[I],t)&&(this[I][t]=!1),K(this,t,S(1,n))};return i&&W&&K(z,t,{configurable:!0,set:e}),G(t)})[F],"toString",function(){return this._k}),x.f=X,T.f=V,n(36).f=E.f=$,n(20).f=Y,n(37).f=Q,i&&!n(19)&&u(z,"propertyIsEnumerable",Y,!0),d.f=function(t){return G(h(t))}),a(a.G+a.W+a.F*!B,{Symbol:j});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)h(tt[et++]);for(var tt=O(h.store),et=0;tt.length>et;)v(tt[et++]);a(a.S+a.F*!B,"Symbol",{for:function(t){return o(L,t+="")?L[t]:L[t]=j(t)},keyFor:function(t){if(J(t))return y(L,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!B,"Object",{create:function(t,e){return void 0===e?k(t):q(k(t),e)},defineProperty:V,defineProperties:q,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Q}),D&&a(a.S+a.F*(!B||s(function(){var t=j();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!J(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return"function"==typeof(e=r[1])&&(n=e),!n&&m(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!J(e))return e}),r[1]=e,C.apply(D,r)}}}),j[F][R]||n(6)(j[F],R,j[F].valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){n(26)("asyncIterator")},function(t,e,n){n(26)("observable")},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)("toStringTag"),u=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],c=0;c<5;c++){var s=u[c],f=r[s],l=f&&f.prototype;l&&!l[a]&&o(l,a,s),i[s]=i.Array}},function(t,e,n){(t.exports=n(82)()).push([t.id,"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}",""])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&g.splice(e,1)}function u(t){var e=document.createElement("style");return e.type="text/css",i(t,e),e}function c(t){var e=document.createElement("link");return e.rel="stylesheet",i(t,e),e}function s(t,e){var n,r,o;if(e.singleton){var i=y++;n=v||(v=u(e)),r=f.bind(null,n,i,!1),o=f.bind(null,n,i,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),r=function(t,e){var n=e.css,r=e.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=u(e),r=function(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute("media",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){a(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}function f(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=m(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}var l={},p=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}},h=p(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),d=p(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,y=0,g=[];t.exports=function(t,e){void 0===(e=e||{}).singleton&&(e.singleton=h()),void 0===e.insertAt&&(e.insertAt="bottom");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var core = module.exports = { version: '2.6.2' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = false;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","module.exports = {};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","exports.f = {}.propertyIsEnumerable;\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('./_set-species')('Array');\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\n\n// eslint-disable-next-line no-empty\nvar SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })();\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? 0xffffffff : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","/* tslint:disable */\nimport 'core-js/es6';\nimport 'core-js/es7/reflect';\nrequire('zone.js/dist/zone');\n\n// IE11 fix, ref: https://github.com/angular/angular/issues/24769\nif (!Element.prototype.matches && (Element.prototype as any).msMatchesSelector) {\n Element.prototype.matches = (Element.prototype as any).msMatchesSelector;\n}\n\nif (process.env.ENV === 'production') {\n // Production\n} else {\n // Development and test\n Error['stackTraceLimit'] = Infinity;\n require('zone.js/dist/long-stack-trace-zone');\n}\n\n// Other polyfills\nrequire('whatwg-fetch');\nrequire('webcrypto-shim');\nrequire('date-input-polyfill');\n/* tslint:enable */\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\nrequire('../modules/es6.function.bind');\nrequire('../modules/es6.function.name');\nrequire('../modules/es6.function.has-instance');\nrequire('../modules/es6.parse-int');\nrequire('../modules/es6.parse-float');\nrequire('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nrequire('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nrequire('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.date.now');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-string');\nrequire('../modules/es6.date.to-primitive');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nrequire('../modules/es6.regexp.constructor');\nrequire('../modules/es6.regexp.exec');\nrequire('../modules/es6.regexp.to-string');\nrequire('../modules/es6.regexp.flags');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nrequire('../modules/es6.promise');\nrequire('../modules/es6.map');\nrequire('../modules/es6.set');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es6.typed.array-buffer');\nrequire('../modules/es6.typed.data-view');\nrequire('../modules/es6.typed.int8-array');\nrequire('../modules/es6.typed.uint8-array');\nrequire('../modules/es6.typed.uint8-clamped-array');\nrequire('../modules/es6.typed.int16-array');\nrequire('../modules/es6.typed.uint16-array');\nrequire('../modules/es6.typed.int32-array');\nrequire('../modules/es6.typed.uint32-array');\nrequire('../modules/es6.typed.float32-array');\nrequire('../modules/es6.typed.float64-array');\nrequire('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core');\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","/**\n* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes\n* (c) 2010-2020 Google LLC. https://angular.io/\n* License: MIT\n*/\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}((function () {\n 'use strict';\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var Zone$1 = (function (global) {\n var performance = global['performance'];\n function mark(name) { performance && performance['mark'] && performance['mark'](name); }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n var symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n var checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () { return _currentZoneFrame.zone; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () { return _currentTask; },\n enumerable: true,\n configurable: true\n });\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () { return this._parent; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () { return this._name; },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this.name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n return Zone;\n }());\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) { return delegate.scheduleTask(target, task); },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS =\n zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt = zoneSpec &&\n (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone = zoneSpec &&\n (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ?\n this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () { return this._zone; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () { return this._state; },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () { this._transitionTo(notScheduled, scheduling); };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ? ' or \\'' + fromState2 + '\\'' : '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n patchMacroTask: function () { return noop; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: function () { return noop; },\n isIEOrEdge: function () { return false; },\n getGlobalObjects: function () { return undefined; },\n ObjectDefineProperty: function () { return noop; },\n ObjectGetOwnPropertyDescriptor: function () { return undefined; },\n ObjectCreate: function () { return undefined; },\n ArraySlice: function () { return []; },\n patchClass: function () { return noop; },\n wrapWithCurrentZone: function () { return noop; },\n filterProperties: function () { return []; },\n attachOriginToPatched: function () { return noop; },\n _redefineProperty: function () { return noop; },\n patchCallbacks: function () { return noop; }\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () { throw uncaughtPromiseError; });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) { return value && value.then; }\n function forwardResolution(value) { return value; }\n function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () { resolvePromise(promise, false, err); })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () { resolvePromise(promise, false, err); })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n var uncaughtPromiseError = value;\n if (!isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // and the rejected value is an Error object,\n // use the value instead of wrapping it.\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var noop = function () { };\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () { return ZONE_AWARE_PROMISE_TO_STRING; };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) { resolve(value); }\n function onReject(error) { reject(error); }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) { return ZoneAwarePromise.allWithCallback(values); };\n ZoneAwarePromise.allSettled = function (values) {\n var P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: function (value) { return ({ status: 'fulfilled', value: value }); },\n errorCallback: function (err) { return ({ status: 'rejected', reason: err }); }\n });\n };\n ZoneAwarePromise.allWithCallback = function (values, callback) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_2 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n try {\n value.then(function (value) {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, function (err) {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n _loop_2(value);\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.toStringTag, {\n get: function () { return 'Promise'; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.species, {\n get: function () { return ZoneAwarePromise; },\n enumerable: true,\n configurable: true\n });\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) { originalThen.call(_this, resolve, reject); });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global[api.symbol('fetch')] = fetch_1;\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n /// \n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n var ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n var ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n var ObjectCreate = Object.create;\n /** Array.prototype.slice */\n var ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n var ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n var REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n var ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n var TRUE_STR = 'true';\n /** false string const */\n var FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n var ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n var zoneSymbol = Zone.__symbol__;\n var isWindowExists = typeof window !== 'undefined';\n var internalWindow = isWindowExists ? window : undefined;\n var _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\n var REMOVE_ATTRIBUTE = 'removeAttribute';\n var NULL_ON_PROP_VALUE = [null];\n function bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_3 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_3(i);\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n var isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\n var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n var zoneSymbolEventNames = {};\n var wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n var originalInstanceKey = zoneSymbol('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () { return this[originalInstanceKey][prop]; }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n var symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach(function (symbol) {\n var desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () { return src[symbol]; },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n }\n var shouldCopySymbolProperties = false;\n function patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () { return patchDelegate_1(this, arguments); };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n }\n var isDetectedIEOrEdge = false;\n var ieOrEdge = false;\n function isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n var OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n };\n var zoneSymbolEventNames$1 = {};\n var globalSources = {};\n var EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n var IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\n function prepareEventNames(eventName, eventNameToString) {\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n }\n function patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')];\n var passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n var options = buildEventListenerOptions(arguments[2], passive);\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var once = options && typeof options === 'object' ? options.once : false;\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames$1[eventName];\n }\n var symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var options = arguments[2];\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n var onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n if (!eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n var symbolEventName = zoneSymbolEventNames$1[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames$1[eventName];\n }\n var captureFalseTasks = target[symbolEventName[FALSE_STR]];\n var captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n }\n function patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCallbacks(api, target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = targetName + \".\" + method + \"::\" + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n ];\n var documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n ];\n var windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplayconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n ];\n var htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n ];\n var mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\n var ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n ];\n var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\n var formEventNames = ['autocomplete', 'autocompleteerror'];\n var detailEventNames = ['toggle'];\n var frameEventNames = ['load'];\n var frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\n var marqueeEventNames = ['bounce', 'finish', 'start'];\n var XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n ];\n var IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\n var websocketEventNames = ['close', 'error', 'open', 'message'];\n var workerEventNames = ['error', 'message'];\n var eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow_1 = window;\n var ignoreErrorProperties = isIE ? [{ target: internalWindow_1, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow_1, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow_1));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow_1['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow_1['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow_1['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow_1['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = function () { return ({ globalSources: globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames: eventNames, isBrowser: isBrowser, isMix: isMix, isNode: isNode, TRUE_STR: TRUE_STR,\n FALSE_STR: FALSE_STR, ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR }); };\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\n var zoneSymbol$1;\n var _defineProperty;\n var _getOwnPropertyDescriptor;\n var _create;\n var unconfigurablesKey;\n function propertyPatch() {\n zoneSymbol$1 = Zone.__symbol__;\n _defineProperty = Object[zoneSymbol$1('defineProperty')] = Object.defineProperty;\n _getOwnPropertyDescriptor = Object[zoneSymbol$1('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\n _create = Object.create;\n unconfigurablesKey = zoneSymbol$1('unconfigurables');\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) { Object.defineProperty(obj, prop, props[prop]); });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n }\n function _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n }\n function isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n }\n function rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n }\n function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetLegacyPatch(_global, api) {\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, globalSources = _a.globalSources, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = api.isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n var pointerEventsMap = {\n 'MSPointerCancel': 'pointercancel',\n 'MSPointerDown': 'pointerdown',\n 'MSPointerEnter': 'pointerenter',\n 'MSPointerHover': 'pointerhover',\n 'MSPointerLeave': 'pointerleave',\n 'MSPointerMove': 'pointermove',\n 'MSPointerOut': 'pointerout',\n 'MSPointerOver': 'pointerover',\n 'MSPointerUp': 'pointerup'\n };\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555_ARRAY.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n api.patchEventTarget(_global, apiTypes, {\n vh: checkIEAndCrossContext,\n transferEventName: function (eventName) {\n var pointerEventName = pointerEventsMap[eventName];\n return pointerEventName || eventName;\n }\n });\n Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET];\n return true;\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // we have to patch the instance since the proto is non-configurable\n function apply(api, _global) {\n var _a = api.getGlobalObjects(), ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR;\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n api.patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = api.ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = api.ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function propertyDescriptorLegacyPatch(api, _global) {\n var _a = api.getGlobalObjects(), isNode = _a.isNode, isMix = _a.isMix;\n if (isNode && !isMix) {\n return;\n }\n if (!canPatchViaPropertyDescriptor(api, _global)) {\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents(api);\n api.patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n Zone[api.symbol('patchEvents')] = true;\n }\n }\n function canPatchViaPropertyDescriptor(api, _global) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((isBrowser || isMix) &&\n !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n // try to use onclick to detect whether we can patch via propertyDescriptor\n // because XMLHttpRequest is not available in service worker\n if (desc) {\n api.ObjectDefineProperty(Element.prototype, 'onclick', { enumerable: true, configurable: true, get: function () { return true; } });\n var div = document.createElement('div');\n var result = !!div.onclick;\n api.ObjectDefineProperty(Element.prototype, 'onclick', desc);\n return result;\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { enumerable: true, configurable: true, get: function () { return true; } });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake');\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () { return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1]; },\n set: function (value) { this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value; }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n }\n // Whenever any eventListener fires, we check the eventListener target and all parents\n // for `onwhatever` properties and replace them with zone-bound functions\n // - Chrome (for now)\n function patchViaCapturingAllTheEvents(api) {\n var eventNames = api.getGlobalObjects().eventNames;\n var unboundKey = api.symbol('unbound');\n var _loop_4 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = api.wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_4(i);\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function registerElementPatch(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n (function (_global) {\n var symbolPrefix = _global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n _global[__symbol__('legacyPatch')] = function () {\n var Zone = _global['Zone'];\n Zone.__load_patch('defineProperty', function (global, Zone, api) {\n api._redefineProperty = _redefineProperty;\n propertyPatch();\n });\n Zone.__load_patch('registerElement', function (global, Zone, api) {\n registerElementPatch(global, api);\n });\n Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) {\n eventTargetLegacyPatch(global, api);\n propertyDescriptorLegacyPatch(api, global);\n });\n };\n })(typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {});\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var taskSymbol = zoneSymbol('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) { return clearNative(task.data.handleId); }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCustomElements(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n var EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('legacy', function (global) {\n var legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_2 = blockingMethods[i];\n patchMethod(global, name_2, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', function (global, Zone, api) {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', function (global, Zone, api) {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) { return target[XHR_TASK]; }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n if (loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n });\n Zone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n})));\n","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","/**\n * @file Web Cryptography API shim\n * @author Artem S Vybornov \n * @license MIT\n */\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function () {\n return factory(global);\n });\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports\n module.exports = factory(global);\n } else {\n factory(global);\n }\n}(typeof self !== 'undefined' ? self : this, function (global) {\n 'use strict';\n\n if ( typeof Promise !== 'function' )\n throw \"Promise support required\";\n\n var _crypto = global.crypto || global.msCrypto;\n if ( !_crypto ) return;\n\n var _subtle = _crypto.subtle || _crypto.webkitSubtle;\n if ( !_subtle ) return;\n\n var _Crypto = global.Crypto || _crypto.constructor || Object,\n _SubtleCrypto = global.SubtleCrypto || _subtle.constructor || Object,\n _CryptoKey = global.CryptoKey || global.Key || Object;\n\n var isEdge = global.navigator.userAgent.indexOf('Edge/') > -1;\n var isIE = !!global.msCrypto && !isEdge;\n var isWebkit = !_crypto.subtle && !!_crypto.webkitSubtle;\n if ( !isIE && !isWebkit ) return;\n\n function s2a ( s ) {\n return btoa(s).replace(/\\=+$/, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n\n function a2s ( s ) {\n s += '===', s = s.slice( 0, -s.length % 4 );\n return atob( s.replace(/-/g, '+').replace(/_/g, '/') );\n }\n\n function s2b ( s ) {\n var b = new Uint8Array(s.length);\n for ( var i = 0; i < s.length; i++ ) b[i] = s.charCodeAt(i);\n return b;\n }\n\n function b2s ( b ) {\n if ( b instanceof ArrayBuffer ) b = new Uint8Array(b);\n return String.fromCharCode.apply( String, b );\n }\n\n function alg ( a ) {\n var r = { 'name': (a.name || a || '').toUpperCase().replace('V','v') };\n switch ( r.name ) {\n case 'SHA-1':\n case 'SHA-256':\n case 'SHA-384':\n case 'SHA-512':\n break;\n case 'AES-CBC':\n case 'AES-GCM':\n case 'AES-KW':\n if ( a.length ) r['length'] = a.length;\n break;\n case 'HMAC':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.length ) r['length'] = a.length;\n break;\n case 'RSAES-PKCS1-v1_5':\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n case 'RSASSA-PKCS1-v1_5':\n case 'RSA-OAEP':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n default:\n throw new SyntaxError(\"Bad algorithm name\");\n }\n return r;\n };\n\n function jwkAlg ( a ) {\n return {\n 'HMAC': {\n 'SHA-1': 'HS1',\n 'SHA-256': 'HS256',\n 'SHA-384': 'HS384',\n 'SHA-512': 'HS512',\n },\n 'RSASSA-PKCS1-v1_5': {\n 'SHA-1': 'RS1',\n 'SHA-256': 'RS256',\n 'SHA-384': 'RS384',\n 'SHA-512': 'RS512',\n },\n 'RSAES-PKCS1-v1_5': {\n '': 'RSA1_5',\n },\n 'RSA-OAEP': {\n 'SHA-1': 'RSA-OAEP',\n 'SHA-256': 'RSA-OAEP-256',\n },\n 'AES-KW': {\n '128': 'A128KW',\n '192': 'A192KW',\n '256': 'A256KW',\n },\n 'AES-GCM': {\n '128': 'A128GCM',\n '192': 'A192GCM',\n '256': 'A256GCM',\n },\n 'AES-CBC': {\n '128': 'A128CBC',\n '192': 'A192CBC',\n '256': 'A256CBC',\n },\n }[a.name][ ( a.hash || {} ).name || a.length || '' ];\n }\n\n function b2jwk ( k ) {\n if ( k instanceof ArrayBuffer || k instanceof Uint8Array ) k = JSON.parse( decodeURIComponent( escape( b2s(k) ) ) );\n var jwk = { 'kty': k.kty, 'alg': k.alg, 'ext': k.ext || k.extractable };\n switch ( jwk.kty ) {\n case 'oct':\n jwk.k = k.k;\n case 'RSA':\n [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi', 'oth' ].forEach( function ( x ) { if ( x in k ) jwk[x] = k[x] } );\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2b ( k ) {\n var jwk = b2jwk(k);\n if ( isIE ) jwk['extractable'] = jwk.ext, delete jwk.ext;\n return s2b( unescape( encodeURIComponent( JSON.stringify(jwk) ) ) ).buffer;\n }\n\n function pkcs2jwk ( k ) {\n var info = b2der(k), prv = false;\n if ( info.length > 2 ) prv = true, info.shift(); // remove version from PKCS#8 PrivateKeyInfo structure\n var jwk = { 'ext': true };\n switch ( info[0][0] ) {\n case '1.2.840.113549.1.1.1':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = b2der( info[1] );\n if ( prv ) rsaKey.shift(); // remove version from PKCS#1 RSAPrivateKey structure\n for ( var i = 0; i < rsaKey.length; i++ ) {\n if ( !rsaKey[i][0] ) rsaKey[i] = rsaKey[i].subarray(1);\n jwk[ rsaComp[i] ] = s2a( b2s( rsaKey[i] ) );\n }\n jwk['kty'] = 'RSA';\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2pkcs ( k ) {\n var key, info = [ [ '', null ] ], prv = false;\n switch ( k.kty ) {\n case 'RSA':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = [];\n for ( var i = 0; i < rsaComp.length; i++ ) {\n if ( !( rsaComp[i] in k ) ) break;\n var b = rsaKey[i] = s2b( a2s( k[ rsaComp[i] ] ) );\n if ( b[0] & 0x80 ) rsaKey[i] = new Uint8Array(b.length + 1), rsaKey[i].set( b, 1 );\n }\n if ( rsaKey.length > 2 ) prv = true, rsaKey.unshift( new Uint8Array([0]) ); // add version to PKCS#1 RSAPrivateKey structure\n info[0][0] = '1.2.840.113549.1.1.1';\n key = rsaKey;\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n info.push( new Uint8Array( der2b(key) ).buffer );\n if ( !prv ) info[1] = { 'tag': 0x03, 'value': info[1] };\n else info.unshift( new Uint8Array([0]) ); // add version to PKCS#8 PrivateKeyInfo structure\n return new Uint8Array( der2b(info) ).buffer;\n }\n\n var oid2str = { 'KoZIhvcNAQEB': '1.2.840.113549.1.1.1' },\n str2oid = { '1.2.840.113549.1.1.1': 'KoZIhvcNAQEB' };\n\n function b2der ( buf, ctx ) {\n if ( buf instanceof ArrayBuffer ) buf = new Uint8Array(buf);\n if ( !ctx ) ctx = { pos: 0, end: buf.length };\n\n if ( ctx.end - ctx.pos < 2 || ctx.end > buf.length ) throw new RangeError(\"Malformed DER\");\n\n var tag = buf[ctx.pos++],\n len = buf[ctx.pos++];\n\n if ( len >= 0x80 ) {\n len &= 0x7f;\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n for ( var xlen = 0; len--; ) xlen <<= 8, xlen |= buf[ctx.pos++];\n len = xlen;\n }\n\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n\n var rv;\n\n switch ( tag ) {\n case 0x02: // Universal Primitive INTEGER\n rv = buf.subarray( ctx.pos, ctx.pos += len );\n break;\n case 0x03: // Universal Primitive BIT STRING\n if ( buf[ctx.pos++] ) throw new Error( \"Unsupported bit string\" );\n len--;\n case 0x04: // Universal Primitive OCTET STRING\n rv = new Uint8Array( buf.subarray( ctx.pos, ctx.pos += len ) ).buffer;\n break;\n case 0x05: // Universal Primitive NULL\n rv = null;\n break;\n case 0x06: // Universal Primitive OBJECT IDENTIFIER\n var oid = btoa( b2s( buf.subarray( ctx.pos, ctx.pos += len ) ) );\n if ( !( oid in oid2str ) ) throw new Error( \"Unsupported OBJECT ID \" + oid );\n rv = oid2str[oid];\n break;\n case 0x30: // Universal Constructed SEQUENCE\n rv = [];\n for ( var end = ctx.pos + len; ctx.pos < end; ) rv.push( b2der( buf, ctx ) );\n break;\n default:\n throw new Error( \"Unsupported DER tag 0x\" + tag.toString(16) );\n }\n\n return rv;\n }\n\n function der2b ( val, buf ) {\n if ( !buf ) buf = [];\n\n var tag = 0, len = 0,\n pos = buf.length + 2;\n\n buf.push( 0, 0 ); // placeholder\n\n if ( val instanceof Uint8Array ) { // Universal Primitive INTEGER\n tag = 0x02, len = val.length;\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val instanceof ArrayBuffer ) { // Universal Primitive OCTET STRING\n tag = 0x04, len = val.byteLength, val = new Uint8Array(val);\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val === null ) { // Universal Primitive NULL\n tag = 0x05, len = 0;\n }\n else if ( typeof val === 'string' && val in str2oid ) { // Universal Primitive OBJECT IDENTIFIER\n var oid = s2b( atob( str2oid[val] ) );\n tag = 0x06, len = oid.length;\n for ( var i = 0; i < len; i++ ) buf.push( oid[i] );\n }\n else if ( val instanceof Array ) { // Universal Constructed SEQUENCE\n for ( var i = 0; i < val.length; i++ ) der2b( val[i], buf );\n tag = 0x30, len = buf.length - pos;\n }\n else if ( typeof val === 'object' && val.tag === 0x03 && val.value instanceof ArrayBuffer ) { // Tag hint\n val = new Uint8Array(val.value), tag = 0x03, len = val.byteLength;\n buf.push(0); for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n len++;\n }\n else {\n throw new Error( \"Unsupported DER value \" + val );\n }\n\n if ( len >= 0x80 ) {\n var xlen = len, len = 4;\n buf.splice( pos, 0, (xlen >> 24) & 0xff, (xlen >> 16) & 0xff, (xlen >> 8) & 0xff, xlen & 0xff );\n while ( len > 1 && !(xlen >> 24) ) xlen <<= 8, len--;\n if ( len < 4 ) buf.splice( pos, 4 - len );\n len |= 0x80;\n }\n\n buf.splice( pos - 2, 2, tag, len );\n\n return buf;\n }\n\n function CryptoKey ( key, alg, ext, use ) {\n Object.defineProperties( this, {\n _key: {\n value: key\n },\n type: {\n value: key.type,\n enumerable: true,\n },\n extractable: {\n value: (ext === undefined) ? key.extractable : ext,\n enumerable: true,\n },\n algorithm: {\n value: (alg === undefined) ? key.algorithm : alg,\n enumerable: true,\n },\n usages: {\n value: (use === undefined) ? key.usages : use,\n enumerable: true,\n },\n });\n }\n\n function isPubKeyUse ( u ) {\n return u === 'verify' || u === 'encrypt' || u === 'wrapKey';\n }\n\n function isPrvKeyUse ( u ) {\n return u === 'sign' || u === 'decrypt' || u === 'unwrapKey';\n }\n\n [ 'generateKey', 'importKey', 'unwrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments),\n ka, kx, ku;\n\n switch ( m ) {\n case 'generateKey':\n ka = alg(a), kx = b, ku = c;\n break;\n case 'importKey':\n ka = alg(c), kx = args[3], ku = args[4];\n if ( a === 'jwk' ) {\n b = b2jwk(b);\n if ( !b.alg ) b.alg = jwkAlg(ka);\n if ( !b.key_ops ) b.key_ops = ( b.kty !== 'oct' ) ? ( 'd' in b ) ? ku.filter(isPrvKeyUse) : ku.filter(isPubKeyUse) : ku.slice();\n args[1] = jwk2b(b);\n }\n break;\n case 'unwrapKey':\n ka = args[4], kx = args[5], ku = args[6];\n args[2] = c._key;\n break;\n }\n\n if ( m === 'generateKey' && ka.name === 'HMAC' && ka.hash ) {\n ka.length = ka.length || { 'SHA-1': 512, 'SHA-256': 512, 'SHA-384': 1024, 'SHA-512': 1024 }[ka.hash.name];\n return _subtle.importKey( 'raw', _crypto.getRandomValues( new Uint8Array( (ka.length+7)>>3 ) ), ka, kx, ku );\n }\n\n if ( isWebkit && m === 'generateKey' && ka.name === 'RSASSA-PKCS1-v1_5' && ( !ka.modulusLength || ka.modulusLength >= 2048 ) ) {\n a = alg(a), a.name = 'RSAES-PKCS1-v1_5', delete a.hash;\n return _subtle.generateKey( a, true, [ 'encrypt', 'decrypt' ] )\n .then( function ( k ) {\n return Promise.all([\n _subtle.exportKey( 'jwk', k.publicKey ),\n _subtle.exportKey( 'jwk', k.privateKey ),\n ]);\n })\n .then( function ( keys ) {\n keys[0].alg = keys[1].alg = jwkAlg(ka);\n keys[0].key_ops = ku.filter(isPubKeyUse), keys[1].key_ops = ku.filter(isPrvKeyUse);\n return Promise.all([\n _subtle.importKey( 'jwk', keys[0], ka, true, keys[0].key_ops ),\n _subtle.importKey( 'jwk', keys[1], ka, kx, keys[1].key_ops ),\n ]);\n })\n .then( function ( keys ) {\n return {\n publicKey: keys[0],\n privateKey: keys[1],\n };\n });\n }\n\n if ( ( isWebkit || ( isIE && ( ka.hash || {} ).name === 'SHA-1' ) )\n && m === 'importKey' && a === 'jwk' && ka.name === 'HMAC' && b.kty === 'oct' ) {\n return _subtle.importKey( 'raw', s2b( a2s(b.k) ), c, args[3], args[4] );\n }\n\n if ( isWebkit && m === 'importKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n return _subtle.importKey( 'jwk', pkcs2jwk(b), c, args[3], args[4] );\n }\n\n if ( isIE && m === 'unwrapKey' ) {\n return _subtle.decrypt( args[3], c, b )\n .then( function ( k ) {\n return _subtle.importKey( a, k, args[4], args[5], args[6] );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n op = op.then( function ( k ) {\n if ( ka.name === 'HMAC' ) {\n if ( !ka.length ) ka.length = 8 * k.algorithm.length;\n }\n if ( ka.name.search('RSA') == 0 ) {\n if ( !ka.modulusLength ) ka.modulusLength = (k.publicKey || k).algorithm.modulusLength;\n if ( !ka.publicExponent ) ka.publicExponent = (k.publicKey || k).algorithm.publicExponent;\n }\n if ( k.publicKey && k.privateKey ) {\n k = {\n publicKey: new CryptoKey( k.publicKey, ka, kx, ku.filter(isPubKeyUse) ),\n privateKey: new CryptoKey( k.privateKey, ka, kx, ku.filter(isPrvKeyUse) ),\n };\n }\n else {\n k = new CryptoKey( k, ka, kx, ku );\n }\n return k;\n });\n\n return op;\n }\n });\n\n [ 'exportKey', 'wrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments);\n\n switch ( m ) {\n case 'exportKey':\n args[1] = b._key;\n break;\n case 'wrapKey':\n args[1] = b._key, args[2] = c._key;\n break;\n }\n\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && m === 'exportKey' && a === 'jwk' && b.algorithm.name === 'HMAC' ) {\n args[0] = 'raw';\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n args[0] = 'jwk';\n }\n\n if ( isIE && m === 'wrapKey' ) {\n return _subtle.exportKey( a, b )\n .then( function ( k ) {\n if ( a === 'jwk' ) k = s2b( unescape( encodeURIComponent( JSON.stringify( b2jwk(k) ) ) ) );\n return _subtle.encrypt( args[3], c, k );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n if ( m === 'exportKey' && a === 'jwk' ) {\n op = op.then( function ( k ) {\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && b.algorithm.name === 'HMAC') {\n return { 'kty': 'oct', 'alg': jwkAlg(b.algorithm), 'key_ops': b.usages.slice(), 'ext': true, 'k': s2a( b2s(k) ) };\n }\n k = b2jwk(k);\n if ( !k.alg ) k['alg'] = jwkAlg(b.algorithm);\n if ( !k.key_ops ) k['key_ops'] = ( b.type === 'public' ) ? b.usages.filter(isPubKeyUse) : ( b.type === 'private' ) ? b.usages.filter(isPrvKeyUse) : b.usages.slice();\n return k;\n });\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n op = op.then( function ( k ) {\n k = jwk2pkcs( b2jwk(k) );\n return k;\n });\n }\n\n return op;\n }\n });\n\n [ 'encrypt', 'decrypt', 'sign', 'verify' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c, d ) {\n if ( isIE && ( !c.byteLength || ( d && !d.byteLength ) ) )\n throw new Error(\"Empy input is not allowed\");\n\n var args = [].slice.call(arguments),\n ka = alg(a);\n\n if ( isIE && m === 'decrypt' && ka.name === 'AES-GCM' ) {\n var tl = a.tagLength >> 3;\n args[2] = (c.buffer || c).slice( 0, c.byteLength - tl ),\n a.tag = (c.buffer || c).slice( c.byteLength - tl );\n }\n\n args[1] = b._key;\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) {\n rej(e);\n };\n\n op.oncomplete = function ( r ) {\n var r = r.target.result;\n\n if ( m === 'encrypt' && r instanceof AesGcmEncryptResult ) {\n var c = r.ciphertext, t = r.tag;\n r = new Uint8Array( c.byteLength + t.byteLength );\n r.set( new Uint8Array(c), 0 );\n r.set( new Uint8Array(t), c.byteLength );\n r = r.buffer;\n }\n\n res(r);\n };\n });\n }\n\n return op;\n }\n });\n\n if ( isIE ) {\n var _digest = _subtle.digest;\n\n _subtle['digest'] = function ( a, b ) {\n if ( !b.byteLength )\n throw new Error(\"Empy input is not allowed\");\n\n var op;\n try {\n op = _digest.call( _subtle, a, b );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n\n return op;\n };\n\n global.crypto = Object.create( _crypto, {\n getRandomValues: { value: function ( a ) { return _crypto.getRandomValues(a) } },\n subtle: { value: _subtle },\n });\n\n global.CryptoKey = CryptoKey;\n }\n\n if ( isWebkit ) {\n _crypto.subtle = _subtle;\n\n global.Crypto = _Crypto;\n global.SubtleCrypto = _SubtleCrypto;\n global.CryptoKey = CryptoKey;\n }\n}));\n","!function(t,e){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var n=e();for(var r in n)(\"object\"==typeof exports?exports:t)[r]=n[r]}}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}n(84);var o=n(41),i=r(o),a=function(){i[\"default\"].addPickerToOtherInputs(),i[\"default\"].supportsDateInput()||i[\"default\"].addPickerToDateInputs()};a(),document.addEventListener(\"DOMContentLoaded\",function(){a()}),document.querySelector(\"body\").addEventListener(\"mousedown\",function(){a()})},function(t,e,n){t.exports=!n(11)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)(\"wks\"),o=n(15),i=n(2).Symbol,a=\"function\"==typeof i,u=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)(\"Symbol.\"+t))};u.store=r},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u=\"prototype\",s=function(t,e,n){var c,l,f,d=t&s.F,p=t&s.G,h=t&s.S,y=t&s.P,m=t&s.B,v=t&s.W,b=p?o:o[e]||(o[e]={}),g=b[u],x=p?r:h?r[e]:(r[e]||{})[u];p&&(n=e);for(c in n)l=!d&&x&&void 0!==x[c],l&&c in b||(f=l?x[c]:n[c],b[c]=p&&\"function\"!=typeof x[c]?n[c]:m&&l?i(f,r):v&&x[c]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(f):y&&\"function\"==typeof f?i(Function.call,f):f,y&&((b.virtual||(b.virtual={}))[c]=f,t&s.R&&g&&!g[c]&&a(g,c,f)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)(\"keys\"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(2),o=\"__core-js_shared__\",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});\"_\"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e){\"use strict\";e.__esModule=!0,e[\"default\"]=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}e.__esModule=!0;var o=n(45),i=r(o);e[\"default\"]=function(){function t(t,e){for(var n=0;n\";for(e.style.display=\"none\",n(58).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(o+\"script\"+a+\"document.F=Object\"+o+\"/script\"+a),t.close(),c=t.F;r--;)delete c[s][i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[s]=r(t),n=new u,u[s]=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,s=0;u>s;)r.f(t,n=a[s++],e[n]);return t}},function(t,e,n){var r=n(38),o=n(17).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)(\"IE_PROTO\");t.exports=function(t,e){var n,u=o(t),s=0,c=[];for(n in u)n!=a&&r(u,n)&&c.push(n);for(;e.length>s;)r(u,n=e[s++])&&(~i(c,n)||c.push(n));return c}},function(t,e,n){t.exports=n(6)},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}function o(t,e){for(t=String(t),e=e||2;t.length0?\"-\":\"+\")+o(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:[\"th\",\"st\",\"nd\",\"rd\"][h%10>3?0:(h%100-h%10!=10)*h%10],W:S,N:O};return s.replace(t,function(t){return t in D?D[t]:t.slice(1,t.length-1)})}}();l.masks={\"default\":\"ddd mmm dd yyyy HH:MM:ss\",shortDate:\"m/d/yy\",mediumDate:\"mmm d, yyyy\",longDate:\"mmmm d, yyyy\",fullDate:\"dddd, mmmm d, yyyy\",shortTime:\"h:MM TT\",mediumTime:\"h:MM:ss TT\",longTime:\"h:MM:ss TT Z\",isoDate:\"yyyy-mm-dd\",isoTime:\"HH:MM:ss\",isoDateTime:\"yyyy-mm-dd'T'HH:MM:sso\",isoUtcDateTime:\"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",expiresHeaderFormat:\"ddd, dd mmm yyyy HH:MM:ss Z\"},l.i18n={dayNames:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},e[\"default\"]=l},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(44),i=r(o),a=n(28),u=r(a),s=n(29),c=r(s),l=n(43),f=r(l),d=n(42),p=r(d),h=n(40),y=r(h),m=function(){function t(e){var n=this;(0,u[\"default\"])(this,t),this.element=e,this.element.setAttribute(\"data-has-picker\",\"\"),this.locale=this.element.getAttribute(\"lang\")||document.body.getAttribute(\"lang\")||\"en\",this.format=this.element.getAttribute(\"date-format\")||document.body.getAttribute(\"date-format\")||this.element.getAttribute(\"data-date-format\")||document.body.getAttribute(\"data-date-format\")||\"yyyy-mm-dd\",this.localeText=this.getLocaleText(),(0,i[\"default\"])(this.element,{valueAsDate:{get:function(){if(!n.element.value)return null;var t=n.format||\"yyyy-mm-dd\",e=n.element.value.match(/(\\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,function(t){o[t]=r++}),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0,y[\"default\"])(t,n.format)}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t)}}});var r=function(t){var e=n.element;e.locale=n.localeText,f[\"default\"].attachTo(e)};this.element.addEventListener(\"focus\",r),this.element.addEventListener(\"mouseup\",r),this.element.addEventListener(\"keydown\",function(t){var e=new Date;switch(t.keyCode){case 9:case 27:f[\"default\"].hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,f[\"default\"].pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,f[\"default\"].pingInput())}f[\"default\"].sync()}),this.element.addEventListener(\"keyup\",function(t){f[\"default\"].sync()})}return(0,c[\"default\"])(t,[{key:\"getLocaleText\",value:function(){var t=this.locale.toLowerCase();for(var e in p[\"default\"]){var n=e.split(\"_\");if(n.map(function(t){return t.toLowerCase()}),~n.indexOf(t)||~n.indexOf(t.substr(0,2)))return p[\"default\"][e]}}}],[{key:\"supportsDateInput\",value:function(){var t=document.createElement(\"input\");t.setAttribute(\"type\",\"date\");var e=\"not-a-date\";return t.setAttribute(\"value\",e),!(t.value===e)}},{key:\"addPickerToDateInputs\",value:function(){var e=document.querySelectorAll('input[type=\"date\"]:not([data-has-picker])'),n=e.length;if(!n)return!1;for(var r=0;r\"],n=0,r=this.locale.days.length;n'+this.locale.days[n]+\"\");this.daysHead.innerHTML=e.join(\"\"),t.createRangeSelect(this.month,0,11,this.locale.months)}},{key:\"refreshDaysMatrix\",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],s=0;s\":\"\")+\"\\n \\n \"),s+1<=r)u.push(\"\");else{var c=s+1-r,l=a&&i.getDate()===c;u.push(\"\\n \"+c+\"\\n \")}this.days.innerHTML=u.join(\"\")}},{key:\"pingInput\",value:function(){var t=void 0,e=void 0;try{t=new Event(\"input\"),e=new Event(\"change\")}catch(n){t=document.createEvent(\"KeyboardEvent\"),t.initEvent(\"input\",!0,!1),e=document.createEvent(\"KeyboardEvent\"),e.initEvent(\"change\",!0,!1)}this.input.dispatchEvent(t),this.input.dispatchEvent(e)}}],[{key:\"createRangeSelect\",value:function(t,e,n,r){t.innerHTML=\"\";for(var o=e;o<=n;++o){var i=document.createElement(\"option\");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o}return t}},{key:\"absoluteDate\",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new s,e[\"default\"]=window.thePicker},function(t,e,n){t.exports={\"default\":n(49),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(50),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(51),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(52),__esModule:!0}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}e.__esModule=!0;var o=n(47),i=r(o),a=n(46),u=r(a),s=\"function\"==typeof u[\"default\"]&&\"symbol\"==typeof i[\"default\"]?function(t){return typeof t}:function(t){return t&&\"function\"==typeof u[\"default\"]&&t.constructor===u[\"default\"]?\"symbol\":typeof t};e[\"default\"]=\"function\"==typeof u[\"default\"]&&\"symbol\"===s(i[\"default\"])?function(t){return\"undefined\"==typeof t?\"undefined\":s(t)}:function(t){return t&&\"function\"==typeof u[\"default\"]&&t.constructor===u[\"default\"]?\"symbol\":\"undefined\"==typeof t?\"undefined\":s(t)}},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)}},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol},function(t,e,n){n(76),n(80),t.exports=n(27).f(\"iterator\")},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,s=r(e),c=o(s.length),l=i(a,c);if(t&&n!=n){for(;c>l;)if(u=s[l++],u!=u)return!0}else for(;c>l;l++)if((t||l in s)&&s[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),s=i.f,c=0;u.length>c;)s.call(t,a=u[c++])&&e.push(a);return e}},function(t,e,n){t.exports=n(2).document&&document.documentElement},function(t,e,n){var r=n(30);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==r(t)?t.split(\"\"):Object(t)}},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},function(t,e,n){\"use strict\";var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)(\"iterator\"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+\" Iterator\")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,s=0;u>s;)if(i[n=a[s++]]===e)return n}},function(t,e,n){var r=n(15)(\"meta\"),o=n(12),i=n(3),a=n(4).f,u=0,s=Object.isExtensible||function(){return!0},c=!n(11)(function(){return s(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:\"O\"+ ++u,w:{}}})},f=function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,r)){if(!s(t))return\"F\";if(!e)return\"E\";l(t)}return t[r].i},d=function(t,e){if(!i(t,r)){if(!s(t))return!0;if(!e)return!1;l(t)}return t[r].w},p=function(t){return c&&h.NEED&&s(t)&&!i(t,r)&&l(t),t},h=t.exports={KEY:r,NEED:!1,fastKey:f,getWeak:d,onFreeze:p}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),s=n(32),c=Object.getOwnPropertyDescriptor;e.f=n(1)?c:function(t,e){if(t=i(t),e=a(e,!0),s)try{return c(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return o(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?u(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(71),i=n(22)(\"IE_PROTO\"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),s=r(n),c=u.length;return s<0||s>=c?t?\"\":void 0:(i=u.charCodeAt(s),i<55296||i>56319||s+1===c||(a=u.charCodeAt(s+1))<56320||a>57343?t?u.charAt(s):i:t?u.slice(s,s+2):(i-55296<<10)+(a-56320)+65536)}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){\"use strict\";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,\"Array\",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):\"keys\"==e?o(0,n):\"values\"==e?o(0,t[n]):o(0,[n,t[n]])},\"values\"),i.Arguments=i.Array,r(\"keys\"),r(\"values\"),r(\"entries\")},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),\"Object\",{defineProperties:n(35)})},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),\"Object\",{defineProperty:n(4).f})},function(t,e){},function(t,e,n){\"use strict\";var r=n(68)(!0);n(33)(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){\"use strict\";var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),s=n(64).KEY,c=n(11),l=n(23),f=n(21),d=n(15),p=n(7),h=n(27),y=n(26),m=n(63),v=n(57),b=n(60),g=n(9),x=n(5),M=n(25),w=n(14),S=n(34),O=n(66),D=n(65),T=n(4),_=n(13),A=D.f,k=T.f,E=O.f,j=r.Symbol,C=r.JSON,N=C&&C.stringify,L=\"prototype\",P=p(\"_hidden\"),F=p(\"toPrimitive\"),J={}.propertyIsEnumerable,H=l(\"symbol-registry\"),I=l(\"symbols\"),Y=l(\"op-symbols\"),R=Object[L],z=\"function\"==typeof j,U=r.QObject,B=!U||!U[L]||!U[L].findChild,W=i&&c(function(){return 7!=S(k({},\"a\",{get:function(){return k(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var r=A(R,e);r&&delete R[e],k(t,e,n),r&&t!==R&&k(R,e,r)}:k,Z=function(t){var e=I[t]=S(j[L]);return e._k=t,e},G=z&&\"symbol\"==typeof j.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof j},K=function(t,e,n){return t===R&&K(Y,e,n),g(t),e=M(e,!0),g(n),o(I,e)?(n.enumerable?(o(t,P)&&t[P][e]&&(t[P][e]=!1),n=S(n,{enumerable:w(0,!1)})):(o(t,P)||k(t,P,w(1,{})),t[P][e]=!0),W(t,e,n)):k(t,e,n)},V=function(t,e){g(t);for(var n,r=v(e=x(e)),o=0,i=r.length;i>o;)K(t,n=r[o++],e[n]);return t},q=function(t,e){return void 0===e?S(t):V(S(t),e)},Q=function(t){var e=J.call(this,t=M(t,!0));return!(this===R&&o(I,t)&&!o(Y,t))&&(!(e||!o(this,t)||!o(I,t)||o(this,P)&&this[P][t])||e)},X=function(t,e){if(t=x(t),e=M(e,!0),t!==R||!o(I,e)||o(Y,e)){var n=A(t,e);return!n||!o(I,e)||o(t,P)&&t[P][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=E(x(t)),r=[],i=0;n.length>i;)o(I,e=n[i++])||e==P||e==s||r.push(e);return r},tt=function(t){for(var e,n=t===R,r=E(n?Y:x(t)),i=[],a=0;r.length>a;)!o(I,e=r[a++])||n&&!o(R,e)||i.push(I[e]);return i};z||(j=function(){if(this instanceof j)throw TypeError(\"Symbol is not a constructor!\");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===R&&e.call(Y,n),o(this,P)&&o(this[P],t)&&(this[P][t]=!1),W(this,t,w(1,n))};return i&&B&&W(R,t,{configurable:!0,set:e}),Z(t)},u(j[L],\"toString\",function(){return this._k}),D.f=X,T.f=K,n(36).f=O.f=$,n(20).f=Q,n(37).f=tt,i&&!n(19)&&u(R,\"propertyIsEnumerable\",Q,!0),h.f=function(t){return Z(p(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var et=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),nt=0;et.length>nt;)p(et[nt++]);for(var et=_(p.store),nt=0;et.length>nt;)y(et[nt++]);a(a.S+a.F*!z,\"Symbol\",{\"for\":function(t){return o(H,t+=\"\")?H[t]:H[t]=j(t)},keyFor:function(t){if(G(t))return m(H,t);throw TypeError(t+\" is not a symbol!\")},useSetter:function(){B=!0},useSimple:function(){B=!1}}),a(a.S+a.F*!z,\"Object\",{create:q,defineProperty:K,defineProperties:V,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:tt}),C&&a(a.S+a.F*(!z||c(function(){var t=j();return\"[null]\"!=N([t])||\"{}\"!=N({a:t})||\"{}\"!=N(Object(t))})),\"JSON\",{stringify:function(t){if(void 0!==t&&!G(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return e=r[1],\"function\"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,N.apply(C,r)}}}),j[L][F]||n(6)(j[L],F,j[L].valueOf),f(j,\"Symbol\"),f(Math,\"Math\",!0),f(r.JSON,\"JSON\",!0)},function(t,e,n){n(26)(\"asyncIterator\")},function(t,e,n){n(26)(\"observable\")},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)(\"toStringTag\"),u=[\"NodeList\",\"DOMTokenList\",\"MediaList\",\"StyleSheetList\",\"CSSRuleList\"],s=0;s<5;s++){var c=u[s],l=r[c],f=l&&l.prototype;f&&!f[a]&&o(f,a,c),i[c]=i.Array}},function(t,e,n){e=t.exports=n(82)(),e.push([t.id,\"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}\",\"\"]);\n},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&g.splice(e,1)}function u(t){var e=document.createElement(\"style\");return e.type=\"text/css\",i(t,e),e}function s(t){var e=document.createElement(\"link\");return e.rel=\"stylesheet\",i(t,e),e}function c(t,e){var n,r,o;if(e.singleton){var i=b++;n=v||(v=u(e)),r=l.bind(null,n,i,!1),o=l.bind(null,n,i,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=s(e),r=d.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=u(e),r=f.bind(null,n),o=function(){a(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}function l(t,e,n,r){var o=n?\"\":r.css;if(t.styleSheet)t.styleSheet.cssText=x(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function f(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute(\"media\",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function d(t,e){var n=e.css,r=e.sourceMap;r&&(n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\");var o=new Blob([n],{type:\"text/css\"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var p={},h=function(t){var e;return function(){return\"undefined\"==typeof e&&(e=t.apply(this,arguments)),e}},y=h(function(){return/msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase())}),m=h(function(){return document.head||document.getElementsByTagName(\"head\")[0]}),v=null,b=0,g=[];t.exports=function(t,e){e=e||{},\"undefined\"==typeof e.singleton&&(e.singleton=y()),\"undefined\"==typeof e.insertAt&&(e.insertAt=\"bottom\");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a ");else if("object"==typeof t){var a=[];for(var o in t)if(t.hasOwnProperty(o)){var s=t[o];a.push(o+":"+("string"==typeof s?JSON.stringify(s):B(s)))}i="{"+a.join(", ")+"}"}return n+(r?"("+r+")":"")+"["+i+"]: "+e.replace(de,"\n ")} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var xe={"ɵɵdefineInjectable":T,"ɵɵdefineInjector":z,"ɵɵinject":ye,"ɵɵgetFactoryOf":function e(t){var n=t;if(H(t))return function(){var t=e(V(n));return t?t():null};var r=I(n)||A(n);if(!r||void 0===r.factory)return null;return r.factory} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */,"ɵɵinvalidFactoryDep":be};var Ee,Se,Te,Oe=function(){},ze=function(){}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function Ie(e,t){"number"!=typeof e&&Ue(t,typeof e,"number","===")}function De(e,t,n){Ie(e,"Expected a number"),Be(e,n,"Expected number to be less than or equal to"),function(e,t,n){e>=t||Ue(n,e,t,">=")}(e,t,"Expected number to be greater than or equal to")}function Ae(e,t){"string"!=typeof e&&Ue(t,null===e?"null":typeof e,"string","===")}function Ne(e,t,n){e!=t&&Ue(n,e,t,"==")}function Pe(e,t,n){e==t&&Ue(n,e,t,"!=")}function Re(e,t,n){e!==t&&Ue(n,e,t,"===")}function Me(e,t,n){e===t&&Ue(n,e,t,"!==")}function qe(e,t,n){et||Ue(n,e,t,">")}function Fe(e,t){null==e&&Ue(t,e,null,"!=")}function Ue(e,t,n,r){throw new Error("ASSERTION ERROR: "+e+(null==r?"":" [Expected=> "+n+" "+r+" "+t+" <=Actual]"))}function Ve(e){Ne("undefined"!=typeof Node&&e instanceof Node||"object"==typeof e&&null!=e&&"WebWorkerRenderNode"===e.constructor.name,!0,"The provided value must be an instance of a DOM Node but got "+B(e))}function He(e,t){var n=e?e.length:0;qe(t,n,"Index expected to be less than "+n+" but got "+t)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ke(e,t){for(var n=0;n=e.length?e.push(n):e.splice(t,0,n)}function $e(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Ye(e,t){for(var n=[],r=0;r=0?e[1|r]=n:function(e,t,n,r){ngDevMode&&Be(t,e.length,"Can't insert past array end.");var i=e.length;if(i==t)e.push(n,r);else if(1===i)e.push(r,e[0]),e[0]=n;else{for(i--,e.push(e[i-1],e[i]);i>t;){var a=i-2;e[i]=e[a],i--}e[t]=n,e[t+1]=r}}(e,r=~r,t,n),r}function Je(e,t){var n=Xe(e,t);if(n>=0)return e[1|n]}function Xe(e,t){return et(e,t,1)}function et(e,t,n){ngDevMode&&Ne(Array.isArray(e),!0,"Expecting an array");for(var r=0,i=e.length>>n;i!==r;){var a=r+(i-r>>1),o=e[a<t?i=a:r=a+1}return~(i<0;)ngDevMode&&Fe(t[15],"Declaration view should be defined if nesting level is greater than 0."),t=t[15],e--;return t}(e,tn.lFrame.contextLView))[8]}function An(){return tn.lFrame.selectedIndex}function Nn(e){tn.lFrame.selectedIndex=e}function Pn(){var e=tn.lFrame;return Kt(e.tView,e.selectedIndex)}function Rn(){tn.lFrame.currentNamespace="http://www.w3.org/2000/svg"}function Mn(){tn.lFrame.currentNamespace="http://www.w3.org/1998/MathML/"}function qn(){tn.lFrame.currentNamespace=null}function Bn(e){tn.lFrame.currentSanitizer=e}function Ln(e,t){ngDevMode&&At(e);for(var n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[o]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===t&&(e[2]+=2048,a.call(o)):a.call(o)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Wn=function(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function Gn(e,t){Fe(e,"should be called with a TNode"),Ne(e.type,t,"should be a "+$n(t))}function Qn(e){for(var t=[],n=1;n"}function Yn(e,t,n){for(var r=Bt(e),i=0;it){o=a-1;break}}}for(;a>16}function ir(e,t){for(var n=rr(e),r=t;n>0;)r=r[15],n--;return r} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ar(e){return"string"==typeof e?e:null==e?"":""+e}function or(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():ar(e)}var sr=("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(Z);function lr(e){return{name:"window",target:e.ownerDocument.defaultView}}function cr(e){return{name:"document",target:e.ownerDocument}}function ur(e){return{name:"body",target:e.ownerDocument.body}}function dr(e){return e instanceof Function?e():e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var hr=!0;function pr(e){var t=hr;return hr=e,t}var fr=0;function mr(e,t){var n=yr(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,gr(r.data,e),gr(t,null),gr(r.blueprint,null));var i=br(e,t),a=e.injectorIndex;if(tr(i))for(var o=nr(i),s=ir(i,t),l=s[1].data,c=0;c<8;c++)t[a+c]=s[o+c]|l[o+c];return t[a+8]=i,a}function gr(e,t){e.push(0,0,0,0,0,0,0,0,t)}function yr(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function br(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function vr(e,t,n){!function(e,t,n){ngDevMode&&Ne(t.firstCreatePass,!0,"expected firstCreatePass to be true");var r="string"!=typeof n?n[ae]:n.charCodeAt(0)||0;null==r&&(r=n[ae]=fr++);var i=255&r,a=1<0?255&t:t}(n);if("function"==typeof a){xn(t,e);try{var o=a();if(null!=o||r&y.Optional)return o;throw new Error("No provider for "+or(n)+"!")}finally{zn()}}else if("number"==typeof a){if(-1===a)return new Tr(e,t);var s=null,l=yr(e,t),c=-1,u=r&y.Host?t[16][6]:null;for((-1===l||r&y.SkipSelf)&&(c=-1===l?br(e,t):t[l+8],Sr(r,!1)?(s=t[1],l=nr(c),t=ir(c,t)):l=-1);-1!==l;){c=t[l+8];var d=t[1];if(Er(a,l,d.data)){var h=jr(l,t,n,s,r,u);if(h!==_r)return h}Sr(r,t[1].data[l+8]===u)&&Er(a,l,t)?(s=d,l=nr(c),t=ir(c,t)):l=-1}}}if(r&y.Optional&&void 0===i&&(i=null),0==(r&(y.Self|y.Host))){var p=t[9],f=me(void 0);try{return p?p.get(n,i,r&y.Optional):ke(n,i,r&y.Optional)}finally{me(f)}}if(r&y.Optional)return i;throw new Error("NodeInjector: NOT_FOUND ["+or(n)+"]")}var _r={};function jr(e,t,n,r,i,a){var o=t[1],s=o.data[e+8],l=Cr(s,o,n,null==r?jt(s)&&hr:r!=o&&3===s.type,i&y.Host&&a===s);return null!==l?xr(t,o,l,s):_r}function Cr(e,t,n,r,i){for(var a=e.providerIndexes,o=t.data,s=65535&a,l=e.directiveStart,c=e.directiveEnd,u=a>>16,d=i?s+u:c,h=r?s:s+u;h=l&&p.type===n)return h}if(i){var f=o[l];if(f&&xt(f)&&f.type===n)return l}return null}function xr(e,t,n,r){var i=e[n],a=t.data;if(i instanceof Wn){var o=i;if(o.resolving)throw new Error("Circular dep for "+or(a[n]));var s=pr(o.canSeeViewProviders);o.resolving=!0;var l=void 0;o.injectImpl&&(l=me(o.injectImpl)),xn(e,r);try{i=e[n]=o.factory(void 0,a,e,r),t.firstCreatePass&&n>=r.directiveStart&&(ngDevMode&&function(e){void 0!==e.type&&null!=e.selectors&&void 0!==e.inputs||Ue("Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.")}(a[n]), +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function(e,t,n){ngDevMode&&At(n);var r=t.onChanges,i=t.onInit,a=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),i&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,i),a&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,a),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,a))}(n,a[n],t))}finally{o.injectImpl&&me(l),pr(s),o.resolving=!1,zn()}}return i}function Er(e,t,n){var r=1<',!t.querySelector||t.querySelector("svg")?(t.innerHTML='

',t.querySelector&&t.querySelector("svg img")&&function(){try{return!!window.DOMParser}catch(e){return!1}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */()?this.getInertBodyElement=this.getInertBodyElement_DOMParser:this.getInertBodyElement=this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}return e.prototype.getInertBodyElement_XHR=function(e){e=""+e+"";try{e=encodeURI(e)}catch(r){return null}var t=new XMLHttpRequest;t.responseType="document",t.open("GET","data:text/html;charset=utf-8,"+e,!1),t.send(void 0);var n=t.response.body;return n.removeChild(n.firstChild),n},e.prototype.getInertBodyElement_DOMParser=function(e){e=""+e+"";try{var t=(new window.DOMParser).parseFromString(e,"text/html").body;return t.removeChild(t.firstChild),t}catch(n){return null}},e.prototype.getInertBodyElement_InertDocument=function(e){var t=this.inertDocument.createElement("template");if("content"in t)return t.innerHTML=e,t;var n=this.inertDocument.createElement("body");return n.innerHTML=e,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(n),n},e.prototype.stripCustomNsAttrs=function(e){for(var t=e.attributes,n=t.length-1;0"),!0},e.prototype.endElement=function(e){var t=e.nodeName.toLowerCase();gi.hasOwnProperty(t)&&!ui.hasOwnProperty(t)&&(this.buf.push(""))},e.prototype.chars=function(e){this.buf.push(Ei(e))},e.prototype.checkClobberedElement=function(e,t){if(t&&(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error("Failed to sanitize html because the element is clobbered: "+e.outerHTML);return t},e}(),Ci=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,xi=/([^\#-~ |!])/g;function Ei(e){return e.replace(/&/g,"&").replace(Ci,(function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"})).replace(xi,(function(e){return"&#"+e.charCodeAt(0)+";"})).replace(//g,">")}function Si(e,t){var n=null;try{li=li||new ti(e);var r=t?String(t):"";n=li.getInertBodyElement(r);var i=5,a=r;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,r=a,a=n.innerHTML,n=li.getInertBodyElement(r)}while(r!==a);var o=new ji,s=o.sanitizeChildren(Ti(n)||n);return Xr()&&o.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss"),s}finally{if(n)for(var l=Ti(n)||n;l.firstChild;)l.removeChild(l.firstChild)}}function Ti(e){return"content"in e&&function(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e)?e.content:null}!function(e){e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL"}(ci||(ci={})); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var Oi=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|Z|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:attr|calc|var))\\([-0-9.%, #a-zA-Z]+\\))$","g"),zi=/^url\(([^)]+)\)$/;function Ii(e){if(!(e=String(e).trim()))return"";var t=e.match(zi);return t&&ii(t[1])===t[1]||e.match(Oi)&&function(e){for(var t=!0,n=!0,r=0;r=0){var f;$i(f=Ft(r[p]),l=Gi(r,p,f)),n=l;break}}}}return n||null}function Gi(e,t,n){return{lView:e,nodeIndex:t,native:n,component:void 0,directives:void 0,localRefs:void 0}}function Qi(e){var t,n=Qt(e);if(Array.isArray(n)){var r=Ji(n,e);(i=Gi(n,r,(t=Gt(r,n))[0])).component=e,$i(e,i),$i(i.native,i)}else{var i;t=Gt((i=n).nodeIndex,i.lView)}return t}function $i(e,t){e.__ngContext__=t}function Yi(e,t){for(var n=e[1].firstChild;n;){if(Ht(n,e)===t)return n.index;n=Zi(n)}return-1}function Zi(e){if(e.child)return e.child;if(e.next)return e.next;for(;e.parent&&!e.parent.next;)e=e.parent;return e.parent&&e.parent.next}function Ji(e,t){var n=e[1].components;if(n)for(var r=0;ra?d="":(ngDevMode&&Pe(i[u],0,"We do not match directives on namespaced attributes"),d=i[u+1].toLowerCase());var h=8&r?d:null;if(h&&-1!==ra(h,c,0)||2&r&&c!==d){if(la(r))return!1;o=!0}}}}else{if(!o&&!la(r)&&!la(l))return!1;if(o&&la(l))continue;o=!1,r=l|1&r}}return la(r)||o}function la(e){return 0==(1&e)}function ca(e,t,n,r){if(null===t)return-1;var i=0;if(r||!n){for(var a=!1;i-1)for(n++;n0?'="'+s+'"':"")+"]"}else 8&r?i+="."+o:4&r&&(i+=" "+o);else""===i||la(o)||(t+=ha(a,i),i=""),r=o,a=a||!la(r);n++}return""!==i&&(t+=ha(a,i)),t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var fa="undefined"==typeof ngDevMode||ngDevMode?{__brand__:"NO_CHANGE"}:{}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ma(e){ngDevMode&&Dt(e);var t=e[3];return wt(t)?t[3]:t}function ga(e){ngDevMode&&Fe(e,"component");for(var t=kt(e)?e:$t(e);t&&!(512&t[2]);)t=ma(t);return ngDevMode&&Dt(t),t}function ya(e){var t=ga(e);return ngDevMode&&Fe(t[8],"RootView has no context. Perhaps it is disconnected?"),t[8]}function ba(e){return ka(e[13])}function va(e){return ka(e[4])}function ka(e){for(;null!==e&&!wt(e);)e=e[4];return e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function wa(e){ngDevMode&&Le(e,0,"Can only advance forward"),ja(sn(),on(),An()+e,pn())}function _a(e){ja(sn(),on(),e,pn())}function ja(e,t,n,r){if(ngDevMode&&Le(n,-1,"Invalid index"),ngDevMode&&He(t,n+20),!r)if(3==(3&t[2])){var i=e.preOrderCheckHooks;null!==i&&Fn(t,i,n)}else{var a=e.preOrderHooks;null!==a&&Un(t,a,0,n)}Nn(n)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ca={marker:"element"},xa={marker:"comment"}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function Ea(e,t){return ngDevMode&&De(e,0,32767),ngDevMode&&De(t,0,32767),e<<17|t<<2}function Sa(e){return ngDevMode&&Ie(e,"expected number"),e>>17&32767}function Ta(e){return ngDevMode&&Ie(e,"expected number"),2==(2&e)}function Oa(e){return ngDevMode&&Ie(e,"expected number"),2|e}function za(e){return ngDevMode&&Ie(e,"expected number"),(131068&e)>>2}function Ia(e,t){return ngDevMode&&Ie(e,"expected number"),ngDevMode&&De(t,0,32767),-131069&e|t<<2}function Da(e){return ngDevMode&&Ie(e,"expected number"),1==(1&e)}function Aa(e){return ngDevMode&&Ie(e,"expected number"),1|e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function Na(e,t){Object.defineProperty(e,"debug",{value:t,enumerable:!1})} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Pa,Ra,Ma,qa=("undefined"==typeof ngDevMode||!!ngDevMode)&&oe();function Ba(e){return function(e,t){switch(e){case 0:return void 0===Ma&&(Ma=new(Ui("LRootView"))),Ma;case 1:void 0===Pa&&(Pa=new Map);var n=Pa.get(t);return void 0===n&&(n=new(Ui("LComponentView"+La(t))),Pa.set(t,n)),n;case 2:void 0===Ra&&(Ra=new Map);var r=Ra.get(t);return void 0===r&&(r=new(Ui("LEmbeddedView"+La(t))),Ra.set(t,r)),r}throw new Error("unreachable code")}(e.type,e.template&&e.template.name).concat(e.blueprint)}function La(e){if(null==e)return"";var t=e.lastIndexOf("_Template");return"_"+(-1===t?e:e.substr(0,t))}var Fa=function(){function e(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,y,b,v,k,w,_,j,C,x,E,S,T,O,z){this.type=e,this.id=t,this.blueprint=n,this.template=r,this.queries=i,this.viewQuery=a,this.node=o,this.data=s,this.bindingStartIndex=l,this.expandoStartIndex=c,this.expandoInstructions=u,this.firstCreatePass=d,this.firstUpdatePass=h,this.staticViewQueries=p,this.staticContentQueries=f,this.preOrderHooks=m,this.preOrderCheckHooks=g,this.contentHooks=y,this.contentCheckHooks=b,this.viewHooks=v,this.viewCheckHooks=k,this.destroyHooks=w,this.cleanup=_,this.contentQueries=j,this.components=C,this.directiveRegistry=x,this.pipeRegistry=E,this.firstChild=S,this.schemas=T,this.consts=O,this.incompleteFirstPass=z}return Object.defineProperty(e.prototype,"template_",{get:function(){var e=[];return Ha(this.firstChild,e),e.join("")},enumerable:!0,configurable:!0}),e}(),Ua=function(){function e(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,y,b,v,k,w,_,j,C,x,E,S,T,O,z){this.tView_=e,this.type=t,this.index=n,this.injectorIndex=r,this.directiveStart=i,this.directiveEnd=a,this.directiveStylingLast=o,this.propertyBindings=s,this.flags=l,this.providerIndexes=c,this.tagName=u,this.attrs=d,this.mergedAttrs=h,this.localNames=p,this.initialInputs=f,this.inputs=m,this.outputs=g,this.tViews=y,this.next=b,this.projectionNext=v,this.child=k,this.parent=w,this.projection=_,this.styles=j,this.stylesWithoutHost=C,this.residualStyles=x,this.classes=E,this.classesWithoutHost=S,this.residualClasses=T,this.classBindings=O,this.styleBindings=z}return Object.defineProperty(e.prototype,"type_",{get:function(){switch(this.type){case 0:return"TNodeType.Container";case 3:return"TNodeType.Element";case 4:return"TNodeType.ElementContainer";case 5:return"TNodeType.IcuContainer";case 1:return"TNodeType.Projection";case 2:return"TNodeType.View";default:return"TNodeType.???"}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"flags_",{get:function(){var e=[];return 16&this.flags&&e.push("TNodeFlags.hasClassInput"),8&this.flags&&e.push("TNodeFlags.hasContentQuery"),32&this.flags&&e.push("TNodeFlags.hasStyleInput"),128&this.flags&&e.push("TNodeFlags.hasHostBindings"),2&this.flags&&e.push("TNodeFlags.isComponentHost"),1&this.flags&&e.push("TNodeFlags.isDirectiveHost"),64&this.flags&&e.push("TNodeFlags.isDetached"),4&this.flags&&e.push("TNodeFlags.isProjected"),e.join("|")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"template_",{get:function(){var e=[];if(e.push("<",this.tagName||this.type_),this.attrs)for(var t=0;t"),Ha(this.child,e),e.push(""),e.join("")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"styleBindings_",{get:function(){return Va(this,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"classBindings_",{get:function(){return Va(this,!0)},enumerable:!0,configurable:!0}),e}();function Va(e,t){for(var n=e.tView_.data,r=[],i=t?e.classBindings:e.styleBindings,a=Sa(i),o=za(i),s=0!==o,l=s?o:a;0!==l;){var c=n[l],u=n[l+1];r.unshift({key:c,index:l,isTemplate:s,prevDuplicate:Ta(u),nextDuplicate:Da(u),nextIndex:za(u),prevIndex:Sa(u)}),l===a&&(s=!1),l=Sa(u)}return r.push((t?e.residualClasses:e.residualStyles)||null),r}function Ha(e,t){for(;e;)t.push(e.template_),e=e.next}var Ka,Wa=qa&&Ui("TViewData")||null;var Ga=qa&&Ui("LViewBlueprint")||null,Qa=qa&&Ui("MatchesArray")||null,$a=qa&&Ui("TViewComponents")||null,Ya=qa&&Ui("TNodeLocalNames")||null,Za=qa&&Ui("TNodeInitialInputs")||null,Ja=(qa&&Ui("TNodeInitialData"),qa&&Ui("LCleanup")||null),Xa=qa&&Ui("TCleanup")||null;function eo(e){if(e){var t=e.debug;return Fe(t,"Object does not have a debug representation."),t}return e}function to(e,t){void 0===t&&(t=!1);var n=Ft(e);if(n){var r=n.nodeType===Node.TEXT_NODE,i=(r?n.textContent:n.outerHTML)||"";if(t||r)return i;var a=">"+n.innerHTML+"<";return i.split(a)[0]+">"}return null}var no=function(){function e(e){this._raw_lView=e}return Object.defineProperty(e.prototype,"flags",{get:function(){var e=this._raw_lView[2];return{__raw__flags__:e,initPhaseState:3&e,creationMode:!!(4&e),firstViewPass:!!(8&e),checkAlways:!!(16&e),dirty:!!(64&e),attached:!!(128&e),destroyed:!!(256&e),isRoot:!!(512&e),indexWithinInitPhase:e>>11}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return eo(this._raw_lView[3])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"host",{get:function(){return to(this._raw_lView[0],!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"html",{get:function(){return(this.nodes||[]).map((function(e){return to(e.native,!0)})).join("")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._raw_lView[8]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nodes",{get:function(){var e=this._raw_lView;return ro(e[1].firstChild,e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tView",{get:function(){return this._raw_lView[1]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cleanup",{get:function(){return this._raw_lView[7]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return this._raw_lView[9]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rendererFactory",{get:function(){return this._raw_lView[10]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderer",{get:function(){return this._raw_lView[11]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sanitizer",{get:function(){return this._raw_lView[12]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"childHead",{get:function(){return eo(this._raw_lView[13])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"next",{get:function(){return eo(this._raw_lView[4])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"childTail",{get:function(){return eo(this._raw_lView[14])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"declarationView",{get:function(){return eo(this._raw_lView[15])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queries",{get:function(){return this._raw_lView[19]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tHost",{get:function(){return this._raw_lView[6]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"childViews",{get:function(){for(var e=[],t=this.childHead;t;)e.push(t),t=t.next;return e},enumerable:!0,configurable:!0}),e}();function ro(e,t){if(e){for(var n=[],r=e;r;)n.push(io(r,t,r.index)),r=r.next;return n}return null}function io(e,t,n){var r=t[n],i=Ft(r),a=eo(function(e){for(;Array.isArray(e);){if(e.length>=19)return e;e=e[0]}return null}(r));return{html:to(i),native:i,nodes:ro(e.child,t),component:a}}var ao=function(){function e(e){this._raw_lContainer=e}return Object.defineProperty(e.prototype,"hasTransplantedViews",{get:function(){return this._raw_lContainer[2]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"views",{get:function(){return this._raw_lContainer.slice(10).map(eo)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return eo(this._raw_lContainer[3])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"movedViews",{get:function(){return this._raw_lContainer[9]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"host",{get:function(){return this._raw_lContainer[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"native",{get:function(){return this._raw_lContainer[7]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"next",{get:function(){return eo(this._raw_lContainer[4])},enumerable:!0,configurable:!0}),e}();var oo=function(){function e(e,t,n,r){this.__raw_opCode=e,this._lView=t,this.nodeIndex=n,this.type=r}return Object.defineProperty(e.prototype,"tNode",{get:function(){return Kt(this._lView[1],this.nodeIndex)},enumerable:!0,configurable:!0}),e}();var so=function(){function e(e,t){this.__raw_opCodes=e,this.__lView=t}return Object.defineProperty(e.prototype,"operations",{get:function(){for(var e=this.__lView,t=this.__raw_opCodes,n=[],r=0;r>>17,"AppendChild");break;case 0:a=new oo(i,e,i>>>3,"Select");break;case 5:var o=i>>>3;a=new oo(i,e,o,"ElementEnd");break;case 4:(a=new oo(i,e,o=i>>>3,"Attr")).attrName=t[++r],a.attrValue=t[++r]}if(!a)switch(i){case xa:a={__raw_opCode:i,type:"COMMENT_MARKER",commentValue:t[++r],nodeIndex:t[++r]};break;case Ca:a={__raw_opCode:i,type:"ELEMENT_MARKER"}}a||(a={__raw_opCode:i,type:"Unknown Op Code",code:i}),n.push(a)}return n},enumerable:!0,configurable:!0}),e}(),lo=function(){function e(e,t,n){this.__raw_opCodes=e,this.icus=t,this.__lView=n}return Object.defineProperty(e.prototype,"operations",{get:function(){for(var e=this.__lView,t=this.__raw_opCodes,n=this.icus,r=[],i=0;i>>2,d=void 0,h=void 0;switch(3&c){case 1:var p=t[++l],f=t[++l];r.push({__raw_opCode:c,checkBit:a,type:"Attr",attrValue:s,attrName:p,sanitizeFn:f});break;case 0:r.push({__raw_opCode:c,checkBit:a,type:"Text",nodeIndex:u,text:s});break;case 2:h=n[d=t[++l]];var m=new oo(c,e,u,"IcuSwitch");m.tIcuIndex=d,m.checkBit=a,m.mainBinding=s,m.tIcu=h,r.push(m);break;case 3:h=n[d=t[++l]],(m=new oo(c,e,u,"IcuUpdate")).tIcuIndex=d,m.checkBit=a,m.tIcu=h,r.push(m)}}}i+=o}return r},enumerable:!0,configurable:!0}),e}(),co=Promise.resolve(null);function uo(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r20&&ja(e,t,0,pn()),n(r,i)}finally{Nn(a)}}function vo(e,t,n){if(_t(t))for(var r=t.directiveStart,i=t.directiveEnd,a=r;a-1)return!0}return!1}function Do(e,t){console.warn("Can't bind to '"+e+"' since it isn't a known property of '"+t.tagName+"'.")}function Ao(e,t,n,r){ngDevMode&&At(e);var i=!1;if(nn()){var a=function(e,t,n){ngDevMode&&At(e),ngDevMode&&Qn(n,3,4,0);var r=e.directiveRegistry,i=null;if(r)for(var a=0;a0&&function e(t){for(var n=ba(t);null!==n;n=va(n))for(var r=10;r0&&e(i)}var o=t[1].components;if(null!==o)for(r=0;r0&&e(s)}}(n)}}function $o(e,t){ngDevMode&&Ne(Yt(e),!0,"Should be run in creation mode");var n=Gt(t,e),r=n[1];!function(e,t){for(var n=t.length;n0&&(s+="�"+i.join("�")),e[r]=s}}var rs=co;function is(e){return e[7]||(e[7]=ngDevMode?new Ja:[])}function as(e){return e.cleanup||(e.cleanup=ngDevMode?new Xa:[])}function os(e,t,n){return(null===e||xt(e))&&(n=function(e){for(;Array.isArray(e);){if("object"==typeof e[1])return e;e=e[0]}return null}(n[t.index])),n[11]}function ss(e,t){var n=e[9],r=n?n.get(Nr,null):null;r&&r.handleError(t)}function ls(e,t,n,r,i){for(var a=0;a0&&(n[i-1][4]=t),r0&&(e[n-1][4]=r[4]);var a=$e(e,10+t);fs(r[1],r,!1,null);var o=a[19];null!==o&&o.detachView(a[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}}function bs(e,t){if(!(256&t[2])){var n=t[11];Bt(n)&&n.destroyNode&&Is(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return ks(e[1],e);for(;t;){var n=null;if(kt(t))n=t[13];else{ngDevMode&&zt(t);var r=t[10];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)kt(t)&&ks(t[1],t),t=vs(t,e);null===t&&(t=e),kt(t)&&ks(t[1],t),n=t&&t[4]}t=n}}(t)}}function vs(e,t){var n;return kt(e)&&(n=e[6])&&2===n.type?us(n,e):e[3]===t?null:e[3]}function ks(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r=0?r[l]():r[-l].unsubscribe(),i+=2}else{var c=r[n[i+1]];n[i].call(c)}t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Bt(t[11])&&(ngDevMode&&ngDevMode.rendererDestroy++,t[11].destroy());var r=t[17];if(null!==r&&wt(t[3])){r!==t[3]&&gs(r,t);var i=t[19];null!==i&&i.detachView(e)}}}function ws(e,t,n){for(var r=t.parent;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){var i=n[6];return 2===i.type?ds(i,n):(ngDevMode&&Qn(i,3),n[0])}if(t&&5===t.type&&4&t.flags)return Vt(t,n).parentNode;if(ngDevMode&&Gn(r,3),2&r.flags){var a=e.data,o=a[a[r.index].directiveStart].encapsulation;if(o!==Te.ShadowDom&&o!==Te.Native)return null}return Vt(r,n)}function _s(e,t,n,r){ngDevMode&&ngDevMode.rendererInsertBefore++,Bt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function js(e,t,n){ngDevMode&&ngDevMode.rendererAppendChild++,ngDevMode&&Fe(t,"parent node must be defined"),Bt(e)?e.appendChild(t,n):t.appendChild(n)}function Cs(e,t,n,r){null!==r?_s(e,t,n,r):js(e,t,n)}function xs(e,t){return Bt(e)?e.parentNode(t):t.parentNode}function Es(e,t){if(2===e.type){var n=us(e,t);return null===n?null:Ts(n.indexOf(t,10)-10,n)}return 4===e.type||5===e.type?Vt(e,t):null}function Ss(e,t,n,r){var i=ws(e,r,t);if(null!=i){var a=t[11],o=Es(r.parent||t[6],t);if(Array.isArray(n))for(var s=0;s) must have projection slots defined.");var m=p.projection[f];if(Array.isArray(m))a.push.apply(a,Object(r.g)(m));else{var g=ma(h);ngDevMode&&Fe(g,"Component views should always have a parent view (component's host view)"),e(g[1],g,m,a,!0)}}i=o?i.projectionNext:i.next}return a} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e[1],e,t.child,[])}return[]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._lView[8]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"destroyed",{get:function(){return 256==(256&this._lView[2])},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}bs(this._lView[1],this._lView)},e.prototype.onDestroy=function(e){var t,n,r;t=this._lView[1],n=this._lView,r=e,is(n).push(r),t.firstCreatePass&&as(t).push(n[7].length-1,null)},e.prototype.markForCheck=function(){Zo(this._cdRefInjectingView||this._lView)},e.prototype.detach=function(){this._lView[2]&=-129},e.prototype.reattach=function(){this._lView[2]|=128},e.prototype.detectChanges=function(){Xo(this._lView[1],this._lView,this.context)},e.prototype.checkNoChanges=function(){!function(e,t,n){fn(!0);try{Xo(e,t,n)}finally{fn(!1)}}(this._lView[1],this._lView,this.context)},e.prototype.attachToViewContainerRef=function(e){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=e},e.prototype.detachFromAppRef=function(){var e,t;this._appRef=null,e=this._lView[1],t=this._lView,Is(e,t,t[11],2,null,null)},e.prototype.attachToAppRef=function(e){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e},e}(),Ls=function(e){function t(t){var n=e.call(this,t)||this;return n._view=t,n}return Object(r.c)(t,e),t.prototype.detectChanges=function(){es(this._view)},t.prototype.checkNoChanges=function(){!function(e){fn(!0);try{es(e)}finally{fn(!1)}}(this._view)},Object.defineProperty(t.prototype,"context",{get:function(){return null},enumerable:!0,configurable:!0}),t}(Bs);function Fs(e,t,n){return Rs||(Rs=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t}(e)),new Rs(Vt(t,n))}function Us(e,t,n,i){return Ms||(Ms=function(e){function t(t,n,r){var i=e.call(this)||this;return i._declarationView=t,i._declarationTContainer=n,i.elementRef=r,i}return Object(r.c)(t,e),t.prototype.createEmbeddedView=function(e){var t=this._declarationTContainer.tViews,n=po(this._declarationView,t,e,16,null,t.node),r=this._declarationView[this._declarationTContainer.index];ngDevMode&&zt(r),n[17]=r;var i=this._declarationView[19];return null!==i&&(n[19]=i.createEmbeddedView(t)),mo(t,n,e),new Bs(n)},t}(e)),0===n.type?(ngDevMode&&Fe(n.tViews,"TView must be allocated"),new Ms(i,n,Fs(t,n,i))):null}function Vs(e,t,n,i){var a;qs||(qs=function(e){function n(t,n,r){var i=e.call(this)||this;return i._lContainer=t,i._hostTNode=n,i._hostView=r,i}return Object(r.c)(n,e),Object.defineProperty(n.prototype,"element",{get:function(){return Fs(t,this._hostTNode,this._hostView)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"injector",{get:function(){return new Tr(this._hostTNode,this._hostView)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"parentInjector",{get:function(){var e=br(this._hostTNode,this._hostView),t=ir(e,this._hostView),n=function(e,t,n){if(n.parent&&-1!==n.parent.injectorIndex){for(var r=n.parent.injectorIndex,i=n.parent;null!=i.parent&&r==i.parent.injectorIndex;)i=i.parent;return i}for(var a=rr(e),o=t,s=t[6];a>1;)s=(o=o[15])[6],a--;return s}(e,this._hostView,this._hostTNode);return tr(e)&&null!=n?new Tr(n,t):new Tr(null,this._hostView)},enumerable:!0,configurable:!0}),n.prototype.clear=function(){for(;this.length>0;)this.remove(this.length-1)},n.prototype.get=function(e){return null!==this._lContainer[8]&&this._lContainer[8][e]||null},Object.defineProperty(n.prototype,"length",{get:function(){return this._lContainer.length-10},enumerable:!0,configurable:!0}),n.prototype.createEmbeddedView=function(e,t,n){var r=e.createEmbeddedView(t||{});return this.insert(r,n),r},n.prototype.createComponent=function(e,t,n,r,i){var a=n||this.parentInjector;if(!i&&null==e.ngModule&&a){var o=a.get(Oe,null);o&&(i=o)}var s=e.create(a,r,void 0,i);return this.insert(s.hostView,t),s},n.prototype.insert=function(e,t){var n=e._lView,r=n[1];if(e.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");if(this.allocateContainerIfNeeded(),wt(n[3])){var i=this.indexOf(e);if(-1!==i)this.detach(i);else{var a=n[3];ngDevMode&&Ne(wt(a),!0,"An attached view should have its PARENT point to a container.");var o=new qs(a,a[6],a[3]);o.detach(o.indexOf(e))}}var s=this._adjustIndex(t);return ms(r,n,this._lContainer,s),fs(r,n,!0,Ts(s,this._lContainer)),e.attachToViewContainerRef(this),Qe(this._lContainer[8],s,e),e},n.prototype.move=function(e,t){if(e.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");return this.insert(e,t)},n.prototype.indexOf=function(e){var t=this._lContainer[8];return null!==t?t.indexOf(e):-1},n.prototype.remove=function(e){this.allocateContainerIfNeeded();var t=this._adjustIndex(e,-1);!function(e,t){var n=ys(e,t);n&&bs(n[1],n)}(this._lContainer,t),$e(this._lContainer[8],t)},n.prototype.detach=function(e){this.allocateContainerIfNeeded();var t=this._adjustIndex(e,-1),n=ys(this._lContainer,t);return n&&null!=$e(this._lContainer[8],t)?new Bs(n):null},n.prototype._adjustIndex=function(e,t){return void 0===t&&(t=0),null==e?this.length+t:(ngDevMode&&(Le(e,-1,"ViewRef index must be positive, got "+e),qe(e,this.length+1+t,"index")),e)},n.prototype.allocateContainerIfNeeded=function(){null===this._lContainer[8]&&(this._lContainer[8]=[])},n}(e)),ngDevMode&&Qn(n,0,3,4);var o=i[n.index];if(wt(o))a=o;else{var s=void 0;if(4===n.type)s=Ft(o);else if(ngDevMode&&ngDevMode.rendererCreateComment++,s=i[11].createComment(ngDevMode?"container":""),Et(i)){var l=i[11],c=Vt(n,i);_s(l,xs(l,c),s,function(e,t){return Bt(e)?e.nextSibling(t):t.nextSibling}(l,c))}else Ss(i[1],i,s,n);i[n.index]=a=Go(o,i,s,n),Yo(i,a)}return new qs(a,n,i)}function Hs(e){return void 0===e&&(e=!1),function(e,t,n){if(!n&&jt(e)){var r=Gt(e.index,t);return new Bs(r,r)}if(3===e.type||0===e.type||4===e.type||5===e.type){var i=t[16];return new Bs(i,t)}return null}(cn(),on(),e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var Ks=function(){function e(){}return e.__NG_ELEMENT_ID__=function(){return Gs()},e}(),Ws=Hs,Gs=Ws,Qs=Function;function $s(e){return"function"==typeof e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ys=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/,Zs=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/,Js=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/,Xs=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s*super\(\.\.\.arguments\)/;var el=function(){function e(e){this._reflect=e||Z.Reflect}return e.prototype.isReflectionEnabled=function(){return!0},e.prototype.factory=function(e){return function(){for(var t=[],n=0;n0)for(var i=0;i ")+" > "+s+".")}var l=-1!==n.indexOf(o);if(void 0!==a&&(i=A(a)),null==i)return!1;if(null!=i.imports&&!l){var c;ngDevMode&&t.push(o),n.push(o);try{Ge(i.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===c&&(c=[]),c.push(e))}))}finally{ngDevMode&&t.pop()}if(void 0!==c)for(var u=function(e){var t=c[e],n=t.ngModule,i=t.providers;Ge(i,(function(e){return r.processProvider(e,n,i||yl)}))},d=0;d0){var n=Ye(t,"?");throw new Error("Can't resolve all parameters for "+B(e)+": ("+n.join(", ")+").")}var r=function(e){var t=e&&(e[N]||e[M]||e[R]&&e[R]());if(t){var n=function(e){if(e.hasOwnProperty("name"))return e.name;var t=(""+e).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token "'+n+'" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in v10. Please add @Injectable() to the "'+n+'" class.'),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error("unreachable")}function Cl(e,t,n){var i,a=void 0;if(Sl(e)){var o=V(e);return bt(o)||jl(o)}if(El(e))a=function(){return V(e.useValue)};else if((i=e)&&i.useFactory)a=function(){return e.useFactory.apply(e,Object(r.g)(we(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))a=function(){return ye(V(e.useExisting))};else{var s=V(e&&(e.useClass||e.provide));if(s||function(e,t,n){var r="";throw e&&t&&(r=" - only instances of Provider and Type are allowed, got: ["+t.map((function(e){return e==n?"?"+n+"?":"..."})).join(", ")+"]"),new Error("Invalid provider for the NgModule '"+B(e)+"'"+r)}(t,n,e),!function(e){return!!e.deps}(e))return bt(s)||jl(s);a=function(){return new(s.bind.apply(s,Object(r.g)([void 0],we(e.deps))))}}return a}function xl(e,t,n){return void 0===n&&(n=!1),{factory:e,value:t,multi:n?[]:void 0}}function El(e){return null!==e&&"object"==typeof e&&he in e}function Sl(e){return"function"==typeof e}function Tl(e,t,n){return kl({name:n},t,e,n)}var Ol=Tl,zl=function(){function e(){}return e.create=function(e,t){return Array.isArray(e)?Ol(e,t,""):Ol(e.providers,e.parent,e.name||"")},e.THROW_IF_NOT_FOUND=ue,e.NULL=new _e,e.ɵprov=T({token:e,providedIn:"any",factory:function(){return ye(ce)}}),e.__NG_ELEMENT_ID__=-1,e}(),Il=function(e){return e},Dl=[],Al=Il,Nl=function(){return Array.prototype.slice.call(arguments)};!function(){function e(e,t,n){void 0===t&&(t=zl.NULL),void 0===n&&(n=null),this.parent=t,this.source=n;var r=this._records=new Map;r.set(zl,{token:zl,fn:Il,deps:Dl,value:this,useNew:!1}),r.set(ce,{token:ce,fn:Il,deps:Dl,value:this,useNew:!1}),this.scope=function e(t,n){var r=null;if(n)if(n=V(n),Array.isArray(n))for(var i=0;i1?" ("+function(e){for(var t=[],n=0;n-1)return t.push(e[n]),t;t.push(e[n])}return t}(e.slice().reverse()).map((function(e){return B(e.token)})).join(" -> ")+")":""}function Ll(e,t,n,r){var i=[t],a=n(i),o=r?function(e,t){var n=e+" caused by: "+(t instanceof Error?t.message:t),r=Error(n);return r.ngOriginalError=t,r} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(a,r):Error(a);return o.addKey=Fl,o.keys=i,o.injectors=[e],o.constructResolvingMessage=n,o.ngOriginalError=r,o}function Fl(e,t){this.injectors.push(e),this.keys.push(t),this.message=this.constructResolvingMessage(this.keys)}function Ul(e,t){for(var n=[],r=0,i=t.length;r=this._providers.length)throw function(e){return Error("Index "+e+" is out-of-bounds.")}(e);return this._providers[e]},e.prototype._new=function(e){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw t=this,n=e.key,Ll(t,n,(function(e){return"Cannot instantiate cyclic dependency!"+Bl(e)}));var t,n;return this._instantiateProvider(e)},e.prototype._getMaxNumberOfObjects=function(){return this.objs.length},e.prototype._instantiateProvider=function(e){if(e.multiProvider){for(var t=[],n=0;n-1?na(e,t,t,a,r):{propName:a,oldValue:n,newValue:r};if(null===a){for(var o=t-1;"string"!=typeof i[o]&&null===i[o+1];)o--;var s=i[o];if("string"==typeof s){var l=s.match(new RegExp("�","g"));if(l&&l.length-1>t-o)return na(e,o,t,s,r)}}return{propName:void 0,oldValue:n,newValue:r}}(e,t,i,n);!function(e,t,n,r){var i="ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value"+(r?" for '"+r+"'":"")+": '"+t+"'. Current value: '"+n+"'.";throw e&&(i+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook?"),new Error(i)}(r===fa,a.oldValue,a.newValue,a.propName)}return!1}return e[t]=n,!0}function Tc(e,t,n,r){var i=Sc(e,t,n);return Sc(e,t+1,r)||i}function Oc(e,t,n,r,i){var a=Tc(e,t,n,r);return Sc(e,t+2,i)||a}function zc(e,t,n,r,i,a){var o=Tc(e,t,n,r);return Tc(e,t+2,i,a)||o} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ic(e,t,n,r){var i=on(),a=bn();if(Sc(i,a,t)){var o=sn(),s=Pn();Vo(s,i,e,t,n,r),ngDevMode&&ns(o.data,s,"attr."+e,a)}return Ic} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Dc(e,t){ngDevMode&&qe(2,t.length,"should have at least 3 values"),ngDevMode&&Ne(t.length%2,1,"should have an odd number of values");for(var n=!1,r=gn(),i=1;i=e.data.length&&(e.data[i]=null,e.blueprint[i]=null),t[i]=r}function eu(e){return Wt(tn.lFrame.contextLView,e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function tu(e,t){void 0===t&&(t=y.Default);var n=on();return null==n?ye(e,t):wr(cn(),n,V(e),t)}function nu(e){return kr(cn(),e)}function ru(){var e=ngDevMode?"This constructor was not compatible with Dependency Injection.":"invalid";throw new Error(e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function iu(e,t,n){var r=on(),i=bn();if(Sc(r,i,t)){var a=sn(),o=Pn();To(a,o,r,e,t,r[11],n,!1),ngDevMode&&ns(a.data,o,e,i)}return iu}function au(e,t,n,r,i){var a=i?"class":"style";ls(e,n,t.inputs[a],a,r)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ou(e,t,n,r,i,a,o){ngDevMode&&At(t),ngDevMode&&ngDevMode.firstCreatePass++;var s=t.consts,l=Jt(s,a),c=fo(t,n[6],e,3,i,l),u=Ao(t,n,c,Jt(s,o));return ngDevMode&&function(e,t,n,r,i){if(null===e.schemas)return;var a=r.tagName;if(!i&&null!==a){if(("undefined"!=typeof HTMLUnknownElement&&HTMLUnknownElement&&n instanceof HTMLUnknownElement||"undefined"!=typeof customElements&&a.indexOf("-")>-1&&!customElements.get(a))&&!Io(e,0,a)){var o="'"+a+"' is not a known element:\n";o+="1. If '"+a+"' is an Angular component, then verify that it is part of this module.\n",a&&a.indexOf("-")>-1?o+="2. If '"+a+"' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.":o+="2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.",console.warn(o)}}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(t,0,r,c,u),null!==c.attrs&&yc(c,c.attrs,!1),null!==c.mergedAttrs&&yc(c,c.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,c),c}function su(e,t,n,r){var i=on(),a=sn(),o=20+e;ngDevMode&&Ne(gn(),a.bindingStartIndex,"elements should be created before any bindings"),ngDevMode&&ngDevMode.rendererCreateElement++,ngDevMode&&He(i,o);var s=i[11],l=i[o]=ho(t,s,tn.lFrame.currentNamespace),c=a.firstCreatePass?ou(e,a,i,l,t,n,r):a.data[o];un(c,!0);var u=c.mergedAttrs;null!==u&&Yn(s,l,u);var d=c.classes;null!==d&&Ps(s,l,d);var h=c.styles;null!==h&&Ns(s,l,h),Ss(a,i,l,c),0===tn.lFrame.elementDepthCount&&$i(l,i),tn.lFrame.elementDepthCount++,Ct(c)&&(ko(a,i,c),vo(a,c,i)),null!==r&&wo(i,c)}function lu(){var e=cn();ngDevMode&&Fe(e,"No parent node to close."),dn()?hn():(ngDevMode&&Ot(cn()),un(e=e.parent,!1));var t=e;ngDevMode&&Gn(t,3),tn.lFrame.elementDepthCount--;var n=sn();n.firstCreatePass&&(Ln(n,e),_t(e)&&n.queries.elementEnd(e)),null!=t.classesWithoutHost&&function(e){return 0!=(16&e.flags)}(t)&&au(n,t,on(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function(e){return 0!=(32&e.flags)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(t)&&au(n,t,on(),t.stylesWithoutHost,!1)}function cu(e,t,n,r){su(e,t,n,r),lu()}function uu(e,t,n){var r=on(),i=sn(),a=e+20;ngDevMode&&He(r,a),ngDevMode&&Ne(gn(),i.bindingStartIndex,"element containers should be created before any bindings");var o=i.firstCreatePass?function(e,t,n,r,i){ngDevMode&&ngDevMode.firstCreatePass++;var a=t.consts,o=Jt(a,r),s=fo(t,n[6],e,4,"ng-container",o);return null!==o&&yc(s,o,!0),Ao(t,n,s,Jt(a,i)),null!==t.queries&&t.queries.elementStart(t,s),s}(e,i,r,t,n):i.data[a];un(o,!0),ngDevMode&&ngDevMode.rendererCreateComment++;var s=r[a]=r[11].createComment(ngDevMode?"ng-container":"");Ss(i,r,s,o),$i(s,r),Ct(o)&&(ko(i,r,o),vo(i,o,r)),null!=n&&wo(r,o)}function du(){var e=cn(),t=sn();dn()?hn():(ngDevMode&&Ot(e),un(e=e.parent,!1)),ngDevMode&&Gn(e,4),t.firstCreatePass&&(Ln(t,e),_t(e)&&t.queries.elementEnd(e))}function hu(e,t,n){uu(e,t,n),du()}function pu(){return on()} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function fu(e){return!!e&&"function"==typeof e.then}function mu(e){return!!e&&"function"==typeof e.subscribe} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function gu(e,t,n,r){void 0===n&&(n=!1);var i=on(),a=sn(),o=cn();return bu(a,i,i[11],o,e,t,n,r),gu}function yu(e,t,n,r){void 0===n&&(n=!1);var i=cn(),a=on(),o=sn();return bu(o,a,os(_n(o.data),i,a),i,e,t,n,r),yu}function bu(e,t,n,r,i,a,o,s){void 0===o&&(o=!1);var l=Ct(r),c=e.firstCreatePass&&(e.cleanup||(e.cleanup=[])),u=is(t);ngDevMode&&Qn(r,3,0,4);var d=!0;if(3===r.type){var h=Vt(r,t),p=s?s(h):nt,f=p.target||h,m=u.length,g=s?function(e){return s(Ft(e[r.index])).target}:r.index;if(Bt(n)){var y=null;if(!s&&l&&(y=function(e,t,n,r){var i=e.cleanup;if(null!=i)for(var a=0;al?s[l]:null}"string"==typeof o&&(a+=2)}return null}(e,t,i,r.index)),null!==y){(y.__ngLastListenerFn__||y).__ngNextListenerFn__=a,y.__ngLastListenerFn__=a,d=!1}else{a=ku(r,t,a,!1);var b=n.listen(p.name||f,i,a);ngDevMode&&ngDevMode.rendererAddEventListener++,u.push(a,b),c&&c.push(i,g,m,m+1)}}else a=ku(r,t,a,!0),f.addEventListener(i,a,o),ngDevMode&&ngDevMode.rendererAddEventListener++,u.push(a),c&&c.push(i,g,m,o)}var v,k=r.outputs;if(d&&null!==k&&(v=k[i])){var w=v.length;if(w)for(var _=0;_0)&&(h=!0)}else c=n;if(i)if(0!==l){var f=Sa(e[s+1]);e[r+1]=Ea(f,s),0!==f&&(e[f+1]=Ia(e[f+1],r)),e[s+1]=(u=e[s+1],d=r,ngDevMode&&Ie(u,"expected number"),ngDevMode&&De(d,0,32767),131071&u|d<<17)}else e[r+1]=Ea(s,0),0!==s&&(e[s+1]=Ia(e[s+1],r)),s=r;else e[r+1]=Ea(l,0),ngDevMode&&Ne(0!==s&&0===l,!1,"Adding template bindings after hostBindings is not allowed."),0===s?s=r:e[l+1]=Ia(e[l+1],r),l=r;h&&(e[r+1]=Oa(e[r+1])),Bu(e,c,r,!0,a),Bu(e,c,r,!1,a),function(e,t,n,r,i){var a=i?e.residualClasses:e.residualStyles;null!=a&&"string"==typeof t&&Xe(a,t)>=0&&(n[r+1]=Aa(n[r+1]))}(t,c,e,r,a),o=Ea(s,l),a?t.classBindings=o:t.styleBindings=o}function Bu(e,t,n,r,i){for(var a=e[n+1],o=null===t,s=r?Sa(a):za(a),l=!1;0!==s&&(!1===l||o);){ngDevMode&&He(e,s);var c=e[s],u=e[s+1];Lu(c,t)&&(l=!0,e[s+1]=r?Aa(u):Oa(u)),s=r?Sa(u):za(u)}l&&(e[n+1]=r?Oa(a):Aa(a))}function Lu(e,t){return ngDevMode&&Pe(Array.isArray(t),!0,"Expected that 'tStylingKey' has been unwrapped"),null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Xe(e,t)>=0} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */("undefined"==typeof ngDevMode||ngDevMode)&&oe()&&(Object.freeze({}),Object.freeze(Mu)) +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */;var Fu={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Uu(e){return e.substring(Fu.key,Fu.keyEnd)}function Vu(e){return e.substring(Fu.value,Fu.valueEnd)}function Hu(e,t){var n=Fu.textEnd;return n===t?-1:(t=Fu.keyEnd=function(e,t,n){for(;t32;)t++;return t}(e,Fu.key=t,n),Gu(e,t,n))}function Ku(e,t){var n=Fu.textEnd,r=Fu.key=Gu(e,t,n);return n===r?-1:(r=Fu.keyEnd=function(e,t,n){var r;for(;t=65&&(-33&r)<=90);)t++;return t}(e,r,n),r=Qu(e,r,n,58),r=Fu.value=Gu(e,r,n),r=Fu.valueEnd=function(e,t,n){var r=-1,i=-1,a=-1,o=t,s=o;for(;o32&&(s=o),a=i,i=r,r=-33&l}return s}(e,r,n),Qu(e,r,n,59))}function Wu(e){Fu.key=0,Fu.keyEnd=0,Fu.value=0,Fu.valueEnd=0,Fu.textEnd=e.length}function Gu(e,t,n){for(;t>"+e.substring(n,n+1)+"<<]"+e.substr(n+1)+"'. Expecting '"+t+"'.")} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Zu(e){Bn(e)}function Ju(e,t,n){return id(e,t,n,!1),Ju}function Xu(e,t){return id(e,t,null,!0),Xu}function ed(e){ad(ud,td,e,!1)}function td(e,t){for(var n=function(e){return Wu(e),Ku(e,Gu(e,0,Fu.textEnd))}(t);n>=0;n=Ku(t,n))ud(e,Uu(t),Vu(t))}function nd(e){ad(Ze,rd,e,!0)}function rd(e,t){for(var n=function(e){return Wu(e),Hu(e,Gu(e,0,Fu.textEnd))}(t);n>=0;n=Hu(t,n))Ze(e,Uu(t),!0)}function id(e,t,n,r){var i,a=on(),o=sn(),s=vn(2);if(o.firstUpdatePass&&sd(o,e,s,r),t!==fa&&Sc(a,s,t)){var l=void 0;null==n&&(l=null===(i=tn.lFrame)?null:i.currentSanitizer)&&(n=l),dd(o,o.data[An()+20],a,a[11],e,a[s+1]=function(e,t){null==e||("function"==typeof t?e=t(e):"string"==typeof t?e+=t:"object"==typeof e&&(e=B(Vr(e))));return e}(t,n),r,s)}}function ad(e,t,n,r){var i=sn(),a=vn(2);i.firstUpdatePass&&sd(i,null,a,r);var o=on();if(n!==fa&&Sc(o,a,n)){var s=i.data[An()+20];if(fd(s,r)&&!od(i,a)){if(ngDevMode){var l=i.data[a];Ne(Array.isArray(l)?l[1]:l,!1,"Styling linked list shadow input should be marked as 'false'")}var c=r?s.classesWithoutHost:s.stylesWithoutHost;ngDevMode&&!1===r&&null!==c&&Ne(c.endsWith(";"),!0,"Expecting static portion to end with ';'"),null!==c&&(n=L(c,n||"")),au(i,s,o,n,r)}else!function(e,t,n,r,i,a,o,s){i===fa&&(i=Mu);var l=0,c=0,u=0=e.expandoStartIndex}function sd(e,t,n,r){ngDevMode&&Nt(e);var i=e.data;if(null===i[n+1]){var a=i[An()+20],o=od(e,n);fd(a,r)&&null===t&&!o&&(t=!1),t=function(e,t,n,r){var i=_n(e),a=r?t.residualClasses:t.residualStyles;if(null===i){0===(r?t.classBindings:t.styleBindings)&&(n=cd(n=ld(null,e,t,n,r),t.attrs,r),a=null)}else{var o=t.directiveStylingLast;if(-1===o||e[o]!==i)if(n=ld(i,e,t,n,r),null===a){var s=function(e,t,n){var r=n?t.classBindings:t.styleBindings;if(0===za(r))return;return e[Sa(r)]}(e,t,r);void 0!==s&&Array.isArray(s)&&(s=cd(s=ld(null,e,t,s[1],r),t.attrs,r),function(e,t,n,r){var i=n?t.classBindings:t.styleBindings;ngDevMode&&Pe(za(i),0,"Expecting to have at least one template styling binding."),e[Sa(i)]=r}(e,t,r,s))}else a=function(e,t,n){var r=void 0,i=t.directiveEnd;ngDevMode&&Pe(t.directiveStylingLast,-1,"By the time this function gets called at least one hostBindings-node styling instruction must have executed.");for(var a=1+t.directiveStylingLast;a0;){var l=e[i],c=Array.isArray(l),u=c?l[1]:l,d=null===u,h=n[i+1];h===fa&&(h=d?Mu:void 0);var p=d?Je(h,r):u===r?h:void 0;if(c&&!pd(p)&&(p=Je(l,r)),pd(p)&&(s=p,o))return s;var f=e[i+1];i=o?Sa(f):za(f)}if(null!==t){var m=a?t.residualClasses:t.residualStyles;null!=m&&(s=Je(m,r))}return s}function pd(e){return void 0!==e}function fd(e,t){return 0!=(e.flags&(t?16:32))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function md(e,t){void 0===t&&(t="");var n=on(),r=sn(),i=e+20;ngDevMode&&Ne(gn(),r.bindingStartIndex,"text nodes should be created before any bindings"),ngDevMode&&He(n,i);var a=r.firstCreatePass?fo(r,n[6],e,3,null,null):r.data[i],o=n[i]=ps(t,n[11]);Ss(r,n,o,a),un(a,!1)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function gd(e){return yd("",e,""),gd}function yd(e,t,n){var r=on(),i=Ac(r,e,t,n);return i!==fa&&cs(r,An(),i),yd}function bd(e,t,n,r,i){var a=on(),o=Nc(a,e,t,n,r,i);return o!==fa&&cs(a,An(),o),bd}function vd(e,t,n,r,i,a,o){var s=on(),l=Pc(s,e,t,n,r,i,a,o);return l!==fa&&cs(s,An(),l),vd}function kd(e,t,n,r,i,a,o,s,l){var c=on(),u=Rc(c,e,t,n,r,i,a,o,s,l);return u!==fa&&cs(c,An(),u),kd}function wd(e,t,n,r,i,a,o,s,l,c,u){var d=on(),h=Mc(d,e,t,n,r,i,a,o,s,l,c,u);return h!==fa&&cs(d,An(),h),wd}function _d(e,t,n,r,i,a,o,s,l,c,u,d,h){var p=on(),f=qc(p,e,t,n,r,i,a,o,s,l,c,u,d,h);return f!==fa&&cs(p,An(),f),_d}function jd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f){var m=on(),g=Bc(m,e,t,n,r,i,a,o,s,l,c,u,d,h,p,f);return g!==fa&&cs(m,An(),g),jd}function Cd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g){var y=on(),b=Lc(y,e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g);return b!==fa&&cs(y,An(),b),Cd}function xd(e){var t=on(),n=Dc(t,e);return n!==fa&&cs(t,An(),n),xd} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ed(e,t,n){ad(Ze,rd,Ac(on(),e,t,n),!0)}function Sd(e,t,n,r,i){ad(Ze,rd,Nc(on(),e,t,n,r,i),!0)}function Td(e,t,n,r,i,a,o){ad(Ze,rd,Pc(on(),e,t,n,r,i,a,o),!0)}function Od(e,t,n,r,i,a,o,s,l){ad(Ze,rd,Rc(on(),e,t,n,r,i,a,o,s,l),!0)}function zd(e,t,n,r,i,a,o,s,l,c,u){ad(Ze,rd,Mc(on(),e,t,n,r,i,a,o,s,l,c,u),!0)}function Id(e,t,n,r,i,a,o,s,l,c,u,d,h){ad(Ze,rd,qc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h),!0)}function Dd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f){ad(Ze,rd,Bc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h,p,f),!0)}function Ad(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g){ad(Ze,rd,Lc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g),!0)}function Nd(e){ad(Ze,rd,Dc(on(),e),!0)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Pd(e,t,n){ed(Ac(on(),e,t,n))}function Rd(e,t,n,r,i){ed(Nc(on(),e,t,n,r,i))}function Md(e,t,n,r,i,a,o){ed(Pc(on(),e,t,n,r,i,a,o))}function qd(e,t,n,r,i,a,o,s,l){ed(Rc(on(),e,t,n,r,i,a,o,s,l))}function Bd(e,t,n,r,i,a,o,s,l,c,u){ed(Mc(on(),e,t,n,r,i,a,o,s,l,c,u))}function Ld(e,t,n,r,i,a,o,s,l,c,u,d,h){ed(qc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h))}function Fd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f){ed(Bc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h,p,f))}function Ud(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g){ed(Lc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g))}function Vd(e){ed(Dc(on(),e))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Hd(e,t,n,r,i){return id(e,Ac(on(),t,n,r),i,!1),Hd}function Kd(e,t,n,r,i,a,o){return id(e,Nc(on(),t,n,r,i,a),o,!1),Kd}function Wd(e,t,n,r,i,a,o,s,l){return id(e,Pc(on(),t,n,r,i,a,o,s),l,!1),Wd}function Gd(e,t,n,r,i,a,o,s,l,c,u){return id(e,Rc(on(),t,n,r,i,a,o,s,l,c),u,!1),Gd}function Qd(e,t,n,r,i,a,o,s,l,c,u,d,h){return id(e,Mc(on(),t,n,r,i,a,o,s,l,c,u,d),h,!1),Qd}function $d(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f){return id(e,qc(on(),t,n,r,i,a,o,s,l,c,u,d,h,p),f,!1),$d}function Yd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g){return id(e,Bc(on(),t,n,r,i,a,o,s,l,c,u,d,h,p,f,m),g,!1),Yd}function Zd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,y,b){return id(e,Lc(on(),t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,y),b,!1),Zd}function Jd(e,t,n){return id(e,Dc(on(),t),n,!1),Jd} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Xd(e,t,n){var r=on(),i=bn();if(Sc(r,i,t)){var a=sn(),o=Pn();To(a,o,r,e,t,r[11],n,!0),ngDevMode&&ns(a.data,o,e,i)}return Xd}function eh(e,t,n){var r=on(),i=bn();if(Sc(r,i,t)){var a=sn(),o=Pn();To(a,o,r,e,t,os(_n(a.data),o,r),n,!0),ngDevMode&&ns(a.data,o,e,i)}return eh} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function th(e){dh(e);var t,n,r,i,a=sh(e,!1);return null===a?null:(void 0===a.component&&(a.component=(t=a.nodeIndex,n=a.lView,r=n[1].data[t],i=r.directiveStart,2&r.flags?n[i]:null)),a.component)}function nh(e){dh(e);var t=sh(e,!1);return null===t?null:t.lView[8]}function rh(e){var t=sh(e,!1);if(null===t)return null;var n,r=t.lView;for(ngDevMode&&Dt(r);null===r[0]&&(n=ma(r));)r=n;return 512&r[2]?null:r[8]}function ih(e){return Object(r.g)(ya(e).components)}function ah(e){var t=sh(e,!1);if(null===t)return zl.NULL;var n=t.lView[1].data[t.nodeIndex];return new Tr(n,t.lView)}function oh(e){var t=sh(e);return void 0===t.directives&&(t.directives=Xi(t.nodeIndex,t.lView,!1)),null===t.directives?[]:Object(r.g)(t.directives)}function sh(e,t){void 0===t&&(t=!0);var n=Wi(e);if(!n&&t)throw new Error(ngDevMode?"Unable to find context associated with "+or(e):"Invalid ng target");return n}function lh(e){return Wi(e).native}function ch(e){dh(e);var t=sh(e,!1);if(null===t)return[];var n=t.lView,r=n[1],i=n[7],a=r.cleanup,o=[];if(a&&i)for(var s=0;s=0?"dom":"output",m="boolean"==typeof p&&p;e==d&&o.push({element:e,name:u,callback:h,useCapture:m,type:f})}}return o.sort(uh),o}function uh(e,t){return e.name==t.name?0:e.name=0;r--){var i=e[r];i.hostVars=t+=i.hostVars,i.hostAttrs=Xn(i.hostAttrs,n=Xn(n,i.hostAttrs))}}(r)}function Ch(e){return e===nt?{}:e===rt?[]:e}function xh(e,t){var n=e.viewQuery;e.viewQuery=n?function(e,r){t(e,r),n(e,r)}:t}function Eh(e,t){var n=e.contentQueries;e.contentQueries=n?function(e,r,i){t(e,r,i),n(e,r,i)}:t}function Sh(e,t){var n=e.hostBindings;e.hostBindings=n?function(e,r){t(e,r),n(e,r)}:t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Th=["providersResolver"],Oh=["template","decls","consts","vars","onPush","ngContentSelectors","styles","encapsulation","schemas"];function zh(e){var t,n,i,a,o=_h(e.type),s=void 0;s=xt(e)?o.ɵcmp:o.ɵdir;var l=e;try{for(var c=Object(r.h)(Th),u=c.next();!u.done;u=c.next()){l[p=u.value]=s[p]}}catch(f){t={error:f}}finally{try{u&&!u.done&&(n=c.return)&&n.call(c)}finally{if(t)throw t.error}}if(xt(s))try{for(var d=Object(r.h)(Oh),h=d.next();!h.done;h=d.next()){var p;l[p=h.value]=s[p]}}catch(m){i={error:m}}finally{try{h&&!h.done&&(a=d.return)&&a.call(d)}finally{if(i)throw i.error}}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ih=function(){function e(e,t,n){this.previousValue=e,this.currentValue=t,this.firstChange=n}return e.prototype.isFirstChange=function(){return this.firstChange},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Dh(e){e.type.prototype.ngOnChanges&&(e.setInput=Ah,e.onChanges=function(){var e=Nh(this),t=e&&e.current;if(t){var n=e.previous;if(n===nt)e.previous=t;else for(var r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}})}function Ah(e,t,n,r){var i=Nh(e)||function(e,t){return e.__ngSimpleChanges__=t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e,{previous:nt,current:null}),a=i.current||(i.current={}),o=i.previous,s=this.declaredInputs[n],l=o[s];a[s]=new Ih(l&&l.currentValue,t,o===nt),e[r]=t}Dh.ngInherit=!0;function Nh(e){return e.__ngSimpleChanges__||null}function Ph(e,t,n,r,i){if(e=V(e),Array.isArray(e))for(var a=0;a>16;if(Sl(e)||!e.multi){var f=new Wn(c,i,tu),m=qh(l,t,i?d:d+p,h);-1===m?(vr(mr(u,s),o,l),Rh(o,e,t.length),t.push(l),u.directiveStart++,u.directiveEnd++,i&&(u.providerIndexes+=65536),n.push(f),s.push(f)):(n[m]=f,s[m]=f)}else{var g=qh(l,t,d+p,h),y=qh(l,t,d,d+p),b=g>=0&&n[g],v=y>=0&&n[y];if(i&&!v||!i&&!b){vr(mr(u,s),o,l);f=function(e,t,n,r,i){var a=new Wn(e,n,tu);return a.multi=[],a.index=t,a.componentProviders=0,Mh(a,i,r&&!n),a}(i?Lh:Bh,n.length,i,r,c);!i&&v&&(n[y].providerFactory=f),Rh(o,e,t.length,0),t.push(l),u.directiveStart++,u.directiveEnd++,i&&(u.providerIndexes+=65536),n.push(f),s.push(f)}else{Rh(o,e,g>-1?g:y,Mh(n[i?y:g],c,!i&&r))}!i&&r&&v&&n[y].componentProviders++}}}function Rh(e,t,n,r){var i=Sl(t);if(i||t.useClass){var a=(t.useClass||t).prototype.ngOnDestroy;if(a){var o=e.destroyHooks||(e.destroyHooks=[]);if(!i&&t.multi){ngDevMode&&Fe(r,"indexInFactory when registering multi factory destroy hook");var s=o.indexOf(n);-1===s?o.push(n,[r,a]):o[s+1].push(r,a)}else o.push(n,a)}}}function Mh(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function qh(e,t,n,r){for(var i=n;i-1}(r,i)))){var u=e._providers.length;return e._def.providers[u]=e._def.providersByKey[t.tokenKey]={flags:5120,value:l.factory,deps:[],index:u,token:t.token},e._providers[u]=xf,e._providers[u]=Df(e,e._def.providersByKey[t.tokenKey])}return 4&t.flags?n:e._parent.get(t.token,n)}finally{fe(a)}}function Df(e,t){var n;switch(201347067&t.flags){case 512:n=function(e,t,n){var i=n.length;switch(i){case 0:return new t;case 1:return new t(If(e,n[0]));case 2:return new t(If(e,n[0]),If(e,n[1]));case 3:return new t(If(e,n[0]),If(e,n[1]),If(e,n[2]));default:for(var a=[],o=0;o0?i[n-1]:null,r)}function Nf(e,t){var n=e.viewContainer._embeddedViews;if((null==t||t>=n.length)&&(t=n.length-1),t<0)return null;var r=n[t];return r.viewContainerParent=null,$e(n,t),Fp.dirtyParentQueries(r),Rf(r),r}function Pf(e,t,n){var r=t?nf(t,t.def.lastRenderRootNode):e.renderElement,i=n.renderer.parentNode(r),a=n.renderer.nextSibling(r);hf(n,2,i,a,void 0)}function Rf(e){hf(e,3,null,null,void 0)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Mf={};function qf(e,t,n,r,i,a){return new Lf(e,t,n,r,i,a)}function Bf(e){return e.viewDefFactory}var Lf=function(e){function t(t,n,r,i,a,o){var s=e.call(this)||this;return s.selector=t,s.componentType=n,s._inputs=i,s._outputs=a,s.ngContentSelectors=o,s.viewDefFactory=r,s}return Object(r.c)(t,e),Object.defineProperty(t.prototype,"inputs",{get:function(){var e=[],t=this._inputs;for(var n in t){var r=t[n];e.push({propName:n,templateName:r})}return e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputs",{get:function(){var e=[];for(var t in this._outputs){var n=this._outputs[t];e.push({propName:t,templateName:n})}return e},enumerable:!0,configurable:!0}),t.prototype.create=function(e,t,n,r){if(!r)throw new Error("ngModule should be provided");var i=df(this.viewDefFactory),a=i.nodes[0].element.componentProvider.nodeIndex,o=Fp.createRootView(e,t||[],n,i,r,Mf),s=Mp(o,a).instance;return n&&o.renderer.setAttribute(Rp(o,0).renderElement,"ng-version",sp.full),new Ff(o,new Kf(o),s)},t}(Hh),Ff=function(e){function t(t,n,r){var i=e.call(this)||this;return i._view=t,i._viewRef=n,i._component=r,i._elDef=i._view.def.nodes[0],i.hostView=n,i.changeDetectorRef=n,i.instance=r,i}return Object(r.c)(t,e),Object.defineProperty(t.prototype,"location",{get:function(){return new Jh(Rp(this._view,this._elDef.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new $f(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){this._viewRef.destroy()},t.prototype.onDestroy=function(e){this._viewRef.onDestroy(e)},t}(Vh);function Uf(e,t,n){return new Vf(e,t,n)}var Vf=function(){function e(e,t,n){this._view=e,this._elDef=t,this._data=n,this._embeddedViews=[]}return Object.defineProperty(e.prototype,"element",{get:function(){return new Jh(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new $f(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parentInjector",{get:function(){for(var e=this._view,t=this._elDef.parent;!t&&e;)t=tf(e),e=e.parent;return e?new $f(e,t):new $f(this._view,null)},enumerable:!0,configurable:!0}),e.prototype.clear=function(){for(var e=this._embeddedViews.length-1;e>=0;e--){var t=Nf(this._data,e);Fp.destroyView(t)}},e.prototype.get=function(e){var t=this._embeddedViews[e];if(t){var n=new Kf(t);return n.attachToViewContainerRef(this),n}return null},Object.defineProperty(e.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),e.prototype.createEmbeddedView=function(e,t,n){var r=e.createEmbeddedView(t||{});return this.insert(r,n),r},e.prototype.createComponent=function(e,t,n,r,i){var a=n||this.parentInjector;i||e instanceof Yh||(i=a.get(Oe));var o=e.create(a,r,void 0,i);return this.insert(o.hostView,t),o},e.prototype.insert=function(e,t){if(e.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n=e,r=n._view;return Af(this._view,this._data,t,r),n.attachToViewContainerRef(this),e},e.prototype.move=function(e,t){if(e.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n,r,i,a,o,s=this._embeddedViews.indexOf(e._view);return n=this._data,r=s,i=t,a=n.viewContainer._embeddedViews,o=a[r],$e(a,r),null==i&&(i=a.length),Qe(a,i,o),Fp.dirtyParentQueries(o),Rf(o),Pf(n,i>0?a[i-1]:null,o),e},e.prototype.indexOf=function(e){return this._embeddedViews.indexOf(e._view)},e.prototype.remove=function(e){var t=Nf(this._data,e);t&&Fp.destroyView(t)},e.prototype.detach=function(e){var t=Nf(this._data,e);return t?new Kf(t):null},e}();function Hf(e){return new Kf(e)}var Kf=function(){function e(e){this._view=e,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(e.prototype,"rootNodes",{get:function(){return hf(this._view,0,void 0,void 0,e=[]),e;var e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"destroyed",{get:function(){return 0!=(128&this._view.state)},enumerable:!0,configurable:!0}),e.prototype.markForCheck=function(){Zp(this._view)},e.prototype.detach=function(){this._view.state&=-5},e.prototype.detectChanges=function(){var e=this._view.root.rendererFactory;e.begin&&e.begin();try{Fp.checkAndUpdateView(this._view)}finally{e.end&&e.end()}},e.prototype.checkNoChanges=function(){Fp.checkNoChangesView(this._view)},e.prototype.reattach=function(){this._view.state|=4},e.prototype.onDestroy=function(e){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(e)},e.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),Fp.destroyView(this._view)},e.prototype.detachFromAppRef=function(){this._appRef=null,Rf(this._view),Fp.dirtyParentQueries(this._view)},e.prototype.attachToAppRef=function(e){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e},e.prototype.attachToViewContainerRef=function(e){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=e},e}();function Wf(e,t){return new Gf(e,t)}var Gf=function(e){function t(t,n){var r=e.call(this)||this;return r._parentView=t,r._def=n,r}return Object(r.c)(t,e),t.prototype.createEmbeddedView=function(e){return new Kf(Fp.createEmbeddedView(this._parentView,this._def,this._def.element.template,e))},Object.defineProperty(t.prototype,"elementRef",{get:function(){return new Jh(Rp(this._parentView,this._def.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),t}(Cp);function Qf(e,t){return new $f(e,t)}var $f=function(){function e(e,t){this.view=e,this.elDef=t}return e.prototype.get=function(e,t){void 0===t&&(t=zl.THROW_IF_NOT_FOUND);var n=!!this.elDef&&0!=(33554432&this.elDef.flags);return Fp.resolveDep(this.view,this.elDef,n,{flags:0,token:e,tokenKey:Hp(e)},t)},e}();function Yf(e,t){var n=e.def.nodes[t];if(1&n.flags){var r=Rp(e,n.nodeIndex);return n.element.template?r.template:r.renderElement}if(2&n.flags)return Pp(e,n.nodeIndex).renderText;if(20240&n.flags)return Mp(e,n.nodeIndex).instance;throw new Error("Illegal state: read nodeValue for node index "+t)}function Zf(e,t,n,r){return new Jf(e,t,n,r)}var Jf=function(){function e(e,t,n,r){this._moduleType=e,this._parent=t,this._bootstrapComponents=n,this._def=r,this._destroyListeners=[],this._destroyed=!1,this.injector=this,function(e){for(var t=e._def,n=e._providers=Ye(t.providers.length),r=0;r0,r=mm(e,t.parent,n,t.provider.value,t.provider.deps);if(t.outputs.length)for(var i=0;i0,i=t.provider;switch(201347067&t.flags){case 512:return mm(e,t.parent,n,i.value,i.deps);case 1024:return function(e,t,n,i,a){var o=a.length;switch(o){case 0:return i();case 1:return i(ym(e,t,n,a[0]));case 2:return i(ym(e,t,n,a[0]),ym(e,t,n,a[1]));case 3:return i(ym(e,t,n,a[0]),ym(e,t,n,a[1]),ym(e,t,n,a[2]));default:for(var s=[],l=0;l0&&Ps(c,d,k.join(" "))}if(a=Kt(m,0),void 0!==t)for(var w=a.projection=[],_=0;_n.length&&n.push(l)}return{type:r,mainBinding:i,cases:t,values:n}}function tg(e){for(var t,n,r="",i=0,a=!1;null!==(t=Um.exec(e));)a?t[0]==="�/*"+n+"�"&&(i=t.index,a=!1):(r+=e.substring(i,t.index+t[0].length),n=t[1],a=!0);return ngDevMode&&Ne(a,!1,'Tag mismatch: unable to find the end of the sub-template in the translation "'+e+'"'),r+=e.substr(i)}function ng(e,t,n,r){void 0===r&&(r=null);for(var i=[null,null],a=e.split(Hm),o=0,s=0;s0&&o!==s){var d=o.index-20;dn()||(d=~d),u.push(d<<3|0)}var h=[],p=[];if(""===r&&hg(i))u.push(r,ug(a),l<<17|1);else for(var f=function(e,t){if(hg(t))return tg(e);var n=e.indexOf(":"+t+"�")+2+t.toString().length,r=e.search(new RegExp("�\\/\\*\\d+:"+t+"�"));return tg(e.substring(n,r))}(r,i),m=function(e){return e.replace(Tg," ")}(f).split(Vm),g=0;g0&&function(e,t,n){if(ngDevMode&&Le(n,0,"The number of slots to alloc should be greater than 0"),n>0&&e.firstCreatePass){for(var r=0;r>1),o++}}(t,e),xu(!1)}function mg(e,t,n,r,i,a){var o=cn();ngDevMode&&He(t,n+20),t[n+20]=i;var s=fo(e,t[6],n,r,a,null);return o&&o.next===s&&(o.next=null),s}function gg(e,t,n,r){for(var i=r[11],a=null,o=null,s=[],l=0;l>>17,p=void 0;p=h===e?r[6]:Kt(n,h),ngDevMode&&Fe(a,"You need to create or select a node before you can insert it into the DOM"),o=dg(n,a,p,o,r);break;case 0:var f=c>=0,m=(f?c:~c)>>>3;s.push(m),o=a,(a=Kt(n,m))&&un(a,f);break;case 5:o=a=Kt(n,c>>>3),un(a,!1);break;case 4:var g=c>>>3,y=t[++l],b=t[++l];Vo(Kt(n,g),r,y,b,null,null);break;default:throw new Error('Unable to determine the type of mutate operation for "'+c+'"')}else switch(c){case xa:var v=t[++l],k=t[++l];ngDevMode&&Ne(typeof v,"string",'Expected "'+v+'" to be a comment node value');var w=i.createComment(v);ngDevMode&&ngDevMode.rendererCreateComment++,o=a,a=mg(n,r,k,5,w,null),s.push(k),$i(w,r),a.activeCaseIndex=null,hn();break;case Ca:var _=t[++l];g=t[++l];ngDevMode&&Ne(typeof _,"string",'Expected "'+_+'" to be an element node tag name');var j=i.createElement(_);ngDevMode&&ngDevMode.rendererCreateElement++,o=a,a=mg(n,r,g,3,j,_),s.push(g);break;default:throw new Error('Unable to determine the type of mutate operation for "'+c+'"')}}return hn(),s}function yg(e,t,n,r){var i=Kt(e,n),a=Ut(n,t);a&&Os(t[11],a);var o=Wt(t,n);if(wt(o)){var s=o;0!==i.type&&Os(t[11],s[7])}r&&(i.flags|=64),ngDevMode&&ngDevMode.rendererRemoveNode++}function bg(e,t,n){cg(e,t,n),fg()}function vg(e,t){var n=on(),r=sn();ngDevMode&&Fe(r,"tView should be defined"),function(e,t,n,r){for(var i=cn().index-20,a=[],o=0;o>>2,g=void 0,y=void 0;switch(3&f){case 1:var b=t[++p],v=t[++p];To(a,Kt(a,m),o,b,h,o[11],v,!1);break;case 0:cs(o,m,h);break;case 2:if(g=n[t[++p]],null!==(y=Kt(a,m)).activeCaseIndex)for(var k=g.remove[y.activeCaseIndex],w=0;w>>3,!1);break;case 6:var j=Kt(a,k[w+1]>>>3).activeCaseIndex;if(null!==j)Ke(n[_>>>3].remove[j],k)}}var C=Cg(g,h);y.activeCaseIndex=-1!==C?C:null,C>-1&&(gg(-1,g.create[C],a,o),l=!0);break;case 3:g=n[t[++p]],null!==(y=Kt(a,m)).activeCaseIndex&&e(g.update[y.activeCaseIndex],n,r,i,a,o,l)}}}c+=d}}(r,i,a,kg,t,o),kg=0,wg=0}}function Cg(e,t){var n=e.cases.indexOf(t);if(-1===n)switch(e.type){case 1:var r=function(e,t){var n=Pm(t)(parseInt(e,10)),r=qm[n];return void 0!==r?r:"other"}(t,Og);-1===(n=e.cases.indexOf(r))&&"other"!==r&&(n=e.cases.indexOf("other"));break;case 0:n=e.cases.indexOf("other")}return n}function xg(e,t,n,i){for(var a=[],o=[],s=[],l=[],c=[],u=0;u=0;n--){var r=t[n];if(e===r.name)return r}throw new Error("The pipe '"+e+"' could not be found!")}(t,r.pipeRegistry),r.data[i]=n,n.onDestroy&&(r.destroyHooks||(r.destroyHooks=[])).push(i,n.onDestroy)):n=r.data[i];var a=n.factory||(n.factory=bt(n.type,!0)),o=me(tu),s=pr(!1),l=a();return pr(s),me(o),Xc(r,on(),e,l),l}function ny(e,t,n){var r=on(),i=Wt(r,e);return ly(r,sy(r,e)?Yg(r,mn(),t,i.transform,n,i):i.transform(n))}function ry(e,t,n,r){var i=on(),a=Wt(i,e);return ly(i,sy(i,e)?Zg(i,mn(),t,a.transform,n,r,a):a.transform(n,r))}function iy(e,t,n,r,i){var a=on(),o=Wt(a,e);return ly(a,sy(a,e)?Jg(a,mn(),t,o.transform,n,r,i,o):o.transform(n,r,i))}function ay(e,t,n,r,i,a){var o=on(),s=Wt(o,e);return ly(o,sy(o,e)?Xg(o,mn(),t,s.transform,n,r,i,a,s):s.transform(n,r,i,a))}function oy(e,t,n){var r=on(),i=Wt(r,e);return ly(r,sy(r,e)?ey(r,mn(),t,i.transform,n,i):i.transform.apply(i,n))}function sy(e,t){return e[1].data[t+20].pure}function ly(e,t){_c.isWrapped(t)&&(t=_c.unwrap(t),e[gn()]=fa);return t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var cy=function(e){function t(t){void 0===t&&(t=!1);var n=e.call(this)||this;return n.__isAsync=t,n}return Object(r.c)(t,e),t.prototype.emit=function(t){e.prototype.next.call(this,t)},t.prototype.subscribe=function(t,n,r){var a,o=function(e){return null},s=function(){return null};t&&"object"==typeof t?(a=this.__isAsync?function(e){setTimeout((function(){return t.next(e)}))}:function(e){t.next(e)},t.error&&(o=this.__isAsync?function(e){setTimeout((function(){return t.error(e)}))}:function(e){t.error(e)}),t.complete&&(s=this.__isAsync?function(){setTimeout((function(){return t.complete()}))}:function(){t.complete()})):(a=this.__isAsync?function(e){setTimeout((function(){return t(e)}))}:function(e){t(e)},n&&(o=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var l=e.prototype.subscribe.call(this,a,o,s);return t instanceof i.a&&t.add(l),l},t}(a.a); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function uy(){return this._results[vc()]()}var dy=function(){function e(){this.dirty=!0,this._results=[],this.changes=new cy,this.length=0;var t=vc(),n=e.prototype;n[t]||(n[t]=uy)}return e.prototype.map=function(e){return this._results.map(e)},e.prototype.filter=function(e){return this._results.filter(e)},e.prototype.find=function(e){return this._results.find(e)},e.prototype.reduce=function(e,t){return this._results.reduce(e,t)},e.prototype.forEach=function(e){this._results.forEach(e)},e.prototype.some=function(e){return this._results.some(e)},e.prototype.toArray=function(){return this._results.slice()},e.prototype.toString=function(){return this._results.toString()},e.prototype.reset=function(e){this._results=We(e),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]},e.prototype.notifyOnChanges=function(){this.changes.emit(this)},e.prototype.setDirty=function(){this.dirty=!0},e.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},e}(),hy=function(){function e(e){this.queryList=e,this.matches=null}return e.prototype.clone=function(){return new e(this.queryList)},e.prototype.setDirty=function(){this.queryList.setDirty()},e}(),py=function(){function e(e){void 0===e&&(e=[]),this.queries=e}return e.prototype.createEmbeddedView=function(t){var n=t.queries;if(null!==n){for(var r=null!==t.contentQueries?t.contentQueries[0]:n.length,i=[],a=0;a0)i.push(s[l/2]);else{var u=o[l+1],d=n[-c];ngDevMode&&zt(d);for(var h=10;h=0;e--){var t=My[e],n=t.moduleType,r=t.ngModule;r.declarations&&r.declarations.every(Ly)&&(My.splice(e,1),Yy(n,r))}}finally{qy=!1}}}function Ly(e){return Array.isArray(e)?e.every(Ly):!!V(e)}function Fy(e,t){void 0===t&&(t={}),Uy(e,t),function(e,t){My.push({moduleType:e,ngModule:t})}(e,t)}function Uy(e,t,n){void 0===n&&(n=!1),ngDevMode&&Fe(e,"Required value moduleType"),ngDevMode&&Fe(t,"Required value ngModule");var r=We(t.declarations||Ry),i=null;Object.defineProperty(e,ne,{configurable:!0,get:function(){if(null===i){if(ngDevMode&&t.imports&&t.imports.indexOf(e)>-1)throw new Error("'"+or(e)+"' module can't import itself");(i=J().compileNgModule(Ay,"ng:///"+e.name+"/ɵmod.js",{type:e,bootstrap:We(t.bootstrap||Ry).map(V),declarations:r.map(V),imports:We(t.imports||Ry).map(V).map(Xy),exports:We(t.exports||Ry).map(V).map(Xy),schemas:t.schemas?We(t.schemas):null,id:t.id||null})).schemas||(i.schemas=[])}return i}});var a=null;Object.defineProperty(e,P,{get:function(){if(null===a){ngDevMode&&Vy(e,n);var r={name:e.name,type:e,deps:al(e),providers:t.providers||Ry,imports:[(t.imports||Ry).map(V),(t.exports||Ry).map(V)]};a=J().compileInjector(Ay,"ng:///"+e.name+"/ɵinj.js",r)}return a},configurable:!!ngDevMode})}function Vy(e,t,n){if(!Gy.get(e)){var i;if(Gy.set(e,!0),e=V(e),n){if(!(i=vt(e)))throw new Error("Unexpected value '"+e.name+"' imported by the module '"+n.name+"'. Please add an @NgModule annotation.")}else i=vt(e,!0);var a=[],o=dr(i.declarations),s=dr(i.imports);We(s).map(Hy).forEach((function(t){h(t,e),Vy(t,!1,e)}));var l=dr(i.exports);o.forEach((function(t){mt(t=V(t))||gt(t)||yt(t)||a.push("Unexpected value '"+or(t)+"' declared by the module '"+or(e)+"'. Please add a @Pipe/@Directive/@Component annotation.")})),o.forEach((function(e){var t=gt(e=V(e));!mt(e)&&t&&0==t.selectors.length&&a.push("Directive "+or(e)+" has no selector, please add it!")}));var c=Object(r.g)(o.map(V),We(s.map($y)).map(V));l.forEach((function(t){var n=(mt(t=V(t))?"component":gt(t)&&"directive")||yt(t)&&"pipe";n&&-1===c.lastIndexOf(t)&&a.push("Can't export "+n+" "+or(t)+" from "+or(e)+" as it was neither declared nor imported!")})),o.forEach((function(n){return function(t,n){t=V(t);var r=Wy.get(t);if(r&&r!==e){if(!n){var i=[r,e].map(or).sort();a.push("Type "+or(t)+" is part of the declarations of 2 modules: "+i[0]+" and "+i[1]+"! Please consider moving "+or(t)+" to a higher module that imports "+i[0]+" and "+i[1]+". You can also create a new NgModule that exports and includes "+or(t)+" then import that NgModule in "+i[0]+" and "+i[1]+".")}}else Wy.set(t,e)}(n,t)})),o.forEach((function(e){if(mt(e=V(e))){var t=Ky(e,"Component");t&&t.entryComponents&&Ge(t.entryComponents,d)}}));var u=Ky(e,"NgModule");if(u&&(u.imports&&We(u.imports).map(Hy).forEach((function(t){h(t,e),Vy(t,!1,e)})),u.bootstrap&&Ge(u.bootstrap,(function(e){mt(e=V(e))||a.push(or(e)+" cannot be used as an entry component.")})),u.bootstrap&&Ge(u.bootstrap,d),u.entryComponents&&Ge(u.entryComponents,d)),a.length)throw new Error(a.join("\n"))}function d(e){e=V(e),Wy.get(e)||a.push("Component "+or(e)+" is not part of any NgModule or the module has not been imported into your module.")}function h(e,t){if(mt(e=V(e))||gt(e))throw new Error("Unexpected directive '"+e.name+"' imported by the module '"+t.name+"'. Please add an @NgModule annotation.");if(yt(e))throw new Error("Unexpected pipe '"+e.name+"' imported by the module '"+t.name+"'. Please add an @NgModule annotation.")}}function Hy(e){return(e=V(e)).ngModule||e}function Ky(e,t){var n=null;return r(e.__annotations__),r(e.decorators),n;function r(e){e&&e.forEach(i)}function i(e){if(!n)if(Object.getPrototypeOf(e).ngMetadataName==t)n=e;else if(e.type){Object.getPrototypeOf(e.type).ngMetadataName==t&&(n=e.args[0])}}}var Wy=new Map,Gy=new Map;function Qy(){Wy=new Map,Gy=new Map,My.length=0}function $y(e){var t=vt(e=V(e),!0);return Object(r.g)(We(dr(t.exports).map((function(e){return vt(e)?(Vy(e,!1),$y(e)):e}))))}function Yy(e,t){var n=We(t.declarations||Ry),r=Jy(e);n.forEach((function(t){t.hasOwnProperty(X)?Zy(mt(t),r):t.hasOwnProperty(ee)||t.hasOwnProperty(te)||(t.ngSelectorScope=e)}))}function Zy(e,t){e.directiveDefs=function(){return Array.from(t.compilation.directives).map((function(e){return e.hasOwnProperty(X)?mt(e):gt(e)})).filter((function(e){return!!e}))},e.pipeDefs=function(){return Array.from(t.compilation.pipes).map((function(e){return yt(e)}))},e.schemas=t.schemas,e.tView=null}function Jy(e){if(!eb(e))throw new Error(e.name+" does not have a module def (ɵmod property)");var t=vt(e);if(null!==t.transitiveCompileScopes)return t.transitiveCompileScopes;var n={schemas:t.schemas||null,compilation:{directives:new Set,pipes:new Set},exported:{directives:new Set,pipes:new Set}};return dr(t.imports).forEach((function(e){var t=e;if(!eb(t))throw new Error("Importing "+t.name+" which does not have a ɵmod property");var r=Jy(t);r.exported.directives.forEach((function(e){return n.compilation.directives.add(e)})),r.exported.pipes.forEach((function(e){return n.compilation.pipes.add(e)}))})),dr(t.declarations).forEach((function(e){yt(e)?n.compilation.pipes.add(e):n.compilation.directives.add(e)})),dr(t.exports).forEach((function(e){var t=e;if(eb(t)){var r=Jy(t);r.exported.directives.forEach((function(e){n.compilation.directives.add(e),n.exported.directives.add(e)})),r.exported.pipes.forEach((function(e){n.compilation.pipes.add(e),n.exported.pipes.add(e)}))}else yt(t)?n.exported.pipes.add(t):n.exported.directives.add(t)})),t.transitiveCompileScopes=n,n}function Xy(e){return function(e){return void 0!==e.ngModule}(e)?e.ngModule:e}function eb(e){return!!vt(e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function tb(e,t){("undefined"==typeof ngDevMode||ngDevMode)&&oe();var n=null;!function(e,t){fc(t)&&(hc.set(e,t),pc.add(e))}(e,t),ib(e,t),Object.defineProperty(e,X,{get:function(){if(null===n){var i=J();if(fc(t)){var a=["Component '"+e.name+"' is not resolved:"];throw t.templateUrl&&a.push(" - templateUrl: "+t.templateUrl),t.styleUrls&&t.styleUrls.length&&a.push(" - styleUrls: "+JSON.stringify(t.styleUrls)),a.push("Did you run and wait for 'resolveComponentResources()'?"),new Error(a.join("\n"))}var o=Ny,s=t.preserveWhitespaces;void 0===s&&(s=null!==o&&void 0!==o.preserveWhitespaces&&o.preserveWhitespaces);var l=t.encapsulation;void 0===l&&(l=null!==o&&void 0!==o.defaultEncapsulation?o.defaultEncapsulation:Te.Emulated);var c=t.templateUrl||"ng:///"+e.name+"/template.html",u=Object(r.a)(Object(r.a)({},ob(e,t)),{typeSourceSpan:i.createParseSourceSpan("Component",e.name,c),template:t.template||"",preserveWhitespaces:s,styles:t.styles||rt,animations:t.animations,directives:[],changeDetection:t.changeDetection,pipes:new Map,encapsulation:l,interpolation:t.interpolation,viewProviders:t.viewProviders||null});if(u.usesInheritance&&sb(e),n=i.compileComponent(Ay,c,u),By(),void 0!==e.ngSelectorScope){var d=Jy(e.ngSelectorScope);Zy(n,d)}}return n},configurable:!!ngDevMode})}function nb(e,t){var n=null;ib(e,t||{}),Object.defineProperty(e,ee,{get:function(){if(null===n){var r=rb(e,t||{});n=J().compileDirective(Ay,r.sourceMapUrl,r.metadata)}return n},configurable:!!ngDevMode})}function rb(e,t){var n=e&&e.name,r="ng:///"+n+"/ɵdir.js",i=J(),a=ob(e,t);return a.typeSourceSpan=i.createParseSourceSpan("Directive",n,r),a.usesInheritance&&sb(e),{metadata:a,sourceMapUrl:r}}function ib(e,t){var n=null;Object.defineProperty(e,ie,{get:function(){if(null===n){var i=rb(e,t),a=J();n=a.compileFactory(Ay,"ng:///"+e.name+"/ɵfac.js",Object(r.a)(Object(r.a)({},i.metadata),{injectFn:"directiveInject",target:a.R3FactoryTarget.Directive}))}return n},configurable:!!ngDevMode})}function ab(e){return Object.getPrototypeOf(e.prototype)===Object.prototype}function ob(e,t){var n,r=il(),i=r.ownPropMetadata(e);return{name:e.name,type:e,typeArgumentCount:0,selector:void 0!==t.selector?t.selector:null,deps:al(e),host:t.host||nt,propMetadata:i,inputs:t.inputs||rt,outputs:t.outputs||rt,queries:lb(e,i,cb),lifecycle:{usesOnChanges:r.hasLifecycleHook(e,"ngOnChanges")},typeSourceSpan:null,usesInheritance:!ab(e),exportAs:(n=t.exportAs,void 0===n?null:hb(n)),providers:t.providers||null,viewQueries:lb(e,i,ub)}}function sb(e){for(var t=Object.prototype,n=Object.getPrototypeOf(e.prototype).constructor;n&&n!==t;)gt(n)||mt(n)||!fb(n)||nb(n,null),n=Object.getPrototypeOf(n)}function lb(e,t,n){var r=[],i=function(i){if(t.hasOwnProperty(i)){var a=t[i];a.forEach((function(t){if(n(t)){if(!t.selector)throw new Error("Can't construct a query for the property \""+i+'" of "'+or(e)+"\" since the query selector wasn't defined.");if(a.some(db))throw new Error("Cannot combine @Input decorators with query decorators");r.push(function(e,t){return{propertyName:e,predicate:(n=t.selector,"string"==typeof n?hb(n):V(n)),descendants:t.descendants,first:t.first,read:t.read?t.read:null,static:!!t.static};var n}(i,t))}}))}};for(var a in t)i(a);return r}function cb(e){var t=e.ngMetadataName;return"ContentChild"===t||"ContentChildren"===t}function ub(e){var t=e.ngMetadataName;return"ViewChild"===t||"ViewChildren"===t}function db(e){return"Input"===e.ngMetadataName}function hb(e){return e.split(",").map((function(e){return e.trim()}))}var pb=["ngOnChanges","ngOnInit","ngOnDestroy","ngDoCheck","ngAfterViewInit","ngAfterViewChecked","ngAfterContentInit","ngAfterContentChecked"];function fb(e){var t=il();if(pb.some((function(n){return t.hasLifecycleHook(e,n)})))return!0;var n=t.propMetadata(e);for(var r in n)for(var i=n[r],a=0;a0&&(i=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==i})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:i,updateCb:n})},e.prototype.whenStable=function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()},e.prototype.getPendingRequestCount=function(){return this._pendingCount},e.prototype.findProviders=function(e,t,n){return[]},(e=Object(r.b)([Object(r.d)("design:paramtypes",[dv])],e)).ɵfac=function(t){return new(t||e)(ye(dv))},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}(),kv=function(){function e(){this._applications=new Map,jv.addToWindow(this)}return e.prototype.registerApplication=function(e,t){this._applications.set(e,t)},e.prototype.unregisterApplication=function(e){this._applications.delete(e)},e.prototype.unregisterAllApplications=function(){this._applications.clear()},e.prototype.getTestability=function(e){return this._applications.get(e)||null},e.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},e.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},e.prototype.findTestabilityInTree=function(e,t){return void 0===t&&(t=!0),jv.findTestabilityInTree(this,e,t)},(e=Object(r.b)([Object(r.d)("design:paramtypes",[])],e)).ɵfac=function(t){return new(t||e)},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function wv(e){jv=e}var _v,jv=new(function(){function e(){}return e.prototype.addToWindow=function(e){},e.prototype.findTestabilityInTree=function(e,t,n){return null},e}()),Cv=xv; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function xv(e,t,n){var i;ngDevMode&&(void 0===i&&(i="Type passed in is not NgModuleType, it does not have 'ɵmod' property."),vt(n)||Ue(i));var a=e.get(sv,[]).concat(t);("undefined"==typeof ngJitMode||ngJitMode)&&function(e){if(null!==Ny){if(e.defaultEncapsulation!==Ny.defaultEncapsulation)return void(ngDevMode&&console.error("Provided value for `defaultEncapsulation` can not be changed once it has been set."));if(e.preserveWhitespaces!==Ny.preserveWhitespaces)return void(ngDevMode&&console.error("Provided value for `preserveWhitespaces` can not be changed once it has been set."))}Ny=e}({defaultEncapsulation:Lv(a.map((function(e){return e.defaultEncapsulation}))),preserveWhitespaces:Lv(a.map((function(e){return e.preserveWhitespaces})))});var o=new qg(n);if(0===hc.size)return Promise.resolve(o);var s,l,c=(s=a.map((function(e){return e.providers})),l=[],s.forEach((function(e){return e&&l.push.apply(l,Object(r.g)(e))})),l);if(0===c.length)return Promise.resolve(o);var u=J(),d=zl.create({providers:c}).get(u.ResourceLoader);return dc((function(e){return Promise.resolve(d.get(e))})).then((function(){return o}))}var Ev=function(){ngDevMode&&fh()},Sv=Tv;function Tv(e){return e.isBoundToModule}var Ov=new le("AllowMultipleToken"),zv=function(e,t){this.name=e,this.token=t};function Iv(e){if(_v&&!_v.destroyed&&!_v.injector.get(Ov,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");Ev(),_v=e.get(Rv);var t=e.get(Lb,null);return t&&t.forEach((function(e){return e()})),_v}function Dv(e,t,n){void 0===n&&(n=[]);var r="Platform: "+t,i=new le(r);return function(t){void 0===t&&(t=[]);var a=Pv();if(!a||a.injector.get(Ov,!1))if(e)e(n.concat(t).concat({provide:i,useValue:!0}));else{var o=n.concat(t).concat({provide:i,useValue:!0},{provide:fl,useValue:"platform"});Iv(zl.create({providers:o,name:r}))}return Av(i)}}function Av(e){var t=Pv();if(!t)throw new Error("No platform exists!");if(!t.injector.get(e,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return t}function Nv(){_v&&!_v.destroyed&&_v.destroy()}function Pv(){return _v&&!_v.destroyed?_v:null}var Rv=function(){function e(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return e.prototype.bootstrapModuleFactory=function(e,t){var n=this,r=function(e,t){var n;n="noop"===e?new bv:("zone.js"===e?void 0:e)||new dv({enableLongStackTrace:Xr(),shouldCoalesceEventChangeDetection:t});return n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),i=[{provide:dv,useValue:r}];return r.run((function(){var t=zl.create({providers:i,parent:n.injector,name:e.moduleType.name}),a=e.create(t),o=a.injector.get(Nr,null);if(!o)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return a.onDestroy((function(){return Bv(n._modules,a)})),r.runOutsideAngular((function(){return r.onError.subscribe({next:function(e){o.handleError(e)}})})),function(e,t,n){try{var r=n();return fu(r)?r.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):r}catch(i){throw t.runOutsideAngular((function(){return e.handleError(i)})),i}}(o,r,(function(){var e=a.injector.get(Nb);return e.runInitializers(),e.donePromise.then((function(){Yb&&zg(a.injector.get(Kb,Bm)||Bm);return n._moduleDoBootstrap(a),a}))}))}))},e.prototype.bootstrapModule=function(e,t){var n=this;void 0===t&&(t=[]);var r=Mv({},t);return Cv(this.injector,r,e).then((function(e){return n.bootstrapModuleFactory(e,r)}))},e.prototype._moduleDoBootstrap=function(e){var t=e.injector.get(qv);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error("The module "+B(e.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');e.instance.ngDoBootstrap(t)}this._modules.push(e)},e.prototype.onDestroy=function(e){this._destroyListeners.push(e)},Object.defineProperty(e.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0},Object.defineProperty(e.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),(e=Object(r.b)([Object(r.d)("design:paramtypes",[zl])],e)).ɵfac=function(t){return new(t||e)(ye(zl))},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function Mv(e,t){return e=Array.isArray(t)?t.reduce(Mv,e):Object(r.a)(Object(r.a)({},e),t)}var qv=function(){function e(e,t,n,r,i,a){var c=this;this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=i,this._initStatus=a,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Xr(),this._zone.onMicrotaskEmpty.subscribe({next:function(){c._zone.run((function(){c.tick()}))}});var u=new o.a((function(e){c._stable=c._zone.isStable&&!c._zone.hasPendingMacrotasks&&!c._zone.hasPendingMicrotasks,c._zone.runOutsideAngular((function(){e.next(c._stable),e.complete()}))})),d=new o.a((function(e){var t;c._zone.runOutsideAngular((function(){t=c._zone.onStable.subscribe((function(){dv.assertNotInAngularZone(),uv((function(){c._stable||c._zone.hasPendingMacrotasks||c._zone.hasPendingMicrotasks||(c._stable=!0,e.next(!0))}))}))}));var n=c._zone.onUnstable.subscribe((function(){dv.assertInAngularZone(),c._stable&&(c._stable=!1,c._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=Object(s.a)(u,d.pipe(Object(l.a)()))}return e.prototype.bootstrap=function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");n=e instanceof Hh?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var i=Sv(n)?void 0:this._injector.get(Oe),a=t||n.selector,o=n.create(zl.NULL,[],a,i);o.onDestroy((function(){r._unloadComponent(o)}));var s=o.injector.get(vv,null);return s&&o.injector.get(kv).registerApplication(o.location.nativeElement,s),this._loadComponent(o),Xr()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),o},e.prototype.tick=function(){var e,t,n,i,a=this;if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");try{this._runningTick=!0;try{for(var o=Object(r.h)(this._views),s=o.next();!s.done;s=o.next()){s.value.detectChanges()}}catch(u){e={error:u}}finally{try{s&&!s.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}if(this._enforceNoNewChanges)try{for(var l=Object(r.h)(this._views),c=l.next();!c.done;c=l.next()){c.value.checkNoChanges()}}catch(d){n={error:d}}finally{try{c&&!c.done&&(i=l.return)&&i.call(l)}finally{if(n)throw n.error}}}catch(h){this._zone.runOutsideAngular((function(){return a._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}},e.prototype.attachView=function(e){var t=e;this._views.push(t),t.attachToAppRef(this)},e.prototype.detachView=function(e){var t=e;Bv(this._views,t),t.detachFromAppRef()},e.prototype._loadComponent=function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Ub,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))},e.prototype._unloadComponent=function(e){this.detachView(e.hostView),Bv(this.components,e)},e.prototype.ngOnDestroy=function(){this._views.slice().forEach((function(e){return e.destroy()}))},Object.defineProperty(e.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),(e=Object(r.b)([Object(r.d)("design:paramtypes",[dv,Hb,zl,Nr,Qh,Nb])],e)).ɵfac=function(t){return new(t||e)(ye(dv),ye(Hb),ye(zl),ye(Nr),ye(Qh),ye(Nb))},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function Bv(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}function Lv(e){for(var t=e.length-1;t>=0;t--)if(void 0!==e[t])return e[t]} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var Fv=function(){};function Uv(e){var t=Rg(e);if(!t)throw Kv(e);return t}function Vv(e){var t=Rg(e);if(!t)throw Kv(e);return new qg(t)}var Hv=Vv;function Kv(e){return new Error("No module with ID "+e+" loaded")} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Wv=function(){},Gv={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},Qv=function(){function e(e,t){this._compiler=e,this._config=t||Gv}return e.prototype.load=function(e){return!Yb&&this._compiler instanceof ov?this.loadFactory(e):this.loadAndCompile(e)},e.prototype.loadAndCompile=function(e){var t=this,i=Object(r.f)(e.split("#"),2),a=i[0],o=i[1];return void 0===o&&(o="default"),n(529)(a).then((function(e){return e[o]})).then((function(e){return $v(e,a,o)})).then((function(e){return t._compiler.compileModuleAsync(e)}))},e.prototype.loadFactory=function(e){var t=Object(r.f)(e.split("#"),2),i=t[0],a=t[1],o="NgFactory";return void 0===a&&(a="default",o=""),n(529)(this._config.factoryPathPrefix+i+this._config.factoryPathSuffix).then((function(e){return e[a+o]})).then((function(e){return $v(e,i,a)}))},(e=Object(r.b)([Object(r.e)(1,k()),Object(r.d)("design:paramtypes",[ov,Wv])],e)).ɵfac=function(t){return new(t||e)(ye(ov),ye(Wv,8))},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function $v(e,t,n){if(!e)throw new Error("Cannot find '"+n+"' in '"+t+"'");return e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Yv=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t}(Ks),Zv=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t}(Yv),Jv=function(e,t){this.name=e,this.callback=t},Xv=function(){function e(e,t,n){this.listeners=[],this.parent=null,this._debugContext=n,this.nativeNode=e,t&&t instanceof ek&&t.addChild(this)}return Object.defineProperty(e.prototype,"injector",{get:function(){return this._debugContext.injector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentInstance",{get:function(){return this._debugContext.component},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._debugContext.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"references",{get:function(){return this._debugContext.references},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"providerTokens",{get:function(){return this._debugContext.providerTokens},enumerable:!0,configurable:!0}),e}(),ek=function(e){function t(t,n,r){var i=e.call(this,t,n,r)||this;return i.properties={},i.attributes={},i.classes={},i.styles={},i.childNodes=[],i.nativeElement=t,i}return Object(r.c)(t,e),t.prototype.addChild=function(e){e&&(this.childNodes.push(e),e.parent=this)},t.prototype.removeChild=function(e){var t=this.childNodes.indexOf(e);-1!==t&&(e.parent=null,this.childNodes.splice(t,1))},t.prototype.insertChildrenAfter=function(e,t){var n,i=this,a=this.childNodes.indexOf(e);-1!==a&&((n=this.childNodes).splice.apply(n,Object(r.g)([a+1,0],t)),t.forEach((function(t){t.parent&&t.parent.removeChild(t),e.parent=i})))},t.prototype.insertBefore=function(e,t){var n=this.childNodes.indexOf(e);-1===n?this.addChild(t):(t.parent&&t.parent.removeChild(t),t.parent=this,this.childNodes.splice(n,0,t))},t.prototype.query=function(e){return this.queryAll(e)[0]||null},t.prototype.queryAll=function(e){var t=[];return nk(this,e,t),t},t.prototype.queryAllNodes=function(e){var t=[];return rk(this,e,t),t},Object.defineProperty(t.prototype,"children",{get:function(){return this.childNodes.filter((function(e){return e instanceof t}))},enumerable:!0,configurable:!0}),t.prototype.triggerEventHandler=function(e,t){this.listeners.forEach((function(n){n.name==e&&n.callback(t)}))},t}(Xv);function tk(e){return e.map((function(e){return e.nativeElement}))}function nk(e,t,n){e.childNodes.forEach((function(e){e instanceof ek&&(t(e)&&n.push(e),nk(e,t,n))}))}function rk(e,t,n){e instanceof ek&&e.childNodes.forEach((function(e){t(e)&&n.push(e),e instanceof ek&&rk(e,t,n)}))}var ik=function(){function e(e){this.nativeNode=e}return Object.defineProperty(e.prototype,"parent",{get:function(){var e=this.nativeNode.parentNode;return e?new ak(e):null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return ah(this.nativeNode)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentInstance",{get:function(){var e=this.nativeNode;return e&&(th(e)||rh(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return th(this.nativeNode)||nh(this.nativeNode)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"listeners",{get:function(){return ch(this.nativeNode).filter((function(e){return"dom"===e.type}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"references",{get:function(){return e=this.nativeNode,null===(t=sh(e,!1))?{}:(void 0===t.localRefs&&(t.localRefs=function(e,t){var n=e[1].data[t];if(n&&n.localNames){for(var r={},i=n.index+1,a=0;a1){for(var c=s[1],u=1;u0)c=m,Yk(m)||(u=m);else for(;c&&f===c.nodeIndex+c.childCount;){var v=c.parent;v&&(v.childFlags|=c.childFlags,v.childMatchedQueries|=c.childMatchedQueries),u=(c=v)&&Yk(c)?c.renderParent:c}}return{factory:null,nodeFlags:o,rootNodeFlags:s,nodeMatchedQueries:l,flags:e,nodes:t,updateDirectives:n||Up,updateRenderer:r||Up,handleEvent:function(e,n,r,i){return t[n].element.handleEvent(e,r,i)},bindingCount:i,outputCount:a,lastRenderRootNode:p}}function Yk(e){return 0!=(1&e.flags)&&null===e.element.name}function Zk(e,t,n){var r=t.element&&t.element.template;if(r){if(!r.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(r.lastRenderRootNode&&16777216&r.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+t.nodeIndex+"!")}if(20224&t.flags&&0==(1&(e?e.flags:0)))throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index "+t.nodeIndex+"!");if(t.query){if(67108864&t.flags&&(!e||0==(16384&e.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+t.nodeIndex+"!");if(134217728&t.flags&&e)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+t.nodeIndex+"!")}if(t.childCount){var i=e?e.nodeIndex+e.childCount:n-1;if(t.nodeIndex<=i&&t.nodeIndex+t.childCount>i)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+t.nodeIndex+"!")}}function Jk(e,t,n,r){var i=tw(e.root,e.renderer,e,t,n);return nw(i,e.component,r),rw(i),i}function Xk(e,t,n){var r=tw(e,e.renderer,null,null,t);return nw(r,n,n),rw(r),r}function ew(e,t,n,r){var i,a=t.element.componentRendererType;return i=a?e.root.rendererFactory.createRenderer(r,a):e.root.renderer,tw(e.root,i,e,t.element.componentProvider,n)}function tw(e,t,n,r,i){var a=new Array(i.nodes.length),o=i.outputCount?new Array(i.outputCount):null;return{def:i,parent:n,viewContainerParent:null,parentNodeDef:r,context:null,component:null,nodes:a,state:13,root:e,renderer:t,oldValues:new Array(i.bindingCount),disposables:o,initIndex:-1}}function nw(e,t,n){e.component=t,e.context=n}function rw(e){var t;if(rf(e)){var n=e.parentNodeDef;t=Rp(e.parent,n.parent.nodeIndex).renderElement}for(var r=e.def,i=e.nodes,a=0;a0&&Nk(e,t,0,n)&&(p=!0),h>1&&Nk(e,t,1,r)&&(p=!0),h>2&&Nk(e,t,2,i)&&(p=!0),h>3&&Nk(e,t,3,a)&&(p=!0),h>4&&Nk(e,t,4,o)&&(p=!0),h>5&&Nk(e,t,5,s)&&(p=!0),h>6&&Nk(e,t,6,l)&&(p=!0),h>7&&Nk(e,t,7,c)&&(p=!0),h>8&&Nk(e,t,8,u)&&(p=!0),h>9&&Nk(e,t,9,d)&&(p=!0),p}(e,t,n,r,i,a,o,s,l,c,u,d);case 2:return function(e,t,n,r,i,a,o,s,l,c,u,d){var h=!1,p=t.bindings,f=p.length;if(f>0&&$p(e,t,0,n)&&(h=!0),f>1&&$p(e,t,1,r)&&(h=!0),f>2&&$p(e,t,2,i)&&(h=!0),f>3&&$p(e,t,3,a)&&(h=!0),f>4&&$p(e,t,4,o)&&(h=!0),f>5&&$p(e,t,5,s)&&(h=!0),f>6&&$p(e,t,6,l)&&(h=!0),f>7&&$p(e,t,7,c)&&(h=!0),f>8&&$p(e,t,8,u)&&(h=!0),f>9&&$p(e,t,9,d)&&(h=!0),h){var m=t.text.prefix;f>0&&(m+=Qk(n,p[0])),f>1&&(m+=Qk(r,p[1])),f>2&&(m+=Qk(i,p[2])),f>3&&(m+=Qk(a,p[3])),f>4&&(m+=Qk(o,p[4])),f>5&&(m+=Qk(s,p[5])),f>6&&(m+=Qk(l,p[6])),f>7&&(m+=Qk(c,p[7])),f>8&&(m+=Qk(u,p[8])),f>9&&(m+=Qk(d,p[9]));var g=Pp(e,t.nodeIndex).renderText;e.renderer.setValue(g,m)}return h}(e,t,n,r,i,a,o,s,l,c,u,d);case 16384:return function(e,t,n,r,i,a,o,s,l,c,u,d){var h=Mp(e,t.nodeIndex),p=h.instance,f=!1,m=void 0,g=t.bindings.length;return g>0&&Qp(e,t,0,n)&&(f=!0,m=vm(e,h,t,0,n,m)),g>1&&Qp(e,t,1,r)&&(f=!0,m=vm(e,h,t,1,r,m)),g>2&&Qp(e,t,2,i)&&(f=!0,m=vm(e,h,t,2,i,m)),g>3&&Qp(e,t,3,a)&&(f=!0,m=vm(e,h,t,3,a,m)),g>4&&Qp(e,t,4,o)&&(f=!0,m=vm(e,h,t,4,o,m)),g>5&&Qp(e,t,5,s)&&(f=!0,m=vm(e,h,t,5,s,m)),g>6&&Qp(e,t,6,l)&&(f=!0,m=vm(e,h,t,6,l,m)),g>7&&Qp(e,t,7,c)&&(f=!0,m=vm(e,h,t,7,c,m)),g>8&&Qp(e,t,8,u)&&(f=!0,m=vm(e,h,t,8,u,m)),g>9&&Qp(e,t,9,d)&&(f=!0,m=vm(e,h,t,9,d,m)),m&&p.ngOnChanges(m),65536&t.flags&&Np(e,256,t.nodeIndex)&&p.ngOnInit(),262144&t.flags&&p.ngDoCheck(),f}(e,t,n,r,i,a,o,s,l,c,u,d);case 32:case 64:case 128:return function(e,t,n,r,i,a,o,s,l,c,u,d){var h=t.bindings,p=!1,f=h.length;if(f>0&&$p(e,t,0,n)&&(p=!0),f>1&&$p(e,t,1,r)&&(p=!0),f>2&&$p(e,t,2,i)&&(p=!0),f>3&&$p(e,t,3,a)&&(p=!0),f>4&&$p(e,t,4,o)&&(p=!0),f>5&&$p(e,t,5,s)&&(p=!0),f>6&&$p(e,t,6,l)&&(p=!0),f>7&&$p(e,t,7,c)&&(p=!0),f>8&&$p(e,t,8,u)&&(p=!0),f>9&&$p(e,t,9,d)&&(p=!0),p){var m=qp(e,t.nodeIndex),g=void 0;switch(201347067&t.flags){case 32:g=[],f>0&&g.push(n),f>1&&g.push(r),f>2&&g.push(i),f>3&&g.push(a),f>4&&g.push(o),f>5&&g.push(s),f>6&&g.push(l),f>7&&g.push(c),f>8&&g.push(u),f>9&&g.push(d);break;case 64:g={},f>0&&(g[h[0].name]=n),f>1&&(g[h[1].name]=r),f>2&&(g[h[2].name]=i),f>3&&(g[h[3].name]=a),f>4&&(g[h[4].name]=o),f>5&&(g[h[5].name]=s),f>6&&(g[h[6].name]=l),f>7&&(g[h[7].name]=c),f>8&&(g[h[8].name]=u),f>9&&(g[h[9].name]=d);break;case 128:var y=n;switch(f){case 1:g=y.transform(n);break;case 2:g=y.transform(r);break;case 3:g=y.transform(r,i);break;case 4:g=y.transform(r,i,a);break;case 5:g=y.transform(r,i,a,o);break;case 6:g=y.transform(r,i,a,o,s);break;case 7:g=y.transform(r,i,a,o,s,l);break;case 8:g=y.transform(r,i,a,o,s,l,c);break;case 9:g=y.transform(r,i,a,o,s,l,c,u);break;case 10:g=y.transform(r,i,a,o,s,l,c,u,d)}}m.value=g}return p}(e,t,n,r,i,a,o,s,l,c,u,d);default:throw"unreachable"}}(e,t,i,a,o,s,l,c,u,d,h,p):function(e,t,n){switch(201347067&t.flags){case 1:return function(e,t,n){for(var r=!1,i=0;i0&&Yp(e,t,0,n);h>1&&Yp(e,t,1,r);h>2&&Yp(e,t,2,i);h>3&&Yp(e,t,3,a);h>4&&Yp(e,t,4,o);h>5&&Yp(e,t,5,s);h>6&&Yp(e,t,6,l);h>7&&Yp(e,t,7,c);h>8&&Yp(e,t,8,u);h>9&&Yp(e,t,9,d)}(e,t,r,i,a,o,s,l,c,u,d,h):function(e,t,n){for(var r=0;r0){var a=new Set(e.modules);Ow.forEach((function(t,n){if(a.has(I(n).providedIn)){var i={token:n,flags:t.flags|(r?4096:0),deps:lf(t.deps),value:t.value,index:e.providers.length};e.providers.push(i),e.providersByKey[Hp(n)]=i}}))}}(e=e.factory((function(){return Up}))),e}(r))}var Cw,xw,Ew,Sw,Tw=new Map,Ow=new Map,zw=new Map;function Iw(e){var t;Tw.set(e.token,e),"function"==typeof e.token&&(t=I(e.token))&&"function"==typeof t.providedIn&&Ow.set(e.token,e)}function Dw(e,t){var n=df(Bf(t)),r=df(n.nodes[0].element.componentView);zw.set(e,r)}function Aw(){Tw.clear(),Ow.clear(),zw.clear()}function Nw(e){if(0===Tw.size)return e;var t=function(e){for(var t=[],n=null,r=0;r=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function s(e,t){return function(n,r){t(n,r,e)}}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create;function c(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function u(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,a=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)o.push(r.value)}catch(s){i={error:s}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(i)throw i.error}}return o}function d(){for(var e=[],t=0;t0?t.substring(1):t},t.prototype.prepareExternalUrl=function(e){var t=g(this._baseHref,e);return t.length>0?"#"+t:t},t.prototype.pushState=function(e,t,n,r){var i=this.prepareExternalUrl(n+b(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.pushState(e,t,i)},t.prototype.replaceState=function(e,t,n,r){var i=this.prepareExternalUrl(n+b(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.replaceState(e,t,i)},t.prototype.forward=function(){this._platformLocation.forward()},t.prototype.back=function(){this._platformLocation.back()},(t=Object(r.b)([Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Inject)(w)),Object(r.d)("design:paramtypes",[u,String])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵinject"](u),i["ɵɵinject"](w,8))},t.ɵprov=i["ɵɵdefineInjectable"]({token:t,factory:function(e){return t.ɵfac(e)}}),t}(v),C=function(){function e(e,t){var n=this;this._subject=new i.EventEmitter,this._urlChangeListeners=[],this._platformStrategy=e;var r=this._platformStrategy.getBaseHref();this._platformLocation=t,this._baseHref=y(E(r)),this._platformStrategy.onPopState((function(e){n._subject.emit({url:n.path(!0),pop:!0,state:e.state,type:e.type})}))}var t;return t=e,e.prototype.path=function(e){return void 0===e&&(e=!1),this.normalize(this._platformStrategy.path(e))},e.prototype.getState=function(){return this._platformLocation.getState()},e.prototype.isCurrentPathEqualTo=function(e,t){return void 0===t&&(t=""),this.path()==this.normalize(e+b(t))},e.prototype.normalize=function(e){return t.stripTrailingSlash(function(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}(this._baseHref,E(e)))},e.prototype.prepareExternalUrl=function(e){return e&&"/"!==e[0]&&(e="/"+e),this._platformStrategy.prepareExternalUrl(e)},e.prototype.go=function(e,t,n){void 0===t&&(t=""),void 0===n&&(n=null),this._platformStrategy.pushState(n,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+b(t)),n)},e.prototype.replaceState=function(e,t,n){void 0===t&&(t=""),void 0===n&&(n=null),this._platformStrategy.replaceState(n,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+b(t)),n)},e.prototype.forward=function(){this._platformStrategy.forward()},e.prototype.back=function(){this._platformStrategy.back()},e.prototype.onUrlChange=function(e){var t=this;this._urlChangeListeners.push(e),this.subscribe((function(e){t._notifyUrlChangeListeners(e.url,e.state)}))},e.prototype._notifyUrlChangeListeners=function(e,t){void 0===e&&(e=""),this._urlChangeListeners.forEach((function(n){return n(e,t)}))},e.prototype.subscribe=function(e,t,n){return this._subject.subscribe({next:e,error:t,complete:n})},e.normalizeQueryParams=b,e.joinWithSlash=g,e.stripTrailingSlash=y,e.ɵprov=Object(i["ɵɵdefineInjectable"])({factory:x,token:e,providedIn:"root"}),(e=t=Object(r.b)([Object(r.d)("design:paramtypes",[v,u])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵinject"](v),i["ɵɵinject"](u))},e}();function x(){return new C(Object(i["ɵɵinject"])(v),Object(i["ɵɵinject"])(u))}function E(e){return e.replace(/\/index.html$/,"")} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var S,T,O,z,I,D,A,N={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,2],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"৳"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,"р.",2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN¥","¥"],COP:[void 0,"$",2],CRC:[void 0,"₡",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"Kč",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E£"],ESP:[void 0,"₧",0],EUR:["€"],FJD:[void 0,"$"],FKP:[void 0,"£"],GBP:["£"],GEL:[void 0,"₾"],GIP:[void 0,"£"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",2],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",2],ILS:["₪"],INR:["₹"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["¥",void 0,0],KHR:[void 0,"៛"],KMF:[void 0,"CF",0],KPW:[void 0,"₩",0],KRW:["₩",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"₸"],LAK:[void 0,"₭",0],LBP:[void 0,"L£",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"₮",2],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",2],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"₦"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:[void 0,"₱"],PKR:[void 0,"Rs",2],PLN:[void 0,"zł"],PYG:[void 0,"₲",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"₽"],RUR:[void 0,"р."],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"£"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"£"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"£",0],THB:[void 0,"฿"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"₺"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,2],UAH:[void 0,"₴"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,"Bs",2],VND:["₫",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["CFA",void 0,0],XPF:["CFPF",void 0,0],XXX:["¤"],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function P(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].LocaleId]}function R(e,t,n){var r=Object(i["ɵfindLocaleData"])(e),a=te([r[i["ɵLocaleDataIndex"].DayPeriodsFormat],r[i["ɵLocaleDataIndex"].DayPeriodsStandalone]],t);return te(a,n)}function M(e,t,n){var r=Object(i["ɵfindLocaleData"])(e),a=te([r[i["ɵLocaleDataIndex"].DaysFormat],r[i["ɵLocaleDataIndex"].DaysStandalone]],t);return te(a,n)}function q(e,t,n){var r=Object(i["ɵfindLocaleData"])(e),a=te([r[i["ɵLocaleDataIndex"].MonthsFormat],r[i["ɵLocaleDataIndex"].MonthsStandalone]],t);return te(a,n)}function B(e,t){return te(Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].Eras],t)}function L(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].FirstDayOfWeek]}function F(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].WeekendRange]}function U(e,t){return te(Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].DateFormat],t)}function V(e,t){return te(Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].TimeFormat],t)}function H(e,t){return te(Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].DateTimeFormat],t)}function K(e,t){var n=Object(i["ɵfindLocaleData"])(e),r=n[i["ɵLocaleDataIndex"].NumberSymbols][t];if(void 0===r){if(t===D.CurrencyDecimal)return n[i["ɵLocaleDataIndex"].NumberSymbols][D.Decimal];if(t===D.CurrencyGroup)return n[i["ɵLocaleDataIndex"].NumberSymbols][D.Group]}return r}function W(e,t){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].NumberFormats][t]}function G(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].CurrencySymbol]||null}function Q(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].CurrencyName]||null}function $(e){return Object(i["ɵgetLocaleCurrencyCode"])(e)}!function(e){e[e.Decimal=0]="Decimal",e[e.Percent=1]="Percent",e[e.Currency=2]="Currency",e[e.Scientific=3]="Scientific"}(S||(S={})),function(e){e[e.Zero=0]="Zero",e[e.One=1]="One",e[e.Two=2]="Two",e[e.Few=3]="Few",e[e.Many=4]="Many",e[e.Other=5]="Other"}(T||(T={})),function(e){e[e.Format=0]="Format",e[e.Standalone=1]="Standalone"}(O||(O={})),function(e){e[e.Narrow=0]="Narrow",e[e.Abbreviated=1]="Abbreviated",e[e.Wide=2]="Wide",e[e.Short=3]="Short"}(z||(z={})),function(e){e[e.Short=0]="Short",e[e.Medium=1]="Medium",e[e.Long=2]="Long",e[e.Full=3]="Full"}(I||(I={})),function(e){e[e.Decimal=0]="Decimal",e[e.Group=1]="Group",e[e.List=2]="List",e[e.PercentSign=3]="PercentSign",e[e.PlusSign=4]="PlusSign",e[e.MinusSign=5]="MinusSign",e[e.Exponential=6]="Exponential",e[e.SuperscriptingExponent=7]="SuperscriptingExponent",e[e.PerMille=8]="PerMille",e[e[1/0]=9]="Infinity",e[e.NaN=10]="NaN",e[e.TimeSeparator=11]="TimeSeparator",e[e.CurrencyDecimal=12]="CurrencyDecimal",e[e.CurrencyGroup=13]="CurrencyGroup"}(D||(D={})),function(e){e[e.Sunday=0]="Sunday",e[e.Monday=1]="Monday",e[e.Tuesday=2]="Tuesday",e[e.Wednesday=3]="Wednesday",e[e.Thursday=4]="Thursday",e[e.Friday=5]="Friday",e[e.Saturday=6]="Saturday"}(A||(A={}));var Y=i["ɵgetLocalePluralCase"];function Z(e){if(!e[i["ɵLocaleDataIndex"].ExtraData])throw new Error('Missing extra locale data for the locale "'+e[i["ɵLocaleDataIndex"].LocaleId]+'". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.')}function J(e){var t=Object(i["ɵfindLocaleData"])(e);return Z(t),(t[i["ɵLocaleDataIndex"].ExtraData][2]||[]).map((function(e){return"string"==typeof e?ne(e):[ne(e[0]),ne(e[1])]}))}function X(e,t,n){var r=Object(i["ɵfindLocaleData"])(e);Z(r);var a=te([r[i["ɵLocaleDataIndex"].ExtraData][0],r[i["ɵLocaleDataIndex"].ExtraData][1]],t)||[];return te(a,n)||[]}function ee(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].Directionality]}function te(e,t){for(var n=t;n>-1;n--)if(void 0!==e[n])return e[n];throw new Error("Locale data API: locale data undefined")}function ne(e){var t=Object(r.f)(e.split(":"),2);return{hours:+t[0],minutes:+t[1]}}function re(e,t,n){void 0===n&&(n="en");var r=function(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].Currencies]}(n)[e]||N[e]||[],a=r[1];return"narrow"===t&&"string"==typeof a?a:r[0]||e}function ie(e){var t,n=N[e];return n&&(t=n[2]),"number"==typeof t?t:2} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ae,oe,se,le=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,ce={},ue=/((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function de(e,t,n,i){var a=function(e){if(ke(e))return e;if("number"==typeof e&&!isNaN(e))return new Date(e);if("string"==typeof e){e=e.trim();var t=parseFloat(e);if(!isNaN(e-t))return new Date(t);if(/^(\d{4}-\d{1,2}-\d{1,2})$/.test(e)){var n=Object(r.f)(e.split("-").map((function(e){return+e})),3),i=n[0],a=n[1],o=n[2];return new Date(i,a-1,o)}var s;if(s=e.match(le))return function(e){var t=new Date(0),n=0,r=0,i=e[8]?t.setUTCFullYear:t.setFullYear,a=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),r=Number(e[9]+e[11]));i.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));var o=Number(e[4]||0)-n,s=Number(e[5]||0)-r,l=Number(e[6]||0),c=Math.round(1e3*parseFloat("0."+(e[7]||0)));return a.call(t,o,s,l,c),t}(s)}var l=new Date(e);if(!ke(l))throw new Error('Unable to convert "'+e+'" into a date');return l}(e);t=function e(t,n){var r=P(t);if(ce[r]=ce[r]||{},ce[r][n])return ce[r][n];var i="";switch(n){case"shortDate":i=U(t,I.Short);break;case"mediumDate":i=U(t,I.Medium);break;case"longDate":i=U(t,I.Long);break;case"fullDate":i=U(t,I.Full);break;case"shortTime":i=V(t,I.Short);break;case"mediumTime":i=V(t,I.Medium);break;case"longTime":i=V(t,I.Long);break;case"fullTime":i=V(t,I.Full);break;case"short":var a=e(t,"shortTime"),o=e(t,"shortDate");i=he(H(t,I.Short),[a,o]);break;case"medium":var s=e(t,"mediumTime"),l=e(t,"mediumDate");i=he(H(t,I.Medium),[s,l]);break;case"long":var c=e(t,"longTime"),u=e(t,"longDate");i=he(H(t,I.Long),[c,u]);break;case"full":var d=e(t,"fullTime"),h=e(t,"fullDate");i=he(H(t,I.Full),[d,h])}i&&(ce[r][n]=i);return i}(n,t)||t;for(var o,s=[];t;){if(!(o=ue.exec(t))){s.push(t);break}var l=(s=s.concat(o.slice(1))).pop();if(!l)break;t=l}var c=a.getTimezoneOffset();i&&(c=ve(i,c),a=function(e,t,n){var r=n?-1:1,i=e.getTimezoneOffset(),a=ve(t,i);return function(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}(e,r*(a-i))}(a,i,!0));var u="";return s.forEach((function(e){var t=function(e){if(be[e])return be[e];var t;switch(e){case"G":case"GG":case"GGG":t=me(se.Eras,z.Abbreviated);break;case"GGGG":t=me(se.Eras,z.Wide);break;case"GGGGG":t=me(se.Eras,z.Narrow);break;case"y":t=fe(oe.FullYear,1,0,!1,!0);break;case"yy":t=fe(oe.FullYear,2,0,!0,!0);break;case"yyy":t=fe(oe.FullYear,3,0,!1,!0);break;case"yyyy":t=fe(oe.FullYear,4,0,!1,!0);break;case"M":case"L":t=fe(oe.Month,1,1);break;case"MM":case"LL":t=fe(oe.Month,2,1);break;case"MMM":t=me(se.Months,z.Abbreviated);break;case"MMMM":t=me(se.Months,z.Wide);break;case"MMMMM":t=me(se.Months,z.Narrow);break;case"LLL":t=me(se.Months,z.Abbreviated,O.Standalone);break;case"LLLL":t=me(se.Months,z.Wide,O.Standalone);break;case"LLLLL":t=me(se.Months,z.Narrow,O.Standalone);break;case"w":t=ye(1);break;case"ww":t=ye(2);break;case"W":t=ye(1,!0);break;case"d":t=fe(oe.Date,1);break;case"dd":t=fe(oe.Date,2);break;case"E":case"EE":case"EEE":t=me(se.Days,z.Abbreviated);break;case"EEEE":t=me(se.Days,z.Wide);break;case"EEEEE":t=me(se.Days,z.Narrow);break;case"EEEEEE":t=me(se.Days,z.Short);break;case"a":case"aa":case"aaa":t=me(se.DayPeriods,z.Abbreviated);break;case"aaaa":t=me(se.DayPeriods,z.Wide);break;case"aaaaa":t=me(se.DayPeriods,z.Narrow);break;case"b":case"bb":case"bbb":t=me(se.DayPeriods,z.Abbreviated,O.Standalone,!0);break;case"bbbb":t=me(se.DayPeriods,z.Wide,O.Standalone,!0);break;case"bbbbb":t=me(se.DayPeriods,z.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":t=me(se.DayPeriods,z.Abbreviated,O.Format,!0);break;case"BBBB":t=me(se.DayPeriods,z.Wide,O.Format,!0);break;case"BBBBB":t=me(se.DayPeriods,z.Narrow,O.Format,!0);break;case"h":t=fe(oe.Hours,1,-12);break;case"hh":t=fe(oe.Hours,2,-12);break;case"H":t=fe(oe.Hours,1);break;case"HH":t=fe(oe.Hours,2);break;case"m":t=fe(oe.Minutes,1);break;case"mm":t=fe(oe.Minutes,2);break;case"s":t=fe(oe.Seconds,1);break;case"ss":t=fe(oe.Seconds,2);break;case"S":t=fe(oe.FractionalSeconds,1);break;case"SS":t=fe(oe.FractionalSeconds,2);break;case"SSS":t=fe(oe.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=ge(ae.Short);break;case"ZZZZZ":t=ge(ae.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=ge(ae.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=ge(ae.Long);break;default:return null}return be[e]=t,t}(e);u+=t?t(a,n,c):"''"===e?"'":e.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),u}function he(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,(function(e,n){return null!=t&&n in t?t[n]:e}))),e}function pe(e,t,n,r,i){void 0===n&&(n="-");var a="";(e<0||i&&e<=0)&&(i?e=1-e:(e=-e,a=n));for(var o=String(e);o.length0||l>-n)&&(l+=n),e===oe.Hours)0===l&&-12===n&&(l=12);else if(e===oe.FractionalSeconds)return s=t,pe(l,3).substr(0,s);var c=K(o,D.MinusSign);return pe(l,t,c,r,i)}}function me(e,t,n,r){return void 0===n&&(n=O.Format),void 0===r&&(r=!1),function(i,a){return function(e,t,n,r,i,a){switch(n){case se.Months:return q(t,i,r)[e.getMonth()];case se.Days:return M(t,i,r)[e.getDay()];case se.DayPeriods:var o=e.getHours(),s=e.getMinutes();if(a){var l,c=J(t),u=X(t,i,r);if(c.forEach((function(e,t){if(Array.isArray(e)){var n=e[0],r=n.hours,i=n.minutes,a=e[1],c=a.hours,d=a.minutes;o>=r&&s>=i&&(o0?Math.floor(i/60):Math.ceil(i/60);switch(e){case ae.Short:return(i>=0?"+":"")+pe(o,2,a)+pe(Math.abs(i%60),2,a);case ae.ShortGMT:return"GMT"+(i>=0?"+":"")+pe(o,1,a);case ae.Long:return"GMT"+(i>=0?"+":"")+pe(o,2,a)+":"+pe(Math.abs(i%60),2,a);case ae.Extended:return 0===r?"Z":(i>=0?"+":"")+pe(o,2,a)+":"+pe(Math.abs(i%60),2,a);default:throw new Error('Unknown zone width "'+e+'"')}}}!function(e){e[e.Short=0]="Short",e[e.ShortGMT=1]="ShortGMT",e[e.Long=2]="Long",e[e.Extended=3]="Extended"}(ae||(ae={})),function(e){e[e.FullYear=0]="FullYear",e[e.Month=1]="Month",e[e.Date=2]="Date",e[e.Hours=3]="Hours",e[e.Minutes=4]="Minutes",e[e.Seconds=5]="Seconds",e[e.FractionalSeconds=6]="FractionalSeconds",e[e.Day=7]="Day"}(oe||(oe={})),function(e){e[e.DayPeriods=0]="DayPeriods",e[e.Days=1]="Days",e[e.Months=2]="Months",e[e.Eras=3]="Eras"}(se||(se={}));function ye(e,t){return void 0===t&&(t=!1),function(n,r){var i,a,o,s;if(t){var l=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,c=n.getDate();i=1+Math.floor((c+l)/7)}else{var u=(o=n.getFullYear(),s=new Date(o,0,1).getDay(),new Date(o,0,1+(s<=4?4:11)-s)),d=(a=n,new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))).getTime()-u.getTime();i=1+Math.round(d/6048e5)}return pe(i,e,K(r,D.MinusSign))}}var be={};function ve(e,t){e=e.replace(/:/g,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function ke(e){return e instanceof Date&&!isNaN(e.valueOf())} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var we=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function _e(e,t,n,r,i,a,o){void 0===o&&(o=!1);var s="",l=!1;if(isFinite(e)){var c=function(e){var t,n,r,i,a,o=Math.abs(e)+"",s=0;(n=o.indexOf("."))>-1&&(o=o.replace(".",""));(r=o.search(/e/i))>0?(n<0&&(n=r),n+=+o.slice(r+1),o=o.substring(0,r)):n<0&&(n=o.length);for(r=0;"0"===o.charAt(r);r++);if(r===(a=o.length))t=[0],n=1;else{for(a--;"0"===o.charAt(a);)a--;for(n-=r,t=[],i=0;r<=a;r++,i++)t[i]=Number(o.charAt(r))}n>22&&(t=t.splice(0,21),s=n-1,n=1);return{digits:t,exponent:s,integerLen:n}}(e);o&&(c=function(e){if(0===e.digits[0])return e;var t=e.digits.length-e.integerLen;e.exponent?e.exponent+=2:(0===t?e.digits.push(0,0):1===t&&e.digits.push(0),e.integerLen+=2);return e}(c));var u=t.minInt,d=t.minFrac,h=t.maxFrac;if(a){var p=a.match(we);if(null===p)throw new Error(a+" is not a valid digit info");var f=p[1],m=p[3],g=p[5];null!=f&&(u=Se(f)),null!=m&&(d=Se(m)),null!=g?h=Se(g):null!=m&&d>h&&(h=d)}!function(e,t,n){if(t>n)throw new Error("The minimum number of digits after fraction ("+t+") is higher than the maximum ("+n+").");var r=e.digits,i=r.length-e.integerLen,a=Math.min(Math.max(t,i),n),o=a+e.integerLen,s=r[o];if(o>0){r.splice(Math.max(e.integerLen,o));for(var l=o;l=5)if(o-1<0){for(var u=0;u>o;u--)r.unshift(0),e.integerLen++;r.unshift(1),e.integerLen++}else r[o-1]++;for(;i=h?r.pop():d=!1),t>=10?1:0}),0);p&&(r.unshift(p),e.integerLen++)}(c,d,h);var y=c.digits,b=c.integerLen,v=c.exponent,k=[];for(l=y.every((function(e){return!e}));b0?k=y.splice(b,y.length):(k=y,y=[0]);var w=[];for(y.length>=t.lgSize&&w.unshift(y.splice(-t.lgSize,y.length).join(""));y.length>t.gSize;)w.unshift(y.splice(-t.gSize,y.length).join(""));y.length&&w.unshift(y.join("")),s=w.join(K(n,r)),k.length&&(s+=K(n,i)+k.join("")),v&&(s+=K(n,D.Exponential)+"+"+v)}else s=K(n,D.Infinity);return s=e<0&&!l?t.negPre+s+t.negSuf:t.posPre+s+t.posSuf}function je(e,t,n,r,i){var a=Ee(W(t,S.Currency),K(t,D.MinusSign));return a.minFrac=ie(r),a.maxFrac=a.minFrac,_e(e,a,t,D.CurrencyGroup,D.CurrencyDecimal,i).replace("¤",n).replace("¤","").trim()}function Ce(e,t,n){return _e(e,Ee(W(t,S.Percent),K(t,D.MinusSign)),t,D.Group,D.Decimal,n,!0).replace(new RegExp("%","g"),K(t,D.PercentSign))}function xe(e,t,n){return _e(e,Ee(W(t,S.Decimal),K(t,D.MinusSign)),t,D.Group,D.Decimal,n)}function Ee(e,t){void 0===t&&(t="-");var n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},r=e.split(";"),i=r[0],a=r[1],o=-1!==i.indexOf(".")?i.split("."):[i.substring(0,i.lastIndexOf("0")+1),i.substring(i.lastIndexOf("0")+1)],s=o[0],l=o[1]||"";n.posPre=s.substr(0,s.indexOf("#"));for(var c=0;c-1)return i;if(i=n.getPluralCategory(e,r),t.indexOf(i)>-1)return i;if(t.indexOf("other")>-1)return"other";throw new Error('No plural message found for value "'+e+'"')}var ze=function(e){function t(t){var n=e.call(this)||this;return n.locale=t,n}return Object(r.c)(t,e),t.prototype.getPluralCategory=function(e,t){switch(Y(t||this.locale)(e)){case T.Zero:return"zero";case T.One:return"one";case T.Two:return"two";case T.Few:return"few";case T.Many:return"many";default:return"other"}},(t=Object(r.b)([Object(r.e)(0,Object(i.Inject)(i.LOCALE_ID)),Object(r.d)("design:paramtypes",[String])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵinject"](i.LOCALE_ID))},t.ɵprov=i["ɵɵdefineInjectable"]({token:t,factory:function(e){return t.ɵfac(e)}}),t}(Te); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ie(e,t,n){return Object(i["ɵregisterLocaleData"])(e,t,n)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function De(e,t){var n,i;t=encodeURIComponent(t);try{for(var a=Object(r.h)(e.split(";")),o=a.next();!o.done;o=a.next()){var s=o.value,l=s.indexOf("="),c=Object(r.f)(-1==l?[s,""]:[s.slice(0,l),s.slice(l+1)],2),u=c[0],d=c[1];if(u.trim()===t)return decodeURIComponent(d)}}catch(h){n={error:h}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return null}var Ae=function(){function e(e,t,n,r){this._iterableDiffers=e,this._keyValueDiffers=t,this._ngEl=n,this._renderer=r,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}return Object.defineProperty(e.prototype,"klass",{set:function(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClass",{set:function(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Object(i["ɵisListLikeIterable"])(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())},enumerable:!0,configurable:!0}),e.prototype.ngDoCheck=function(){if(this._iterableDiffer){var e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){var t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}},e.prototype._applyKeyValueChanges=function(e){var t=this;e.forEachAddedItem((function(e){return t._toggleClass(e.key,e.currentValue)})),e.forEachChangedItem((function(e){return t._toggleClass(e.key,e.currentValue)})),e.forEachRemovedItem((function(e){e.previousValue&&t._toggleClass(e.key,!1)}))},e.prototype._applyIterableChanges=function(e){var t=this;e.forEachAddedItem((function(e){if("string"!=typeof e.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+Object(i["ɵstringify"])(e.item));t._toggleClass(e.item,!0)})),e.forEachRemovedItem((function(e){return t._toggleClass(e.item,!1)}))},e.prototype._applyClasses=function(e){var t=this;e&&(Array.isArray(e)||e instanceof Set?e.forEach((function(e){return t._toggleClass(e,!0)})):Object.keys(e).forEach((function(n){return t._toggleClass(n,!!e[n])})))},e.prototype._removeClasses=function(e){var t=this;e&&(Array.isArray(e)||e instanceof Set?e.forEach((function(e){return t._toggleClass(e,!1)})):Object.keys(e).forEach((function(e){return t._toggleClass(e,!1)})))},e.prototype._toggleClass=function(e,t){var n=this;(e=e.trim())&&e.split(/\s+/g).forEach((function(e){t?n._renderer.addClass(n._ngEl.nativeElement,e):n._renderer.removeClass(n._ngEl.nativeElement,e)}))},Object(r.b)([Object(i.Input)("class"),Object(r.d)("design:type",String),Object(r.d)("design:paramtypes",[String])],e.prototype,"klass",null),Object(r.b)([Object(i.Input)("ngClass"),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"ngClass",null),(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.IterableDiffers),i["ɵɵdirectiveInject"](i.KeyValueDiffers),i["ɵɵdirectiveInject"](i.ElementRef),i["ɵɵdirectiveInject"](i.Renderer2))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),e}(),Ne=function(){function e(e){this._viewContainerRef=e,this._componentRef=null,this._moduleRef=null}return e.prototype.ngOnChanges=function(e){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){var t=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(e.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){var n=t.get(i.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(n.injector)}else this._moduleRef=null;var r=(this._moduleRef?this._moduleRef.componentFactoryResolver:t.get(i.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(r,this._viewContainerRef.length,t,this.ngComponentOutletContent)}},e.prototype.ngOnDestroy=function(){this._moduleRef&&this._moduleRef.destroy()},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",i.Type)],e.prototype,"ngComponentOutlet",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",i.Injector)],e.prototype,"ngComponentOutletInjector",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Array)],e.prototype,"ngComponentOutletContent",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",i.NgModuleFactory)],e.prototype,"ngComponentOutletNgModuleFactory",void 0),(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.ViewContainerRef])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.ViewContainerRef))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},features:[i["ɵɵNgOnChangesFeature"]]}),e}(),Pe=function(){function e(e,t,n,r){this.$implicit=e,this.ngForOf=t,this.index=n,this.count=r}return Object.defineProperty(e.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"even",{get:function(){return this.index%2==0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),e}(),Re=function(){function e(e,t,n){this._viewContainer=e,this._template=t,this._differs=n,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}return Object.defineProperty(e.prototype,"ngForOf",{set:function(e){this._ngForOf=e,this._ngForOfDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(e){Object(i.isDevMode)()&&null!=e&&"function"!=typeof e&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(e)+". See https://angular.io/api/common/NgForOf#change-propagation for more information."),this._trackByFn=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngForTemplate",{set:function(e){e&&(this._template=e)},enumerable:!0,configurable:!0}),e.prototype.ngDoCheck=function(){if(this._ngForOfDirty){this._ngForOfDirty=!1;var e=this._ngForOf;if(!this._differ&&e)try{this._differ=this._differs.find(e).create(this.ngForTrackBy)}catch(r){throw new Error("Cannot find a differ supporting object '"+e+"' of type '"+(((t=e).name||typeof t)+"'. NgFor only supports binding to Iterables such as Arrays."))}}var t; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */if(this._differ){var n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}},e.prototype._applyChanges=function(e){var t=this,n=[];e.forEachOperation((function(e,r,i){if(null==e.previousIndex){var a=t._viewContainer.createEmbeddedView(t._template,new Pe(null,t._ngForOf,-1,-1),null===i?void 0:i),o=new Me(e,a);n.push(o)}else if(null==i)t._viewContainer.remove(null===r?void 0:r);else if(null!==r){a=t._viewContainer.get(r);t._viewContainer.move(a,i);o=new Me(e,a);n.push(o)}}));for(var r=0;r0)for(var n=this.count>=this.total?this.total:this.count,r=this.ring,i=0;i=2;return function(r){return r.pipe(e?Object(O.a)((function(t,n){return e(t,n,r)})):F.a,I(1),n?q(t):N((function(){return new h})))}}var V=n(74);function H(e){return function(t){var n=new K(e),r=t.lift(n);return n.caught=r}}var K=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new W(e,this.selector,this.caught))},e}(),W=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.selector=n,i.caught=r,i}return r.c(t,e),t.prototype.error=function(t){if(!this.isStopped){var n=void 0;try{n=this.selector(t,this.caught)}catch(a){return void e.prototype.error.call(this,a)}this._unsubscribeAndRecycle();var r=new V.a(this);this.add(r);var i=Object(V.c)(n,r);i!==r&&this.add(i)}},t}(V.b),G=n(743);function Q(e,t){var n=arguments.length>=2;return function(r){return r.pipe(e?Object(O.a)((function(t,n){return e(t,n,r)})):F.a,Object(G.a)(1),n?q(t):N((function(){return new h})))}}var $=n(306);var Y=function(){function e(e,t,n){this.predicate=e,this.thisArg=t,this.source=n}return e.prototype.call=function(e,t){return t.subscribe(new Z(e,this.predicate,this.thisArg,this.source))},e}(),Z=function(e){function t(t,n,r,i){var a=e.call(this,t)||this;return a.predicate=n,a.thisArg=r,a.source=i,a.index=0,a.thisArg=r||a,a}return r.c(t,e),t.prototype.notifyComplete=function(e){this.destination.next(e),this.destination.complete()},t.prototype._next=function(e){var t=!1;try{t=this.predicate.call(this.thisArg,e,this.index++,this.source)}catch(n){return void this.destination.error(n)}t||this.notifyComplete(!1)},t.prototype._complete=function(){this.notifyComplete(!0)},t}(m.a),J=n(1106),X=n(1107);function ee(e,t){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new te(e,t,n))}}var te=function(){function e(e,t,n){void 0===n&&(n=!1),this.accumulator=e,this.seed=t,this.hasSeed=n}return e.prototype.call=function(e,t){return t.subscribe(new ne(e,this.accumulator,this.seed,this.hasSeed))},e}(),ne=function(e){function t(t,n,r,i){var a=e.call(this,t)||this;return a.accumulator=n,a._seed=r,a.hasSeed=i,a.index=0,a}return r.c(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.accumulator(this.seed,e,n)}catch(r){this.destination.error(r)}this.seed=t,this.destination.next(t)},t}(m.a);function re(e,t){return Object($.a)(e,t,1)}var ie=n(268);var ae=n(1108),oe=n(54);var se=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new le(e,this.callback))},e}(),le=function(e){function t(t,n){var r=e.call(this,t)||this;return r.add(new oe.a(n)),r}return r.c(t,e),t}(m.a),ce=n(305);n.d(t,"ActivatedRoute",(function(){return vt})),n.d(t,"ActivatedRouteSnapshot",(function(){return wt})),n.d(t,"ActivationEnd",(function(){return xe})),n.d(t,"ActivationStart",(function(){return Ce})),n.d(t,"ChildActivationEnd",(function(){return je})),n.d(t,"ChildActivationStart",(function(){return _e})),n.d(t,"ChildrenOutletContexts",(function(){return Un})),n.d(t,"DefaultUrlSerializer",(function(){return Je})),n.d(t,"GuardsCheckEnd",(function(){return ye})),n.d(t,"GuardsCheckStart",(function(){return ge})),n.d(t,"NavigationCancel",(function(){return pe})),n.d(t,"NavigationEnd",(function(){return he})),n.d(t,"NavigationError",(function(){return fe})),n.d(t,"NavigationStart",(function(){return de})),n.d(t,"NoPreloading",(function(){return Gn})),n.d(t,"OutletContext",(function(){return Fn})),n.d(t,"PRIMARY_OUTLET",(function(){return Te})),n.d(t,"PreloadAllModules",(function(){return Wn})),n.d(t,"PreloadingStrategy",(function(){return Kn})),n.d(t,"ROUTER_CONFIGURATION",(function(){return Yn})),n.d(t,"ROUTER_INITIALIZER",(function(){return ur})),n.d(t,"ROUTES",(function(){return On})),n.d(t,"ResolveEnd",(function(){return ve})),n.d(t,"ResolveStart",(function(){return be})),n.d(t,"RouteConfigLoadEnd",(function(){return we})),n.d(t,"RouteConfigLoadStart",(function(){return ke})),n.d(t,"RouteReuseStrategy",(function(){return Sn})),n.d(t,"Router",(function(){return Rn})),n.d(t,"RouterEvent",(function(){return ue})),n.d(t,"RouterLink",(function(){return Mn})),n.d(t,"RouterLinkActive",(function(){return Ln})),n.d(t,"RouterLinkWithHref",(function(){return qn})),n.d(t,"RouterModule",(function(){return er})),n.d(t,"RouterOutlet",(function(){return Vn})),n.d(t,"RouterPreloader",(function(){return Qn})),n.d(t,"RouterState",(function(){return yt})),n.d(t,"RouterStateSnapshot",(function(){return _t})),n.d(t,"RoutesRecognized",(function(){return me})),n.d(t,"Scroll",(function(){return Ee})),n.d(t,"UrlHandlingStrategy",(function(){return In})),n.d(t,"UrlSegment",(function(){return Qe})),n.d(t,"UrlSegmentGroup",(function(){return Ge})),n.d(t,"UrlSerializer",(function(){return Ze})),n.d(t,"UrlTree",(function(){return We})),n.d(t,"VERSION",(function(){return hr})),n.d(t,"convertToParamMap",(function(){return ze})),n.d(t,"provideRoutes",(function(){return ir})),n.d(t,"ɵEmptyOutletComponent",(function(){return Se})),n.d(t,"ɵROUTER_PROVIDERS",(function(){return Jn})),n.d(t,"ɵangular_packages_router_router_a",(function(){return Zn})),n.d(t,"ɵangular_packages_router_router_b",(function(){return Xn})),n.d(t,"ɵangular_packages_router_router_c",(function(){return tr})),n.d(t,"ɵangular_packages_router_router_d",(function(){return nr})),n.d(t,"ɵangular_packages_router_router_e",(function(){return rr})),n.d(t,"ɵangular_packages_router_router_f",(function(){return ar})),n.d(t,"ɵangular_packages_router_router_g",(function(){return or})),n.d(t,"ɵangular_packages_router_router_h",(function(){return sr})),n.d(t,"ɵangular_packages_router_router_i",(function(){return lr})),n.d(t,"ɵangular_packages_router_router_j",(function(){return cr})),n.d(t,"ɵangular_packages_router_router_k",(function(){return dr})),n.d(t,"ɵangular_packages_router_router_l",(function(){return Se})),n.d(t,"ɵangular_packages_router_router_m",(function(){return ht})),n.d(t,"ɵangular_packages_router_router_n",(function(){return mt})),n.d(t,"ɵangular_packages_router_router_o",(function(){return $n})),n.d(t,"ɵflatten",(function(){return Le})); +/** + * @license Angular v9.1.12 + * (c) 2010-2020 Google LLC. https://angular.io/ + * License: MIT + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var ue=function(e,t){this.id=e,this.url=t},de=function(e){function t(t,n,r,i){void 0===r&&(r="imperative"),void 0===i&&(i=null);var a=e.call(this,t,n)||this;return a.navigationTrigger=r,a.restoredState=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"NavigationStart(id: "+this.id+", url: '"+this.url+"')"},t}(ue),he=function(e){function t(t,n,r){var i=e.call(this,t,n)||this;return i.urlAfterRedirects=r,i}return Object(r.c)(t,e),t.prototype.toString=function(){return"NavigationEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"')"},t}(ue),pe=function(e){function t(t,n,r){var i=e.call(this,t,n)||this;return i.reason=r,i}return Object(r.c)(t,e),t.prototype.toString=function(){return"NavigationCancel(id: "+this.id+", url: '"+this.url+"')"},t}(ue),fe=function(e){function t(t,n,r){var i=e.call(this,t,n)||this;return i.error=r,i}return Object(r.c)(t,e),t.prototype.toString=function(){return"NavigationError(id: "+this.id+", url: '"+this.url+"', error: "+this.error+")"},t}(ue),me=function(e){function t(t,n,r,i){var a=e.call(this,t,n)||this;return a.urlAfterRedirects=r,a.state=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"RoutesRecognized(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(ue),ge=function(e){function t(t,n,r,i){var a=e.call(this,t,n)||this;return a.urlAfterRedirects=r,a.state=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"GuardsCheckStart(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(ue),ye=function(e){function t(t,n,r,i,a){var o=e.call(this,t,n)||this;return o.urlAfterRedirects=r,o.state=i,o.shouldActivate=a,o}return Object(r.c)(t,e),t.prototype.toString=function(){return"GuardsCheckEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+", shouldActivate: "+this.shouldActivate+")"},t}(ue),be=function(e){function t(t,n,r,i){var a=e.call(this,t,n)||this;return a.urlAfterRedirects=r,a.state=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"ResolveStart(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(ue),ve=function(e){function t(t,n,r,i){var a=e.call(this,t,n)||this;return a.urlAfterRedirects=r,a.state=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"ResolveEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(ue),ke=function(){function e(e){this.route=e}return e.prototype.toString=function(){return"RouteConfigLoadStart(path: "+this.route.path+")"},e}(),we=function(){function e(e){this.route=e}return e.prototype.toString=function(){return"RouteConfigLoadEnd(path: "+this.route.path+")"},e}(),_e=function(){function e(e){this.snapshot=e}return e.prototype.toString=function(){return"ChildActivationStart(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},e}(),je=function(){function e(e){this.snapshot=e}return e.prototype.toString=function(){return"ChildActivationEnd(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},e}(),Ce=function(){function e(e){this.snapshot=e}return e.prototype.toString=function(){return"ActivationStart(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},e}(),xe=function(){function e(e){this.snapshot=e}return e.prototype.toString=function(){return"ActivationEnd(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},e}(),Ee=function(){function e(e,t,n){this.routerEvent=e,this.position=t,this.anchor=n}return e.prototype.toString=function(){var e=this.position?this.position[0]+", "+this.position[1]:null;return"Scroll(anchor: '"+this.anchor+"', position: '"+e+"')"},e}(),Se=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵcmp=a["ɵɵdefineComponent"]({type:e,selectors:[["ng-component"]],decls:1,vars:0,template:function(e,t){1&e&&a["ɵɵelement"](0,"router-outlet")},directives:function(){return[Vn]},encapsulation:2}),e}(),Te="primary",Oe=function(){function e(e){this.params=e||{}}return e.prototype.has=function(e){return this.params.hasOwnProperty(e)},e.prototype.get=function(e){if(this.has(e)){var t=this.params[e];return Array.isArray(t)?t[0]:t}return null},e.prototype.getAll=function(e){if(this.has(e)){var t=this.params[e];return Array.isArray(t)?t:[t]}return[]},Object.defineProperty(e.prototype,"keys",{get:function(){return Object.keys(this.params)},enumerable:!0,configurable:!0}),e}();function ze(e){return new Oe(e)}function Ie(e){var t=Error("NavigationCancelingError: "+e);return t.ngNavigationCancelingError=!0,t}function De(e,t,n){var r=n.path.split("/");if(r.length>e.length)return null;if("full"===n.pathMatch&&(t.hasChildren()||r.length-1})):e===t}function Le(e){return Array.prototype.concat.apply([],e)}function Fe(e){return e.length>0?e[e.length-1]:null}function Ue(e,t){for(var n in e)e.hasOwnProperty(n)&&t(e[n],n)}function Ve(e){return Object(a["ɵisObservable"])(e)?e:Object(a["ɵisPromise"])(e)?Object(s.a)(Promise.resolve(e)):Object(o.a)(e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function He(e,t,n){return n?function(e,t){return qe(e,t)}(e.queryParams,t.queryParams)&&function e(t,n){if(!$e(t.segments,n.segments))return!1;if(t.numberOfChildren!==n.numberOfChildren)return!1;for(var r in n.children){if(!t.children[r])return!1;if(!e(t.children[r],n.children[r]))return!1}return!0}(e.root,t.root):function(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every((function(n){return Be(e[n],t[n])}))}(e.queryParams,t.queryParams)&&Ke(e.root,t.root)}function Ke(e,t){return function e(t,n,r){if(t.segments.length>r.length)return!!$e(a=t.segments.slice(0,r.length),r)&&!n.hasChildren();if(t.segments.length===r.length){if(!$e(t.segments,r))return!1;for(var i in n.children){if(!t.children[i])return!1;if(!Ke(t.children[i],n.children[i]))return!1}return!0}var a=r.slice(0,t.segments.length),o=r.slice(t.segments.length);return!!$e(t.segments,a)&&(!!t.children[Te]&&e(t.children[Te],n,o))}(e,t,t.segments)}var We=function(){function e(e,t,n){this.root=e,this.queryParams=t,this.fragment=n}return Object.defineProperty(e.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=ze(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return Xe.serialize(this)},e}(),Ge=function(){function e(e,t){var n=this;this.segments=e,this.children=t,this.parent=null,Ue(t,(function(e,t){return e.parent=n}))}return e.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(e.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return et(this)},e}(),Qe=function(){function e(e,t){this.path=e,this.parameters=t}return Object.defineProperty(e.prototype,"parameterMap",{get:function(){return this._parameterMap||(this._parameterMap=ze(this.parameters)),this._parameterMap},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return ot(this)},e}();function $e(e,t){return e.length===t.length&&e.every((function(e,n){return e.path===t[n].path}))}function Ye(e,t){var n=[];return Ue(e.children,(function(e,r){r===Te&&(n=n.concat(t(e,r)))})),Ue(e.children,(function(e,r){r!==Te&&(n=n.concat(t(e,r)))})),n}var Ze=function(){},Je=function(){function e(){}return e.prototype.parse=function(e){var t=new dt(e);return new We(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())},e.prototype.serialize=function(e){var t,n,r;return""+("/"+function e(t,n){if(!t.hasChildren())return et(t);if(n){var r=t.children[Te]?e(t.children[Te],!1):"",i=[];return Ue(t.children,(function(t,n){n!==Te&&i.push(n+":"+e(t,!1))})),i.length>0?r+"("+i.join("//")+")":r}var a=Ye(t,(function(n,r){return r===Te?[e(t.children[Te],!1)]:[r+":"+e(n,!1)]}));return et(t)+"/("+a.join("//")+")"}(e.root,!0))+(t=e.queryParams,(n=Object.keys(t).map((function(e){var n=t[e];return Array.isArray(n)?n.map((function(t){return nt(e)+"="+nt(t)})).join("&"):nt(e)+"="+nt(n)}))).length?"?"+n.join("&"):"")+("string"==typeof e.fragment?"#"+(r=e.fragment,encodeURI(r)):"")},e}(),Xe=new Je;function et(e){return e.segments.map((function(e){return ot(e)})).join("/")}function tt(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function nt(e){return tt(e).replace(/%3B/gi,";")}function rt(e){return tt(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function it(e){return decodeURIComponent(e)}function at(e){return it(e.replace(/\+/g,"%20"))}function ot(e){return""+rt(e.path)+(t=e.parameters,Object.keys(t).map((function(e){return";"+rt(e)+"="+rt(t[e])})).join(""));var t}var st=/^[^\/()?;=#]+/;function lt(e){var t=e.match(st);return t?t[0]:""}var ct=/^[^=?&#]+/;var ut=/^[^?&#]+/;var dt=function(){function e(e){this.url=e,this.remaining=e}return e.prototype.parseRootSegment=function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ge([],{}):new Ge([],this.parseChildren())},e.prototype.parseQueryParams=function(){var e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e},e.prototype.parseFragment=function(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null},e.prototype.parseChildren=function(){if(""===this.remaining)return{};this.consumeOptional("/");var e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());var t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(n[Te]=new Ge(e,t)),n},e.prototype.parseSegment=function(){var e=lt(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");return this.capture(e),new Qe(it(e),this.parseMatrixParams())},e.prototype.parseMatrixParams=function(){for(var e={};this.consumeOptional(";");)this.parseParam(e);return e},e.prototype.parseParam=function(e){var t=lt(this.remaining);if(t){this.capture(t);var n="";if(this.consumeOptional("=")){var r=lt(this.remaining);r&&(n=r,this.capture(n))}e[it(t)]=it(n)}},e.prototype.parseQueryParam=function(e){var t=function(e){var t=e.match(ct);return t?t[0]:""}(this.remaining);if(t){this.capture(t);var n="";if(this.consumeOptional("=")){var r=function(e){var t=e.match(ut);return t?t[0]:""}(this.remaining);r&&(n=r,this.capture(n))}var i=at(t),a=at(n);if(e.hasOwnProperty(i)){var o=e[i];Array.isArray(o)||(o=[o],e[i]=o),o.push(a)}else e[i]=a}},e.prototype.parseParens=function(e){var t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var n=lt(this.remaining),r=this.remaining[n.length];if("/"!==r&&")"!==r&&";"!==r)throw new Error("Cannot parse url '"+this.url+"'");var i=void 0;n.indexOf(":")>-1?(i=n.substr(0,n.indexOf(":")),this.capture(i),this.capture(":")):e&&(i=Te);var a=this.parseChildren();t[i]=1===Object.keys(a).length?a[Te]:new Ge([],a),this.consumeOptional("//")}return t},e.prototype.peekStartsWith=function(e){return this.remaining.startsWith(e)},e.prototype.consumeOptional=function(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)},e.prototype.capture=function(e){if(!this.consumeOptional(e))throw new Error('Expected "'+e+'".')},e}(),ht=function(){function e(e){this._root=e}return Object.defineProperty(e.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),e.prototype.parent=function(e){var t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null},e.prototype.children=function(e){var t=pt(e,this._root);return t?t.children.map((function(e){return e.value})):[]},e.prototype.firstChild=function(e){var t=pt(e,this._root);return t&&t.children.length>0?t.children[0].value:null},e.prototype.siblings=function(e){var t=ft(e,this._root);return t.length<2?[]:t[t.length-2].children.map((function(e){return e.value})).filter((function(t){return t!==e}))},e.prototype.pathFromRoot=function(e){return ft(e,this._root).map((function(e){return e.value}))},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function pt(e,t){var n,i;if(e===t.value)return t;try{for(var a=Object(r.h)(t.children),o=a.next();!o.done;o=a.next()){var s=pt(e,o.value);if(s)return s}}catch(l){n={error:l}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return null}function ft(e,t){var n,i;if(e===t.value)return[t];try{for(var a=Object(r.h)(t.children),o=a.next();!o.done;o=a.next()){var s=ft(e,o.value);if(s.length)return s.unshift(t),s}}catch(l){n={error:l}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return[]}var mt=function(){function e(e,t){this.value=e,this.children=t}return e.prototype.toString=function(){return"TreeNode("+this.value+")"},e}();function gt(e){var t={};return e&&e.children.forEach((function(e){return t[e.value.outlet]=e})),t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var yt=function(e){function t(t,n){var r=e.call(this,t)||this;return r.snapshot=n,jt(r,t),r}return Object(r.c)(t,e),t.prototype.toString=function(){return this.snapshot.toString()},t}(ht);function bt(e,t){var n=function(e,t){var n=new wt([],{},{},"",{},Te,t,null,e.root,-1,{});return new _t("",new mt(n,[]))}(e,t),r=new u([new Qe("",{})]),i=new u({}),a=new u({}),o=new u({}),s=new u(""),l=new vt(r,i,o,s,a,Te,t,n.root);return l.snapshot=n.root,new yt(new mt(l,[]),n)}var vt=function(){function e(e,t,n,r,i,a,o,s){this.url=e,this.params=t,this.queryParams=n,this.fragment=r,this.data=i,this.outlet=a,this.component=o,this._futureSnapshot=s}return Object.defineProperty(e.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=this.params.pipe(Object(S.a)((function(e){return ze(e)})))),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(S.a)((function(e){return ze(e)})))),this._queryParamMap},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},e}();function kt(e,t){void 0===t&&(t="emptyOnly");var n=e.pathFromRoot,i=0;if("always"!==t)for(i=n.length-1;i>=1;){var a=n[i],o=n[i-1];if(a.routeConfig&&""===a.routeConfig.path)i--;else{if(o.component)break;i--}}return function(e){return e.reduce((function(e,t){return{params:Object(r.a)(Object(r.a)({},e.params),t.params),data:Object(r.a)(Object(r.a)({},e.data),t.data),resolve:Object(r.a)(Object(r.a)({},e.resolve),t._resolvedData)}}),{params:{},data:{},resolve:{}})}(n.slice(i))}var wt=function(){function e(e,t,n,r,i,a,o,s,l,c,u){this.url=e,this.params=t,this.queryParams=n,this.fragment=r,this.data=i,this.outlet=a,this.component=o,this.routeConfig=s,this._urlSegment=l,this._lastPathIndex=c,this._resolve=u}return Object.defineProperty(e.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=ze(this.params)),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=ze(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return"Route(url:'"+this.url.map((function(e){return e.toString()})).join("/")+"', path:'"+(this.routeConfig?this.routeConfig.path:"")+"')"},e}(),_t=function(e){function t(t,n){var r=e.call(this,n)||this;return r.url=t,jt(r,n),r}return Object(r.c)(t,e),t.prototype.toString=function(){return Ct(this._root)},t}(ht);function jt(e,t){t.value._routerState=e,t.children.forEach((function(t){return jt(e,t)}))}function Ct(e){var t=e.children.length>0?" { "+e.children.map(Ct).join(", ")+" } ":"";return""+e.value+t}function xt(e){if(e.snapshot){var t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,qe(t.queryParams,n.queryParams)||e.queryParams.next(n.queryParams),t.fragment!==n.fragment&&e.fragment.next(n.fragment),qe(t.params,n.params)||e.params.next(n.params),function(e,t){if(e.length!==t.length)return!1;for(var n=0;ni;){if(a-=i,!(r=r.parent))throw new Error("Invalid number of '../'");i=r.segments.length}return new Dt(r,!1,i-a)}(n.snapshot._urlSegment,i,e.numberOfDoubleDots)}(o,t,e),l=s.processChildren?Pt(s.segmentGroup,s.index,o.commands):Nt(s.segmentGroup,s.index,o.commands);return zt(s.segmentGroup,l,t,i,a)}function Ot(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function zt(e,t,n,r,i){var a={};return r&&Ue(r,(function(e,t){a[t]=Array.isArray(e)?e.map((function(e){return""+e})):""+e})),n.root===e?new We(t,a,i):new We(function e(t,n,r){var i={};return Ue(t.children,(function(t,a){i[a]=t===n?r:e(t,n,r)})),new Ge(t.segments,i)}(n.root,e,t),a,i)}var It=function(){function e(e,t,n){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=n,e&&n.length>0&&Ot(n[0]))throw new Error("Root segment cannot have matrix parameters");var r=n.find((function(e){return"object"==typeof e&&null!=e&&e.outlets}));if(r&&r!==Fe(n))throw new Error("{outlets:{}} has to be the last command")}return e.prototype.toRoot=function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]},e}();var Dt=function(e,t,n){this.segmentGroup=e,this.processChildren=t,this.index=n};function At(e){return"object"==typeof e&&null!=e&&e.outlets?e.outlets[Te]:""+e}function Nt(e,t,n){if(e||(e=new Ge([],{})),0===e.segments.length&&e.hasChildren())return Pt(e,t,n);var r=function(e,t,n){var r=0,i=t,a={match:!1,pathIndex:0,commandIndex:0};for(;i=n.length)return a;var o=e.segments[i],s=At(n[r]),l=r0&&void 0===s)break;if(s&&l&&"object"==typeof l&&void 0===l.outlets){if(!Bt(s,l,o))return a;r+=2}else{if(!Bt(s,{},o))return a;r++}i++}return{match:!0,pathIndex:i,commandIndex:r}}(e,t,n),i=n.slice(r.commandIndex);if(r.match&&r.pathIndex0?new Ge([],((r={})[Te]=e,r)):e;return new We(i,t,n)},e.prototype.expandSegmentGroup=function(e,t,n,r){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(e,t,n).pipe(Object(S.a)((function(e){return new Ge([],e)}))):this.expandSegment(e,n,t,n.segments,r,!0)},e.prototype.expandChildren=function(e,t,n){var r=this;return function(e,t){if(0===Object.keys(e).length)return Object(o.a)({});var n=[],r=[],i={};return Ue(e,(function(e,a){var o=t(a,e).pipe(Object(S.a)((function(e){return i[a]=e})));a===Te?n.push(o):r.push(o)})),o.a.apply(null,n.concat(r)).pipe(Object(T.a)(),U(),Object(S.a)((function(){return i})))}(n.children,(function(n,i){return r.expandSegmentGroup(e,t,i,n)}))},e.prototype.expandSegment=function(e,t,n,i,a,s){var l=this;return o.a.apply(void 0,Object(r.g)(n)).pipe(Object(S.a)((function(r){return l.expandSegmentAgainstRoute(e,t,n,r,i,a,s).pipe(H((function(e){if(e instanceof Ht)return Object(o.a)(null);throw e})))})),Object(T.a)(),Q((function(e){return!!e})),H((function(e,n){if(e instanceof h||"EmptyError"===e.name){if(l.noLeftoversInUrl(t,i,a))return Object(o.a)(new Ge([],{}));throw new Ht(t)}throw e})))},e.prototype.noLeftoversInUrl=function(e,t,n){return 0===t.length&&!e.children[n]},e.prototype.expandSegmentAgainstRoute=function(e,t,n,r,i,a,o){return Xt(r)!==a?Wt(t):void 0===r.redirectTo?this.matchSegmentAgainstRoute(e,t,r,i):o&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,t,n,r,i,a):Wt(t)},e.prototype.expandSegmentAgainstRouteUsingRedirect=function(e,t,n,r,i,a){return"**"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,n,r,a):this.expandRegularSegmentAgainstRouteUsingRedirect(e,t,n,r,i,a)},e.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(e,t,n,r){var i=this,a=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?Gt(a):this.lineralizeSegments(n,a).pipe(Object($.a)((function(n){var a=new Ge(n,{});return i.expandSegment(e,a,t,n,r,!1)})))},e.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(e,t,n,r,i,a){var o=this,s=Yt(t,r,i),l=s.matched,c=s.consumedSegments,u=s.lastChild,d=s.positionalParamSegments;if(!l)return Wt(t);var h=this.applyRedirectCommands(c,r.redirectTo,d);return r.redirectTo.startsWith("/")?Gt(h):this.lineralizeSegments(r,h).pipe(Object($.a)((function(r){return o.expandSegment(e,t,n,r.concat(i.slice(u)),a,!1)})))},e.prototype.matchSegmentAgainstRoute=function(e,t,n,i){var a=this;if("**"===n.path)return n.loadChildren?this.configLoader.load(e.injector,n).pipe(Object(S.a)((function(e){return n._loadedConfig=e,new Ge(i,{})}))):Object(o.a)(new Ge(i,{}));var s=Yt(t,n,i),l=s.matched,c=s.consumedSegments,u=s.lastChild;if(!l)return Wt(t);var d=i.slice(u);return this.getChildConfig(e,n,i).pipe(Object($.a)((function(e){var n=e.module,i=e.routes,s=function(e,t,n,i){if(n.length>0&&function(e,t,n){return n.some((function(n){return Jt(e,t,n)&&Xt(n)!==Te}))}(e,n,i)){return{segmentGroup:Zt(new Ge(t,function(e,t){var n,i,a={};a[Te]=t;try{for(var o=Object(r.h)(e),s=o.next();!s.done;s=o.next()){var l=s.value;""===l.path&&Xt(l)!==Te&&(a[Xt(l)]=new Ge([],{}))}}catch(c){n={error:c}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return a}(i,new Ge(n,e.children)))),slicedSegments:[]}}if(0===n.length&&function(e,t,n){return n.some((function(n){return Jt(e,t,n)}))}(e,n,i)){return{segmentGroup:Zt(new Ge(e.segments,function(e,t,n,i){var a,o,s={};try{for(var l=Object(r.h)(n),c=l.next();!c.done;c=l.next()){var u=c.value;Jt(e,t,u)&&!i[Xt(u)]&&(s[Xt(u)]=new Ge([],{}))}}catch(d){a={error:d}}finally{try{c&&!c.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}return Object(r.a)(Object(r.a)({},i),s)}(e,n,i,e.children))),slicedSegments:n}}return{segmentGroup:e,slicedSegments:n}}(t,c,d,i),l=s.segmentGroup,u=s.slicedSegments;return 0===u.length&&l.hasChildren()?a.expandChildren(n,i,l).pipe(Object(S.a)((function(e){return new Ge(c,e)}))):0===i.length&&0===u.length?Object(o.a)(new Ge(c,{})):a.expandSegment(n,l,i,u,Te,!0).pipe(Object(S.a)((function(e){return new Ge(c.concat(e.segments),e.children)})))})))},e.prototype.getChildConfig=function(e,t,n){var r=this;return t.children?Object(o.a)(new Ae(t.children,e)):t.loadChildren?void 0!==t._loadedConfig?Object(o.a)(t._loadedConfig):function(e,t,n){var r=t.canLoad;return r&&0!==r.length?Object(s.a)(r).pipe(Object(S.a)((function(r){var i,a=e.get(r);if(function(e){return e&&Ut(e.canLoad)}(a))i=a.canLoad(t,n);else{if(!Ut(a))throw new Error("Invalid CanLoad guard");i=a(t,n)}return Ve(i)}))).pipe(Object(T.a)(),function(e,t){return function(n){return n.lift(new Y(e,t,n))}}((function(e){return!0===e}))):Object(o.a)(!0)}(e.injector,t,n).pipe(Object($.a)((function(n){return n?r.configLoader.load(e.injector,t).pipe(Object(S.a)((function(e){return t._loadedConfig=e,e}))):function(e){return new d.a((function(t){return t.error(Ie("Cannot load children because the guard of the route \"path: '"+e.path+"'\" returned false"))}))}(t)}))):Object(o.a)(new Ae([],e))},e.prototype.lineralizeSegments=function(e,t){for(var n=[],r=t.root;;){if(n=n.concat(r.segments),0===r.numberOfChildren)return Object(o.a)(n);if(r.numberOfChildren>1||!r.children[Te])return Qt(e.redirectTo);r=r.children[Te]}},e.prototype.applyRedirectCommands=function(e,t,n){return this.applyRedirectCreatreUrlTree(t,this.urlSerializer.parse(t),e,n)},e.prototype.applyRedirectCreatreUrlTree=function(e,t,n,r){var i=this.createSegmentGroup(e,t.root,n,r);return new We(i,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)},e.prototype.createQueryParams=function(e,t){var n={};return Ue(e,(function(e,r){if("string"==typeof e&&e.startsWith(":")){var i=e.substring(1);n[r]=t[i]}else n[r]=e})),n},e.prototype.createSegmentGroup=function(e,t,n,r){var i=this,a=this.createSegments(e,t.segments,n,r),o={};return Ue(t.children,(function(t,a){o[a]=i.createSegmentGroup(e,t,n,r)})),new Ge(a,o)},e.prototype.createSegments=function(e,t,n,r){var i=this;return t.map((function(t){return t.path.startsWith(":")?i.findPosParam(e,t,r):i.findOrReturn(t,n)}))},e.prototype.findPosParam=function(e,t,n){var r=n[t.path.substring(1)];if(!r)throw new Error("Cannot redirect to '"+e+"'. Cannot find '"+t.path+"'.");return r},e.prototype.findOrReturn=function(e,t){var n,i,a=0;try{for(var o=Object(r.h)(t),s=o.next();!s.done;s=o.next()){var l=s.value;if(l.path===e.path)return t.splice(a),l;a++}}catch(c){n={error:c}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return e},e}();function Yt(e,t,n){if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};var r=(t.matcher||De)(n,e,t);return r?{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,positionalParamSegments:r.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function Zt(e){if(1===e.numberOfChildren&&e.children[Te]){var t=e.children[Te];return new Ge(e.segments.concat(t.segments),t.children)}return e}function Jt(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0!==n.redirectTo)}function Xt(e){return e.outlet||Te} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function en(e,t,n,i){return function(a){return a.pipe(Object(J.a)((function(a){return function(e,t,n,r,i){return new $t(e,t,n,r,i).apply()}(e,t,n,a.extractedUrl,i).pipe(Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},a),{urlAfterRedirects:e})})))})))}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var tn=function(e){this.path=e,this.route=this.path[this.path.length-1]},nn=function(e,t){this.component=e,this.route=t};function rn(e,t,n){var r=function(e){if(!e)return null;for(var t=e.parent;t;t=t.parent){var n=t.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}(t);return(r?r.module.injector:n).get(e)}function an(e,t,n,r,i){void 0===i&&(i={canDeactivateChecks:[],canActivateChecks:[]});var a=gt(t);return e.children.forEach((function(e){!function(e,t,n,r,i){void 0===i&&(i={canDeactivateChecks:[],canActivateChecks:[]});var a=e.value,o=t?t.value:null,s=n?n.getContext(e.value.outlet):null;if(o&&a.routeConfig===o.routeConfig){var l=function(e,t,n){if("function"==typeof n)return n(e,t);switch(n){case"pathParamsChange":return!$e(e.url,t.url);case"pathParamsOrQueryParamsChange":return!$e(e.url,t.url)||!qe(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Et(e,t)||!qe(e.queryParams,t.queryParams);case"paramsChange":default:return!Et(e,t)}}(o,a,a.routeConfig.runGuardsAndResolvers);if(l?i.canActivateChecks.push(new tn(r)):(a.data=o.data,a._resolvedData=o._resolvedData),a.component?an(e,t,s?s.children:null,r,i):an(e,t,n,r,i),l){var c=s&&s.outlet&&s.outlet.component||null;i.canDeactivateChecks.push(new nn(c,o))}}else o&&on(t,s,i),i.canActivateChecks.push(new tn(r)),a.component?an(e,null,s?s.children:null,r,i):an(e,null,n,r,i)}(e,a[e.value.outlet],n,r.concat([e.value]),i),delete a[e.value.outlet]})),Ue(a,(function(e,t){return on(e,n.getContext(t),i)})),i}function on(e,t,n){var r=gt(e),i=e.value;Ue(r,(function(e,r){i.component?on(e,t?t.children.getContext(r):null,n):on(e,t,n)})),i.component&&t&&t.outlet&&t.outlet.isActivated?n.canDeactivateChecks.push(new nn(t.outlet.component,i)):n.canDeactivateChecks.push(new nn(null,i))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var sn=Symbol("INITIAL_VALUE");function ln(){return Object(J.a)((function(e){return _.apply(void 0,Object(r.g)(e.map((function(e){return e.pipe(Object(G.a)(1),Object(X.a)(sn))})))).pipe(ee((function(e,t){var n=!1;return t.reduce((function(e,r,i){if(e!==sn)return e;if(r===sn&&(n=!0),!n){if(!1===r)return r;if(i===t.length-1||Vt(r))return r}return e}),e)}),sn),Object(O.a)((function(e){return e!==sn})),Object(S.a)((function(e){return Vt(e)?e:!0===e})),Object(G.a)(1))}))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function cn(e,t){return function(n){return n.pipe(Object($.a)((function(n){var i=n.targetSnapshot,a=n.currentSnapshot,l=n.guards,c=l.canActivateChecks,u=l.canDeactivateChecks;return 0===u.length&&0===c.length?Object(o.a)(Object(r.a)(Object(r.a)({},n),{guardsResult:!0})):function(e,t,n,r){return Object(s.a)(e).pipe(Object($.a)((function(e){return function(e,t,n,r,i){var a=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!a||0===a.length)return Object(o.a)(!0);var s=a.map((function(a){var o,s=rn(a,t,i);if(function(e){return e&&Ut(e.canDeactivate)}(s))o=Ve(s.canDeactivate(e,t,n,r));else{if(!Ut(s))throw new Error("Invalid CanDeactivate guard");o=Ve(s(e,t,n,r))}return o.pipe(Q())}));return Object(o.a)(s).pipe(ln())} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e.component,e.route,n,t,r)})),Q((function(e){return!0!==e}),!0))}(u,i,a,e).pipe(Object($.a)((function(n){return n&&"boolean"==typeof n?function(e,t,n,r){return Object(s.a)(t).pipe(re((function(t){return Object(s.a)([dn(t.route.parent,r),un(t.route,r),pn(e,t.path,n),hn(e,t.route,n)]).pipe(Object(T.a)(),Q((function(e){return!0!==e}),!0))})),Q((function(e){return!0!==e}),!0))}(i,c,e,t):Object(o.a)(n)})),Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},n),{guardsResult:e})})))})))}}function un(e,t){return null!==e&&t&&t(new Ce(e)),Object(o.a)(!0)}function dn(e,t){return null!==e&&t&&t(new _e(e)),Object(o.a)(!0)}function hn(e,t,n){var r=t.routeConfig?t.routeConfig.canActivate:null;if(!r||0===r.length)return Object(o.a)(!0);var i=r.map((function(r){return E((function(){var i,a=rn(r,t,n);if(function(e){return e&&Ut(e.canActivate)}(a))i=Ve(a.canActivate(t,e));else{if(!Ut(a))throw new Error("Invalid CanActivate guard");i=Ve(a(t,e))}return i.pipe(Q())}))}));return Object(o.a)(i).pipe(ln())}function pn(e,t,n){var r=t[t.length-1],i=t.slice(0,t.length-1).reverse().map((function(e){return function(e){var t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(e)})).filter((function(e){return null!==e})).map((function(t){return E((function(){var i=t.guards.map((function(i){var a,o=rn(i,t.node,n);if(function(e){return e&&Ut(e.canActivateChild)}(o))a=Ve(o.canActivateChild(r,e));else{if(!Ut(o))throw new Error("Invalid CanActivateChild guard");a=Ve(o(r,e))}return a.pipe(Q())}));return Object(o.a)(i).pipe(ln())}))}));return Object(o.a)(i).pipe(ln())}var fn=function(){};var mn=function(){function e(e,t,n,r,i,a){this.rootComponentType=e,this.config=t,this.urlTree=n,this.url=r,this.paramsInheritanceStrategy=i,this.relativeLinkResolution=a}return e.prototype.recognize=function(){try{var e=bn(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,t=this.processSegmentGroup(this.config,e,Te),n=new wt([],Object.freeze({}),Object.freeze(Object(r.a)({},this.urlTree.queryParams)),this.urlTree.fragment,{},Te,this.rootComponentType,null,this.urlTree.root,-1,{}),i=new mt(n,t),a=new _t(this.url,i);return this.inheritParamsAndData(a._root),Object(o.a)(a)}catch(s){return new d.a((function(e){return e.error(s)}))}},e.prototype.inheritParamsAndData=function(e){var t=this,n=e.value,r=kt(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),e.children.forEach((function(e){return t.inheritParamsAndData(e)}))},e.prototype.processSegmentGroup=function(e,t,n){return 0===t.segments.length&&t.hasChildren()?this.processChildren(e,t):this.processSegment(e,t,t.segments,n)},e.prototype.processChildren=function(e,t){var n,r=this,i=Ye(t,(function(t,n){return r.processSegmentGroup(e,t,n)}));return n={},i.forEach((function(e){var t=n[e.value.outlet];if(t){var r=t.url.map((function(e){return e.toString()})).join("/"),i=e.value.url.map((function(e){return e.toString()})).join("/");throw new Error("Two segments cannot have the same outlet name: '"+r+"' and '"+i+"'.")}n[e.value.outlet]=e.value})),function(e){e.sort((function(e,t){return e.value.outlet===Te?-1:t.value.outlet===Te?1:e.value.outlet.localeCompare(t.value.outlet)}))}(i),i},e.prototype.processSegment=function(e,t,n,i){var a,o;try{for(var s=Object(r.h)(e),l=s.next();!l.done;l=s.next()){var c=l.value;try{return this.processSegmentAgainstRoute(c,t,n,i)}catch(u){if(!(u instanceof fn))throw u}}}catch(d){a={error:d}}finally{try{l&&!l.done&&(o=s.return)&&o.call(s)}finally{if(a)throw a.error}}if(this.noLeftoversInUrl(t,n,i))return[];throw new fn},e.prototype.noLeftoversInUrl=function(e,t,n){return 0===t.length&&!e.children[n]},e.prototype.processSegmentAgainstRoute=function(e,t,n,i){if(e.redirectTo)throw new fn;if((e.outlet||Te)!==i)throw new fn;var a,o=[],s=[];if("**"===e.path){var l=n.length>0?Fe(n).parameters:{};a=new wt(n,l,Object.freeze(Object(r.a)({},this.urlTree.queryParams)),this.urlTree.fragment,wn(e),i,e.component,e,gn(t),yn(t)+n.length,_n(e))}else{var c=function(e,t,n){if(""===t.path){if("full"===t.pathMatch&&(e.hasChildren()||n.length>0))throw new fn;return{consumedSegments:[],lastChild:0,parameters:{}}}var i=(t.matcher||De)(n,e,t);if(!i)throw new fn;var a={};Ue(i.posParams,(function(e,t){a[t]=e.path}));var o=i.consumed.length>0?Object(r.a)(Object(r.a)({},a),i.consumed[i.consumed.length-1].parameters):a;return{consumedSegments:i.consumed,lastChild:i.consumed.length,parameters:o}}(t,e,n);o=c.consumedSegments,s=n.slice(c.lastChild),a=new wt(o,c.parameters,Object.freeze(Object(r.a)({},this.urlTree.queryParams)),this.urlTree.fragment,wn(e),i,e.component,e,gn(t),yn(t)+o.length,_n(e))}var u=function(e){if(e.children)return e.children;if(e.loadChildren)return e._loadedConfig.routes;return[]}(e),d=bn(t,o,s,u,this.relativeLinkResolution),h=d.segmentGroup,p=d.slicedSegments;if(0===p.length&&h.hasChildren()){var f=this.processChildren(u,h);return[new mt(a,f)]}if(0===u.length&&0===p.length)return[new mt(a,[])];var m=this.processSegment(u,h,p,Te);return[new mt(a,m)]},e}();function gn(e){for(var t=e;t._sourceSegment;)t=t._sourceSegment;return t}function yn(e){for(var t=e,n=t._segmentIndexShift?t._segmentIndexShift:0;t._sourceSegment;)n+=(t=t._sourceSegment)._segmentIndexShift?t._segmentIndexShift:0;return n-1}function bn(e,t,n,i,a){if(n.length>0&&function(e,t,n){return n.some((function(n){return vn(e,t,n)&&kn(n)!==Te}))}(e,n,i)){var o=new Ge(t,function(e,t,n,i){var a,o,s={};s[Te]=i,i._sourceSegment=e,i._segmentIndexShift=t.length;try{for(var l=Object(r.h)(n),c=l.next();!c.done;c=l.next()){var u=c.value;if(""===u.path&&kn(u)!==Te){var d=new Ge([],{});d._sourceSegment=e,d._segmentIndexShift=t.length,s[kn(u)]=d}}}catch(h){a={error:h}}finally{try{c&&!c.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}return s}(e,t,i,new Ge(n,e.children)));return o._sourceSegment=e,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:[]}}if(0===n.length&&function(e,t,n){return n.some((function(n){return vn(e,t,n)}))}(e,n,i)){var s=new Ge(e.segments,function(e,t,n,i,a,o){var s,l,c={};try{for(var u=Object(r.h)(i),d=u.next();!d.done;d=u.next()){var h=d.value;if(vn(e,n,h)&&!a[kn(h)]){var p=new Ge([],{});p._sourceSegment=e,p._segmentIndexShift="legacy"===o?e.segments.length:t.length,c[kn(h)]=p}}}catch(f){s={error:f}}finally{try{d&&!d.done&&(l=u.return)&&l.call(u)}finally{if(s)throw s.error}}return Object(r.a)(Object(r.a)({},a),c)}(e,t,n,i,e.children,a));return s._sourceSegment=e,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:n}}var l=new Ge(e.segments,e.children);return l._sourceSegment=e,l._segmentIndexShift=t.length,{segmentGroup:l,slicedSegments:n}}function vn(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0===n.redirectTo)}function kn(e){return e.outlet||Te}function wn(e){return e.data||{}}function _n(e){return e.resolve||{}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function jn(e,t,n,i,a){return function(o){return o.pipe(Object($.a)((function(o){return function(e,t,n,r,i,a){return void 0===i&&(i="emptyOnly"),void 0===a&&(a="legacy"),new mn(e,t,n,r,i,a).recognize()}(e,t,o.urlAfterRedirects,n(o.urlAfterRedirects),i,a).pipe(Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},o),{targetSnapshot:e})})))})))}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Cn(e,t){return function(n){return n.pipe(Object($.a)((function(n){var i=n.targetSnapshot,a=n.guards.canActivateChecks;return a.length?Object(s.a)(a).pipe(re((function(n){return function(e,t,n,i){return function(e,t,n,r){var i=Object.keys(e);if(0===i.length)return Object(o.a)({});if(1===i.length){var a=i[0];return xn(e[a],t,n,r).pipe(Object(S.a)((function(e){var t;return(t={})[a]=e,t})))}var l={};return Object(s.a)(i).pipe(Object($.a)((function(i){return xn(e[i],t,n,r).pipe(Object(S.a)((function(e){return l[i]=e,e})))}))).pipe(U(),Object(S.a)((function(){return l})))}(e._resolve,e,t,i).pipe(Object(S.a)((function(t){return e._resolvedData=t,e.data=Object(r.a)(Object(r.a)({},e.data),kt(e,n).resolve),null})))}(n.route,i,e,t)})),function(e,t){return arguments.length>=2?function(n){return Object(ie.a)(ee(e,t),I(1),q(t))(n)}:function(t){return Object(ie.a)(ee((function(t,n,r){return e(t,n,r+1)})),I(1))(t)}}((function(e,t){return e})),Object(S.a)((function(e){return n}))):Object(o.a)(n)})))}}function xn(e,t,n,r){var i=rn(e,t,r);return i.resolve?Ve(i.resolve(t,n)):Ve(i(t,n))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function En(e){return function(t){return t.pipe(Object(J.a)((function(t){var n=e(t);return n?Object(s.a)(n).pipe(Object(S.a)((function(){return t}))):Object(s.a)([t])})))}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Sn=function(){},Tn=function(){function e(){}return e.prototype.shouldDetach=function(e){return!1},e.prototype.store=function(e,t){},e.prototype.shouldAttach=function(e){return!1},e.prototype.retrieve=function(e){return null},e.prototype.shouldReuseRoute=function(e,t){return e.routeConfig===t.routeConfig},e}(),On=new a.InjectionToken("ROUTES"),zn=function(){function e(e,t,n,r){this.loader=e,this.compiler=t,this.onLoadStartListener=n,this.onLoadEndListener=r}return e.prototype.load=function(e,t){var n=this;return this.onLoadStartListener&&this.onLoadStartListener(t),this.loadModuleFactory(t.loadChildren).pipe(Object(S.a)((function(r){n.onLoadEndListener&&n.onLoadEndListener(t);var i=r.create(e);return new Ae(Le(i.injector.get(On)).map(Me),i)})))},e.prototype.loadModuleFactory=function(e){var t=this;return"string"==typeof e?Object(s.a)(this.loader.load(e)):Ve(e()).pipe(Object($.a)((function(e){return e instanceof a.NgModuleFactory?Object(o.a)(e):Object(s.a)(t.compiler.compileModuleAsync(e))})))},e}(),In=function(){},Dn=function(){function e(){}return e.prototype.shouldProcessUrl=function(e){return!0},e.prototype.extract=function(e){return e},e.prototype.merge=function(e,t){return e},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function An(e){throw e}function Nn(e,t,n){return t.parse("/")}function Pn(e,t){return Object(o.a)(null)}var Rn=function(){function e(e,t,n,r,i,o,s,c){var d=this;this.rootComponentType=e,this.urlSerializer=t,this.rootContexts=n,this.location=r,this.config=c,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new l.a,this.errorHandler=An,this.malformedUriErrorHandler=Nn,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:Pn,afterPreactivation:Pn},this.urlHandlingStrategy=new Dn,this.routeReuseStrategy=new Tn,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="legacy";this.ngModule=i.get(a.NgModuleRef),this.console=i.get(a["ɵConsole"]);var h=i.get(a.NgZone);this.isNgZoneEnabled=h instanceof a.NgZone,this.resetConfig(c),this.currentUrlTree=new We(new Ge([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new zn(o,s,(function(e){return d.triggerEvent(new ke(e))}),(function(e){return d.triggerEvent(new we(e))})),this.routerState=bt(this.currentUrlTree,this.rootComponentType),this.transitions=new u({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}return e.prototype.setupNavigations=function(e){var t=this,n=this.events;return e.pipe(Object(O.a)((function(e){return 0!==e.id})),Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},e),{extractedUrl:t.urlHandlingStrategy.extract(e.rawUrl)})})),Object(J.a)((function(e){var i,a,s,l,c=!1,u=!1;return Object(o.a)(e).pipe(Object(ae.a)((function(e){t.currentNavigation={id:e.id,initialUrl:e.currentRawUrl,extractedUrl:e.extractedUrl,trigger:e.source,extras:e.extras,previousNavigation:t.lastSuccessfulNavigation?Object(r.a)(Object(r.a)({},t.lastSuccessfulNavigation),{previousNavigation:null}):null}})),Object(J.a)((function(e){var i=!t.navigated||e.extractedUrl.toString()!==t.browserUrlTree.toString();if(("reload"===t.onSameUrlNavigation||i)&&t.urlHandlingStrategy.shouldProcessUrl(e.rawUrl))return Object(o.a)(e).pipe(Object(J.a)((function(e){var r=t.transitions.getValue();return n.next(new de(e.id,t.serializeUrl(e.extractedUrl),e.source,e.restoredState)),r!==t.transitions.getValue()?x.a:[e]})),Object(J.a)((function(e){return Promise.resolve(e)})),en(t.ngModule.injector,t.configLoader,t.urlSerializer,t.config),Object(ae.a)((function(e){t.currentNavigation=Object(r.a)(Object(r.a)({},t.currentNavigation),{finalUrl:e.urlAfterRedirects})})),jn(t.rootComponentType,t.config,(function(e){return t.serializeUrl(e)}),t.paramsInheritanceStrategy,t.relativeLinkResolution),Object(ae.a)((function(e){"eager"===t.urlUpdateStrategy&&(e.extras.skipLocationChange||t.setBrowserUrl(e.urlAfterRedirects,!!e.extras.replaceUrl,e.id,e.extras.state),t.browserUrlTree=e.urlAfterRedirects)})),Object(ae.a)((function(e){var r=new me(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);n.next(r)})));if(i&&t.rawUrlTree&&t.urlHandlingStrategy.shouldProcessUrl(t.rawUrlTree)){var a=e.id,s=e.extractedUrl,l=e.source,c=e.restoredState,u=e.extras,d=new de(a,t.serializeUrl(s),l,c);n.next(d);var h=bt(s,t.rootComponentType).snapshot;return Object(o.a)(Object(r.a)(Object(r.a)({},e),{targetSnapshot:h,urlAfterRedirects:s,extras:Object(r.a)(Object(r.a)({},u),{skipLocationChange:!1,replaceUrl:!1})}))}return t.rawUrlTree=e.rawUrl,t.browserUrlTree=e.urlAfterRedirects,e.resolve(null),x.a})),En((function(e){var n=e.targetSnapshot,r=e.id,i=e.extractedUrl,a=e.rawUrl,o=e.extras,s=o.skipLocationChange,l=o.replaceUrl;return t.hooks.beforePreactivation(n,{navigationId:r,appliedUrlTree:i,rawUrlTree:a,skipLocationChange:!!s,replaceUrl:!!l})})),Object(ae.a)((function(e){var n=new ge(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})),Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},e),{guards:(n=e.targetSnapshot,i=e.currentSnapshot,a=t.rootContexts,o=n._root,an(o,i?i._root:null,a,[o.value]))});var n,i,a,o})),cn(t.ngModule.injector,(function(e){return t.triggerEvent(e)})),Object(ae.a)((function(e){if(Vt(e.guardsResult)){var n=Ie('Redirecting to "'+t.serializeUrl(e.guardsResult)+'"');throw n.url=e.guardsResult,n}})),Object(ae.a)((function(e){var n=new ye(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot,!!e.guardsResult);t.triggerEvent(n)})),Object(O.a)((function(e){if(!e.guardsResult){t.resetUrlToCurrentUrlTree();var r=new pe(e.id,t.serializeUrl(e.extractedUrl),"");return n.next(r),e.resolve(!1),!1}return!0})),En((function(e){if(e.guards.canActivateChecks.length)return Object(o.a)(e).pipe(Object(ae.a)((function(e){var n=new be(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})),Cn(t.paramsInheritanceStrategy,t.ngModule.injector),Object(ae.a)((function(e){var n=new ve(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})))})),En((function(e){var n=e.targetSnapshot,r=e.id,i=e.extractedUrl,a=e.rawUrl,o=e.extras,s=o.skipLocationChange,l=o.replaceUrl;return t.hooks.afterPreactivation(n,{navigationId:r,appliedUrlTree:i,rawUrlTree:a,skipLocationChange:!!s,replaceUrl:!!l})})),Object(S.a)((function(e){var n,i,a,o,s=(n=t.routeReuseStrategy,i=e.targetSnapshot,a=e.currentRouterState,o=St(n,i._root,a?a._root:void 0),new yt(o,i));return Object(r.a)(Object(r.a)({},e),{targetRouterState:s})})),Object(ae.a)((function(e){t.currentUrlTree=e.urlAfterRedirects,t.rawUrlTree=t.urlHandlingStrategy.merge(t.currentUrlTree,e.rawUrl),t.routerState=e.targetRouterState,"deferred"===t.urlUpdateStrategy&&(e.extras.skipLocationChange||t.setBrowserUrl(t.rawUrlTree,!!e.extras.replaceUrl,e.id,e.extras.state),t.browserUrlTree=e.urlAfterRedirects)})),(a=t.rootContexts,s=t.routeReuseStrategy,l=function(e){return t.triggerEvent(e)},Object(S.a)((function(e){return new Lt(s,e.targetRouterState,e.currentRouterState,l).activate(a),e}))),Object(ae.a)({next:function(){c=!0},complete:function(){c=!0}}),(i=function(){if(!c&&!u){t.resetUrlToCurrentUrlTree();var r=new pe(e.id,t.serializeUrl(e.extractedUrl),"Navigation ID "+e.id+" is not equal to the current navigation id "+t.navigationId);n.next(r),e.resolve(!1)}t.currentNavigation=null},function(e){return e.lift(new se(i))}),H((function(r){if(u=!0,(s=r)&&s.ngNavigationCancelingError){var i=Vt(r.url);i||(t.navigated=!0,t.resetStateAndUrl(e.currentRouterState,e.currentUrlTree,e.rawUrl));var a=new pe(e.id,t.serializeUrl(e.extractedUrl),r.message);n.next(a),i?setTimeout((function(){var n=t.urlHandlingStrategy.merge(r.url,t.rawUrlTree),i={skipLocationChange:e.extras.skipLocationChange,replaceUrl:"eager"===t.urlUpdateStrategy};return t.scheduleNavigation(n,"imperative",null,i,{resolve:e.resolve,reject:e.reject,promise:e.promise})}),0):e.resolve(!1)}else{t.resetStateAndUrl(e.currentRouterState,e.currentUrlTree,e.rawUrl);var o=new fe(e.id,t.serializeUrl(e.extractedUrl),r);n.next(o);try{e.resolve(t.errorHandler(r))}catch(l){e.reject(l)}}var s;return x.a})))})))},e.prototype.resetRootComponentType=function(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType},e.prototype.getTransition=function(){var e=this.transitions.value;return e.urlAfterRedirects=this.browserUrlTree,e},e.prototype.setTransition=function(e){this.transitions.next(Object(r.a)(Object(r.a)({},this.getTransition()),e))},e.prototype.initialNavigation=function(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})},e.prototype.setUpLocationChangeListener=function(){var e=this;this.locationSubscription||(this.locationSubscription=this.location.subscribe((function(t){var n=e.parseUrl(t.url),r="popstate"===t.type?"popstate":"hashchange",i=t.state&&t.state.navigationId?t.state:null;setTimeout((function(){e.scheduleNavigation(n,r,i,{replaceUrl:!0})}),0)})))},Object.defineProperty(e.prototype,"url",{get:function(){return this.serializeUrl(this.currentUrlTree)},enumerable:!0,configurable:!0}),e.prototype.getCurrentNavigation=function(){return this.currentNavigation},e.prototype.triggerEvent=function(e){this.events.next(e)},e.prototype.resetConfig=function(e){Ne(e),this.config=e.map(Me),this.navigated=!1,this.lastSuccessfulId=-1},e.prototype.ngOnDestroy=function(){this.dispose()},e.prototype.dispose=function(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)},e.prototype.createUrlTree=function(e,t){void 0===t&&(t={});var n=t.relativeTo,i=t.queryParams,o=t.fragment,s=t.preserveQueryParams,l=t.queryParamsHandling,c=t.preserveFragment;Object(a.isDevMode)()&&s&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead.");var u=n||this.routerState.root,d=c?this.currentUrlTree.fragment:o,h=null;if(l)switch(l){case"merge":h=Object(r.a)(Object(r.a)({},this.currentUrlTree.queryParams),i);break;case"preserve":h=this.currentUrlTree.queryParams;break;default:h=i||null}else h=s?this.currentUrlTree.queryParams:i||null;return null!==h&&(h=this.removeEmptyProps(h)),Tt(u,this.currentUrlTree,e,h,d)},e.prototype.navigateByUrl=function(e,t){void 0===t&&(t={skipLocationChange:!1}),Object(a.isDevMode)()&&this.isNgZoneEnabled&&!a.NgZone.isInAngularZone()&&this.console.warn("Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?");var n=Vt(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(r,"imperative",null,t)},e.prototype.navigate=function(e,t){return void 0===t&&(t={skipLocationChange:!1}),function(e){for(var t=0;t=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},f=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},m=function(){function e(e,t,n){this.sanitizer=e,this.componentFactoryResolver=t,this.changeDetectorRef=n,this.bodyOutputType=r,this.clickEvent=new i.EventEmitter}return e.prototype.ngOnInit=function(){this.toast.closeHtml&&(this.safeCloseHtml=this.sanitizer.bypassSecurityTrustHtml(this.toast.closeHtml)),this.toast.bodyOutputType===r.TrustedHtml&&(this.safeBodyHtml=this.sanitizer.bypassSecurityTrustHtml(this.toast.body))},e.prototype.ngAfterViewInit=function(){if(this.toast.bodyOutputType===this.bodyOutputType.Component){var e=this.componentFactoryResolver.resolveComponentFactory(this.toast.body);this.componentBody.createComponent(e,void 0,this.componentBody.injector).instance.toast=this.toast,this.changeDetectorRef.detectChanges()}},e.prototype.click=function(e,t){e.stopPropagation(),this.clickEvent.emit({value:{toast:t,isCloseButton:!0}})},p([Object(i.Input)(),f("design:type",Object)],e.prototype,"toast",void 0),p([Object(i.Input)(),f("design:type",String)],e.prototype,"iconClass",void 0),p([Object(i.Input)(),f("design:type",String)],e.prototype,"titleClass",void 0),p([Object(i.Input)(),f("design:type",String)],e.prototype,"messageClass",void 0),p([Object(i.ViewChild)("componentBody",{read:i.ViewContainerRef,static:!1}),f("design:type",i.ViewContainerRef)],e.prototype,"componentBody",void 0),p([Object(i.Output)(),f("design:type",Object)],e.prototype,"clickEvent",void 0),(e=p([f("design:paramtypes",[a.DomSanitizer,i.ComponentFactoryResolver,i.ChangeDetectorRef])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](a.DomSanitizer),i["ɵɵdirectiveInject"](i.ComponentFactoryResolver),i["ɵɵdirectiveInject"](i.ChangeDetectorRef))},e.ɵcmp=i["ɵɵdefineComponent"]({type:e,selectors:[["","toastComp",""]],viewQuery:function(e,t){var n;(1&e&&i["ɵɵviewQuery"](s,!0,i.ViewContainerRef),2&e)&&(i["ɵɵqueryRefresh"](n=i["ɵɵloadQuery"]())&&(t.componentBody=n.first))},inputs:{toast:"toast",iconClass:"iconClass",titleClass:"titleClass",messageClass:"messageClass"},outputs:{clickEvent:"clickEvent"},attrs:l,decls:19,vars:9,consts:[[1,"toaster-icon",3,"ngClass"],[1,"toast-content"],[3,"ngClass"],[3,"ngClass","ngSwitch"],[4,"ngSwitchCase"],[3,"innerHTML",4,"ngSwitchCase"],["class","toast-close-button",3,"innerHTML","click",4,"ngIf"],["componentBody",""],[3,"innerHTML"],[1,"toast-close-button",3,"innerHTML","click"]],template:function(e,t){1&e&&(i["ɵɵtext"](0,"\n "),i["ɵɵelement"](1,"i",0),i["ɵɵtext"](2,"\n "),i["ɵɵelementStart"](3,"div",1),i["ɵɵtext"](4,"\n "),i["ɵɵelementStart"](5,"div",2),i["ɵɵtext"](6),i["ɵɵelementEnd"](),i["ɵɵtext"](7,"\n "),i["ɵɵelementStart"](8,"div",3),i["ɵɵtext"](9,"\n "),i["ɵɵtemplate"](10,c,2,0,"div",4),i["ɵɵtext"](11,"\n "),i["ɵɵtemplate"](12,u,1,1,"div",5),i["ɵɵtext"](13,"\n "),i["ɵɵtemplate"](14,d,2,1,"div",4),i["ɵɵtext"](15,"\n "),i["ɵɵelementEnd"](),i["ɵɵtext"](16,"\n "),i["ɵɵelementEnd"](),i["ɵɵtext"](17,"\n "),i["ɵɵtemplate"](18,h,2,1,"div",6)),2&e&&(i["ɵɵadvance"](1),i["ɵɵproperty"]("ngClass",t.iconClass),i["ɵɵadvance"](4),i["ɵɵproperty"]("ngClass",t.titleClass),i["ɵɵadvance"](1),i["ɵɵtextInterpolate"](t.toast.title),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngClass",t.messageClass)("ngSwitch",t.toast.bodyOutputType),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngSwitchCase",t.bodyOutputType.Component),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngSwitchCase",t.bodyOutputType.TrustedHtml),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngSwitchCase",t.bodyOutputType.Default),i["ɵɵadvance"](4),i["ɵɵproperty"]("ngIf",t.toast.showCloseButton))},directives:[o.NgClass,o.NgSwitch,o.NgSwitchCase,o.NgIf],encapsulation:2}),e}(),g=n(12),y=function(e){e=e||{},this.limit=e.limit||null,this.tapToDismiss=null==e.tapToDismiss||e.tapToDismiss,this.showCloseButton=null!=e.showCloseButton&&e.showCloseButton,this.closeHtml=e.closeHtml||'',this.newestOnTop=null==e.newestOnTop||e.newestOnTop,this.timeout=null!=e.timeout?e.timeout:5e3,this.typeClasses=e.typeClasses||{error:"toast-error",info:"toast-info",wait:"toast-wait",success:"toast-success",warning:"toast-warning"},this.iconClasses=e.iconClasses||{error:"icon-error",info:"icon-info",wait:"icon-wait",success:"icon-success",warning:"icon-warning"},this.bodyOutputType=e.bodyOutputType||r.Default,this.bodyTemplate=e.bodyTemplate||"toasterBodyTmpl.html",this.defaultTypeClass=e.defaultTypeClass||"toast-info",this.positionClass=e.positionClass||"toast-top-right",this.titleClass=e.titleClass||"toast-title",this.messageClass=e.messageClass||"toast-message",this.animation=e.animation||"",this.preventDuplicates=null!=e.preventDuplicates&&e.preventDuplicates,this.mouseoverTimerStop=null!=e.mouseoverTimerStop&&e.mouseoverTimerStop,this.toastContainerId=null!=e.toastContainerId?e.toastContainerId:null},b=n(32),v=n(147),k=n(1104),w=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},_=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},j=function(){function e(){}return e.newGuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},e}(),C=function(){function e(){var e=this;this.addToast=new b.a((function(t){return e._addToast=t})).pipe(Object(k.a)()),this.clearToasts=new b.a((function(t){return e._clearToasts=t})).pipe(Object(k.a)()),this._removeToastSubject=new v.a,this.removeToast=this._removeToastSubject.pipe(Object(k.a)())}return e.prototype.pop=function(e,t,n){var r="string"==typeof e?{type:e,title:t,body:n}:e;if(r.toastId||(r.toastId=j.newGuid()),!this._addToast)throw new Error("No Toaster Containers have been initialized to receive toasts.");return this._addToast.next(r),r},e.prototype.popAsync=function(e,t,n){var r=this;return setTimeout((function(){r.pop(e,t,n)}),0),this.addToast},e.prototype.clear=function(e,t){var n={toastId:e,toastContainerId:t};this._clearToasts.next(n)},(e=w([_("design:paramtypes",[])],e)).ɵfac=function(t){return new(t||e)},e.ɵprov=i["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function x(e,t){if(1&e){var n=i["ɵɵgetCurrentView"]();i["ɵɵelementStart"](0,"div",2),i["ɵɵlistener"]("click",(function(){i["ɵɵrestoreView"](n);var e=t.$implicit;return i["ɵɵnextContext"]().click(e)}))("clickEvent",(function(e){return i["ɵɵrestoreView"](n),i["ɵɵnextContext"]().childClick(e)}))("mouseover",(function(){i["ɵɵrestoreView"](n);var e=t.$implicit;return i["ɵɵnextContext"]().stopTimer(e)}))("mouseout",(function(){i["ɵɵrestoreView"](n);var e=t.$implicit;return i["ɵɵnextContext"]().restartTimer(e)})),i["ɵɵtext"](1,"\n "),i["ɵɵelementEnd"]()}if(2&e){var r=t.$implicit,a=i["ɵɵnextContext"]();i["ɵɵproperty"]("toast",r)("@toastState",a.toasterconfig.animation)("iconClass",a.toasterconfig.iconClasses[r.type])("titleClass",a.toasterconfig.titleClass)("messageClass",a.toasterconfig.messageClass)("ngClass",a.toasterconfig.typeClasses[r.type])}}var E=function(e){return[e]},S=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},T=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},O=function(){function e(e,t,n){this.ref=t,this.ngZone=n,this.timeoutIds=new Map,this.toasts=[],this.toasterService=e}return e.prototype.ngOnInit=function(){this.registerSubscribers(),this.isNullOrUndefined(this.toasterconfig)&&(this.toasterconfig=new y)},e.prototype.click=function(e,t){if(this.toasterconfig.tapToDismiss||e.showCloseButton&&t){var n=!0;if(e.clickHandler){if("function"!=typeof e.clickHandler)return console.log("The toast click handler is not a callable function."),!1;n=e.clickHandler(e,t)}n&&this.removeToast(e)}},e.prototype.childClick=function(e){this.click(e.value.toast,e.value.isCloseButton)},e.prototype.stopTimer=function(e){if(this.toasterconfig.mouseoverTimerStop){var t=this.toastIdOrDefault(e),n=this.timeoutIds.get(t);n&&(window.clearTimeout(n),this.timeoutIds.delete(t))}},e.prototype.restartTimer=function(e){var t=this.timeoutIds.get(this.toastIdOrDefault(e));this.toasterconfig.mouseoverTimerStop?t||this.configureTimer(e):0!==e.timeout&&!t&&this.toasterconfig.timeout&&this.removeToast(e)},e.prototype.registerSubscribers=function(){var e=this;this.addToastSubscriber=this.toasterService.addToast.subscribe((function(t){e.addToast(t)})),this.clearToastsSubscriber=this.toasterService.clearToasts.subscribe((function(t){e.clearToasts(t)}))},e.prototype.addToast=function(e){if(!e.toastContainerId||!this.toasterconfig.toastContainerId||e.toastContainerId===this.toasterconfig.toastContainerId){if(e.type||(e.type=this.toasterconfig.defaultTypeClass),this.toasterconfig.preventDuplicates&&this.toasts.length>0){if(e.toastId&&this.toasts.some((function(t){return t.toastId===e.toastId})))return;if(this.toasts.some((function(t){return t.body===e.body})))return}this.isNullOrUndefined(e.showCloseButton)&&("object"==typeof this.toasterconfig.showCloseButton?e.showCloseButton=this.toasterconfig.showCloseButton[e.type]:"boolean"==typeof this.toasterconfig.showCloseButton&&(e.showCloseButton=this.toasterconfig.showCloseButton)),e.showCloseButton&&(e.closeHtml=e.closeHtml||this.toasterconfig.closeHtml),e.bodyOutputType=e.bodyOutputType||this.toasterconfig.bodyOutputType,this.configureTimer(e),this.toasterconfig.newestOnTop?(this.toasts.unshift(e),this.isLimitExceeded()&&this.toasts.pop()):(this.toasts.push(e),this.isLimitExceeded()&&this.toasts.shift()),e.onShowCallback&&e.onShowCallback(e)}},e.prototype.configureTimer=function(e){var t=this,n="number"==typeof e.timeout?e.timeout:this.toasterconfig.timeout;"object"==typeof n&&(n=n[e.type]),n>0&&this.ngZone.runOutsideAngular((function(){var r=window.setTimeout((function(){t.ngZone.run((function(){t.ref.markForCheck(),t.removeToast(e)}))}),n);t.timeoutIds.set(t.toastIdOrDefault(e),r)}))},e.prototype.isLimitExceeded=function(){return this.toasterconfig.limit&&this.toasts.length>this.toasterconfig.limit},e.prototype.removeToast=function(e){var t=this.toasts.indexOf(e);if(!(t<0)){var n=this.toastIdOrDefault(e),r=this.timeoutIds.get(n);this.toasts.splice(t,1),r&&(window.clearTimeout(r),this.timeoutIds.delete(n)),e.onHideCallback&&e.onHideCallback(e),this.toasterService._removeToastSubject.next({toastId:n,toastContainerId:e.toastContainerId})}},e.prototype.removeAllToasts=function(){for(var e=this.toasts.length-1;e>=0;e--)this.removeToast(this.toasts[e])},e.prototype.clearToasts=function(e){var t=e.toastId,n=e.toastContainerId;(this.isNullOrUndefined(n)||n===this.toasterconfig.toastContainerId)&&this.clearToastsAction(t)},e.prototype.clearToastsAction=function(e){e?this.removeToast(this.toasts.filter((function(t){return t.toastId===e}))[0]):this.removeAllToasts()},e.prototype.toastIdOrDefault=function(e){return e.toastId||""},e.prototype.isNullOrUndefined=function(e){return null==e},e.prototype.ngOnDestroy=function(){this.addToastSubscriber&&this.addToastSubscriber.unsubscribe(),this.clearToastsSubscriber&&this.clearToastsSubscriber.unsubscribe()},S([Object(i.Input)(),T("design:type",y)],e.prototype,"toasterconfig",void 0),(e=S([T("design:paramtypes",[C,i.ChangeDetectorRef,i.NgZone])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](C),i["ɵɵdirectiveInject"](i.ChangeDetectorRef),i["ɵɵdirectiveInject"](i.NgZone))},e.ɵcmp=i["ɵɵdefineComponent"]({type:e,selectors:[["toaster-container"]],inputs:{toasterconfig:"toasterconfig"},decls:6,vars:4,consts:[["id","toast-container",3,"ngClass"],["toastComp","","class","toast",3,"toast","iconClass","titleClass","messageClass","ngClass","click","clickEvent","mouseover","mouseout",4,"ngFor","ngForOf"],["toastComp","",1,"toast",3,"toast","iconClass","titleClass","messageClass","ngClass","click","clickEvent","mouseover","mouseout"]],template:function(e,t){1&e&&(i["ɵɵtext"](0,"\n "),i["ɵɵelementStart"](1,"div",0),i["ɵɵtext"](2,"\n "),i["ɵɵtemplate"](3,x,2,6,"div",1),i["ɵɵtext"](4,"\n "),i["ɵɵelementEnd"](),i["ɵɵtext"](5,"\n ")),2&e&&(i["ɵɵadvance"](1),i["ɵɵproperty"]("ngClass",i["ɵɵpureFunction1"](2,E,t.toasterconfig.positionClass)),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngForOf",t.toasts))},directives:[o.NgClass,o.NgForOf,m],encapsulation:2,data:{animation:[Object(g.j)("toastState",[Object(g.g)("flyRight, flyLeft, slideDown, slideUp, fade",Object(g.h)({opacity:1,transform:"translate(0,0)"})),Object(g.i)("void => flyRight",[Object(g.h)({opacity:0,transform:"translateX(100%)"}),Object(g.e)("0.25s ease-in")]),Object(g.i)("flyRight => void",[Object(g.e)("0.25s 10ms ease-out",Object(g.h)({opacity:0,transform:"translateX(100%)"}))]),Object(g.i)("void => flyLeft",[Object(g.h)({opacity:0,transform:"translateX(-100%)"}),Object(g.e)("0.25s ease-in")]),Object(g.i)("flyLeft => void",[Object(g.e)("0.25s 10ms ease-out",Object(g.h)({opacity:0,transform:"translateX(-100%)"}))]),Object(g.i)("void => slideDown",[Object(g.h)({opacity:0,transform:"translateY(-200%)"}),Object(g.e)("0.3s ease-in")]),Object(g.i)("slideDown => void",[Object(g.e)("0.3s 10ms ease-out",Object(g.h)({opacity:0,transform:"translateY(200%)"}))]),Object(g.i)("void => slideUp",[Object(g.h)({opacity:0,transform:"translateY(200%)"}),Object(g.e)("0.3s ease-in")]),Object(g.i)("slideUp => void",[Object(g.e)("0.3s 10ms ease-out",Object(g.h)({opacity:0,transform:"translateY(-200%)"}))]),Object(g.i)("void => fade",[Object(g.h)({opacity:0}),Object(g.e)("0.3s ease-in")]),Object(g.i)("fade => void",[Object(g.e)("0.3s 10ms ease-out",Object(g.h)({opacity:0}))])])]}}),e}(),z=function(){function e(){}var t;return t=e,e.forRoot=function(){return{ngModule:t,providers:[C,O]}},e.forChild=function(){return{ngModule:t,providers:[O]}},e.ɵmod=i["ɵɵdefineNgModule"]({type:e}),e.ɵinj=i["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},imports:[[o.CommonModule]]}),("undefined"==typeof ngJitMode||ngJitMode)&&i["ɵɵsetNgModuleScope"](e,{declarations:function(){return[m,O]},imports:function(){return[o.CommonModule]},exports:function(){return[O,m]}}),e}();n.d(t,"ToastComponent",(function(){return m})),n.d(t,"ToasterContainerComponent",(function(){return O})),n.d(t,"ToasterService",(function(){return C})),n.d(t,"ToasterConfig",(function(){return y})),n.d(t,"BodyOutputType",(function(){return r})),n.d(t,"ToasterModule",(function(){return z}))},,function(e,t,n){"use strict";var r;n.d(t,"a",(function(){return r})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(r||(r={}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return i})),n.d(t,"d",(function(){return p})),n.d(t,"e",(function(){return s})),n.d(t,"f",(function(){return l})),n.d(t,"g",(function(){return u})),n.d(t,"h",(function(){return c})),n.d(t,"i",(function(){return d})),n.d(t,"j",(function(){return o})),n.d(t,"k",(function(){return f})),n.d(t,"l",(function(){return m})); +/** + * @license Angular v9.1.12 + * (c) 2010-2020 Google LLC. https://angular.io/ + * License: MIT + */ +var r=function(){},i=function(){},a="*";function o(e,t){return{type:7,name:e,definitions:t,options:{}}}function s(e,t){return void 0===t&&(t=null),{type:4,styles:t,timings:e}}function l(e,t){return void 0===t&&(t=null),{type:2,steps:e,options:t}}function c(e){return{type:6,styles:e,offset:null}}function u(e,t,n){return{type:0,name:e,styles:t,options:n}}function d(e,t,n){return void 0===n&&(n=null),{type:1,expr:e,animation:t,options:n}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function h(e){Promise.resolve(null).then(e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var p=function(){function e(e,t){void 0===e&&(e=0),void 0===t&&(t=0),this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=e+t}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach((function(e){return e()})),this._onDoneFns=[])},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.hasStarted=function(){return this._started},e.prototype.init=function(){},e.prototype.play=function(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0},e.prototype.triggerMicrotask=function(){var e=this;h((function(){return e._onFinish()}))},e.prototype._onStart=function(){this._onStartFns.forEach((function(e){return e()})),this._onStartFns=[]},e.prototype.pause=function(){},e.prototype.restart=function(){},e.prototype.finish=function(){this._onFinish()},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach((function(e){return e()})),this._onDestroyFns=[])},e.prototype.reset=function(){},e.prototype.setPosition=function(e){},e.prototype.getPosition=function(){return 0},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach((function(e){return e()})),t.length=0},e}(),f=function(){function e(e){var t=this;this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=e;var n=0,r=0,i=0,a=this.players.length;0==a?h((function(){return t._onFinish()})):this.players.forEach((function(e){e.onDone((function(){++n==a&&t._onFinish()})),e.onDestroy((function(){++r==a&&t._onDestroy()})),e.onStart((function(){++i==a&&t._onStart()}))})),this.totalTime=this.players.reduce((function(e,t){return Math.max(e,t.totalTime)}),0)}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach((function(e){return e()})),this._onDoneFns=[])},e.prototype.init=function(){this.players.forEach((function(e){return e.init()}))},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype._onStart=function(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach((function(e){return e()})),this._onStartFns=[])},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.hasStarted=function(){return this._started},e.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach((function(e){return e.play()}))},e.prototype.pause=function(){this.players.forEach((function(e){return e.pause()}))},e.prototype.restart=function(){this.players.forEach((function(e){return e.restart()}))},e.prototype.finish=function(){this._onFinish(),this.players.forEach((function(e){return e.finish()}))},e.prototype.destroy=function(){this._onDestroy()},e.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach((function(e){return e.destroy()})),this._onDestroyFns.forEach((function(e){return e()})),this._onDestroyFns=[])},e.prototype.reset=function(){this.players.forEach((function(e){return e.reset()})),this._destroyed=!1,this._finished=!1,this._started=!1},e.prototype.setPosition=function(e){var t=e*this.totalTime;this.players.forEach((function(e){var n=e.totalTime?Math.min(1,t/e.totalTime):1;e.setPosition(n)}))},e.prototype.getPosition=function(){var e=0;return this.players.forEach((function(t){var n=t.getPosition();e=Math.min(n,e)})),e},e.prototype.beforeDestroy=function(){this.players.forEach((function(e){e.beforeDestroy&&e.beforeDestroy()}))},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach((function(e){return e()})),t.length=0},e}(),m="!"; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */},function(e,t,n){"use strict";n.r(t);var r=n(1),i=n(0),a=n(4),o=n(32),s=n(121),l=n(164),c=n(215),u=n(166);function d(e,t){return new o.a((function(n){var r=e.length;if(0!==r)for(var i=new Array(r),a=0,o=0,s=function(s){var l=Object(u.a)(e[s]),c=!1;n.add(l.subscribe({next:function(e){c||(c=!0,o++),i[s]=e},error:function(e){return n.error(e)},complete:function(){++a!==r&&c||(o===r&&n.next(t?t.reduce((function(e,t,n){return e[t]=i[n],e}),{}):i),n.complete())}}))},l=0;le?{max:{max:e,actual:t.value}}:null}},e.required=function(e){return E(e.value)?{required:!0}:null},e.requiredTrue=function(e){return!0===e.value?null:{required:!0}},e.email=function(e){return E(e.value)||O.test(e.value)?null:{email:!0}},e.minLength=function(e){return function(t){if(E(t.value))return null;var n=t.value?t.value.length:0;return ne?{maxlength:{requiredLength:e,actualLength:n}}:null}},e.pattern=function(t){return t?("string"==typeof t?(r="","^"!==t.charAt(0)&&(r+="^"),r+=t,"$"!==t.charAt(t.length-1)&&(r+="$"),n=new RegExp(r)):(r=t.toString(),n=t),function(e){if(E(e.value))return null;var t=e.value;return n.test(t)?null:{pattern:{requiredPattern:r,actualValue:t}}}):e.nullValidator;var n,r},e.nullValidator=function(e){return null},e.compose=function(e){if(!e)return null;var t=e.filter(I);return 0==t.length?null:function(e){return A(function(e,t){return t.map((function(t){return t(e)}))}(e,t))}},e.composeAsync=function(e){if(!e)return null;var t=e.filter(I);return 0==t.length?null:function(e){return function(){for(var e=[],t=0;t=0;--t)if(this._accessors[t][1]===e)return void this._accessors.splice(t,1)},e.prototype.select=function(e){var t=this;this._accessors.forEach((function(n){t._isSameGroup(n,e)&&n[1]!==e&&n[1].fireUncheck(e.value)}))},e.prototype._isSameGroup=function(e,t){return!!e[0].control&&(e[0]._parent===t._control._parent&&e[1].name===t.name)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=i["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}(),L=function(){function e(e,t,n,r){this._renderer=e,this._elementRef=t,this._registry=n,this._injector=r,this.onChange=function(){},this.onTouched=function(){}}return e.prototype.ngOnInit=function(){this._control=this._injector.get(w),this._checkName(),this._registry.add(this._control,this)},e.prototype.ngOnDestroy=function(){this._registry.remove(this)},e.prototype.writeValue=function(e){this._state=e===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},e.prototype.registerOnChange=function(e){var t=this;this._fn=e,this.onChange=function(){e(t.value),t._registry.select(t)}},e.prototype.fireUncheck=function(e){this.writeValue(e)},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},e.prototype._throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n ')},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",String)],e.prototype,"name",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",String)],e.prototype,"formControlName",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object)],e.prototype,"value",void 0),(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.Renderer2,i.ElementRef,B,i.Injector])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.Renderer2),i["ɵɵdirectiveInject"](i.ElementRef),i["ɵɵdirectiveInject"](B),i["ɵɵdirectiveInject"](i.Injector))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("change",(function(){return t.onChange()}))("blur",(function(){return t.onTouched()}))},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[i["ɵɵProvidersFeature"]([q])]}),e}(),F={provide:h,useExisting:Object(i.forwardRef)((function(){return U})),multi:!0},U=function(){function e(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return e.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(e))},e.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.Renderer2,i.ElementRef])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.Renderer2),i["ɵɵdirectiveInject"](i.ElementRef))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("change",(function(e){return t.onChange(e.target.value)}))("input",(function(e){return t.onChange(e.target.value)}))("blur",(function(){return t.onTouched()}))},features:[i["ɵɵProvidersFeature"]([F])]}),e}(),V='\n

\n \n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });',H='\n
\n
\n \n
\n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });',K='\n
\n
\n
\n \n
\n
\n
\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl(\'SF\')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });',W='\n
\n
\n \n
\n
',G='\n
\n \n \n
\n ',Q=function(){function e(){}return e.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+V)},e.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n '+H+"\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n "+W)},e.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n "+V)},e.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+H)},e.arrayParentException=function(){throw new Error("formArrayName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+K)},e.disabledAttrWarning=function(){console.warn("\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n \n Example: \n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n ")},e.ngModelWarning=function(e){console.warn("\n It looks like you're using ngModel on the same form field as "+e+". \n Support for using the ngModel input property and ngModelChange event with \n reactive form directives has been deprecated in Angular v6 and will be removed \n in Angular v7.\n \n For more information on this, see our API docs here:\n https://angular.io/api/forms/"+("formControl"===e?"FormControlDirective":"FormControlName")+"#use-with-ngmodel\n ")},e}(),$={provide:h,useExisting:Object(i.forwardRef)((function(){return Z})),multi:!0};function Y(e,t){return null==e?""+t:(t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}var Z=function(){function e(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=i["ɵlooseIdentical"]}return Object.defineProperty(e.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){this.value=e;var t=this._getOptionId(e);null==t&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=Y(t,e);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},e.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){t.value=t._getOptionValue(n),e(t.value)}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._registerOption=function(){return(this._idCounter++).toString()},e.prototype._getOptionId=function(e){var t,n;try{for(var i=Object(r.h)(Array.from(this._optionMap.keys())),a=i.next();!a.done;a=i.next()){var o=a.value;if(this._compareWith(this._optionMap.get(o),e))return o}}catch(s){t={error:s}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}return null},e.prototype._getOptionValue=function(e){var t=function(e){return e.split(":")[0]}(e);return this._optionMap.has(t)?this._optionMap.get(t):e},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Function),Object(r.d)("design:paramtypes",[Function])],e.prototype,"compareWith",null),(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.Renderer2,i.ElementRef])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.Renderer2),i["ɵɵdirectiveInject"](i.ElementRef))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("change",(function(e){return t.onChange(e.target.value)}))("blur",(function(){return t.onTouched()}))},inputs:{compareWith:"compareWith"},features:[i["ɵɵProvidersFeature"]([$])]}),e}(),J=function(){function e(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(e.prototype,"ngValue",{set:function(e){null!=this._select&&(this._select._optionMap.set(this.id,e),this._setElementValue(Y(this.id,e)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{set:function(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),e.prototype._setElementValue=function(e){this._renderer.setProperty(this._element.nativeElement,"value",e)},e.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},Object(r.b)([Object(i.Input)("ngValue"),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"ngValue",null),Object(r.b)([Object(i.Input)("value"),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"value",null),(e=Object(r.b)([Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Host)()),Object(r.d)("design:paramtypes",[i.ElementRef,i.Renderer2,Z])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.ElementRef),i["ɵɵdirectiveInject"](i.Renderer2),i["ɵɵdirectiveInject"](Z,9))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e}(),X={provide:h,useExisting:Object(i.forwardRef)((function(){return te})),multi:!0};function ee(e,t){return null==e?""+t:("string"==typeof t&&(t="'"+t+"'"),t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}var te=function(){function e(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=i["ɵlooseIdentical"]}return Object.defineProperty(e.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){var t,n=this;if(this.value=e,Array.isArray(e)){var r=e.map((function(e){return n._getOptionId(e)}));t=function(e,t){e._setSelected(r.indexOf(t.toString())>-1)}}else t=function(e,t){e._setSelected(!1)};this._optionMap.forEach(t)},e.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){var r=[];if(n.hasOwnProperty("selectedOptions"))for(var i=n.selectedOptions,a=0;a1?"path: '"+e.path.join(" -> ")+"'":e.path[0]?"name: '"+e.path+"'":"unspecified name attribute",new Error(t+" "+n)}function ce(e){return null!=e?z.compose(e.map(N)):null}function ue(e){return null!=e?z.composeAsync(e.map(P)):null}function de(e,t){if(!e.hasOwnProperty("model"))return!1;var n=e.model;return!!n.isFirstChange()||!Object(i["ɵlooseIdentical"])(t,n.currentValue)}var he=[f,U,M,Z,te,L];function pe(e,t){e._syncPendingControls(),t.forEach((function(e){var t=e.control;"submit"===t.updateOn&&t._pendingChange&&(e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1)}))}function fe(e,t){if(!t)return null;Array.isArray(t)||le(e,"Value accessor was not provided as an array for form control with");var n=void 0,r=void 0,i=void 0;return t.forEach((function(t){var a;t.constructor===y?n=t:(a=t,he.some((function(e){return a.constructor===e}))?(r&&le(e,"More than one built-in value accessor matches form control with"),r=t):(i&&le(e,"More than one custom value accessor matches form control with"),i=t))})),i||(r||(n||(le(e,"No valid value accessor for form control with"),null)))}function me(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}function ge(e,t,n,r){Object(i.isDevMode)()&&"never"!==r&&((null!==r&&"once"!==r||t._ngModelWarningSentOnce)&&("always"!==r||n._ngModelWarningSent)||(Q.ngModelWarning(e),t._ngModelWarningSentOnce=!0,n._ngModelWarningSent=!0))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ye(e){var t=ve(e)?e.validators:e;return Array.isArray(t)?ce(t):t||null}function be(e,t){var n=ve(t)?t.asyncValidators:e;return Array.isArray(n)?ue(n):n||null}function ve(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}var ke=function(){function e(e,t){this.validator=e,this.asyncValidator=t,this._onCollectionChange=function(){},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}return Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return"VALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"invalid",{get:function(){return"INVALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pending",{get:function(){return"PENDING"==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return"DISABLED"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"enabled",{get:function(){return"DISABLED"!==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"untouched",{get:function(){return!this.touched},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"updateOn",{get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"},enumerable:!0,configurable:!0}),e.prototype.setValidators=function(e){this.validator=ye(e)},e.prototype.setAsyncValidators=function(e){this.asyncValidator=be(e)},e.prototype.clearValidators=function(){this.validator=null},e.prototype.clearAsyncValidators=function(){this.asyncValidator=null},e.prototype.markAsTouched=function(e){void 0===e&&(e={}),this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)},e.prototype.markAllAsTouched=function(){this.markAsTouched({onlySelf:!0}),this._forEachChild((function(e){return e.markAllAsTouched()}))},e.prototype.markAsUntouched=function(e){void 0===e&&(e={}),this.touched=!1,this._pendingTouched=!1,this._forEachChild((function(e){e.markAsUntouched({onlySelf:!0})})),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)},e.prototype.markAsDirty=function(e){void 0===e&&(e={}),this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)},e.prototype.markAsPristine=function(e){void 0===e&&(e={}),this.pristine=!0,this._pendingDirty=!1,this._forEachChild((function(e){e.markAsPristine({onlySelf:!0})})),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)},e.prototype.markAsPending=function(e){void 0===e&&(e={}),this.status="PENDING",!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)},e.prototype.disable=function(e){void 0===e&&(e={});var t=this._parentMarkedDirty(e.onlySelf);this.status="DISABLED",this.errors=null,this._forEachChild((function(t){t.disable(Object(r.a)(Object(r.a)({},e),{onlySelf:!0}))})),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object(r.a)(Object(r.a)({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach((function(e){return e(!0)}))},e.prototype.enable=function(e){void 0===e&&(e={});var t=this._parentMarkedDirty(e.onlySelf);this.status="VALID",this._forEachChild((function(t){t.enable(Object(r.a)(Object(r.a)({},e),{onlySelf:!0}))})),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Object(r.a)(Object(r.a)({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach((function(e){return e(!1)}))},e.prototype._updateAncestors=function(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())},e.prototype.setParent=function(e){this._parent=e},e.prototype.updateValueAndValidity=function(e){void 0===e&&(e={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)},e.prototype._updateTreeValidity=function(e){void 0===e&&(e={emitEvent:!0}),this._forEachChild((function(t){return t._updateTreeValidity(e)})),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})},e.prototype._setInitialStatus=function(){this.status=this._allControlsDisabled()?"DISABLED":"VALID"},e.prototype._runValidator=function(){return this.validator?this.validator(this):null},e.prototype._runAsyncValidator=function(e){var t=this;if(this.asyncValidator){this.status="PENDING";var n=D(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe((function(n){return t.setErrors(n,{emitEvent:e})}))}},e.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},e.prototype.setErrors=function(e,t){void 0===t&&(t={}),this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)},e.prototype.get=function(e){return function(e,t,n){if(null==t)return null;if(Array.isArray(t)||(t=t.split(n)),Array.isArray(t)&&0===t.length)return null;var r=e;return t.forEach((function(e){r=r instanceof _e?r.controls.hasOwnProperty(e)?r.controls[e]:null:r instanceof je&&r.at(e)||null})),r}(this,e,".")},e.prototype.getError=function(e,t){var n=t?this.get(t):this;return n&&n.errors?n.errors[e]:null},e.prototype.hasError=function(e,t){return!!this.getError(e,t)},Object.defineProperty(e.prototype,"root",{get:function(){for(var e=this;e._parent;)e=e._parent;return e},enumerable:!0,configurable:!0}),e.prototype._updateControlsErrors=function(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)},e.prototype._initObservables=function(){this.valueChanges=new i.EventEmitter,this.statusChanges=new i.EventEmitter},e.prototype._calculateStatus=function(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"},e.prototype._anyControlsHaveStatus=function(e){return this._anyControls((function(t){return t.status===e}))},e.prototype._anyControlsDirty=function(){return this._anyControls((function(e){return e.dirty}))},e.prototype._anyControlsTouched=function(){return this._anyControls((function(e){return e.touched}))},e.prototype._updatePristine=function(e){void 0===e&&(e={}),this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)},e.prototype._updateTouched=function(e){void 0===e&&(e={}),this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)},e.prototype._isBoxedValue=function(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e},e.prototype._registerOnCollectionChange=function(e){this._onCollectionChange=e},e.prototype._setUpdateStrategy=function(e){ve(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)},e.prototype._parentMarkedDirty=function(e){var t=this._parent&&this._parent.dirty;return!e&&t&&!this._parent._anyControlsDirty()},e}(),we=function(e){function t(t,n,r){void 0===t&&(t=null);var i=e.call(this,ye(n),be(r,n))||this;return i._onChange=[],i._applyFormState(t),i._setUpdateStrategy(n),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i._initObservables(),i}return Object(r.c)(t,e),t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this.value=this._pendingValue=e,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach((function(e){return e(n.value,!1!==t.emitViewToModelChange)})),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){void 0===t&&(t={}),this.setValue(e,t)},t.prototype.reset=function(e,t){void 0===e&&(e=null),void 0===t&&(t={}),this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1},t.prototype._updateValue=function(){},t.prototype._anyControls=function(e){return!1},t.prototype._allControlsDisabled=function(){return this.disabled},t.prototype.registerOnChange=function(e){this._onChange.push(e)},t.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},t.prototype.registerOnDisabledChange=function(e){this._onDisabledChange.push(e)},t.prototype._forEachChild=function(e){},t.prototype._syncPendingControls=function(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange))&&(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0)},t.prototype._applyFormState=function(e){this._isBoxedValue(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e},t}(ke),_e=function(e){function t(t,n,r){var i=e.call(this,ye(n),be(r,n))||this;return i.controls=t,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return Object(r.c)(t,e),t.prototype.registerControl=function(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)},t.prototype.addControl=function(e,t){this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.removeControl=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),delete this.controls[e],this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.contains=function(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled},t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),Object.keys(e).forEach((function(r){n._throwIfControlMissing(r),n.controls[r].setValue(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),Object.keys(e).forEach((function(r){n.controls[r]&&n.controls[r].patchValue(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this.updateValueAndValidity(t)},t.prototype.reset=function(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this._forEachChild((function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)},t.prototype.getRawValue=function(){return this._reduceChildren({},(function(e,t,n){return e[n]=t instanceof we?t.value:t.getRawValue(),e}))},t.prototype._syncPendingControls=function(){var e=this._reduceChildren(!1,(function(e,t){return!!t._syncPendingControls()||e}));return e&&this.updateValueAndValidity({onlySelf:!0}),e},t.prototype._throwIfControlMissing=function(e){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[e])throw new Error("Cannot find form control with name: "+e+".")},t.prototype._forEachChild=function(e){var t=this;Object.keys(this.controls).forEach((function(n){return e(t.controls[n],n)}))},t.prototype._setUpControls=function(){var e=this;this._forEachChild((function(t){t.setParent(e),t._registerOnCollectionChange(e._onCollectionChange)}))},t.prototype._updateValue=function(){this.value=this._reduceValue()},t.prototype._anyControls=function(e){var t=this,n=!1;return this._forEachChild((function(r,i){n=n||t.contains(i)&&e(r)})),n},t.prototype._reduceValue=function(){var e=this;return this._reduceChildren({},(function(t,n,r){return(n.enabled||e.disabled)&&(t[r]=n.value),t}))},t.prototype._reduceChildren=function(e,t){var n=e;return this._forEachChild((function(e,r){n=t(n,e,r)})),n},t.prototype._allControlsDisabled=function(){var e,t;try{for(var n=Object(r.h)(Object.keys(this.controls)),i=n.next();!i.done;i=n.next()){var a=i.value;if(this.controls[a].enabled)return!1}}catch(o){e={error:o}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return Object.keys(this.controls).length>0||this.disabled},t.prototype._checkAllValuesPresent=function(e){this._forEachChild((function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")}))},t}(ke),je=function(e){function t(t,n,r){var i=e.call(this,ye(n),be(r,n))||this;return i.controls=t,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return Object(r.c)(t,e),t.prototype.at=function(e){return this.controls[e]},t.prototype.push=function(e){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.insert=function(e,t){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity()},t.prototype.removeAt=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),this.controls.splice(e,1),this.updateValueAndValidity()},t.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(t.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),e.forEach((function(e,r){n._throwIfControlMissing(r),n.at(r).setValue(e,{onlySelf:!0,emitEvent:t.emitEvent})})),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),e.forEach((function(e,r){n.at(r)&&n.at(r).patchValue(e,{onlySelf:!0,emitEvent:t.emitEvent})})),this.updateValueAndValidity(t)},t.prototype.reset=function(e,t){void 0===e&&(e=[]),void 0===t&&(t={}),this._forEachChild((function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)},t.prototype.getRawValue=function(){return this.controls.map((function(e){return e instanceof we?e.value:e.getRawValue()}))},t.prototype.clear=function(){this.controls.length<1||(this._forEachChild((function(e){return e._registerOnCollectionChange((function(){}))})),this.controls.splice(0),this.updateValueAndValidity())},t.prototype._syncPendingControls=function(){var e=this.controls.reduce((function(e,t){return!!t._syncPendingControls()||e}),!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e},t.prototype._throwIfControlMissing=function(e){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(e))throw new Error("Cannot find form control at index "+e)},t.prototype._forEachChild=function(e){this.controls.forEach((function(t,n){e(t,n)}))},t.prototype._updateValue=function(){var e=this;this.value=this.controls.filter((function(t){return t.enabled||e.disabled})).map((function(e){return e.value}))},t.prototype._anyControls=function(e){return this.controls.some((function(t){return t.enabled&&e(t)}))},t.prototype._setUpControls=function(){var e=this;this._forEachChild((function(t){return e._registerControl(t)}))},t.prototype._checkAllValuesPresent=function(e){this._forEachChild((function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control at index: "+n+".")}))},t.prototype._allControlsDisabled=function(){var e,t;try{for(var n=Object(r.h)(this.controls),i=n.next();!i.done;i=n.next()){if(i.value.enabled)return!1}}catch(a){e={error:a}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return this.controls.length>0||this.disabled},t.prototype._registerControl=function(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)},t}(ke),Ce={provide:v,useExisting:Object(i.forwardRef)((function(){return Ee}))},xe=Promise.resolve(null),Ee=function(e){function t(t,n){var r=e.call(this)||this;return r.submitted=!1,r._directives=[],r.ngSubmit=new i.EventEmitter,r.form=new _e({},ce(t),ue(n)),r}return Object(r.c)(t,e),t.prototype.ngAfterViewInit=function(){this._setUpdateStrategy()},Object.defineProperty(t.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),t.prototype.addControl=function(e){var t=this;xe.then((function(){var n=t._findContainer(e.path);e.control=n.registerControl(e.name,e.control),ie(e.control,e),e.control.updateValueAndValidity({emitEvent:!1}),t._directives.push(e)}))},t.prototype.getControl=function(e){return this.form.get(e.path)},t.prototype.removeControl=function(e){var t=this;xe.then((function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name),me(t._directives,e)}))},t.prototype.addFormGroup=function(e){var t=this;xe.then((function(){var n=t._findContainer(e.path),r=new _e({});oe(r,e),n.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})}))},t.prototype.removeFormGroup=function(e){var t=this;xe.then((function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)}))},t.prototype.getFormGroup=function(e){return this.form.get(e.path)},t.prototype.updateModel=function(e,t){var n=this;xe.then((function(){n.form.get(e.path).setValue(t)}))},t.prototype.setValue=function(e){this.control.setValue(e)},t.prototype.onSubmit=function(e){return this.submitted=!0,pe(this.form,this._directives),this.ngSubmit.emit(e),!1},t.prototype.onReset=function(){this.resetForm()},t.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this.submitted=!1},t.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)},t.prototype._findContainer=function(e){return e.pop(),e.length?this.form.get(e):this.form},Object(r.b)([Object(i.Input)("ngFormOptions"),Object(r.d)("design:type",Object)],t.prototype,"options",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Self)()),Object(r.e)(0,Object(i.Inject)(S)),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("submit",(function(e){return t.onSubmit(e)}))("reset",(function(){return t.onReset()}))},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[i["ɵɵProvidersFeature"]([Ce]),i["ɵɵInheritDefinitionFeature"]]}),t}(v),Se=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}Object(r.c)(t,e),t.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(t.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return re(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._asyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){},t.ɵfac=function(e){return n(e||t)},t.ɵdir=i["ɵɵdefineDirective"]({type:t,features:[i["ɵɵInheritDefinitionFeature"]]});var n=i["ɵɵgetInheritedFactory"](t);return t}(v),Te=function(){function e(){}return e.modelParentException=function(){throw new Error('\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup\'s partner directive "formControlName" instead. Example:\n\n '+V+"\n\n Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n Example:\n\n "+G)},e.formGroupNameException=function(){throw new Error("\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n "+H+"\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n "+W)},e.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as \'standalone\' in ngModelOptions.\n\n Example 1: \n Example 2: ')},e.modelGroupParentException=function(){throw new Error("\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n "+H+"\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n "+W)},e}(),Oe={provide:v,useExisting:Object(i.forwardRef)((function(){return ze}))},ze=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}var n;return Object(r.c)(t,e),n=t,t.prototype._checkParentType=function(){this._parent instanceof n||this._parent instanceof Ee||Te.modelGroupParentException()},Object(r.b)([Object(i.Input)("ngModelGroup"),Object(r.d)("design:type",String)],t.prototype,"name",void 0),(t=n=Object(r.b)([Object(r.e)(0,Object(i.Host)()),Object(r.e)(0,Object(i.SkipSelf)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[v,Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,5),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","ngModelGroup",""]],inputs:{name:["ngModelGroup","name"]},exportAs:["ngModelGroup"],features:[i["ɵɵProvidersFeature"]([Oe]),i["ɵɵInheritDefinitionFeature"]]}),t}(Se),Ie={provide:w,useExisting:Object(i.forwardRef)((function(){return Ae}))},De=Promise.resolve(null),Ae=function(e){function t(t,n,r,a){var o=e.call(this)||this;return o.control=new we,o._registered=!1,o.update=new i.EventEmitter,o._parent=t,o._rawValidators=n||[],o._rawAsyncValidators=r||[],o.valueAccessor=fe(o,a),o}return Object(r.c)(t,e),t.prototype.ngOnChanges=function(e){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in e&&this._updateDisabled(e),de(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(t.prototype,"path",{get:function(){return this._parent?re(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},t.prototype._setUpControl=function(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},t.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)},t.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},t.prototype._setUpStandalone=function(){ie(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})},t.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},t.prototype._checkParentType=function(){!(this._parent instanceof ze)&&this._parent instanceof Se?Te.formGroupNameException():this._parent instanceof ze||this._parent instanceof Ee||Te.modelParentException()},t.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||Te.missingNameException()},t.prototype._updateValue=function(e){var t=this;De.then((function(){t.control.setValue(e,{emitViewToModelChange:!1})}))},t.prototype._updateDisabled=function(e){var t=this,n=e.isDisabled.currentValue,r=""===n||n&&"false"!==n;De.then((function(){r&&!t.control.disabled?t.control.disable():!r&&t.control.disabled&&t.control.enable()}))},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",String)],t.prototype,"name",void 0),Object(r.b)([Object(i.Input)("disabled"),Object(r.d)("design:type",Boolean)],t.prototype,"isDisabled",void 0),Object(r.b)([Object(i.Input)("ngModel"),Object(r.d)("design:type",Object)],t.prototype,"model",void 0),Object(r.b)([Object(i.Input)("ngModelOptions"),Object(r.d)("design:type",Object)],t.prototype,"options",void 0),Object(r.b)([Object(i.Output)("ngModelChange"),Object(r.d)("design:type",Object)],t.prototype,"update",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Host)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.e)(3,Object(i.Optional)()),Object(r.e)(3,Object(i.Self)()),Object(r.e)(3,Object(i.Inject)(h)),Object(r.d)("design:paramtypes",[v,Array,Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,9),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10),i["ɵɵdirectiveInject"](h,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[i["ɵɵProvidersFeature"]([Ie]),i["ɵɵInheritDefinitionFeature"],i["ɵɵNgOnChangesFeature"]]}),t}(w),Ne=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),e}(),Pe=new i.InjectionToken("NgModelWithFormControlWarning"),Re={provide:w,useExisting:Object(i.forwardRef)((function(){return Me}))},Me=function(e){function t(t,n,r,a){var o=e.call(this)||this;return o._ngModelWarningConfig=a,o.update=new i.EventEmitter,o._ngModelWarningSent=!1,o._rawValidators=t||[],o._rawAsyncValidators=n||[],o.valueAccessor=fe(o,r),o}var n;return Object(r.c)(t,e),n=t,Object.defineProperty(t.prototype,"isDisabled",{set:function(e){Q.disabledAttrWarning()},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(e){this._isControlChanged(e)&&(ie(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),de(e,this.viewModel)&&(ge("formControl",n,this,this._ngModelWarningConfig),this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},t.prototype._isControlChanged=function(e){return e.hasOwnProperty("form")},t._ngModelWarningSentOnce=!1,Object(r.b)([Object(i.Input)("formControl"),Object(r.d)("design:type",we)],t.prototype,"form",void 0),Object(r.b)([Object(i.Input)("disabled"),Object(r.d)("design:type",Boolean),Object(r.d)("design:paramtypes",[Boolean])],t.prototype,"isDisabled",null),Object(r.b)([Object(i.Input)("ngModel"),Object(r.d)("design:type",Object)],t.prototype,"model",void 0),Object(r.b)([Object(i.Output)("ngModelChange"),Object(r.d)("design:type",Object)],t.prototype,"update",void 0),(t=n=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Self)()),Object(r.e)(0,Object(i.Inject)(S)),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(T)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(h)),Object(r.e)(3,Object(i.Optional)()),Object(r.e)(3,Object(i.Inject)(Pe)),Object(r.d)("design:paramtypes",[Array,Array,Array,Object])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10),i["ɵɵdirectiveInject"](h,10),i["ɵɵdirectiveInject"](Pe,8))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formControl",""]],inputs:{isDisabled:["disabled","isDisabled"],form:["formControl","form"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[i["ɵɵProvidersFeature"]([Re]),i["ɵɵInheritDefinitionFeature"],i["ɵɵNgOnChangesFeature"]]}),t}(w),qe={provide:v,useExisting:Object(i.forwardRef)((function(){return Be}))},Be=function(e){function t(t,n){var r=e.call(this)||this;return r._validators=t,r._asyncValidators=n,r.submitted=!1,r.directives=[],r.form=null,r.ngSubmit=new i.EventEmitter,r}return Object(r.c)(t,e),t.prototype.ngOnChanges=function(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(t.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),t.prototype.addControl=function(e){var t=this.form.get(e.path);return ie(t,e),t.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),t},t.prototype.getControl=function(e){return this.form.get(e.path)},t.prototype.removeControl=function(e){me(this.directives,e)},t.prototype.addFormGroup=function(e){var t=this.form.get(e.path);oe(t,e),t.updateValueAndValidity({emitEvent:!1})},t.prototype.removeFormGroup=function(e){},t.prototype.getFormGroup=function(e){return this.form.get(e.path)},t.prototype.addFormArray=function(e){var t=this.form.get(e.path);oe(t,e),t.updateValueAndValidity({emitEvent:!1})},t.prototype.removeFormArray=function(e){},t.prototype.getFormArray=function(e){return this.form.get(e.path)},t.prototype.updateModel=function(e,t){this.form.get(e.path).setValue(t)},t.prototype.onSubmit=function(e){return this.submitted=!0,pe(this.form,this.directives),this.ngSubmit.emit(e),!1},t.prototype.onReset=function(){this.resetForm()},t.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this.submitted=!1},t.prototype._updateDomValue=function(){var e=this;this.directives.forEach((function(t){var n=e.form.get(t.path);t.control!==n&&(!function(e,t){t.valueAccessor.registerOnChange((function(){return se(t)})),t.valueAccessor.registerOnTouched((function(){return se(t)})),t._rawValidators.forEach((function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)})),t._rawAsyncValidators.forEach((function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)})),e&&e._clearChangeFns()}(t.control,t),n&&ie(n,t),t.control=n)})),this.form._updateTreeValidity({emitEvent:!1})},t.prototype._updateRegistrations=function(){var e=this;this.form._registerOnCollectionChange((function(){return e._updateDomValue()})),this._oldForm&&this._oldForm._registerOnCollectionChange((function(){})),this._oldForm=this.form},t.prototype._updateValidators=function(){var e=ce(this._validators);this.form.validator=z.compose([this.form.validator,e]);var t=ue(this._asyncValidators);this.form.asyncValidator=z.composeAsync([this.form.asyncValidator,t])},t.prototype._checkFormPresent=function(){this.form||Q.missingFormException()},Object(r.b)([Object(i.Input)("formGroup"),Object(r.d)("design:type",_e)],t.prototype,"form",void 0),Object(r.b)([Object(i.Output)(),Object(r.d)("design:type",Object)],t.prototype,"ngSubmit",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Self)()),Object(r.e)(0,Object(i.Inject)(S)),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formGroup",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("submit",(function(e){return t.onSubmit(e)}))("reset",(function(){return t.onReset()}))},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[i["ɵɵProvidersFeature"]([qe]),i["ɵɵInheritDefinitionFeature"],i["ɵɵNgOnChangesFeature"]]}),t}(v),Le={provide:v,useExisting:Object(i.forwardRef)((function(){return Fe}))},Fe=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}return Object(r.c)(t,e),t.prototype._checkParentType=function(){He(this._parent)&&Q.groupParentException()},Object(r.b)([Object(i.Input)("formGroupName"),Object(r.d)("design:type",Object)],t.prototype,"name",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Host)()),Object(r.e)(0,Object(i.SkipSelf)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[v,Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,13),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[i["ɵɵProvidersFeature"]([Le]),i["ɵɵInheritDefinitionFeature"]]}),t}(Se),Ue={provide:v,useExisting:Object(i.forwardRef)((function(){return Ve}))},Ve=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}return Object(r.c)(t,e),t.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(t.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return re(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._asyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){He(this._parent)&&Q.arrayParentException()},Object(r.b)([Object(i.Input)("formArrayName"),Object(r.d)("design:type",Object)],t.prototype,"name",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Host)()),Object(r.e)(0,Object(i.SkipSelf)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[v,Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,13),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[i["ɵɵProvidersFeature"]([Ue]),i["ɵɵInheritDefinitionFeature"]]}),t}(v);function He(e){return!(e instanceof Fe||e instanceof Be||e instanceof Ve)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ke={provide:w,useExisting:Object(i.forwardRef)((function(){return We}))},We=function(e){function t(t,n,r,a,o){var s=e.call(this)||this;return s._ngModelWarningConfig=o,s._added=!1,s.update=new i.EventEmitter,s._ngModelWarningSent=!1,s._parent=t,s._rawValidators=n||[],s._rawAsyncValidators=r||[],s.valueAccessor=fe(s,a),s}var n;return Object(r.c)(t,e),n=t,Object.defineProperty(t.prototype,"isDisabled",{set:function(e){Q.disabledAttrWarning()},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(e){this._added||this._setUpControl(),de(e,this.viewModel)&&(ge("formControlName",n,this,this._ngModelWarningConfig),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},Object.defineProperty(t.prototype,"path",{get:function(){return re(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){!(this._parent instanceof Fe)&&this._parent instanceof Se?Q.ngModelGroupException():this._parent instanceof Fe||this._parent instanceof Be||this._parent instanceof Ve||Q.controlParentException()},t.prototype._setUpControl=function(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},t._ngModelWarningSentOnce=!1,Object(r.b)([Object(i.Input)("formControlName"),Object(r.d)("design:type",Object)],t.prototype,"name",void 0),Object(r.b)([Object(i.Input)("disabled"),Object(r.d)("design:type",Boolean),Object(r.d)("design:paramtypes",[Boolean])],t.prototype,"isDisabled",null),Object(r.b)([Object(i.Input)("ngModel"),Object(r.d)("design:type",Object)],t.prototype,"model",void 0),Object(r.b)([Object(i.Output)("ngModelChange"),Object(r.d)("design:type",Object)],t.prototype,"update",void 0),(t=n=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Host)()),Object(r.e)(0,Object(i.SkipSelf)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.e)(3,Object(i.Optional)()),Object(r.e)(3,Object(i.Self)()),Object(r.e)(3,Object(i.Inject)(h)),Object(r.e)(4,Object(i.Optional)()),Object(r.e)(4,Object(i.Inject)(Pe)),Object(r.d)("design:paramtypes",[v,Array,Array,Array,Object])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,13),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10),i["ɵɵdirectiveInject"](h,10),i["ɵɵdirectiveInject"](Pe,8))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formControlName",""]],inputs:{isDisabled:["disabled","isDisabled"],name:["formControlName","name"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[i["ɵɵProvidersFeature"]([Ke]),i["ɵɵInheritDefinitionFeature"],i["ɵɵNgOnChangesFeature"]]}),t}(w),Ge={provide:S,useExisting:Object(i.forwardRef)((function(){return $e})),multi:!0},Qe={provide:S,useExisting:Object(i.forwardRef)((function(){return Ye})),multi:!0},$e=function(){function e(){}return Object.defineProperty(e.prototype,"required",{get:function(){return this._required},set:function(e){this._required=null!=e&&!1!==e&&""+e!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),e.prototype.validate=function(e){return this.required?z.required(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"required",null),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("required",t.required?"":null)},inputs:{required:"required"},features:[i["ɵɵProvidersFeature"]([Ge])]}),e}(),Ye=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}Object(r.c)(t,e),t.prototype.validate=function(e){return this.required?z.requiredTrue(e):null},t.ɵfac=function(e){return n(e||t)},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["input","type","checkbox","required","","formControlName",""],["input","type","checkbox","required","","formControl",""],["input","type","checkbox","required","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("required",t.required?"":null)},features:[i["ɵɵProvidersFeature"]([Qe]),i["ɵɵInheritDefinitionFeature"]]});var n=i["ɵɵgetInheritedFactory"](t);return t}($e),Ze={provide:S,useExisting:Object(i.forwardRef)((function(){return Je})),multi:!0},Je=function(){function e(){}return Object.defineProperty(e.prototype,"email",{set:function(e){this._enabled=""===e||!0===e||"true"===e,this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),e.prototype.validate=function(e){return this._enabled?z.email(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"email",null),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[i["ɵɵProvidersFeature"]([Ze])]}),e}(),Xe={provide:S,useExisting:Object(i.forwardRef)((function(){return et})),multi:!0},et=function(){function e(){}return e.prototype.ngOnChanges=function(e){"minlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return null==this.minlength?null:this._validator(e)},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=z.minLength("number"==typeof this.minlength?this.minlength:parseInt(this.minlength,10))},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object)],e.prototype,"minlength",void 0),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","minlength","","formControlName",""],["","minlength","","formControl",""],["","minlength","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("minlength",t.minlength?t.minlength:null)},inputs:{minlength:"minlength"},features:[i["ɵɵProvidersFeature"]([Xe]),i["ɵɵNgOnChangesFeature"]]}),e}(),tt={provide:S,useExisting:Object(i.forwardRef)((function(){return nt})),multi:!0},nt=function(){function e(){}return e.prototype.ngOnChanges=function(e){"maxlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return null!=this.maxlength?this._validator(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=z.maxLength("number"==typeof this.maxlength?this.maxlength:parseInt(this.maxlength,10))},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object)],e.prototype,"maxlength",void 0),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("maxlength",t.maxlength?t.maxlength:null)},inputs:{maxlength:"maxlength"},features:[i["ɵɵProvidersFeature"]([tt]),i["ɵɵNgOnChangesFeature"]]}),e}(),rt={provide:S,useExisting:Object(i.forwardRef)((function(){return it})),multi:!0},it=function(){function e(){}return e.prototype.ngOnChanges=function(e){"pattern"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return this._validator(e)},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=z.pattern(this.pattern)},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object)],e.prototype,"pattern",void 0),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("pattern",t.pattern?t.pattern:null)},inputs:{pattern:"pattern"},features:[i["ɵɵProvidersFeature"]([rt]),i["ɵɵNgOnChangesFeature"]]}),e}(),at=[Ne,J,ne,y,M,U,f,Z,te,L,C,x,$e,et,nt,it,Ye,Je],ot=[Ae,ze,Ee],st=[Me,Be,We,Fe,Ve],lt=function(){function e(){}return e.ɵmod=i["ɵɵdefineNgModule"]({type:e}),e.ɵinj=i["ɵɵdefineInjector"]({factory:function(t){return new(t||e)}}),("undefined"==typeof ngJitMode||ngJitMode)&&i["ɵɵsetNgModuleScope"](e,{declarations:[Ne,J,ne,y,M,U,f,Z,te,L,C,x,$e,et,nt,it,Ye,Je],exports:[Ne,J,ne,y,M,U,f,Z,te,L,C,x,$e,et,nt,it,Ye,Je]}),e}();var ct=function(){function e(){}return e.prototype.group=function(e,t){void 0===t&&(t=null);var n=this._reduceControls(e),r=null,i=null,a=void 0;return null!=t&&(! +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function(e){return void 0!==e.asyncValidators||void 0!==e.validators||void 0!==e.updateOn}(t)?(r=null!=t.validator?t.validator:null,i=null!=t.asyncValidator?t.asyncValidator:null):(r=null!=t.validators?t.validators:null,i=null!=t.asyncValidators?t.asyncValidators:null,a=null!=t.updateOn?t.updateOn:void 0)),new _e(n,{asyncValidators:i,updateOn:a,validators:r})},e.prototype.control=function(e,t,n){return new we(e,t,n)},e.prototype.array=function(e,t,n){var r=this,i=e.map((function(e){return r._createControl(e)}));return new je(i,t,n)},e.prototype._reduceControls=function(e){var t=this,n={};return Object.keys(e).forEach((function(r){n[r]=t._createControl(e[r])})),n},e.prototype._createControl=function(e){if(e instanceof we||e instanceof _e||e instanceof je)return e;if(Array.isArray(e)){var t=e[0],n=e.length>1?e[1]:null,r=e.length>2?e[2]:null;return this.control(t,n,r)}return this.control(e)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=i["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}(),ut=new i.Version("9.1.12"),dt=function(){function e(){}return e.ɵmod=i["ɵɵdefineNgModule"]({type:e}),e.ɵinj=i["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:[B],imports:[lt]}),("undefined"==typeof ngJitMode||ngJitMode)&&i["ɵɵsetNgModuleScope"](e,{declarations:[Ae,ze,Ee],exports:[lt,Ae,ze,Ee]}),e}(),ht=function(){function e(){}var t;return t=e,e.withConfig=function(e){return{ngModule:t,providers:[{provide:Pe,useValue:e.warnOnNgModelWithFormControl}]}},e.ɵmod=i["ɵɵdefineNgModule"]({type:e}),e.ɵinj=i["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:[ct,B],imports:[lt]}),("undefined"==typeof ngJitMode||ngJitMode)&&i["ɵɵsetNgModuleScope"](e,{declarations:[Me,Be,We,Fe,Ve],exports:[lt,Me,Be,We,Fe,Ve]}),e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */},,function(e,t,n){var r=n(22);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},,,,,function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},,,,,function(e,t,n){var r=n(131)("wks"),i=n(89),a=n(20).Symbol,o="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=o&&a[e]||(o?a:i)("Symbol."+e))}).store=r},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r=n(1),i=n(146),a=n(219),o=n(54),s=n(197),l=n(108),c=n(149),u=function(e){function t(n,r,i){var o=e.call(this)||this;switch(o.syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a.a;break;case 1:if(!n){o.destination=a.a;break}if("object"==typeof n){n instanceof t?(o.syncErrorThrowable=n.syncErrorThrowable,o.destination=n,n.add(o)):(o.syncErrorThrowable=!0,o.destination=new d(o,n));break}default:o.syncErrorThrowable=!0,o.destination=new d(o,n,r,i)}return o}return r.c(t,e),t.prototype[s.a]=function(){return this},t.create=function(e,n,r){var i=new t(e,n,r);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(o.a),d=function(e){function t(t,n,r,o){var s,l=e.call(this)||this;l._parentSubscriber=t;var c=l;return Object(i.a)(n)?s=n:n&&(s=n.next,r=n.error,o=n.complete,n!==a.a&&(c=Object.create(n),Object(i.a)(c.unsubscribe)&&l.add(c.unsubscribe.bind(c)),c.unsubscribe=l.unsubscribe.bind(l))),l._context=c,l._next=s,l._error=r,l._complete=o,l}return r.c(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;l.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,n=l.a.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):Object(c.a)(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;Object(c.a)(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};l.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),l.a.useDeprecatedSynchronousErrorHandling)throw n;Object(c.a)(n)}},t.prototype.__tryOrSetError=function(e,t,n){if(!l.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(r){return l.a.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(Object(c.a)(r),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(u)},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"c",(function(){return l})),n.d(t,"f",(function(){return c})),n.d(t,"g",(function(){return u})),n.d(t,"h",(function(){return d})),n.d(t,"e",(function(){return h})),n.d(t,"d",(function(){return p})),n.d(t,"b",(function(){return f}));var r=n(11),i=n(161),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){e.done?i(e.value):new n((function(t){t(e.value)})).then(o,s)}l((r=r.apply(e,t||[])).next())}))},o=function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),f=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}()},,function(e,t,n){var r=n(63),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r=n(28);var i=n(197),a=n(219);var o=n(129),s=n(268),l=n(108);n.d(t,"a",(function(){return c}));var c=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var o=this.operator,s=function(e,t,n){if(e){if(e instanceof r.a)return e;if(e[i.a])return e[i.a]()}return e||t||n?new r.a(e,t,n):new r.a(a.a)}(e,t,n);if(o?s.add(o.call(s,this.source)):s.add(this.source||l.a.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),l.a.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){l.a.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),!function(e){for(;e;){var t=e,n=t.closed,i=t.destination,a=t.isStopped;if(n||a)return!1;e=i&&i instanceof r.a?i:null}return!0}(e)?console.warn(t):e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=u(t))((function(t,r){var i;i=n.subscribe((function(t){try{e(t)}catch(n){r(n),i&&i.unsubscribe()}}),r,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[o.a]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t15?(i=Date.now(),s(e)):(n.push(e),1===n.length&&o.setAttribute("a",a=!a))}}l.nextTick=l.setImmediate}(),l.isNodejs=void 0!==t&&t.versions&&t.versions.node,l.globalScope=l.isNodejs?i:"undefined"==typeof self?window:self,l.isArray=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},l.isArrayBuffer=function(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer},l.isArrayBufferView=function(e){return e&&l.isArrayBuffer(e.buffer)&&void 0!==e.byteLength},l.ByteBuffer=u,l.ByteStringBuffer=u;l.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>4096&&(this.data.substr(0,1),this._constructedStringLength=0)},l.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},l.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},l.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))},l.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var n=this.data;t>0;)1&t&&(n+=e),(t>>>=1)>0&&(e+=e);return this.data=n,this._optimizeConstructedString(t),this},l.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this},l.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(l.encodeUtf8(e))},l.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},l.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},l.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},l.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255))},l.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))},l.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))},l.ByteStringBuffer.prototype.putInt=function(e,t){c(t);var n="";do{t-=8,n+=String.fromCharCode(e>>t&255)}while(t>0);return this.putBytes(n)},l.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<0);return t},l.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),n=2<=n&&(t-=n<<1),t},l.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},l.ByteStringBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},l.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)},l.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this},l.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},l.ByteStringBuffer.prototype.copy=function(){var e=l.createBuffer(this.data);return e.read=this.read,e},l.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},l.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},l.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this},l.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t=e)return this;t=Math.max(t||this.growSize,e);var n=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),r=new Uint8Array(this.length()+t);return r.set(n),this.data=new DataView(r.buffer),this},l.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this},l.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var n=0;n>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this},l.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this},l.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this},l.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this},l.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this},l.DataBuffer.prototype.putInt=function(e,t){c(t),this.accommodate(t/8);do{t-=8,this.data.setInt8(this.write++,e>>t&255)}while(t>0);return this},l.DataBuffer.prototype.putSignedInt=function(e,t){return c(t),this.accommodate(t/8),e<0&&(e+=2<0);return t},l.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),n=2<=n&&(t-=n<<1),t},l.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},l.DataBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},l.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)},l.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this},l.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},l.DataBuffer.prototype.copy=function(){return new l.DataBuffer(this)},l.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this},l.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},l.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this},l.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t0;)1&t&&(n+=e),(t>>>=1)>0&&(e+=e);return n},l.xorBytes=function(e,t,n){for(var r="",i="",a="",o=0,s=0;n>0;--n,++o)i=e.charCodeAt(o)^t.charCodeAt(o),s>=10&&(r+=a,a="",s=0),a+=String.fromCharCode(i),++s;return r+=a},l.hexToBytes=function(e){var t="",n=0;for(!0&e.length&&(n=1,t+=String.fromCharCode(parseInt(e[0],16)));n>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)};var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],p="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";l.encode64=function(e,t){for(var n,r,i,a="",o="",s=0;s>2),a+=d.charAt((3&n)<<4|r>>4),isNaN(r)?a+="==":(a+=d.charAt((15&r)<<2|i>>6),a+=isNaN(i)?"=":d.charAt(63&i)),t&&a.length>t&&(o+=a.substr(0,t)+"\r\n",a=a.substr(t));return o+=a},l.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t,n,r,i,a="",o=0;o>4),64!==r&&(a+=String.fromCharCode((15&n)<<4|r>>2),64!==i&&(a+=String.fromCharCode((3&r)<<6|i)));return a},l.encodeUtf8=function(e){return unescape(encodeURIComponent(e))},l.decodeUtf8=function(e){return decodeURIComponent(escape(e))},l.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:s.encode,decode:s.decode}},l.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)},l.binary.raw.decode=function(e,t,n){var r=t;r||(r=new Uint8Array(e.length));for(var i=n=n||0,a=0;a>2),a+=d.charAt((3&n)<<4|r>>4),isNaN(r)?a+="==":(a+=d.charAt((15&r)<<2|i>>6),a+=isNaN(i)?"=":d.charAt(63&i)),t&&a.length>t&&(o+=a.substr(0,t)+"\r\n",a=a.substr(t));return o+=a},l.binary.base64.decode=function(e,t,n){var r,i,a,o,s=t;s||(s=new Uint8Array(3*Math.ceil(e.length/4))),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var l=0,c=n=n||0;l>4,64!==a&&(s[c++]=(15&i)<<4|a>>2,64!==o&&(s[c++]=(3&a)<<6|o));return t?c-n:s.subarray(0,c)},l.binary.base58.encode=function(e,t){return l.binary.baseN.encode(e,p,t)},l.binary.base58.decode=function(e,t){return l.binary.baseN.decode(e,p,t)},l.text={utf8:{},utf16:{}},l.text.utf8.encode=function(e,t,n){e=l.encodeUtf8(e);var r=t;r||(r=new Uint8Array(e.length));for(var i=n=n||0,a=0;a0?(i=n[r].substring(0,o),a=n[r].substring(o+1)):(i=n[r],a=null),i in t||(t[i]=[]),i in Object.prototype||null===a||t[i].push(unescape(a))}return t};return void 0===e?(null===w&&(w="undefined"!=typeof window&&window.location&&window.location.search?n(window.location.search.substring(1)):{}),t=w):t=n(e),t},l.parseFragment=function(e){var t=e,n="",r=e.indexOf("?");r>0&&(t=e.substring(0,r),n=e.substring(r+1));var i=t.split("/");return i.length>0&&""===i[0]&&i.shift(),{pathString:t,queryString:n,path:i,query:""===n?{}:l.getQueryVariables(n)}},l.makeRequest=function(e){var t=l.parseFragment(e),n={path:t.pathString,query:t.queryString,getPath:function(e){return void 0===e?t.path:t.path[e]},getQuery:function(e,n){var r;return void 0===e?r=t.query:(r=t.query[e])&&void 0!==n&&(r=r[n]),r},getQueryLast:function(e,t){var r=n.getQuery(e);return r?r[r.length-1]:t}};return n},l.makeLink=function(e,t,n){e=jQuery.isArray(e)?e.join("/"):e;var r=jQuery.param(t||{});return n=n||"",e+(r.length>0?"?"+r:"")+(n.length>0?"#"+n:"")},l.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},l.format=function(e){for(var t,n,r=/%./g,i=0,a=[],o=0;t=r.exec(e);){(n=e.substring(o,r.lastIndex-2)).length>0&&a.push(n),o=r.lastIndex;var s=t[0][1];switch(s){case"s":case"o":i");break;case"%":a.push("%");break;default:a.push("<%"+s+"?>")}}return a.push(e.substring(o)),a.join("")},l.formatNumber=function(e,t,n,r){var i=e,a=isNaN(t=Math.abs(t))?2:t,o=void 0===n?",":n,s=void 0===r?".":r,l=i<0?"-":"",c=parseInt(i=Math.abs(+i||0).toFixed(a),10)+"",u=c.length>3?c.length%3:0;return l+(u?c.substr(0,u)+s:"")+c.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+s)+(a?o+Math.abs(i-c).toFixed(a).slice(2):"")},l.formatSize=function(e){return e=e>=1073741824?l.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?l.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?l.formatNumber(e/1024,0)+" KiB":l.formatNumber(e,0)+" bytes"},l.bytesFromIP=function(e){return-1!==e.indexOf(".")?l.bytesFromIPv4(e):-1!==e.indexOf(":")?l.bytesFromIPv6(e):null},l.bytesFromIPv4=function(e){if(4!==(e=e.split(".")).length)return null;for(var t=l.createBuffer(),n=0;nn[r].end-n[r].start&&(r=n.length-1)):n.push({start:s,end:s})}t.push(a)}if(n.length>0){var c=n[r];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),0===c.start&&t.unshift(""),7===c.end&&t.push(""))}return t.join(":")},l.estimateCores=function(e,t){if("function"==typeof e&&(t=e,e={}),e=e||{},"cores"in l&&!e.update)return t(null,l.cores);if("undefined"!=typeof navigator&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return l.cores=navigator.hardwareConcurrency,t(null,l.cores);if("undefined"==typeof Worker)return l.cores=1,t(null,l.cores);if("undefined"==typeof Blob)return l.cores=2,t(null,l.cores);var n=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",(function(e){for(var t=Date.now(),n=t+4;Date.now()s.st&&i.sti.st&&s.st=200&&i.status<300?n(new o.b(i.status,i.statusText,i.response||i.responseText)):r(new a.b(i.statusText,i.status))},i.onerror=function(){t.logger.log(l.a.Warning,"Error from HTTP request. "+i.status+": "+i.statusText+"."),r(new a.b(i.statusText,i.status))},i.ontimeout=function(){t.logger.log(l.a.Warning,"Timeout from HTTP request."),r(new a.c)},i.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(o.a),d=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),h=function(e){function t(t){var n=e.call(this)||this;return"undefined"!=typeof XMLHttpRequest?n.httpClient=new u(t):n.httpClient=new s.a(t),n}return d(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new a.a):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(o.a),p=n(745);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(i||(i={}));var f,m=n(29),g=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+a.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case v.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new A(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket);case v.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new z(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource);case v.LongPolling:return new S(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1);default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=v[e.transport];if(null==r)return this.logger.log(l.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(l.a.Debug,"Skipping transport '"+v[r]+"' because it was disabled by the client."),new Error("'"+v[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return k[e]})).indexOf(n)>=0))return this.logger.log(l.a.Debug,"Skipping transport '"+v[r]+"' because it does not support the requested transfer format '"+k[n]+"'."),new Error("'"+v[r]+"' does not support "+k[n]+".");if(r===v.WebSockets&&!this.options.WebSocket||r===v.ServerSentEvents&&!this.options.EventSource)return this.logger.log(l.a.Debug,"Skipping transport '"+v[r]+"' because it is not supported in your environment.'"),new Error("'"+v[r]+"' is not supported in your environment.");this.logger.log(l.a.Debug,"Selecting transport '"+v[r]+"'.");try{return this.constructTransport(r)}catch(i){return i}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(l.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState)if("Connecting "!==this.connectionState){if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(l.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(l.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(l.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(n){this.logger.log(l.a.Error,"HttpConnection.onclose("+e+") threw error '"+n+"'.")}}}else this.logger.log(l.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection hasn't yet left the in the connecting state.");else this.logger.log(l.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!m.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(l.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var L=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new F,this.transportResult=new F,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new F),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return N(this,void 0,void 0,(function(){var t,n,r;return P(this,(function(i){switch(i.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(i.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new F,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,i.label=2;case 2:return i.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return i.sent(),t.resolve(),[3,5];case 4:return r=i.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,i=0,a=e;i"+i+""};e.exports=function(e,t){var n={};n[e]=t(s),r(r.P+r.F*i((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3})),"String",n)}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(20),i=n(56),a=n(50),o=n(89)("src"),s=Function.toString,l=(""+s).split("toString");n(55).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var c="function"==typeof n;c&&(a(n,"name")||i(n,"name",t)),e[t]!==n&&(c&&(a(n,o)||i(n,o,e[t]?""+e[t]:l.join(String(t)))),e===r?e[t]=n:s?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[o]||s.call(this)}))},function(e,t,n){var r=n(115),i=n(76);e.exports=function(e){return r(i(e))}},,function(e,t,n){"use strict";var r=n(121),i=n(215),a=n(146),o=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}();n.d(t,"a",(function(){return s}));var s=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}var t;return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this._parentOrParents,s=this._ctorUnsubscribe,c=this._unsubscribe,u=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var d=0;d0?r:n)(e)}},,,function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return E})),n.d(t,"b",(function(){return Ke})),n.d(t,"c",(function(){return be})),n.d(t,"d",(function(){return at})),n.d(t,"e",(function(){return x})),n.d(t,"f",(function(){return st})),n.d(t,"g",(function(){return ve})),n.d(t,"h",(function(){return lt}));var r=n(1),i=n(12),a=n(0);function o(){return void 0!==e&&"[object process]"==={}.toString.call(e)}function s(e){switch(e.length){case 0:return new i.d;case 1:return e[0];default:return new i.k(e)}}function l(e,t,n,r,a,o){void 0===a&&(a={}),void 0===o&&(o={});var s=[],l=[],c=-1,u=null;if(r.forEach((function(e){var n=e.offset,r=n==c,d=r&&u||{};Object.keys(e).forEach((function(n){var r=n,l=e[n];if("offset"!==n)switch(r=t.normalizePropertyName(r,s),l){case i.l:l=a[n];break;case i.a:l=o[n];break;default:l=t.normalizeStyleValue(n,r,l,s)}d[r]=l})),r||l.push(d),u=d,c=n})),s.length){throw new Error("Unable to animate due to the following errors:\n - "+s.join("\n - "))}return l}function c(e,t,n,r){switch(t){case"start":e.onStart((function(){return r(n&&u(n,"start",e))}));break;case"done":e.onDone((function(){return r(n&&u(n,"done",e))}));break;case"destroy":e.onDestroy((function(){return r(n&&u(n,"destroy",e))}))}}function u(e,t,n){var r=n.totalTime,i=!!n.disabled,a=d(e.element,e.triggerName,e.fromState,e.toState,t||e.phaseName,null==r?e.totalTime:r,i),o=e._data;return null!=o&&(a._data=o),a}function d(e,t,n,r,i,a,o){return void 0===i&&(i=""),void 0===a&&(a=0),{element:e,triggerName:t,fromState:n,toState:r,phaseName:i,totalTime:a,disabled:!!o}}function h(e,t,n){var r;return e instanceof Map?(r=e.get(t))||e.set(t,r=n):(r=e[t])||(r=e[t]=n),r}function p(e){var t=e.indexOf(":");return[e.substring(1,t),e.substr(t+1)]}var f=function(e,t){return!1},m=function(e,t){return!1},g=function(e,t,n){return[]},y=o();(y||"undefined"!=typeof Element)&&(f=function(e,t){return e.contains(t)},m=function(){if(y||Element.prototype.matches)return function(e,t){return e.matches(t)};var e=Element.prototype,t=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;return t?function(e,n){return t.apply(e,[n])}:m}(),g=function(e,t,n){var i=[];if(n)i.push.apply(i,Object(r.g)(e.querySelectorAll(t)));else{var a=e.querySelector(t);a&&i.push(a)}return i});var b=null,v=!1;function k(e){b||(b=function(){if("undefined"!=typeof document)return document.body;return null}()||{},v=!!b.style&&"WebkitAppearance"in b.style);var t=!0;b.style&&!function(e){return"ebkit"==e.substring(1,6)}(e)&&(!(t=e in b.style)&&v&&(t="Webkit"+e.charAt(0).toUpperCase()+e.substr(1)in b.style));return t}var w=m,_=f,j=g;function C(e){var t={};return Object.keys(e).forEach((function(n){var r=n.replace(/([a-z])([A-Z])/g,"$1-$2");t[r]=e[n]})),t}var x=function(){function e(){}return e.prototype.validateStyleProperty=function(e){return k(e)},e.prototype.matchesElement=function(e,t){return w(e,t)},e.prototype.containsElement=function(e,t){return _(e,t)},e.prototype.query=function(e,t,n){return j(e,t,n)},e.prototype.computeStyle=function(e,t,n){return n||""},e.prototype.animate=function(e,t,n,r,a,o,s){return void 0===o&&(o=[]),new i.d(n,r)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=a["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}(),E=function(){function e(){}return e.NOOP=new x,e}();function S(e){if("number"==typeof e)return e;var t=e.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:T(parseFloat(t[1]),t[2])}function T(e,t){switch(t){case"s":return 1e3*e;default:return e}}function O(e,t,n){return e.hasOwnProperty("duration")?e:function(e,t,n){var r,i=0,a="";if("string"==typeof e){var o=e.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===o)return t.push('The provided timing value "'+e+'" is invalid.'),{duration:0,delay:0,easing:""};r=T(parseFloat(o[1]),o[2]);var s=o[3];null!=s&&(i=T(parseFloat(s),o[4]));var l=o[5];l&&(a=l)}else r=e;if(!n){var c=!1,u=t.length;r<0&&(t.push("Duration values below 0 are not allowed for this animation step."),c=!0),i<0&&(t.push("Delay values below 0 are not allowed for this animation step."),c=!0),c&&t.splice(u,0,'The provided timing value "'+e+'" is invalid.')}return{duration:r,delay:i,easing:a}}(e,t,n)}function z(e,t){return void 0===t&&(t={}),Object.keys(e).forEach((function(n){t[n]=e[n]})),t}function I(e){var t={};return Array.isArray(e)?e.forEach((function(e){return D(e,!1,t)})):D(e,!1,t),t}function D(e,t,n){if(void 0===n&&(n={}),t)for(var r in e)n[r]=e[r];else z(e,n);return n}function A(e,t,n){return n?t+":"+n+";":""}function N(e){for(var t="",n=0;n *";case":leave":return"* => void";case":increment":return function(e,t){return parseFloat(t)>parseFloat(e)};case":decrement":return function(e,t){return parseFloat(t) *"}}(e,n);if("function"==typeof r)return void t.push(r);e=r}var i=e.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return n.push('The provided transition expression "'+e+'" is not supported'),t;var a=i[1],o=i[2],s=i[3];t.push(Z(a,s));var l="*"==a&&"*"==s;"<"!=o[0]||l||t.push(Z(s,a))}(e,n,t)})):n.push(e),n}var $=new Set(["true","1"]),Y=new Set(["false","0"]);function Z(e,t){var n=$.has(e)||Y.has(e),r=$.has(t)||Y.has(t);return function(i,a){var o="*"==e||e==i,s="*"==t||t==a;return!o&&n&&"boolean"==typeof i&&(o=i?$.has(e):Y.has(e)),!s&&r&&"boolean"==typeof a&&(s=a?$.has(t):Y.has(t)),o&&s}}var J=new RegExp("s*:selfs*,?","g");function X(e,t,n){return new ee(e).build(t,n)}var ee=function(){function e(e){this._driver=e}return e.prototype.build=function(e,t){var n=new te(t);return this._resetContextStyleTimingState(n),W(this,M(e),n)},e.prototype._resetContextStyleTimingState=function(e){e.currentQuerySelector="",e.collectedStyles={},e.collectedStyles[""]={},e.currentTime=0},e.prototype.visitTrigger=function(e,t){var n=this,r=t.queryCount=0,i=t.depCount=0,a=[],o=[];return"@"==e.name.charAt(0)&&t.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),e.definitions.forEach((function(e){if(n._resetContextStyleTimingState(t),0==e.type){var s=e,l=s.name;l.toString().split(/\s*,\s*/).forEach((function(e){s.name=e,a.push(n.visitState(s,t))})),s.name=l}else if(1==e.type){var c=n.visitTransition(e,t);r+=c.queryCount,i+=c.depCount,o.push(c)}else t.errors.push("only state() and transition() definitions can sit inside of a trigger()")})),{type:7,name:e.name,states:a,transitions:o,queryCount:r,depCount:i,options:null}},e.prototype.visitState=function(e,t){var n=this.visitStyle(e.styles,t),r=e.options&&e.options.params||null;if(n.containsDynamicStyles){var i=new Set,a=r||{};if(n.styles.forEach((function(e){if(ne(e)){var t=e;Object.keys(t).forEach((function(e){B(t[e]).forEach((function(e){a.hasOwnProperty(e)||i.add(e)}))}))}})),i.size){var o=F(i.values());t.errors.push('state("'+e.name+'", ...) must define default values for all the following style substitutions: '+o.join(", "))}}return{type:0,name:e.name,style:n,options:r?{params:r}:null}},e.prototype.visitTransition=function(e,t){t.queryCount=0,t.depCount=0;var n=W(this,M(e.animation),t);return{type:1,matchers:Q(e.expr,t.errors),animation:n,queryCount:t.queryCount,depCount:t.depCount,options:re(e.options)}},e.prototype.visitSequence=function(e,t){var n=this;return{type:2,steps:e.steps.map((function(e){return W(n,e,t)})),options:re(e.options)}},e.prototype.visitGroup=function(e,t){var n=this,r=t.currentTime,i=0,a=e.steps.map((function(e){t.currentTime=r;var a=W(n,e,t);return i=Math.max(i,t.currentTime),a}));return t.currentTime=i,{type:3,steps:a,options:re(e.options)}},e.prototype.visitAnimate=function(e,t){var n,r=function(e,t){var n=null;if(e.hasOwnProperty("duration"))n=e;else if("number"==typeof e){return ie(O(e,t).duration,0,"")}var r=e;if(r.split(/\s+/).some((function(e){return"{"==e.charAt(0)&&"{"==e.charAt(1)}))){var i=ie(0,0,"");return i.dynamic=!0,i.strValue=r,i}return ie((n=n||O(r,t)).duration,n.delay,n.easing)}(e.timings,t.errors);t.currentAnimateTimings=r;var a=e.styles?e.styles:Object(i.h)({});if(5==a.type)n=this.visitKeyframes(a,t);else{var o=e.styles,s=!1;if(!o){s=!0;var l={};r.easing&&(l.easing=r.easing),o=Object(i.h)(l)}t.currentTime+=r.duration+r.delay;var c=this.visitStyle(o,t);c.isEmptyStep=s,n=c}return t.currentAnimateTimings=null,{type:4,timings:r,style:n,options:null}},e.prototype.visitStyle=function(e,t){var n=this._makeStyleAst(e,t);return this._validateStyleAst(n,t),n},e.prototype._makeStyleAst=function(e,t){var n=[];Array.isArray(e.styles)?e.styles.forEach((function(e){"string"==typeof e?e==i.a?n.push(e):t.errors.push("The provided style string value "+e+" is not allowed."):n.push(e)})):n.push(e.styles);var r=!1,a=null;return n.forEach((function(e){if(ne(e)){var t=e,n=t.easing;if(n&&(a=n,delete t.easing),!r)for(var i in t){if(t[i].toString().indexOf("{{")>=0){r=!0;break}}}})),{type:6,styles:n,easing:a,offset:e.offset,containsDynamicStyles:r,options:null}},e.prototype._validateStyleAst=function(e,t){var n=this,r=t.currentAnimateTimings,i=t.currentTime,a=t.currentTime;r&&a>0&&(a-=r.duration+r.delay),e.styles.forEach((function(e){"string"!=typeof e&&Object.keys(e).forEach((function(r){if(n._driver.validateStyleProperty(r)){var o,s,l,c,u,d=t.collectedStyles[t.currentQuerySelector],h=d[r],p=!0;h&&(a!=i&&a>=h.startTime&&i<=h.endTime&&(t.errors.push('The CSS property "'+r+'" that exists between the times of "'+h.startTime+'ms" and "'+h.endTime+'ms" is also being animated in a parallel animation between the times of "'+a+'ms" and "'+i+'ms"'),p=!1),a=h.startTime),p&&(d[r]={startTime:a,endTime:i}),t.options&&(o=e[r],s=t.options,l=t.errors,c=s.params||{},(u=B(o)).length&&u.forEach((function(e){c.hasOwnProperty(e)||l.push("Unable to resolve the local animation param "+e+" in the given list of values")})))}else t.errors.push('The provided animation property "'+r+'" is not a supported CSS property for animations')}))}))},e.prototype.visitKeyframes=function(e,t){var n=this,r={type:5,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push("keyframes() must be placed inside of a call to animate()"),r;var i=0,a=[],o=!1,s=!1,l=0,c=e.steps.map((function(e){var r=n._makeStyleAst(e,t),c=null!=r.offset?r.offset:function(e){if("string"==typeof e)return null;var t=null;if(Array.isArray(e))e.forEach((function(e){if(ne(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}}));else if(ne(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}return t}(r.styles),u=0;return null!=c&&(i++,u=r.offset=c),s=s||u<0||u>1,o=o||u0&&i0?i==h?1:d*i:a[i],s=o*m;t.currentTime=p+f.delay+s,f.duration=s,n._validateStyleAst(e,t),e.offset=o,r.styles.push(e)})),r},e.prototype.visitReference=function(e,t){return{type:8,animation:W(this,M(e.animation),t),options:re(e.options)}},e.prototype.visitAnimateChild=function(e,t){return t.depCount++,{type:9,options:re(e.options)}},e.prototype.visitAnimateRef=function(e,t){return{type:10,animation:this.visitReference(e.animation,t),options:re(e.options)}},e.prototype.visitQuery=function(e,t){var n=t.currentQuerySelector,i=e.options||{};t.queryCount++,t.currentQuery=e;var a=Object(r.f)(function(e){var t=!!e.split(/\s*,\s*/).find((function(e){return":self"==e}));t&&(e=e.replace(J,""));return[e=e.replace(/@\*/g,".ng-trigger").replace(/@\w+/g,(function(e){return".ng-trigger-"+e.substr(1)})).replace(/:animating/g,".ng-animating"),t]}(e.selector),2),o=a[0],s=a[1];t.currentQuerySelector=n.length?n+" "+o:o,h(t.collectedStyles,t.currentQuerySelector,{});var l=W(this,M(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=n,{type:11,selector:o,limit:i.limit||0,optional:!!i.optional,includeSelf:s,animation:l,originalSelector:e.selector,options:re(e.options)}},e.prototype.visitStagger=function(e,t){t.currentQuery||t.errors.push("stagger() can only be used inside of query()");var n="full"===e.timings?{duration:0,delay:0,easing:"full"}:O(e.timings,t.errors,!0);return{type:12,animation:W(this,M(e.animation),t),timings:n,options:null}},e}();var te=function(e){this.errors=e,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null};function ne(e){return!Array.isArray(e)&&"object"==typeof e}function re(e){var t;return e?(e=z(e)).params&&(e.params=(t=e.params)?z(t):null):e={},e}function ie(e,t,n){return{duration:e,delay:t,easing:n}}function ae(e,t,n,r,i,a,o,s){return void 0===o&&(o=null),void 0===s&&(s=!1),{type:1,element:e,keyframes:t,preStyleProps:n,postStyleProps:r,duration:i,delay:a,totalTime:i+a,easing:o,subTimeline:s}}var oe=function(){function e(){this._map=new Map}return e.prototype.consume=function(e){var t=this._map.get(e);return t?this._map.delete(e):t=[],t},e.prototype.append=function(e,t){var n=this._map.get(e);n||this._map.set(e,n=[]),n.push.apply(n,Object(r.g)(t))},e.prototype.has=function(e){return this._map.has(e)},e.prototype.clear=function(){this._map.clear()},e}(),se=new RegExp(":enter","g"),le=new RegExp(":leave","g");function ce(e,t,n,r,i,a,o,s,l,c){return void 0===a&&(a={}),void 0===o&&(o={}),void 0===c&&(c=[]),(new ue).buildKeyframes(e,t,n,r,i,a,o,s,l,c)}var ue=function(){function e(){}return e.prototype.buildKeyframes=function(e,t,n,r,i,a,o,s,l,c){void 0===c&&(c=[]),l=l||new oe;var u=new he(e,t,l,r,i,c,[]);u.options=s,u.currentTimeline.setStyles([a],null,u.errors,s),W(this,n,u);var d=u.timelines.filter((function(e){return e.containsAnimation()}));if(d.length&&Object.keys(o).length){var h=d[d.length-1];h.allowOnlyTimelineStyles()||h.setStyles([o],null,u.errors,s)}return d.length?d.map((function(e){return e.buildKeyframes()})):[ae(t,[],[],[],0,0,"",!1)]},e.prototype.visitTrigger=function(e,t){},e.prototype.visitState=function(e,t){},e.prototype.visitTransition=function(e,t){},e.prototype.visitAnimateChild=function(e,t){var n=t.subInstructions.consume(t.element);if(n){var r=t.createSubContext(e.options),i=t.currentTimeline.currentTime,a=this._visitSubInstructions(n,r,r.options);i!=a&&t.transformIntoNewTimeline(a)}t.previousNode=e},e.prototype.visitAnimateRef=function(e,t){var n=t.createSubContext(e.options);n.transformIntoNewTimeline(),this.visitReference(e.animation,n),t.transformIntoNewTimeline(n.currentTimeline.currentTime),t.previousNode=e},e.prototype._visitSubInstructions=function(e,t,n){var r=t.currentTimeline.currentTime,i=null!=n.duration?S(n.duration):null,a=null!=n.delay?S(n.delay):null;return 0!==i&&e.forEach((function(e){var n=t.appendInstructionToTimeline(e,i,a);r=Math.max(r,n.duration+n.delay)})),r},e.prototype.visitReference=function(e,t){t.updateOptions(e.options,!0),W(this,e.animation,t),t.previousNode=e},e.prototype.visitSequence=function(e,t){var n=this,r=t.subContextCount,i=t,a=e.options;if(a&&(a.params||a.delay)&&((i=t.createSubContext(a)).transformIntoNewTimeline(),null!=a.delay)){6==i.previousNode.type&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=de);var o=S(a.delay);i.delayNextStep(o)}e.steps.length&&(e.steps.forEach((function(e){return W(n,e,i)})),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>r&&i.transformIntoNewTimeline()),t.previousNode=e},e.prototype.visitGroup=function(e,t){var n=this,r=[],i=t.currentTimeline.currentTime,a=e.options&&e.options.delay?S(e.options.delay):0;e.steps.forEach((function(o){var s=t.createSubContext(e.options);a&&s.delayNextStep(a),W(n,o,s),i=Math.max(i,s.currentTimeline.currentTime),r.push(s.currentTimeline)})),r.forEach((function(e){return t.currentTimeline.mergeTimelineCollectedStyles(e)})),t.transformIntoNewTimeline(i),t.previousNode=e},e.prototype._visitTiming=function(e,t){if(e.dynamic){var n=e.strValue;return O(t.params?L(n,t.params,t.errors):n,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}},e.prototype.visitAnimate=function(e,t){var n=t.currentAnimateTimings=this._visitTiming(e.timings,t),r=t.currentTimeline;n.delay&&(t.incrementTime(n.delay),r.snapshotCurrentStyles());var i=e.style;5==i.type?this.visitKeyframes(i,t):(t.incrementTime(n.duration),this.visitStyle(i,t),r.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e},e.prototype.visitStyle=function(e,t){var n=t.currentTimeline,r=t.currentAnimateTimings;!r&&n.getCurrentStyleProperties().length&&n.forwardFrame();var i=r&&r.easing||e.easing;e.isEmptyStep?n.applyEmptyStep(i):n.setStyles(e.styles,i,t.errors,t.options),t.previousNode=e},e.prototype.visitKeyframes=function(e,t){var n=t.currentAnimateTimings,r=t.currentTimeline.duration,i=n.duration,a=t.createSubContext().currentTimeline;a.easing=n.easing,e.styles.forEach((function(e){var n=e.offset||0;a.forwardTime(n*i),a.setStyles(e.styles,e.easing,t.errors,t.options),a.applyStylesToKeyframe()})),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(r+i),t.previousNode=e},e.prototype.visitQuery=function(e,t){var n=this,r=t.currentTimeline.currentTime,i=e.options||{},a=i.delay?S(i.delay):0;a&&(6===t.previousNode.type||0==r&&t.currentTimeline.getCurrentStyleProperties().length)&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=de);var o=r,s=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!i.optional,t.errors);t.currentQueryTotal=s.length;var l=null;s.forEach((function(r,i){t.currentQueryIndex=i;var s=t.createSubContext(e.options,r);a&&s.delayNextStep(a),r===t.element&&(l=s.currentTimeline),W(n,e.animation,s),s.currentTimeline.applyStylesToKeyframe();var c=s.currentTimeline.currentTime;o=Math.max(o,c)})),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(o),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e},e.prototype.visitStagger=function(e,t){var n=t.parentContext,r=t.currentTimeline,i=e.timings,a=Math.abs(i.duration),o=a*(t.currentQueryTotal-1),s=a*t.currentQueryIndex;switch(i.duration<0?"reverse":i.easing){case"reverse":s=o-s;break;case"full":s=n.currentStaggerTime}var l=t.currentTimeline;s&&l.delayNextStep(s);var c=l.currentTime;W(this,e.animation,t),t.previousNode=e,n.currentStaggerTime=r.currentTime-c+(r.startTime-n.currentTimeline.startTime)},e}(),de={},he=function(){function e(e,t,n,r,i,a,o,s){this._driver=e,this.element=t,this.subInstructions=n,this._enterClassName=r,this._leaveClassName=i,this.errors=a,this.timelines=o,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=de,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=s||new pe(this._driver,t,0),o.push(this.currentTimeline)}return Object.defineProperty(e.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),e.prototype.updateOptions=function(e,t){var n=this;if(e){var r=e,i=this.options;null!=r.duration&&(i.duration=S(r.duration)),null!=r.delay&&(i.delay=S(r.delay));var a=r.params;if(a){var o=i.params;o||(o=this.options.params={}),Object.keys(a).forEach((function(e){t&&o.hasOwnProperty(e)||(o[e]=L(a[e],o,n.errors))}))}}},e.prototype._copyOptions=function(){var e={};if(this.options){var t=this.options.params;if(t){var n=e.params={};Object.keys(t).forEach((function(e){n[e]=t[e]}))}}return e},e.prototype.createSubContext=function(t,n,r){void 0===t&&(t=null);var i=n||this.element,a=new e(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,r||0));return a.previousNode=this.previousNode,a.currentAnimateTimings=this.currentAnimateTimings,a.options=this._copyOptions(),a.updateOptions(t),a.currentQueryIndex=this.currentQueryIndex,a.currentQueryTotal=this.currentQueryTotal,a.parentContext=this,this.subContextCount++,a},e.prototype.transformIntoNewTimeline=function(e){return this.previousNode=de,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline},e.prototype.appendInstructionToTimeline=function(e,t,n){var r={duration:null!=t?t:e.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+e.delay,easing:""},i=new fe(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,r,e.stretchStartingKeyframe);return this.timelines.push(i),r},e.prototype.incrementTime=function(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)},e.prototype.delayNextStep=function(e){e>0&&this.currentTimeline.delayNextStep(e)},e.prototype.invokeQuery=function(e,t,n,i,a,o){var s=[];if(i&&s.push(this.element),e.length>0){e=(e=e.replace(se,"."+this._enterClassName)).replace(le,"."+this._leaveClassName);var l=1!=n,c=this._driver.query(this.element,e,l);0!==n&&(c=n<0?c.slice(c.length+n,c.length):c.slice(0,n)),s.push.apply(s,Object(r.g)(c))}return a||0!=s.length||o.push('`query("'+t+'")` returned zero elements. (Use `query("'+t+'", { optional: true })` if you wish to allow this.)'),s},e}(),pe=function(){function e(e,t,n,r){this._driver=e,this.element=t,this.startTime=n,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}return e.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},e.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(e.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),e.prototype.delayNextStep=function(e){var t=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e},e.prototype.fork=function(t,n){return this.applyStylesToKeyframe(),new e(this._driver,t,n||this.currentTime,this._elementTimelineStylesLookup)},e.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},e.prototype.forwardFrame=function(){this.duration+=1,this._loadKeyframe()},e.prototype.forwardTime=function(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()},e.prototype._updateStyle=function(e,t){this._localTimelineStyles[e]=t,this._globalTimelineStyles[e]=t,this._styleSummary[e]={time:this.currentTime,value:t}},e.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},e.prototype.applyEmptyStep=function(e){var t=this;e&&(this._previousKeyframe.easing=e),Object.keys(this._globalTimelineStyles).forEach((function(e){t._backFill[e]=t._globalTimelineStyles[e]||i.a,t._currentKeyframe[e]=i.a})),this._currentEmptyStepKeyframe=this._currentKeyframe},e.prototype.setStyles=function(e,t,n,r){var a=this;t&&(this._previousKeyframe.easing=t);var o=r&&r.params||{},s=function(e,t){var n,r={};return e.forEach((function(e){"*"===e?(n=n||Object.keys(t)).forEach((function(e){r[e]=i.a})):D(e,!1,r)})),r}(e,this._globalTimelineStyles);Object.keys(s).forEach((function(e){var t=L(s[e],o,n);a._pendingStyles[e]=t,a._localTimelineStyles.hasOwnProperty(e)||(a._backFill[e]=a._globalTimelineStyles.hasOwnProperty(e)?a._globalTimelineStyles[e]:i.a),a._updateStyle(e,t)}))},e.prototype.applyStylesToKeyframe=function(){var e=this,t=this._pendingStyles,n=Object.keys(t);0!=n.length&&(this._pendingStyles={},n.forEach((function(n){var r=t[n];e._currentKeyframe[n]=r})),Object.keys(this._localTimelineStyles).forEach((function(t){e._currentKeyframe.hasOwnProperty(t)||(e._currentKeyframe[t]=e._localTimelineStyles[t])})))},e.prototype.snapshotCurrentStyles=function(){var e=this;Object.keys(this._localTimelineStyles).forEach((function(t){var n=e._localTimelineStyles[t];e._pendingStyles[t]=n,e._updateStyle(t,n)}))},e.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(e.prototype,"properties",{get:function(){var e=[];for(var t in this._currentKeyframe)e.push(t);return e},enumerable:!0,configurable:!0}),e.prototype.mergeTimelineCollectedStyles=function(e){var t=this;Object.keys(e._styleSummary).forEach((function(n){var r=t._styleSummary[n],i=e._styleSummary[n];(!r||i.time>r.time)&&t._updateStyle(n,i.value)}))},e.prototype.buildKeyframes=function(){var e=this;this.applyStylesToKeyframe();var t=new Set,n=new Set,r=1===this._keyframes.size&&0===this.duration,a=[];this._keyframes.forEach((function(o,s){var l=D(o,!0);Object.keys(l).forEach((function(e){var r=l[e];r==i.l?t.add(e):r==i.a&&n.add(e)})),r||(l.offset=s/e.duration),a.push(l)}));var o=t.size?F(t.values()):[],s=n.size?F(n.values()):[];if(r){var l=a[0],c=z(l);l.offset=0,c.offset=1,a=[l,c]}return ae(this.element,a,o,s,this.duration,this.startTime,this.easing,!1)},e}(),fe=function(e){function t(t,n,r,i,a,o,s){void 0===s&&(s=!1);var l=e.call(this,t,n,o.delay)||this;return l.element=n,l.keyframes=r,l.preStyleProps=i,l.postStyleProps=a,l._stretchStartingKeyframe=s,l.timings={duration:o.duration,delay:o.delay,easing:o.easing},l}return Object(r.c)(t,e),t.prototype.containsAnimation=function(){return this.keyframes.length>1},t.prototype.buildKeyframes=function(){var e=this.keyframes,t=this.timings,n=t.delay,r=t.duration,i=t.easing;if(this._stretchStartingKeyframe&&n){var a=[],o=r+n,s=n/o,l=D(e[0],!1);l.offset=0,a.push(l);var c=D(e[0],!1);c.offset=me(s),a.push(c);for(var u=e.length-1,d=1;d<=u;d++){var h=D(e[d],!1),p=n+h.offset*r;h.offset=me(p/o),a.push(h)}r=o,n=0,i="",e=a}return ae(this.element,e,this.preStyleProps,this.postStyleProps,r,n,i,!0)},t}(pe);function me(e,t){void 0===t&&(t=3);var n=Math.pow(10,t-1);return Math.round(e*n)/n}!function(){function e(e,t){this._driver=e;var n=[],r=X(e,t,n);if(n.length){var i="animation validation failed:\n"+n.join("\n");throw new Error(i)}this._animationAst=r}e.prototype.buildTimelines=function(e,t,n,r,i){var a=Array.isArray(t)?I(t):t,o=Array.isArray(n)?I(n):n,s=[];i=i||new oe;var l=ce(this._driver,e,this._animationAst,"ng-enter","ng-leave",a,o,r,i,s);if(s.length){var c="animation building failed:\n"+s.join("\n");throw new Error(c)}return l}}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ge,ye,be=function(){},ve=(function(){function e(){}e.prototype.normalizePropertyName=function(e,t){return e},e.prototype.normalizeStyleValue=function(e,t,n,r){return n}}(),function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t.prototype.normalizePropertyName=function(e,t){return V(e)},t.prototype.normalizeStyleValue=function(e,t,n,r){var i="",a=n.toString().trim();if(ke[t]&&0!==n&&"0"!==n)if("number"==typeof n)i="px";else{var o=n.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&0==o[1].length&&r.push("Please provide a CSS unit value for "+e+":"+n)}return a+i},t}(be)),ke=(ge="width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(","),ye={},ge.forEach((function(e){return ye[e]=!0})),ye);function we(e,t,n,r,i,a,o,s,l,c,u,d,h){return{type:0,element:e,triggerName:t,isRemovalTransition:i,fromState:n,fromStyles:a,toState:r,toStyles:o,timelines:s,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:d,errors:h}}var _e={},je=function(){function e(e,t,n){this._triggerName=e,this.ast=t,this._stateStyles=n}return e.prototype.match=function(e,t,n,r){return function(e,t,n,r,i){return e.some((function(e){return e(t,n,r,i)}))}(this.ast.matchers,e,t,n,r)},e.prototype.buildStyles=function(e,t,n){var r=this._stateStyles["*"],i=this._stateStyles[e],a=r?r.buildStyles(t,n):{};return i?i.buildStyles(t,n):a},e.prototype.build=function(e,t,n,i,a,o,s,l,c,u){var d=[],p=this.ast.options&&this.ast.options.params||_e,f=s&&s.params||_e,m=this.buildStyles(n,f,d),g=l&&l.params||_e,y=this.buildStyles(i,g,d),b=new Set,v=new Map,k=new Map,w="void"===i,_={params:Object(r.a)(Object(r.a)({},p),g)},j=u?[]:ce(e,t,this.ast.animation,a,o,m,y,_,c,d),C=0;if(j.forEach((function(e){C=Math.max(e.duration+e.delay,C)})),d.length)return we(t,this._triggerName,n,i,w,m,y,[],[],v,k,C,d);j.forEach((function(e){var n=e.element,r=h(v,n,{});e.preStyleProps.forEach((function(e){return r[e]=!0}));var i=h(k,n,{});e.postStyleProps.forEach((function(e){return i[e]=!0})),n!==t&&b.add(n)}));var x=F(b.values());return we(t,this._triggerName,n,i,w,m,y,j,x,v,k,C)},e}();var Ce=function(){function e(e,t){this.styles=e,this.defaultParams=t}return e.prototype.buildStyles=function(e,t){var n={},r=z(this.defaultParams);return Object.keys(e).forEach((function(t){var n=e[t];null!=n&&(r[t]=n)})),this.styles.styles.forEach((function(e){if("string"!=typeof e){var i=e;Object.keys(i).forEach((function(e){var a=i[e];a.length>1&&(a=L(a,r,t)),n[e]=a}))}})),n},e}();var xe=function(){function e(e,t){var n,r,i=this;this.name=e,this.ast=t,this.transitionFactories=[],this.states={},t.states.forEach((function(e){var t=e.options&&e.options.params||{};i.states[e.name]=new Ce(e.style,t)})),Ee(this.states,"true","1"),Ee(this.states,"false","0"),t.transitions.forEach((function(t){i.transitionFactories.push(new je(e,t,i.states))})),this.fallbackTransition=(n=e,r=this.states,new je(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(e,t){return!0}],options:null,queryCount:0,depCount:0},r))}return Object.defineProperty(e.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),e.prototype.matchTransition=function(e,t,n,r){return this.transitionFactories.find((function(i){return i.match(e,t,n,r)}))||null},e.prototype.matchStyles=function(e,t,n){return this.fallbackTransition.buildStyles(e,t,n)},e}();function Ee(e,t,n){e.hasOwnProperty(t)?e.hasOwnProperty(n)||(e[n]=e[t]):e.hasOwnProperty(n)&&(e[t]=e[n])} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Se=new oe,Te=function(){function e(e,t,n){this.bodyNode=e,this._driver=t,this._normalizer=n,this._animations={},this._playersById={},this.players=[]}return e.prototype.register=function(e,t){var n=[],r=X(this._driver,t,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: "+n.join("\n"));this._animations[e]=r},e.prototype._buildPlayer=function(e,t,n){var r=e.element,i=l(this._driver,this._normalizer,0,e.keyframes,t,n);return this._driver.animate(r,i,e.duration,e.delay,e.easing,[],!0)},e.prototype.create=function(e,t,n){var r=this;void 0===n&&(n={});var a,o=[],l=this._animations[e],c=new Map;if(l?(a=ce(this._driver,t,l,"ng-enter","ng-leave",{},{},n,Se,o)).forEach((function(e){var t=h(c,e.element,{});e.postStyleProps.forEach((function(e){return t[e]=null}))})):(o.push("The requested animation doesn't exist or has already been destroyed"),a=[]),o.length)throw new Error("Unable to create the animation due to the following errors: "+o.join("\n"));c.forEach((function(e,t){Object.keys(e).forEach((function(n){e[n]=r._driver.computeStyle(t,n,i.a)}))}));var u=s(a.map((function(e){var t=c.get(e.element);return r._buildPlayer(e,{},t)})));return this._playersById[e]=u,u.onDestroy((function(){return r.destroy(e)})),this.players.push(u),u},e.prototype.destroy=function(e){var t=this._getPlayer(e);t.destroy(),delete this._playersById[e];var n=this.players.indexOf(t);n>=0&&this.players.splice(n,1)},e.prototype._getPlayer=function(e){var t=this._playersById[e];if(!t)throw new Error("Unable to find the timeline player referenced by "+e);return t},e.prototype.listen=function(e,t,n,r){var i=d(t,"","","");return c(this._getPlayer(e),n,i,r),function(){}},e.prototype.command=function(e,t,n,r){if("register"!=n)if("create"!=n){var i=this._getPlayer(e);switch(n){case"play":i.play();break;case"pause":i.pause();break;case"reset":i.reset();break;case"restart":i.restart();break;case"finish":i.finish();break;case"init":i.init();break;case"setPosition":i.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(e)}}else{var a=r[0]||{};this.create(e,t,a)}else this.register(e,r[0])},e}(),Oe=[],ze={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Ie={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},De=function(){function e(e,t){void 0===t&&(t=""),this.namespaceId=t;var n=e&&e.hasOwnProperty("value"),r=n?e.value:e;if(this.value=function(e){return null!=e?e:null}(r),n){var i=z(e);delete i.value,this.options=i}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(e.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),e.prototype.absorbOptions=function(e){var t=e.params;if(t){var n=this.options.params;Object.keys(t).forEach((function(e){null==n[e]&&(n[e]=t[e])}))}},e}(),Ae=new De("void"),Ne=function(){function e(e,t,n){this.id=e,this.hostElement=t,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+e,Fe(t,this._hostClassName)}return e.prototype.listen=function(e,t,n,r){var i,a=this;if(!this._triggers.hasOwnProperty(t))throw new Error('Unable to listen on the animation trigger event "'+n+'" because the animation trigger "'+t+"\" doesn't exist!");if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'+t+'" because the provided event is undefined!');if("start"!=(i=n)&&"done"!=i)throw new Error('The provided animation trigger event "'+n+'" for the animation trigger "'+t+'" is not supported!');var o=h(this._elementListeners,e,[]),s={name:t,phase:n,callback:r};o.push(s);var l=h(this._engine.statesByElement,e,{});return l.hasOwnProperty(t)||(Fe(e,"ng-trigger"),Fe(e,"ng-trigger-"+t),l[t]=Ae),function(){a._engine.afterFlush((function(){var e=o.indexOf(s);e>=0&&o.splice(e,1),a._triggers[t]||delete l[t]}))}},e.prototype.register=function(e,t){return!this._triggers[e]&&(this._triggers[e]=t,!0)},e.prototype._getTrigger=function(e){var t=this._triggers[e];if(!t)throw new Error('The provided animation trigger "'+e+'" has not been registered!');return t},e.prototype.trigger=function(e,t,n,r){var i=this;void 0===r&&(r=!0);var a=this._getTrigger(t),o=new Re(this.id,t,e),s=this._engine.statesByElement.get(e);s||(Fe(e,"ng-trigger"),Fe(e,"ng-trigger-"+t),this._engine.statesByElement.set(e,s={}));var l=s[t],c=new De(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),s[t]=c,l||(l=Ae),"void"===c.value||l.value!==c.value){var u=h(this._engine.playersByElement,e,[]);u.forEach((function(e){e.namespaceId==i.id&&e.triggerName==t&&e.queued&&e.destroy()}));var d=a.matchTransition(l.value,c.value,e,c.params),p=!1;if(!d){if(!r)return;d=a.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:d,fromState:l,toState:c,player:o,isFallbackTransition:p}),p||(Fe(e,"ng-animate-queued"),o.onStart((function(){Ue(e,"ng-animate-queued")}))),o.onDone((function(){var t=i.players.indexOf(o);t>=0&&i.players.splice(t,1);var n=i._engine.playersByElement.get(e);if(n){var r=n.indexOf(o);r>=0&&n.splice(r,1)}})),this.players.push(o),u.push(o),o}if(!function(e,t){var n=Object.keys(e),r=Object.keys(t);if(n.length!=r.length)return!1;for(var i=0;i=0){for(var r=!1,i=n;i>=0;i--){var a=this._namespaceList[i];if(this.driver.containsElement(a.hostElement,t)){this._namespaceList.splice(i+1,0,e),r=!0;break}}r||this._namespaceList.splice(0,0,e)}else this._namespaceList.push(e);return this.namespacesByHostElement.set(t,e),e},e.prototype.register=function(e,t){var n=this._namespaceLookup[e];return n||(n=this.createNamespace(e,t)),n},e.prototype.registerTrigger=function(e,t,n){var r=this._namespaceLookup[e];r&&r.register(t,n)&&this.totalAnimations++},e.prototype.destroy=function(e,t){var n=this;if(e){var r=this._fetchNamespace(e);this.afterFlush((function(){n.namespacesByHostElement.delete(r.hostElement),delete n._namespaceLookup[e];var t=n._namespaceList.indexOf(r);t>=0&&n._namespaceList.splice(t,1)})),this.afterFlushAnimationsDone((function(){return r.destroy(t)}))}},e.prototype._fetchNamespace=function(e){return this._namespaceLookup[e]},e.prototype.fetchNamespacesByElement=function(e){var t=new Set,n=this.statesByElement.get(e);if(n)for(var r=Object.keys(n),i=0;i=0&&this.collectedLeaveElements.splice(a,1)}if(e){var o=this._fetchNamespace(e);o&&o.insertNode(t,n)}r&&this.collectEnterElement(t)}},e.prototype.collectEnterElement=function(e){this.collectedEnterElements.push(e)},e.prototype.markElementAsDisabled=function(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Fe(e,"ng-animate-disabled")):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Ue(e,"ng-animate-disabled"))},e.prototype.removeNode=function(e,t,n,r){if(Me(t)){var i=e?this._fetchNamespace(e):null;if(i?i.removeNode(t,r):this.markElementAsRemoved(e,t,!1,r),n){var a=this.namespacesByHostElement.get(t);a&&a.id!==e&&a.removeNode(t,r)}}else this._onRemovalComplete(t,r)},e.prototype.markElementAsRemoved=function(e,t,n,r){this.collectedLeaveElements.push(t),t.__ng_removed={namespaceId:e,setForRemoval:r,hasAnimation:n,removedBeforeQueried:!1}},e.prototype.listen=function(e,t,n,r,i){return Me(t)?this._fetchNamespace(e).listen(t,n,r,i):function(){}},e.prototype._buildInstruction=function(e,t,n,r,i){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,n,r,e.fromState.options,e.toState.options,t,i)},e.prototype.destroyInnerAnimations=function(e){var t=this,n=this.driver.query(e,".ng-trigger",!0);n.forEach((function(e){return t.destroyActiveAnimationsForElement(e)})),0!=this.playersByQueriedElement.size&&(n=this.driver.query(e,".ng-animating",!0)).forEach((function(e){return t.finishActiveQueriedAnimationOnElement(e)}))},e.prototype.destroyActiveAnimationsForElement=function(e){var t=this.playersByElement.get(e);t&&t.forEach((function(e){e.queued?e.markedForDestroy=!0:e.destroy()}))},e.prototype.finishActiveQueriedAnimationOnElement=function(e){var t=this.playersByQueriedElement.get(e);t&&t.forEach((function(e){return e.finish()}))},e.prototype.whenRenderingDone=function(){var e=this;return new Promise((function(t){if(e.players.length)return s(e.players).onDone((function(){return t()}));t()}))},e.prototype.processLeaveNode=function(e){var t=this,n=e.__ng_removed;if(n&&n.setForRemoval){if(e.__ng_removed=ze,n.namespaceId){this.destroyInnerAnimations(e);var r=this._fetchNamespace(n.namespaceId);r&&r.clearElementCache(e)}this._onRemovalComplete(e,n.setForRemoval)}this.driver.matchesElement(e,".ng-animate-disabled")&&this.markElementAsDisabled(e,!1),this.driver.query(e,".ng-animate-disabled",!0).forEach((function(e){t.markElementAsDisabled(e,!1)}))},e.prototype.flush=function(e){var t=this;void 0===e&&(e=-1);var n=[];if(this.newHostElements.size&&(this.newHostElements.forEach((function(e,n){return t._balanceNamespaceList(e,n)})),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(var r=0;r=0;T--){this._namespaceList[T].drainQueuedTransitions(t).forEach((function(e){var t=e.player,r=e.element;if(E.push(t),n.collectedEnterElements.length){var i=r.__ng_removed;if(i&&i.setForMove)return void t.destroy()}var s=!m||!n.driver.containsElement(m,r),l=C.get(r),f=b.get(r),g=n._buildInstruction(e,a,f,l,s);if(g.errors&&g.errors.length)S.push(g);else{if(s)return t.onStart((function(){return R(r,g.fromStyles)})),t.onDestroy((function(){return P(r,g.toStyles)})),void o.push(t);if(e.isFallbackTransition)return t.onStart((function(){return R(r,g.fromStyles)})),t.onDestroy((function(){return P(r,g.toStyles)})),void o.push(t);g.timelines.forEach((function(e){return e.stretchStartingKeyframe=!0})),a.append(r,g.timelines);var y={instruction:g,player:t,element:r};c.push(y),g.queriedElements.forEach((function(e){return h(u,e,[]).push(t)})),g.preStyleProps.forEach((function(e,t){var n=Object.keys(e);if(n.length){var r=d.get(t);r||d.set(t,r=new Set),n.forEach((function(e){return r.add(e)}))}})),g.postStyleProps.forEach((function(e,t){var n=Object.keys(e),r=p.get(t);r||p.set(t,r=new Set),n.forEach((function(e){return r.add(e)}))}))}}))}if(S.length){var O=[];S.forEach((function(e){O.push("@"+e.triggerName+" has failed due to:\n"),e.errors.forEach((function(e){return O.push("- "+e+"\n")}))})),E.forEach((function(e){return e.destroy()})),this.reportError(O)}var z=new Map,I=new Map;c.forEach((function(e){var t=e.element;a.has(t)&&(I.set(t,t),n._beforeAnimationBuild(e.player.namespaceId,e.instruction,z))})),o.forEach((function(e){var t=e.element;n._getPreviousPlayers(t,!1,e.namespaceId,e.triggerName,null).forEach((function(e){h(z,t,[]).push(e),e.destroy()}))}));var D=k.filter((function(e){return He(e,d,p)})),A=new Map;Be(A,this.driver,_,p,i.a).forEach((function(e){He(e,d,p)&&D.push(e)}));var N=new Map;y.forEach((function(e,t){Be(N,n.driver,new Set(e),d,i.l)})),D.forEach((function(e){var t=A.get(e),n=N.get(e);A.set(e,Object(r.a)(Object(r.a)({},t),n))}));var M=[],q=[],B={};c.forEach((function(e){var t=e.element,r=e.player,i=e.instruction;if(a.has(t)){if(f.has(t))return r.onDestroy((function(){return P(t,i.toStyles)})),r.disabled=!0,r.overrideTotalTime(i.totalTime),void o.push(r);var c=B;if(I.size>1){for(var u=t,d=[];u=u.parentNode;){var h=I.get(u);if(h){c=h;break}d.push(u)}d.forEach((function(e){return I.set(e,c)}))}var p=n._buildAnimation(r.namespaceId,i,z,l,N,A);if(r.setRealPlayer(p),c===B)M.push(r);else{var m=n.playersByElement.get(c);m&&m.length&&(r.parentPlayer=s(m)),o.push(r)}}else R(t,i.fromStyles),r.onDestroy((function(){return P(t,i.toStyles)})),q.push(r),f.has(t)&&o.push(r)})),q.forEach((function(e){var t=l.get(e.element);if(t&&t.length){var n=s(t);e.setRealPlayer(n)}})),o.forEach((function(e){e.parentPlayer?e.syncPlayerEvents(e.parentPlayer):e.destroy()}));for(var L=0;L0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,n):new i.d(e.duration,e.delay)},e}(),Re=function(){function e(e,t,n){this.namespaceId=e,this.triggerName=t,this.element=n,this._player=new i.d,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}return e.prototype.setRealPlayer=function(e){var t=this;this._containsRealPlayer||(this._player=e,Object.keys(this._queuedCallbacks).forEach((function(n){t._queuedCallbacks[n].forEach((function(t){return c(e,n,void 0,t)}))})),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)},e.prototype.getRealPlayer=function(){return this._player},e.prototype.overrideTotalTime=function(e){this.totalTime=e},e.prototype.syncPlayerEvents=function(e){var t=this,n=this._player;n.triggerCallback&&e.onStart((function(){return n.triggerCallback("start")})),e.onDone((function(){return t.finish()})),e.onDestroy((function(){return t.destroy()}))},e.prototype._queueEvent=function(e,t){h(this._queuedCallbacks,e,[]).push(t)},e.prototype.onDone=function(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)},e.prototype.onStart=function(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)},e.prototype.onDestroy=function(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)},e.prototype.init=function(){this._player.init()},e.prototype.hasStarted=function(){return!this.queued&&this._player.hasStarted()},e.prototype.play=function(){!this.queued&&this._player.play()},e.prototype.pause=function(){!this.queued&&this._player.pause()},e.prototype.restart=function(){!this.queued&&this._player.restart()},e.prototype.finish=function(){this._player.finish()},e.prototype.destroy=function(){this.destroyed=!0,this._player.destroy()},e.prototype.reset=function(){!this.queued&&this._player.reset()},e.prototype.setPosition=function(e){this.queued||this._player.setPosition(e)},e.prototype.getPosition=function(){return this.queued?0:this._player.getPosition()},e.prototype.triggerCallback=function(e){var t=this._player;t.triggerCallback&&t.triggerCallback(e)},e}();function Me(e){return e&&1===e.nodeType}function qe(e,t){var n=e.style.display;return e.style.display=null!=t?t:"none",n}function Be(e,t,n,r,i){var a=[];n.forEach((function(e){return a.push(qe(e))}));var o=[];r.forEach((function(n,r){var a={};n.forEach((function(e){var n=a[e]=t.computeStyle(r,e,i);n&&0!=n.length||(r.__ng_removed=Ie,o.push(r))})),e.set(r,a)}));var s=0;return n.forEach((function(e){return qe(e,a[s++])})),o}function Le(e,t){var n=new Map;if(e.forEach((function(e){return n.set(e,[])})),0==t.length)return n;var r=new Set(t),i=new Map;return t.forEach((function(e){var t=function e(t){if(!t)return 1;var a=i.get(t);if(a)return a;var o=t.parentNode;return a=n.has(o)?o:r.has(o)?1:e(o),i.set(t,a),a}(e);1!==t&&n.get(t).push(e)})),n}function Fe(e,t){if(e.classList)e.classList.add(t);else{var n=e.$$classes;n||(n=e.$$classes={}),n[t]=!0}}function Ue(e,t){if(e.classList)e.classList.remove(t);else{var n=e.$$classes;n&&delete n[t]}}function Ve(e,t,n){s(n).onDone((function(){return e.processLeaveNode(t)}))}function He(e,t,n){var r=n.get(e);if(!r)return!1;var i=t.get(e);return i?r.forEach((function(e){return i.add(e)})):t.set(e,r),n.delete(e),!0}var Ke=function(){function e(e,t,n){var r=this;this.bodyNode=e,this._driver=t,this._triggerCache={},this.onRemovalComplete=function(e,t){},this._transitionEngine=new Pe(e,t,n),this._timelineEngine=new Te(e,t,n),this._transitionEngine.onRemovalComplete=function(e,t){return r.onRemovalComplete(e,t)}}return e.prototype.registerTrigger=function(e,t,n,r,i){var a=e+"-"+r,o=this._triggerCache[a];if(!o){var s=[],l=X(this._driver,i,s);if(s.length)throw new Error('The animation trigger "'+r+'" has failed to build due to the following errors:\n - '+s.join("\n - "));o=function(e,t){return new xe(e,t)}(r,l),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(t,r,o)},e.prototype.register=function(e,t){this._transitionEngine.register(e,t)},e.prototype.destroy=function(e,t){this._transitionEngine.destroy(e,t)},e.prototype.onInsert=function(e,t,n,r){this._transitionEngine.insertNode(e,t,n,r)},e.prototype.onRemove=function(e,t,n,r){this._transitionEngine.removeNode(e,t,r||!1,n)},e.prototype.disableAnimations=function(e,t){this._transitionEngine.markElementAsDisabled(e,t)},e.prototype.process=function(e,t,n,i){if("@"==n.charAt(0)){var a=Object(r.f)(p(n),2),o=a[0],s=a[1],l=i;this._timelineEngine.command(o,t,s,l)}else this._transitionEngine.trigger(e,t,n,i)},e.prototype.listen=function(e,t,n,i,a){if("@"==n.charAt(0)){var o=Object(r.f)(p(n),2),s=o[0],l=o[1];return this._timelineEngine.listen(s,t,l,a)}return this._transitionEngine.listen(e,t,n,i,a)},e.prototype.flush=function(e){void 0===e&&(e=-1),this._transitionEngine.flush(e)},Object.defineProperty(e.prototype,"players",{get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)},enumerable:!0,configurable:!0}),e.prototype.whenRenderingDone=function(){return this._transitionEngine.whenRenderingDone()},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function We(e,t){var n=null,r=null;return Array.isArray(t)&&t.length?(n=Qe(t[0]),t.length>1&&(r=Qe(t[t.length-1]))):t&&(n=Qe(t)),n||r?new Ge(e,n,r):null}var Ge=function(){function e(t,n,r){this._element=t,this._startStyles=n,this._endStyles=r,this._state=0;var i=e.initialStylesByElement.get(t);i||e.initialStylesByElement.set(t,i={}),this._initialStyles=i}return e.prototype.start=function(){this._state<1&&(this._startStyles&&P(this._element,this._startStyles,this._initialStyles),this._state=1)},e.prototype.finish=function(){this.start(),this._state<2&&(P(this._element,this._initialStyles),this._endStyles&&(P(this._element,this._endStyles),this._endStyles=null),this._state=1)},e.prototype.destroy=function(){this.finish(),this._state<3&&(e.initialStylesByElement.delete(this._element),this._startStyles&&(R(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(R(this._element,this._endStyles),this._endStyles=null),P(this._element,this._initialStyles),this._state=3)},e.initialStylesByElement=new WeakMap,e}();function Qe(e){for(var t=null,n=Object.keys(e),r=0;r=this._delay&&n>=this._duration&&this.finish()},e.prototype.finish=function(){this._finished||(this._finished=!0,this._onDoneFn(),et(this._element,this._eventFn,!0))},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.finish(),function(e,t){var n=nt(e,"").split(","),r=Xe(n,t);if(r>=0){n.splice(r,1);var i=n.join(",");tt(e,"",i)}}(this._element,this._name))},e}();function Ze(e,t,n){tt(e,"PlayState",n,Je(e,t))}function Je(e,t){var n=nt(e,"");return n.indexOf(",")>0?Xe(n.split(","),t):Xe([n],t)}function Xe(e,t){for(var n=0;n=0)return n;return-1}function et(e,t,n){n?e.removeEventListener("animationend",t):e.addEventListener("animationend",t)}function tt(e,t,n,r){var i="animation"+t;if(null!=r){var a=e.style[i];if(a.length){var o=a.split(",");o[r]=n,n=o.join(",")}}e.style[i]=n}function nt(e,t){return e.style["animation"+t]}var rt=function(){function e(e,t,n,r,i,a,o,s){this.element=e,this.keyframes=t,this.animationName=n,this._duration=r,this._delay=i,this._finalStyles=o,this._specialStyles=s,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this.currentSnapshot={},this._state=0,this.easing=a||"linear",this.totalTime=r+i,this._buildStyler()}return e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.destroy=function(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach((function(e){return e()})),this._onDestroyFns=[])},e.prototype._flushDoneFns=function(){this._onDoneFns.forEach((function(e){return e()})),this._onDoneFns=[]},e.prototype._flushStartFns=function(){this._onStartFns.forEach((function(e){return e()})),this._onStartFns=[]},e.prototype.finish=function(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())},e.prototype.setPosition=function(e){this._styler.setPosition(e)},e.prototype.getPosition=function(){return this._styler.getPosition()},e.prototype.hasStarted=function(){return this._state>=2},e.prototype.init=function(){if(!(this._state>=1)){this._state=1;this.element;this._styler.apply(),this._delay&&this._styler.pause()}},e.prototype.play=function(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()},e.prototype.pause=function(){this.init(),this._styler.pause()},e.prototype.restart=function(){this.reset(),this.play()},e.prototype.reset=function(){this._styler.destroy(),this._buildStyler(),this._styler.apply()},e.prototype._buildStyler=function(){var e=this;this._styler=new Ye(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",(function(){return e.finish()}))},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach((function(e){return e()})),t.length=0},e.prototype.beforeDestroy=function(){var e=this;this.init();var t={};if(this.hasStarted()){var n=this._state>=3;Object.keys(this._finalStyles).forEach((function(r){"offset"!=r&&(t[r]=n?e._finalStyles[r]:G(e.element,r))}))}this.currentSnapshot=t},e}(),it=function(e){function t(t,n){var r=e.call(this)||this;return r.element=t,r._startingStyles={},r.__initialized=!1,r._styles=C(n),r}return Object(r.c)(t,e),t.prototype.init=function(){var t=this;!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach((function(e){t._startingStyles[e]=t.element.style[e]})),e.prototype.init.call(this))},t.prototype.play=function(){var t=this;this._startingStyles&&(this.init(),Object.keys(this._styles).forEach((function(e){return t.element.style.setProperty(e,t._styles[e])})),e.prototype.play.call(this))},t.prototype.destroy=function(){var t=this;this._startingStyles&&(Object.keys(this._startingStyles).forEach((function(e){var n=t._startingStyles[e];n?t.element.style.setProperty(e,n):t.element.style.removeProperty(e)})),this._startingStyles=null,e.prototype.destroy.call(this))},t}(i.d),at=function(){function e(){this._count=0,this._head=document.querySelector("head"),this._warningIssued=!1}return e.prototype.validateStyleProperty=function(e){return k(e)},e.prototype.matchesElement=function(e,t){return w(e,t)},e.prototype.containsElement=function(e,t){return _(e,t)},e.prototype.query=function(e,t,n){return j(e,t,n)},e.prototype.computeStyle=function(e,t,n){return window.getComputedStyle(e)[t]},e.prototype.buildKeyframeElement=function(e,t,n){n=n.map((function(e){return C(e)}));var r="@keyframes "+t+" {\n",i="";n.forEach((function(e){i=" ";var t=parseFloat(e.offset);r+=""+i+100*t+"% {\n",i+=" ",Object.keys(e).forEach((function(t){var n=e[t];switch(t){case"offset":return;case"easing":return void(n&&(r+=i+"animation-timing-function: "+n+";\n"));default:return void(r+=""+i+t+": "+n+";\n")}})),r+=i+"}\n"})),r+="}\n";var a=document.createElement("style");return a.innerHTML=r,a},e.prototype.animate=function(e,t,n,r,i,a,o){void 0===a&&(a=[]),o&&this._notifyFaultyScrubber();var s=a.filter((function(e){return e instanceof rt})),l={};H(n,r)&&s.forEach((function(e){var t=e.currentSnapshot;Object.keys(t).forEach((function(e){return l[e]=t[e]}))}));var c=function(e){var t={};if(e){(Array.isArray(e)?e:[e]).forEach((function(e){Object.keys(e).forEach((function(n){"offset"!=n&&"easing"!=n&&(t[n]=e[n])}))}))}return t}(t=K(e,t,l));if(0==n)return new it(e,c);var u="gen_css_kf_"+this._count++,d=this.buildKeyframeElement(e,u,t);document.querySelector("head").appendChild(d);var h=We(e,t),p=new rt(e,t,u,n,r,i,c,h);return p.onDestroy((function(){var e;(e=d).parentNode.removeChild(e)})),p},e.prototype._notifyFaultyScrubber=function(){this._warningIssued||(console.warn("@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\n"," visit http://bit.ly/IWukam to learn more about using the web-animation-js polyfill."),this._warningIssued=!0)},e}();var ot=function(){function e(e,t,n,r){this.element=e,this.keyframes=t,this.options=n,this._specialStyles=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach((function(e){return e()})),this._onDoneFns=[])},e.prototype.init=function(){this._buildPlayer(),this._preparePlayerBeforeStart()},e.prototype._buildPlayer=function(){var e=this;if(!this._initialized){this._initialized=!0;var t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",(function(){return e._onFinish()}))}},e.prototype._preparePlayerBeforeStart=function(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()},e.prototype._triggerWebAnimation=function(e,t,n){return e.animate(t,n)},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.play=function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach((function(e){return e()})),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()},e.prototype.pause=function(){this.init(),this.domPlayer.pause()},e.prototype.finish=function(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()},e.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},e.prototype._resetDomPlayerState=function(){this.domPlayer&&this.domPlayer.cancel()},e.prototype.restart=function(){this.reset(),this.play()},e.prototype.hasStarted=function(){return this._started},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach((function(e){return e()})),this._onDestroyFns=[])},e.prototype.setPosition=function(e){this.domPlayer.currentTime=e*this.time},e.prototype.getPosition=function(){return this.domPlayer.currentTime/this.time},Object.defineProperty(e.prototype,"totalTime",{get:function(){return this._delay+this._duration},enumerable:!0,configurable:!0}),e.prototype.beforeDestroy=function(){var e=this,t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach((function(n){"offset"!=n&&(t[n]=e._finished?e._finalKeyframe[n]:G(e.element,n))})),this.currentSnapshot=t},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach((function(e){return e()})),t.length=0},e}(),st=function(){function e(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(ct().toString()),this._cssKeyframesDriver=new at}return e.prototype.validateStyleProperty=function(e){return k(e)},e.prototype.matchesElement=function(e,t){return w(e,t)},e.prototype.containsElement=function(e,t){return _(e,t)},e.prototype.query=function(e,t,n){return j(e,t,n)},e.prototype.computeStyle=function(e,t,n){return window.getComputedStyle(e)[t]},e.prototype.overrideWebAnimationsSupport=function(e){this._isNativeImpl=e},e.prototype.animate=function(e,t,n,r,i,a,o){if(void 0===a&&(a=[]),!o&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(e,t,n,r,i,a);var s={duration:n,delay:r,fill:0==r?"both":"forwards"};i&&(s.easing=i);var l={},c=a.filter((function(e){return e instanceof ot}));H(n,r)&&c.forEach((function(e){var t=e.currentSnapshot;Object.keys(t).forEach((function(e){return l[e]=t[e]}))}));var u=We(e,t=K(e,t=t.map((function(e){return D(e,!1)})),l));return new ot(e,t,s,u)},e}();function lt(){return"function"==typeof ct()}function ct(){return"undefined"!=typeof window&&void 0!==window.document&&Element.prototype.animate||{}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */}).call(this,n(126))},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(2),i=n(55),a=n(21);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],o={};o[e]=t(n),r(r.S+r.F*a((function(){n(1)})),"Object",o)}},function(e,t,n){var r=n(62),i=n(115),a=n(42),o=n(31),s=n(234);e.exports=function(e,t){var n=1==e,l=2==e,c=3==e,u=4==e,d=6==e,h=5==e||d,p=t||s;return function(t,s,f){for(var m,g,y=a(t),b=i(y),v=r(s,f,3),k=o(b.length),w=0,_=n?p(t,k):l?p(t,0):void 0;k>w;w++)if((h||w in b)&&(g=v(m=b[w],w,y),e))if(n)_[w]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:_.push(m)}else if(u)return!1;return d?-1:c||u?u:_}}},,,function(e,t,n){"use strict";n.r(t),n.d(t,"BrowserModule",(function(){return fe})),n.d(t,"BrowserTransferStateModule",(function(){return Te})),n.d(t,"By",(function(){return Oe})),n.d(t,"DomSanitizer",(function(){return ne})),n.d(t,"EVENT_MANAGER_PLUGINS",(function(){return w})),n.d(t,"EventManager",(function(){return _})),n.d(t,"HAMMER_GESTURE_CONFIG",(function(){return V})),n.d(t,"HAMMER_LOADER",(function(){return H})),n.d(t,"HammerGestureConfig",(function(){return K})),n.d(t,"HammerModule",(function(){return Y})),n.d(t,"Meta",(function(){return ge})),n.d(t,"Title",(function(){return be})),n.d(t,"TransferState",(function(){return Ee})),n.d(t,"VERSION",(function(){return ze})),n.d(t,"disableDebugTools",(function(){return je})),n.d(t,"enableDebugTools",(function(){return _e})),n.d(t,"makeStateKey",(function(){return xe})),n.d(t,"platformBrowser",(function(){return he})),n.d(t,"ɵBROWSER_SANITIZATION_PROVIDERS",(function(){return de})),n.d(t,"ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__",(function(){return ue})),n.d(t,"ɵBrowserDomAdapter",(function(){return l})),n.d(t,"ɵBrowserGetTestability",(function(){return p})),n.d(t,"ɵDomEventsPlugin",(function(){return F})),n.d(t,"ɵDomRendererFactory2",(function(){return P})),n.d(t,"ɵDomSanitizerImpl",(function(){return ie})),n.d(t,"ɵDomSharedStylesHost",(function(){return x})),n.d(t,"ɵELEMENT_PROBE_PROVIDERS",(function(){return k})),n.d(t,"ɵELEMENT_PROBE_PROVIDERS__POST_R3__",(function(){return b})),n.d(t,"ɵHAMMER_PROVIDERS__POST_R3__",(function(){return G})),n.d(t,"ɵHammerGesturesPlugin",(function(){return W})),n.d(t,"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS",(function(){return ce})),n.d(t,"ɵKeyEventsPlugin",(function(){return te})),n.d(t,"ɵNAMESPACE_URIS",(function(){return E})),n.d(t,"ɵSharedStylesHost",(function(){return C})),n.d(t,"ɵTRANSITION_ID",(function(){return u})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_a",(function(){return oe})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_b",(function(){return se})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_c",(function(){return pe})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_d",(function(){return me})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_e",(function(){return ye})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_f",(function(){return Se})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_g",(function(){return j})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_h",(function(){return Q})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_i",(function(){return $})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_j",(function(){return re})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_k",(function(){return d})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_l",(function(){return h})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_m",(function(){return y})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_n",(function(){return v})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_o",(function(){return s})),n.d(t,"ɵescapeHtml",(function(){return Ce})),n.d(t,"ɵflattenStyles",(function(){return A})),n.d(t,"ɵinitDomAdapter",(function(){return ae})),n.d(t,"ɵshimContentAttribute",(function(){return I})),n.d(t,"ɵshimHostAttribute",(function(){return D}));var r=n(1),i=n(4),a=n(0);n.d(t,"ɵgetDOM",(function(){return i["ɵgetDOM"]})); +/** + * @license Angular v9.1.12 + * (c) 2010-2020 Google LLC. https://angular.io/ + * License: MIT + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var o,s=function(e){function t(){return e.call(this)||this}return Object(r.c)(t,e),t.prototype.supportsDOMEvents=function(){return!0},t}(i["ɵDomAdapter"]),l=(function(){if(a["ɵglobal"].Node)a["ɵglobal"].Node.prototype.contains}(),function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t.makeCurrent=function(){Object(i["ɵsetRootDomAdapter"])(new t)},t.prototype.getProperty=function(e,t){return e[t]},t.prototype.log=function(e){window.console&&window.console.log&&window.console.log(e)},t.prototype.logGroup=function(e){window.console&&window.console.group&&window.console.group(e)},t.prototype.logGroupEnd=function(){window.console&&window.console.groupEnd&&window.console.groupEnd()},t.prototype.onAndCancel=function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}},t.prototype.dispatchEvent=function(e,t){e.dispatchEvent(t)},t.prototype.remove=function(e){return e.parentNode&&e.parentNode.removeChild(e),e},t.prototype.getValue=function(e){return e.value},t.prototype.createElement=function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)},t.prototype.createHtmlDocument=function(){return document.implementation.createHTMLDocument("fakeTitle")},t.prototype.getDefaultDocument=function(){return document},t.prototype.isElementNode=function(e){return e.nodeType===Node.ELEMENT_NODE},t.prototype.isShadowRoot=function(e){return e instanceof DocumentFragment},t.prototype.getGlobalEventTarget=function(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null},t.prototype.getHistory=function(){return window.history},t.prototype.getLocation=function(){return window.location},t.prototype.getBaseHref=function(e){var t=function(){if(!c&&!(c=document.querySelector("base")))return null;return c.getAttribute("href")}();return null==t?null:function(e){o||(o=document.createElement("a"));return o.setAttribute("href",e),"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(t)},t.prototype.resetBaseElement=function(){c=null},t.prototype.getUserAgent=function(){return window.navigator.userAgent},t.prototype.performanceNow=function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()},t.prototype.supportsCookies=function(){return!0},t.prototype.getCookie=function(e){return Object(i["ɵparseCookieValue"])(document.cookie,e)},t}(s)),c=null; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var u=new a.InjectionToken("TRANSITION_ID");function d(e,t,n){return function(){n.get(a.ApplicationInitStatus).donePromise.then((function(){var n=Object(i["ɵgetDOM"])();Array.prototype.slice.apply(t.querySelectorAll("style[ng-transition]")).filter((function(t){return t.getAttribute("ng-transition")===e})).forEach((function(e){return n.remove(e)}))}))}}var h=[{provide:a.APP_INITIALIZER,useFactory:d,deps:[u,i.DOCUMENT,a.Injector],multi:!0}],p=function(){function e(){}return e.init=function(){Object(a.setTestabilityGetter)(new e)},e.prototype.addToWindow=function(e){a["ɵglobal"].getAngularTestability=function(t,n){void 0===n&&(n=!0);var r=e.findTestabilityInTree(t,n);if(null==r)throw new Error("Could not find testability for element.");return r},a["ɵglobal"].getAllAngularTestabilities=function(){return e.getAllTestabilities()},a["ɵglobal"].getAllAngularRootElements=function(){return e.getAllRootElements()};a["ɵglobal"].frameworkStabilizers||(a["ɵglobal"].frameworkStabilizers=[]),a["ɵglobal"].frameworkStabilizers.push((function(e){var t=a["ɵglobal"].getAllAngularTestabilities(),n=t.length,r=!1,i=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(i)}))}))},e.prototype.findTestabilityInTree=function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Object(i["ɵgetDOM"])().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function f(e,t){"undefined"!=typeof COMPILED&&COMPILED||((a["ɵglobal"].ng=a["ɵglobal"].ng||{})[e]=t)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var m={ApplicationRef:a.ApplicationRef,NgZone:a.NgZone};function g(e){return Object(a["ɵgetDebugNodeR2"])(e)}function y(e){return f("probe",g),f("coreTokens",Object(r.a)(Object(r.a)({},m),(e||[]).reduce((function(e,t){return e[t.name]=t.token,e}),{}))),function(){return g}}var b=[],v=[{provide:a.APP_INITIALIZER,useFactory:y,deps:[[a.NgProbeToken,new a.Optional]],multi:!0}],k=b,w=new a.InjectionToken("EventManagerPlugins"),_=function(){function e(e,t){var n=this;this._zone=t,this._eventNameToPlugin=new Map,e.forEach((function(e){return e.manager=n})),this._plugins=e.slice().reverse()}return e.prototype.addEventListener=function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)},e.prototype.addGlobalEventListener=function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)},e.prototype.getZone=function(){return this._zone},e.prototype._findPluginFor=function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r-1},(t=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.e)(1,Object(a.Inject)(V)),Object(r.e)(3,Object(a.Optional)()),Object(r.e)(3,Object(a.Inject)(H)),Object(r.d)("design:paramtypes",[Object,K,a["ɵConsole"],Object])],t)).ɵfac=function(e){return new(e||t)(a["ɵɵinject"](i.DOCUMENT),a["ɵɵinject"](V),a["ɵɵinject"](a["ɵConsole"]),a["ɵɵinject"](H,8))},t.ɵprov=a["ɵɵdefineInjectable"]({token:t,factory:function(e){return t.ɵfac(e)}}),t}(j),G=[],Q=[{provide:w,useClass:W,multi:!0,deps:[i.DOCUMENT,V,a["ɵConsole"],[new a.Optional,H]]},{provide:V,useClass:K,deps:[]}],$=G,Y=function(){function e(){}return e.ɵmod=a["ɵɵdefineNgModule"]({type:e}),e.ɵinj=a["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:Q}),e}(),Z=["alt","control","meta","shift"],J={"\b":"Backspace","\t":"Tab","":"Delete","":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},X={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","":"NumLock"},ee={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},te=function(e){function t(t){return e.call(this,t)||this}var n;return Object(r.c)(t,e),n=t,t.prototype.supports=function(e){return null!=n.parseEventName(e)},t.prototype.addEventListener=function(e,t,r){var a=n.parseEventName(t),o=n.eventCallback(a.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Object(i["ɵgetDOM"])().onAndCancel(e,a.domEventName,o)}))},t.parseEventName=function(e){var t=e.toLowerCase().split("."),r=t.shift();if(0===t.length||"keydown"!==r&&"keyup"!==r)return null;var i=n._normalizeKey(t.pop()),a="";if(Z.forEach((function(e){var n=t.indexOf(e);n>-1&&(t.splice(n,1),a+=e+".")})),a+=i,0!=t.length||0===i.length)return null;var o={};return o.domEventName=r,o.fullKey=a,o},t.getEventFullKey=function(e){var t="",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&X.hasOwnProperty(t)&&(t=X[t]))}return J[t]||t}(e);return" "===(n=n.toLowerCase())?n="space":"."===n&&(n="dot"),Z.forEach((function(r){r!=n&&((0,ee[r])(e)&&(t+=r+"."))})),t+=n},t.eventCallback=function(e,t,r){return function(i){n.getEventFullKey(i)===e&&r.runGuarded((function(){return t(i)}))}},t._normalizeKey=function(e){switch(e){case"esc":return"escape";default:return e}},(t=n=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.d)("design:paramtypes",[Object])],t)).ɵfac=function(e){return new(e||t)(a["ɵɵinject"](i.DOCUMENT))},t.ɵprov=a["ɵɵdefineInjectable"]({token:t,factory:function(e){return t.ɵfac(e)}}),t}(j);var ne=function(){function e(){}return e.ɵprov=Object(a["ɵɵdefineInjectable"])({factory:function(){return Object(a["ɵɵinject"])(ie)},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)},e}();function re(e){return new ie(e.get(i.DOCUMENT))}var ie=function(e){function t(t){var n=e.call(this)||this;return n._doc=t,n}return Object(r.c)(t,e),t.prototype.sanitize=function(e,t){if(null==t)return null;switch(e){case a.SecurityContext.NONE:return t;case a.SecurityContext.HTML:return Object(a["ɵallowSanitizationBypassAndThrow"])(t,"HTML")?Object(a["ɵunwrapSafeValue"])(t):Object(a["ɵ_sanitizeHtml"])(this._doc,String(t));case a.SecurityContext.STYLE:return Object(a["ɵallowSanitizationBypassAndThrow"])(t,"Style")?Object(a["ɵunwrapSafeValue"])(t):Object(a["ɵ_sanitizeStyle"])(t);case a.SecurityContext.SCRIPT:if(Object(a["ɵallowSanitizationBypassAndThrow"])(t,"Script"))return Object(a["ɵunwrapSafeValue"])(t);throw new Error("unsafe value used in a script context");case a.SecurityContext.URL:Object(a["ɵgetSanitizationBypassType"])(t);return Object(a["ɵallowSanitizationBypassAndThrow"])(t,"URL")?Object(a["ɵunwrapSafeValue"])(t):Object(a["ɵ_sanitizeUrl"])(String(t));case a.SecurityContext.RESOURCE_URL:if(Object(a["ɵallowSanitizationBypassAndThrow"])(t,"ResourceURL"))return Object(a["ɵunwrapSafeValue"])(t);throw new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+e+" (see http://g.co/ng/security#xss)")}},t.prototype.bypassSecurityTrustHtml=function(e){return Object(a["ɵbypassSanitizationTrustHtml"])(e)},t.prototype.bypassSecurityTrustStyle=function(e){return Object(a["ɵbypassSanitizationTrustStyle"])(e)},t.prototype.bypassSecurityTrustScript=function(e){return Object(a["ɵbypassSanitizationTrustScript"])(e)},t.prototype.bypassSecurityTrustUrl=function(e){return Object(a["ɵbypassSanitizationTrustUrl"])(e)},t.prototype.bypassSecurityTrustResourceUrl=function(e){return Object(a["ɵbypassSanitizationTrustResourceUrl"])(e)},t.ɵprov=Object(a["ɵɵdefineInjectable"])({factory:function(){return re(Object(a["ɵɵinject"])(a.INJECTOR))},token:t,providedIn:"root"}),(t=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.d)("design:paramtypes",[Object])],t)).ɵfac=function(e){return new(e||t)(a["ɵɵinject"](i.DOCUMENT))},t}(ne); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ae(){l.makeCurrent(),p.init()}function oe(){return new a.ErrorHandler}function se(){return Object(a["ɵsetDocument"])(document),document}var le=i["ɵPLATFORM_BROWSER_ID"],ce=[{provide:a.PLATFORM_ID,useValue:le},{provide:a.PLATFORM_INITIALIZER,useValue:ae,multi:!0},{provide:i.DOCUMENT,useFactory:se,deps:[]}],ue=(a.Sanitizer,i.DOCUMENT,[]),de=ue,he=Object(a.createPlatformFactory)(a.platformCore,"browser",ce),pe=[de,{provide:a["ɵINJECTOR_SCOPE"],useValue:"root"},{provide:a.ErrorHandler,useFactory:oe,deps:[]},{provide:w,useClass:F,multi:!0,deps:[i.DOCUMENT,a.NgZone,a.PLATFORM_ID]},{provide:w,useClass:te,multi:!0,deps:[i.DOCUMENT]},$,{provide:P,useClass:P,deps:[_,x,a.APP_ID]},{provide:a.RendererFactory2,useExisting:P},{provide:C,useExisting:x},{provide:x,useClass:x,deps:[i.DOCUMENT]},{provide:a.Testability,useClass:a.Testability,deps:[a.NgZone]},{provide:_,useClass:_,deps:[w,a.NgZone]},k],fe=function(){function e(e){if(e)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}var t;return t=e,e.withServerTransition=function(e){return{ngModule:t,providers:[{provide:a.APP_ID,useValue:e.appId},{provide:u,useExisting:a.APP_ID},h]}},(e=t=Object(r.b)([Object(r.e)(0,Object(a.Optional)()),Object(r.e)(0,Object(a.SkipSelf)()),Object(r.e)(0,Object(a.Inject)(t)),Object(r.d)("design:paramtypes",[Object])],e)).ɵmod=a["ɵɵdefineNgModule"]({type:e}),e.ɵinj=a["ɵɵdefineInjector"]({factory:function(n){return new(n||e)(a["ɵɵinject"](t,12))},providers:pe,imports:[i.CommonModule,a.ApplicationModule]}),("undefined"==typeof ngJitMode||ngJitMode)&&a["ɵɵsetNgModuleScope"](e,{exports:function(){return[i.CommonModule,a.ApplicationModule]}}),e}();function me(){return new ge(Object(a["ɵɵinject"])(i.DOCUMENT))}var ge=function(){function e(e){this._doc=e,this._dom=Object(i["ɵgetDOM"])()}return e.prototype.addTag=function(e,t){return void 0===t&&(t=!1),e?this._getOrCreateElement(e,t):null},e.prototype.addTags=function(e,t){var n=this;return void 0===t&&(t=!1),e?e.reduce((function(e,r){return r&&e.push(n._getOrCreateElement(r,t)),e}),[]):[]},e.prototype.getTag=function(e){return e&&this._doc.querySelector("meta["+e+"]")||null},e.prototype.getTags=function(e){if(!e)return[];var t=this._doc.querySelectorAll("meta["+e+"]");return t?[].slice.call(t):[]},e.prototype.updateTag=function(e,t){if(!e)return null;t=t||this._parseSelector(e);var n=this.getTag(t);return n?this._setMetaElementAttributes(e,n):this._getOrCreateElement(e,!0)},e.prototype.removeTag=function(e){this.removeTagElement(this.getTag(e))},e.prototype.removeTagElement=function(e){e&&this._dom.remove(e)},e.prototype._getOrCreateElement=function(e,t){if(void 0===t&&(t=!1),!t){var n=this._parseSelector(e),r=this.getTag(n);if(r&&this._containsAttributes(e,r))return r}var i=this._dom.createElement("meta");return this._setMetaElementAttributes(e,i),this._doc.getElementsByTagName("head")[0].appendChild(i),i},e.prototype._setMetaElementAttributes=function(e,t){return Object.keys(e).forEach((function(n){return t.setAttribute(n,e[n])})),t},e.prototype._parseSelector=function(e){var t=e.name?"name":"property";return t+'="'+e[t]+'"'},e.prototype._containsAttributes=function(e,t){return Object.keys(e).every((function(n){return t.getAttribute(n)===e[n]}))},e.ɵprov=Object(a["ɵɵdefineInjectable"])({factory:me,token:e,providedIn:"root"}),(e=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.d)("design:paramtypes",[Object])],e)).ɵfac=function(t){return new(t||e)(a["ɵɵinject"](i.DOCUMENT))},e}();function ye(){return new be(Object(a["ɵɵinject"])(i.DOCUMENT))}var be=function(){function e(e){this._doc=e}return e.prototype.getTitle=function(){return this._doc.title},e.prototype.setTitle=function(e){this._doc.title=e||""},e.ɵprov=Object(a["ɵɵdefineInjectable"])({factory:ye,token:e,providedIn:"root"}),(e=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.d)("design:paramtypes",[Object])],e)).ɵfac=function(t){return new(t||e)(a["ɵɵinject"](i.DOCUMENT))},e}(),ve="undefined"!=typeof window&&window||{},ke=function(e,t){this.msPerTick=e,this.numTicks=t},we=function(){function e(e){this.appRef=e.injector.get(a.ApplicationRef)}return e.prototype.timeChangeDetection=function(e){var t=e&&e.record,n=null!=ve.console.profile;t&&n&&ve.console.profile("Change Detection");for(var r=Object(i["ɵgetDOM"])().performanceNow(),a=0;a<5||Object(i["ɵgetDOM"])().performanceNow()-r<500;)this.appRef.tick(),a++;var o=Object(i["ɵgetDOM"])().performanceNow();t&&n&&ve.console.profileEnd("Change Detection");var s=(o-r)/a;return ve.console.log("ran "+a+" change detection cycles"),ve.console.log(s.toFixed(2)+" ms per check"),new ke(s,a)},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function _e(e){return f("profiler",new we(e)),e}function je(){f("profiler",null)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ce(e){var t={"&":"&a;",'"':"&q;","'":"&s;","<":"&l;",">":"&g;"};return e.replace(/[&"'<>]/g,(function(e){return t[e]}))}function xe(e){return e}var Ee=function(){function e(){this.store={},this.onSerializeCallbacks={}}var t;return t=e,e.init=function(e){var n=new t;return n.store=e,n},e.prototype.get=function(e,t){return void 0!==this.store[e]?this.store[e]:t},e.prototype.set=function(e,t){this.store[e]=t},e.prototype.remove=function(e){delete this.store[e]},e.prototype.hasKey=function(e){return this.store.hasOwnProperty(e)},e.prototype.onSerialize=function(e,t){this.onSerializeCallbacks[e]=t},e.prototype.toJson=function(){for(var e in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(e))try{this.store[e]=this.onSerializeCallbacks[e]()}catch(t){console.warn("Exception in onSerialize callback: ",t)}return JSON.stringify(this.store)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=a["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function Se(e,t){var n,r,i=e.getElementById(t+"-state"),a={};if(i&&i.textContent)try{a=JSON.parse((n=i.textContent,r={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"},n.replace(/&[^;]+;/g,(function(e){return r[e]}))))}catch(o){console.warn("Exception while restoring TransferState for app "+t,o)}return Ee.init(a)}var Te=function(){function e(){}return e.ɵmod=a["ɵɵdefineNgModule"]({type:e}),e.ɵinj=a["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:[{provide:Ee,useFactory:Se,deps:[i.DOCUMENT,a.APP_ID]}]}),e}(),Oe=function(){function e(){}return e.all=function(){return function(){return!0}},e.css=function(e){return function(t){return null!=t.nativeElement&&function(e,t){if(Object(i["ɵgetDOM"])().isElementNode(e))return e.matches&&e.matches(t)||e.msMatchesSelector&&e.msMatchesSelector(t)||e.webkitMatchesSelector&&e.webkitMatchesSelector(t);return!1} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(t.nativeElement,e)}},e.directive=function(e){return function(t){return-1!==t.providerTokens.indexOf(e)}},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ze=new a.Version("9.1.12"); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */},function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return o})),n.d(t,"a",(function(){return s}));var r,i=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=function(e){function t(t,n){var r=this,i=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=i,r}return i(t,e),t}(Error),o=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return i(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return i(t,e),t}(Error)},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return l})),n.d(t,"c",(function(){return c}));var r=n(1),i=n(28),a=n(32),o=n(218),s=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,n}return r.c(t,e),t.prototype._next=function(e){this.parent.notifyNext(e)},t.prototype._error=function(e){this.parent.notifyError(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(),this.unsubscribe()},t}(i.a),l=(i.a,function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.c(t,e),t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(){this.destination.complete()},t}(i.a));i.a;function c(e,t){if(!t.closed)return e instanceof a.a?e.subscribe(t):Object(o.a)(e)(t)}},function(e,t,n){var r=n(22);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";if(n(35)){var r=n(86),i=n(20),a=n(21),o=n(2),s=n(138),l=n(187),c=n(62),u=n(99),d=n(85),h=n(56),p=n(101),f=n(63),m=n(31),g=n(245),y=n(91),b=n(75),v=n(50),k=n(96),w=n(22),_=n(42),j=n(183),C=n(83),x=n(57),E=n(92).f,S=n(133),T=n(89),O=n(27),z=n(69),I=n(150),D=n(125),A=n(204),N=n(110),P=n(134),R=n(98),M=n(184),q=n(236),B=n(33),L=n(59),F=B.f,U=L.f,V=i.RangeError,H=i.TypeError,K=i.Uint8Array,W=Array.prototype,G=l.ArrayBuffer,Q=l.DataView,$=z(0),Y=z(2),Z=z(3),J=z(4),X=z(5),ee=z(6),te=I(!0),ne=I(!1),re=A.values,ie=A.keys,ae=A.entries,oe=W.lastIndexOf,se=W.reduce,le=W.reduceRight,ce=W.join,ue=W.sort,de=W.slice,he=W.toString,pe=W.toLocaleString,fe=O("iterator"),me=O("toStringTag"),ge=T("typed_constructor"),ye=T("def_constructor"),be=s.CONSTR,ve=s.TYPED,ke=s.VIEW,we=z(1,(function(e,t){return Ee(D(e,e[ye]),t)})),_e=a((function(){return 1===new K(new Uint16Array([1]).buffer)[0]})),je=!!K&&!!K.prototype.set&&a((function(){new K(1).set({})})),Ce=function(e,t){var n=f(e);if(n<0||n%t)throw V("Wrong offset!");return n},xe=function(e){if(w(e)&&ve in e)return e;throw H(e+" is not a typed array!")},Ee=function(e,t){if(!w(e)||!(ge in e))throw H("It is not a typed array constructor!");return new e(t)},Se=function(e,t){return Te(D(e,e[ye]),t)},Te=function(e,t){for(var n=0,r=t.length,i=Ee(e,r);r>n;)i[n]=t[n++];return i},Oe=function(e,t,n){F(e,t,{get:function(){return this._d[n]}})},ze=function(e){var t,n,r,i,a,o,s=_(e),l=arguments.length,u=l>1?arguments[1]:void 0,d=void 0!==u,h=S(s);if(null!=h&&!j(h)){for(o=h.call(s),r=[],t=0;!(a=o.next()).done;t++)r.push(a.value);s=r}for(d&&l>2&&(u=c(u,arguments[2],2)),t=0,n=m(s.length),i=Ee(this,n);n>t;t++)i[t]=d?u(s[t],t):s[t];return i},Ie=function(){for(var e=0,t=arguments.length,n=Ee(this,t);t>e;)n[e]=arguments[e++];return n},De=!!K&&a((function(){pe.call(new K(1))})),Ae=function(){return pe.apply(De?de.call(xe(this)):xe(this),arguments)},Ne={copyWithin:function(e,t){return q.call(xe(this),e,t,arguments.length>2?arguments[2]:void 0)},every:function(e){return J(xe(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return M.apply(xe(this),arguments)},filter:function(e){return Se(this,Y(xe(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return X(xe(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ee(xe(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){$(xe(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return ne(xe(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return te(xe(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return ce.apply(xe(this),arguments)},lastIndexOf:function(e){return oe.apply(xe(this),arguments)},map:function(e){return we(xe(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return se.apply(xe(this),arguments)},reduceRight:function(e){return le.apply(xe(this),arguments)},reverse:function(){for(var e,t=xe(this).length,n=Math.floor(t/2),r=0;r1?arguments[1]:void 0)},sort:function(e){return ue.call(xe(this),e)},subarray:function(e,t){var n=xe(this),r=n.length,i=y(e,r);return new(D(n,n[ye]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,m((void 0===t?r:y(t,r))-i))}},Pe=function(e,t){return Se(this,de.call(xe(this),e,t))},Re=function(e){xe(this);var t=Ce(arguments[1],1),n=this.length,r=_(e),i=m(r.length),a=0;if(i+t>n)throw V("Wrong length!");for(;a255?255:255&r),i.v[p](n*t+i.o,r,_e)}(this,n,e)},enumerable:!0})};v?(f=n((function(e,n,r,i){u(e,f,c,"_d");var a,o,s,l,d=0,p=0;if(w(n)){if(!(n instanceof G||"ArrayBuffer"==(l=k(n))||"SharedArrayBuffer"==l))return ve in n?Te(f,n):ze.call(f,n);a=n,p=Ce(r,t);var y=n.byteLength;if(void 0===i){if(y%t)throw V("Wrong length!");if((o=y-p)<0)throw V("Wrong length!")}else if((o=m(i)*t)+p>y)throw V("Wrong length!");s=o/t}else s=g(n),a=new G(o=s*t);for(h(e,"_d",{b:a,o:p,l:o,e:s,v:new Q(a)});ddocument.F=Object<\/script>"),e.close(),l=e.F;r--;)delete l.prototype[a[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[o]=e):n=l(),void 0===t?n:i(n,t)}},,function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=!1},,,function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(223),i=n(173);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(63),i=Math.max,a=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):a(e,t)}},function(e,t,n){var r=n(223),i=n(173).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},,,function(e,t,n){"use strict";(function(e){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +var r=n(824),i=n(825),a=n(542);function o(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function f(e,t){if(l.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return L(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return F(e).length;default:if(r)return L(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return E(this,t,n);case"ascii":return S(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return x(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"==typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){var a,o=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(a=n;as&&(n=s-l),a=n;a>=0;a--){for(var d=!0,h=0;hi&&(r=i):r=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function x(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function E(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+d<=n)switch(d){case 1:c<128&&(u=c);break;case 2:128==(192&(a=e[i+1]))&&(l=(31&c)<<6|63&a)>127&&(u=l);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(l=(15&c)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},l.prototype.compare=function(e,t,n,r,i){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),c=this.slice(r,i),u=e.slice(t,n),d=0;di)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return v(this,e,t,n);case"utf8":case"utf-8":return k(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return _(this,e,t,n);case"base64":return j(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function S(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",a=t;an)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,i,a){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function N(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function P(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function R(e,t,n,r,a){return a||P(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function M(e,t,n,r,a){return a||P(e,0,n,8),i.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},l.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a=(i*=128)&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},l.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+i]=e/a&255;return t+n},l.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,n){return R(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return R(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return M(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return M(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(a<1e3||!l.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function F(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(q,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function U(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(102))},function(e,t,n){var r=n(67),i=n(27)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),i))?n:a?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,n){var r=n(27)("unscopables"),i=Array.prototype;null==i[r]&&n(56)(i,r,{}),e.exports=function(e){i[r][e]=!0}},function(e,t,n){"use strict";var r=n(20),i=n(33),a=n(35),o=n(27)("species");e.exports=function(e){var t=r[e];a&&t&&!t[o]&&i.f(t,o,{configurable:!0,get:function(){return this}})}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(62),i=n(233),a=n(183),o=n(15),s=n(31),l=n(133),c={},u={};(t=e.exports=function(e,t,n,d,h){var p,f,m,g,y=h?function(){return e}:l(e),b=r(n,d,t?2:1),v=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(a(y)){for(p=s(e.length);p>v;v++)if((g=t?b(o(f=e[v])[0],f[1]):b(e[v]))===c||g===u)return g}else for(m=y.call(e);!(f=m.next()).done;)if((g=i(m,b,f.value,t))===c||g===u)return g}).BREAK=c,t.RETURN=u},function(e,t,n){var r=n(51);e.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n);return e}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}e.exports=n},,,,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;r=e},get useDeprecatedSynchronousErrorHandling(){return r}}},function(e,t,n){var r=n(33).f,i=n(50),a=n(27)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t){e.exports={}},function(e,t,n){var r=n(22);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},,,,function(e,t,n){var r=n(67);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(2),i=n(76),a=n(21),o=n(176),s="["+o+"]",l=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),u=function(e,t,n){var i={},s=a((function(){return!!o[e]()||"​…"!="​…"[e]()})),l=i[e]=s?t(d):o[e];n&&(i[n]=l),r(r.P+r.F*s,"String",i)},d=u.trim=function(e,t){return e=String(i(e)),1&t&&(e=e.replace(l,"")),2&t&&(e=e.replace(c,"")),e};e.exports=u},,,function(e,t,n){var r=n(34);n(194),n(731),n(732),n(44),r.random&&r.random.getBytes?e.exports=r.random:function(t){var n={},i=new Array(4),a=r.util.createBuffer();function o(){var e=r.prng.create(n);return e.getBytes=function(t,n){return e.generate(t,n)},e.getBytesSync=function(t){return e.generate(t)},e}n.formatKey=function(e){var t=r.util.createBuffer(e);return(e=new Array(4))[0]=t.getInt32(),e[1]=t.getInt32(),e[2]=t.getInt32(),e[3]=t.getInt32(),r.aes._expandKey(e,!1)},n.formatSeed=function(e){var t=r.util.createBuffer(e);return(e=new Array(4))[0]=t.getInt32(),e[1]=t.getInt32(),e[2]=t.getInt32(),e[3]=t.getInt32(),e},n.cipher=function(e,t){return r.aes._updateBlock(e,t,i,!1),a.putInt32(i[0]),a.putInt32(i[1]),a.putInt32(i[2]),a.putInt32(i[3]),a.getBytes()},n.increment=function(e){return++e[3],e},n.md=r.md.sha256;var s=o(),l=null,c=r.util.globalScope,u=c.crypto||c.msCrypto;if(u&&u.getRandomValues&&(l=function(e){return u.getRandomValues(e)}),r.options.usePureJavaScript||!r.util.isNodejs&&!l){if("undefined"==typeof window||window.document,s.collectInt(+new Date,32),"undefined"!=typeof navigator){var d="";for(var h in navigator)try{"string"==typeof navigator[h]&&(d+=navigator[h])}catch(p){}s.collect(d),d=null}t&&(t().mousemove((function(e){s.collectInt(e.clientX,16),s.collectInt(e.clientY,16)})),t().keypress((function(e){s.collectInt(e.charCode,8)})))}if(r.random)for(var h in s)r.random[h]=s[h];else r.random=s;r.random.createInstance=o,e.exports=r.random}("undefined"!=typeof jQuery?jQuery:null)},function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return a}));var r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n1)for(var n=1;nt){var r=new Error("Too few bytes to parse DER.");throw r.available=e.length(),r.remaining=t,r.requested=n,r}}i.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},i.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30},i.create=function(e,t,n,a,o){if(r.util.isArray(a)){for(var s=[],l=0;ln){if(o.strict){var f=new Error("Too few bytes to read ASN.1 value.");throw f.available=t.length(),f.remaining=n,f.requested=p,f}p=n}var m=32==(32&l);if(m)if(d=[],void 0===p)for(;;){if(a(t,n,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),n-=2;break}s=t.length(),d.push(e(t,n,r+1,o)),n-=s-t.length()}else for(;p>0;)s=t.length(),d.push(e(t,p,r+1,o)),n-=s-t.length(),p-=s-t.length();void 0===d&&c===i.Class.UNIVERSAL&&u===i.Type.BITSTRING&&(h=t.bytes(p));if(void 0===d&&o.decodeBitStrings&&c===i.Class.UNIVERSAL&&u===i.Type.BITSTRING&&p>1){var g=t.read,y=n,b=0;if(u===i.Type.BITSTRING&&(a(t,n,1),b=t.getByte(),n--),0===b)try{s=t.length();var v={verbose:o.verbose,strict:!0,decodeBitStrings:!0},k=e(t,n,r+1,v),w=s-t.length();n-=w,u==i.Type.BITSTRING&&w++;var _=k.tagClass;w!==p||_!==i.Class.UNIVERSAL&&_!==i.Class.CONTEXT_SPECIFIC||(d=[k])}catch(C){}void 0===d&&(t.read=g,n=y)}if(void 0===d){if(void 0===p){if(o.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");p=n}if(u===i.Type.BMPSTRING)for(d="";p>0;p-=2)a(t,n,2),d+=String.fromCharCode(t.getInt16()),n-=2;else d=t.getBytes(p)}var j=void 0===h?null:{bitStringContents:h};return i.create(c,u,m,d,j)}(e,e.length(),0,t)},i.toDer=function(e){var t=r.util.createBuffer(),n=e.tagClass|e.type,a=r.util.createBuffer(),o=!1;if("bitStringContents"in e&&(o=!0,e.original&&(o=i.equals(e,e.original))),o)a.putBytes(e.bitStringContents);else if(e.composed){e.constructed?n|=32:a.putByte(0);for(var s=0;s1&&(0===e.value.charCodeAt(0)&&0==(128&e.value.charCodeAt(1))||255===e.value.charCodeAt(0)&&128==(128&e.value.charCodeAt(1)))?a.putBytes(e.value.substr(1)):a.putBytes(e.value);if(t.putByte(n),a.length()<=127)t.putByte(127&a.length());else{var l=a.length(),c="";do{c+=String.fromCharCode(255&l),l>>>=8}while(l>0);t.putByte(128|c.length);for(s=c.length-1;s>=0;--s)t.putByte(c.charCodeAt(s))}return t.putBuffer(a),t},i.oidToDer=function(e){var t,n,i,a,o=e.split("."),s=r.util.createBuffer();s.putByte(40*parseInt(o[0],10)+parseInt(o[1],10));for(var l=2;l>>=7,t||(a|=128),n.push(a),t=!1}while(i>0);for(var c=n.length-1;c>=0;--c)s.putByte(n[c])}return s},i.derToOid=function(e){var t;"string"==typeof e&&(e=r.util.createBuffer(e));var n=e.getByte();t=Math.floor(n/40)+"."+n%40;for(var i=0;e.length()>0;)i<<=7,128&(n=e.getByte())?i+=127&n:(t+="."+(i+n),i=0);return t},i.utcTimeToDate=function(e){var t=new Date,n=parseInt(e.substr(0,2),10);n=n>=50?1900+n:2e3+n;var r=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),a=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var l=e.charAt(10),c=10;"+"!==l&&"-"!==l&&(s=parseInt(e.substr(10,2),10),c+=2)}if(t.setUTCFullYear(n,r,i),t.setUTCHours(a,o,s,0),c&&("+"===(l=e.charAt(c))||"-"===l)){var u=60*parseInt(e.substr(c+1,2),10)+parseInt(e.substr(c+4,2),10);u*=6e4,"+"===l?t.setTime(+t-u):t.setTime(+t+u)}return t},i.generalizedTimeToDate=function(e){var t=new Date,n=parseInt(e.substr(0,4),10),r=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),o=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),l=0,c=0,u=!1;"Z"===e.charAt(e.length-1)&&(u=!0);var d=e.length-5,h=e.charAt(d);"+"!==h&&"-"!==h||(c=60*parseInt(e.substr(d+1,2),10)+parseInt(e.substr(d+4,2),10),c*=6e4,"+"===h&&(c*=-1),u=!0);return"."===e.charAt(14)&&(l=1e3*parseFloat(e.substr(14),10)),u?(t.setUTCFullYear(n,r,i),t.setUTCHours(a,o,s,l),t.setTime(+t+c)):(t.setFullYear(n,r,i),t.setHours(a,o,s,l)),t},i.dateToUtcTime=function(e){if("string"==typeof e)return e;var t="",n=[];n.push((""+e.getUTCFullYear()).substr(2)),n.push(""+(e.getUTCMonth()+1)),n.push(""+e.getUTCDate()),n.push(""+e.getUTCHours()),n.push(""+e.getUTCMinutes()),n.push(""+e.getUTCSeconds());for(var r=0;r=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var n=new Error("Integer too large; max is 32-bits.");throw n.integer=e,n},i.derToInteger=function(e){"string"==typeof e&&(e=r.util.createBuffer(e));var t=8*e.length();if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)},i.validate=function(e,t,n,a){var o=!1;if(e.tagClass!==t.tagClass&&void 0!==t.tagClass||e.type!==t.type&&void 0!==t.type)a&&(e.tagClass!==t.tagClass&&a.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&a.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));else if(e.constructed===t.constructed||void 0===t.constructed){if(o=!0,t.value&&r.util.isArray(t.value))for(var s=0,l=0;o&&l0&&(a+="\n");for(var s="",l=0;l1?a+="0x"+r.util.bytesToHex(e.value.slice(1)):a+="(none)",e.value.length>0){var h=e.value.charCodeAt(0);1==h?a+=" (1 unused bit shown)":h>1&&(a+=" ("+h+" unused bits shown)")}}else e.type===i.Type.OCTETSTRING?(o.test(e.value)||(a+="("+e.value+") "),a+="0x"+r.util.bytesToHex(e.value)):e.type===i.Type.UTF8?a+=r.util.decodeUtf8(e.value):e.type===i.Type.PRINTABLESTRING||e.type===i.Type.IA5String?a+=e.value:o.test(e.value)?a+="0x"+r.util.bytesToHex(e.value):0===e.value.length?a+="[null]":a+=e.value}return a}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e}()},function(e,t,n){var r=n(55),i=n(20),a=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(86)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(96),i=n(27)("iterator"),a=n(110);e.exports=n(55).getIteratorMethod=function(e){if(null!=e)return e[i]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(27)("iterator"),i=!1;try{var a=[7][r]();a.return=function(){i=!0},Array.from(a,(function(){throw 2}))}catch(o){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var a=[7],s=a[r]();s.next=function(){return{done:n=!0}},a[r]=function(){return s},e(a)}catch(o){}return n}},function(e,t,n){"use strict";var r=n(96),i=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw new TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==r(e))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(e,t)}},function(e,t,n){"use strict";n(237);var r=n(51),i=n(56),a=n(21),o=n(76),s=n(27),l=n(185),c=s("species"),u=!a((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$
")})),d=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var h=s(e),p=!a((function(){var t={};return t[h]=function(){return 7},7!=""[e](t)})),f=p?!a((function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[c]=function(){return n}),n[h](""),!t})):void 0;if(!p||!f||"replace"===e&&!u||"split"===e&&!d){var m=/./[h],g=n(o,h,""[e],(function(e,t,n,r,i){return t.exec===l?p&&!i?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}})),y=g[0],b=g[1];r(String.prototype,e,y),i(RegExp.prototype,h,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}}},function(e,t,n){"use strict";var r=n(20),i=n(2),a=n(51),o=n(101),s=n(82),l=n(100),c=n(99),u=n(22),d=n(21),h=n(134),p=n(109),f=n(177);e.exports=function(e,t,n,m,g,y){var b=r[e],v=b,k=g?"set":"add",w=v&&v.prototype,_={},j=function(e){var t=w[e];a(w,e,"delete"==e||"has"==e?function(e){return!(y&&!u(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return y&&!u(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof v&&(y||w.forEach&&!d((function(){(new v).entries().next()})))){var C=new v,x=C[k](y?{}:-0,1)!=C,E=d((function(){C.has(1)})),S=h((function(e){new v(e)})),T=!y&&d((function(){for(var e=new v,t=5;t--;)e[k](t,t);return!e.has(-0)}));S||((v=t((function(t,n){c(t,v,e);var r=f(new b,t,v);return null!=n&&l(n,g,r[k],r),r}))).prototype=w,w.constructor=v),(E||T)&&(j("delete"),j("has"),g&&j("get")),(T||x)&&j(k),y&&w.clear&&delete w.clear}else v=m.getConstructor(t,e,g,k),o(v.prototype,n),s.NEED=!0;return p(v,e),_[e]=v,i(i.G+i.W+i.F*(v!=b),_),y||m.setStrong(v,e,g),v}},function(e,t,n){for(var r,i=n(20),a=n(56),o=n(89),s=o("typed_array"),l=o("view"),c=!(!i.ArrayBuffer||!i.DataView),u=c,d=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");d<9;)(r=i[h[d++]])?(a(r.prototype,s,!0),a(r.prototype,l,!0)):u=!1;e.exports={ABV:c,CONSTR:u,TYPED:s,VIEW:l}},,,,,,,function(e,t,n){var r=n(34);e.exports=r.md=r.md||{},r.md.algorithms=r.md.algorithms||{}},function(e,t,n){"use strict";function r(e){return"function"==typeof e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"b",(function(){return u})),n.d(t,"a",(function(){return d}));var r=n(1),i=n(32),a=n(28),o=n(54),s=n(130),l=n(304),c=n(197),u=function(e){function t(t){var n=e.call(this,t)||this;return n.destination=t,n}return r.c(t,e),t}(a.a),d=function(e){function t(){var t=e.call(this)||this;return t.observers=[],t.closed=!1,t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return r.c(t,e),t.prototype[c.a]=function(){return new u(this)},t.prototype.lift=function(e){var t=new h(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new s.a;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),i=0;iu;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(67);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(63),i=n(76);e.exports=function(e){return function(t,n){var a,o,s=String(i(t)),l=r(n),c=s.length;return l<0||l>=c?e?"":void 0:(a=s.charCodeAt(l))<55296||a>56319||l+1===c||(o=s.charCodeAt(l+1))<56320||o>57343?e?s.charAt(l):a:e?s.slice(l,l+2):o-56320+(a-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(86),i=n(2),a=n(51),o=n(56),s=n(110),l=n(180),c=n(109),u=n(57),d=n(27)("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,f,m,g,y){l(n,t,f);var b,v,k,w=function(e){if(!h&&e in x)return x[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},_=t+" Iterator",j="values"==m,C=!1,x=e.prototype,E=x[d]||x["@@iterator"]||m&&x[m],S=E||w(m),T=m?j?w("entries"):S:void 0,O="Array"==t&&x.entries||E;if(O&&(k=u(O.call(new e)))!==Object.prototype&&k.next&&(c(k,_,!0),r||"function"==typeof k[d]||o(k,d,p)),j&&E&&"values"!==E.name&&(C=!0,S=function(){return E.call(this)}),r&&!y||!h&&!C&&x[d]||o(x,d,S),s[t]=S,s[_]=p,m)if(b={values:j?S:w("values"),keys:g?S:w("keys"),entries:T},y)for(v in b)v in x||a(x,v,b[v]);else i(i.P+i.F*(h||C),t,b);return b}},function(e,t,n){var r=n(22),i=n(67),a=n(27)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[a])?!!t:"RegExp"==i(e))}},,,,,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}()},function(e,t,n){"use strict";function r(e){return e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}n.d(t,"a",(function(){return i}));var i=r()},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(1),i=n(28);function a(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new o(e,t))}}var o=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.project,this.thisArg))},e}(),s=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.project=n,i.count=0,i.thisArg=r||i,i}return r.c(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)},t}(i.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return a}));var r=n(32),i=new r.a((function(e){return e.complete()}));function a(e){return e?function(e){return new r.a((function(t){return e.schedule((function(){return t.complete()}))}))}(e):i}},function(e,t,n){"use strict";var r=n(32),i=n(218),a=n(54),o=n(129);var s=n(216),l=n(163);var c=n(309),u=n(307);function d(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[o.a]}(e))return function(e,t){return new r.a((function(n){var r=new a.a;return r.add(t.schedule((function(){var i=e[o.a]();r.add(i.subscribe({next:function(e){r.add(t.schedule((function(){return n.next(e)})))},error:function(e){r.add(t.schedule((function(){return n.error(e)})))},complete:function(){r.add(t.schedule((function(){return n.complete()})))}}))}))),r}))}(e,t);if(Object(c.a)(e))return function(e,t){return new r.a((function(n){var r=new a.a;return r.add(t.schedule((function(){return e.then((function(e){r.add(t.schedule((function(){n.next(e),r.add(t.schedule((function(){return n.complete()})))})))}),(function(e){r.add(t.schedule((function(){return n.error(e)})))}))}))),r}))}(e,t);if(Object(u.a)(e))return Object(s.a)(e,t);if(function(e){return e&&"function"==typeof e[l.a]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new r.a((function(n){var r,i=new a.a;return i.add((function(){r&&"function"==typeof r.return&&r.return()})),i.add(t.schedule((function(){r=e[l.a](),i.add(t.schedule((function(){if(!n.closed){var e,t;try{var i=r.next();e=i.value,t=i.done}catch(a){return void n.error(a)}t?n.complete():(n.next(e),this.schedule())}})))}))),i}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}function h(e,t){return t?d(e,t):e instanceof r.a?e:new r.a(Object(i.a)(e))}n.d(t,"a",(function(){return h}))},function(e,t,n){"use strict";var r=n(1),i=function(){function e(t,n){void 0===n&&(n=e.now),this.SchedulerAction=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(n,t)},e.now=function(){return Date.now()},e}();n.d(t,"a",(function(){return a}));var a=function(e){function t(n,r){void 0===r&&(r=i.now);var a=e.call(this,n,(function(){return t.delegate&&t.delegate!==a?t.delegate.now():r()}))||this;return a.actions=[],a.active=!1,a.scheduled=void 0,a}return r.c(t,e),t.prototype.schedule=function(n,r,i){return void 0===r&&(r=0),t.delegate&&t.delegate!==this?t.delegate.schedule(n,r,i):e.prototype.schedule.call(this,n,r,i)},t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(i)},function(e,t,n){"use strict";var r=n(1),i=function(e){function t(t,n){return e.call(this)||this}return r.c(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(n(54).a);n.d(t,"a",(function(){return a}));var a=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return r.c(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!==n&&this.delay===n&&!1===this.pending)return t;clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n=!1,r=void 0;try{this.work(e)}catch(i){n=!0,r=!!i&&i||new Error(i)}if(n)return this.unsubscribe(),r},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,n=t.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(i)},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.write=function(t){return""+t+e.RecordSeparator},e.parse=function(t){if(t[t.length-1]!==e.RecordSeparator)throw new Error("Message is incomplete.");var n=t.split(e.RecordSeparator);return n.pop(),n},e.RecordSeparatorCode=30,e.RecordSeparator=String.fromCharCode(e.RecordSeparatorCode),e}()},,function(e,t,n){var r=n(22),i=n(20).document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,n){var r=n(131)("keys"),i=n(89);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(20).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(22),i=n(15),a=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(62)(Function.call,n(59).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(i){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:a}},function(e,t){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(e,t,n){var r=n(22),i=n(175).set;e.exports=function(e,t,n){var a,o=t.constructor;return o!==n&&"function"==typeof o&&(a=o.prototype)!==n.prototype&&r(a)&&i&&i(e,a),e}},function(e,t){e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t){var n=Math.expm1;e.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:Math.exp(e)-1}:n},function(e,t,n){"use strict";var r=n(83),i=n(85),a=n(109),o={};n(56)(o,n(27)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(o,{next:i(1,n)}),a(e,t+" Iterator")}},function(e,t,n){var r=n(154),i=n(76);e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(e))}},function(e,t,n){var r=n(27)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(i){}}return!0}},function(e,t,n){var r=n(110),i=n(27)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[i]===e)}},function(e,t,n){"use strict";var r=n(42),i=n(91),a=n(31);e.exports=function(e){for(var t=r(this),n=a(t.length),o=arguments.length,s=i(o>1?arguments[1]:void 0,n),l=o>2?arguments[2]:void 0,c=void 0===l?n:i(l,n);c>s;)t[s++]=e;return t}},function(e,t,n){"use strict";var r,i,a=n(124),o=RegExp.prototype.exec,s=String.prototype.replace,l=o,c=(r=/a/,i=/b*/g,o.call(r,"a"),o.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),u=void 0!==/()??/.exec("")[1];(c||u)&&(l=function(e){var t,n,r,i,l=this;return u&&(n=new RegExp("^"+l.source+"$(?!\\s)",a.call(l))),c&&(t=l.lastIndex),r=o.call(l,e),c&&r&&(l.lastIndex=l.global?r.index+r[0].length:t),u&&r&&r.length>1&&s.call(r[0],n,(function(){for(i=1;i>1,u=23===t?x(2,-24)-x(2,-77):0,d=0,h=e<0||0===e&&1/e<0?1:0;for((e=C(e))!=e||e===_?(i=e!=e?1:0,r=l):(r=E(S(e)/T),e*(a=x(2,-r))<1&&(r--,a*=2),(e+=r+c>=1?u/a:u*x(2,1-c))*a>=2&&(r++,a/=2),r+c>=l?(i=0,r=l):r+c>=1?(i=(e*a-1)*x(2,t),r+=c):(i=e*x(2,c-1)*x(2,t),r=0));t>=8;o[d++]=255&i,i/=256,t-=8);for(r=r<0;o[d++]=255&r,r/=256,s-=8);return o[--d]|=128*h,o}function A(e,t,n){var r,i=8*n-t-1,a=(1<>1,s=i-7,l=n-1,c=e[l--],u=127&c;for(c>>=7;s>0;u=256*u+e[l],l--,s-=8);for(r=u&(1<<-s)-1,u>>=-s,s+=t;s>0;r=256*r+e[l],l--,s-=8);if(0===u)u=1-o;else{if(u===a)return r?NaN:c?-_:_;r+=x(2,t),u-=o}return(c?-1:1)*r*x(2,u-t)}function N(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function P(e){return[255&e]}function R(e){return[255&e,e>>8&255]}function M(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function q(e){return D(e,52,8)}function B(e){return D(e,23,4)}function L(e,t,n){m(e.prototype,t,{get:function(){return this[n]}})}function F(e,t,n,r){var i=p(+n);if(i+t>e[z])throw w("Wrong index!");var a=e[O]._b,o=i+e[I],s=a.slice(o,o+t);return r?s:s.reverse()}function U(e,t,n,r,i,a){var o=p(+n);if(o+t>e[z])throw w("Wrong index!");for(var s=e[O]._b,l=o+e[I],c=r(+i),u=0;uW;)(V=K[W++])in b||s(b,V,j[V]);a||(H.constructor=b)}var G=new v(new b(2)),Q=v.prototype.setInt8;G.setInt8(0,2147483648),G.setInt8(1,2147483649),!G.getInt8(0)&&G.getInt8(1)||l(v.prototype,{setInt8:function(e,t){Q.call(this,e,t<<24>>24)},setUint8:function(e,t){Q.call(this,e,t<<24>>24)}},!0)}else b=function(e){u(this,b,"ArrayBuffer");var t=p(e);this._b=g.call(new Array(t),0),this[z]=t},v=function(e,t,n){u(this,v,"DataView"),u(e,b,"DataView");var r=e[z],i=d(t);if(i<0||i>r)throw w("Wrong offset!");if(i+(n=void 0===n?r-i:h(n))>r)throw w("Wrong length!");this[O]=e,this[I]=i,this[z]=n},i&&(L(b,"byteLength","_l"),L(v,"buffer","_b"),L(v,"byteLength","_l"),L(v,"byteOffset","_o")),l(v.prototype,{getInt8:function(e){return F(this,1,e)[0]<<24>>24},getUint8:function(e){return F(this,1,e)[0]},getInt16:function(e){var t=F(this,2,e,arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=F(this,2,e,arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return N(F(this,4,e,arguments[1]))},getUint32:function(e){return N(F(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return A(F(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return A(F(this,8,e,arguments[1]),52,8)},setInt8:function(e,t){U(this,1,e,P,t)},setUint8:function(e,t){U(this,1,e,P,t)},setInt16:function(e,t){U(this,2,e,R,t,arguments[2])},setUint16:function(e,t){U(this,2,e,R,t,arguments[2])},setInt32:function(e,t){U(this,4,e,M,t,arguments[2])},setUint32:function(e,t){U(this,4,e,M,t,arguments[2])},setFloat32:function(e,t){U(this,4,e,B,t,arguments[2])},setFloat64:function(e,t){U(this,8,e,q,t,arguments[2])}});y(b,"ArrayBuffer"),y(v,"DataView"),s(v.prototype,o.VIEW,!0),t.ArrayBuffer=b,t.DataView=v},,,,,function(e,t,n){var r=n(95),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){var r=n(34);function i(e,t){r.cipher.registerAlgorithm(e,(function(){return new r.aes.Algorithm(e,t)}))}n(519),n(727),n(44),e.exports=r.aes=r.aes||{},r.aes.startEncrypting=function(e,t,n,r){var i=f({key:e,output:n,decrypt:!1,mode:r});return i.start(t),i},r.aes.createEncryptionCipher=function(e,t){return f({key:e,output:null,decrypt:!1,mode:t})},r.aes.startDecrypting=function(e,t,n,r){var i=f({key:e,output:n,decrypt:!0,mode:r});return i.start(t),i},r.aes.createDecryptionCipher=function(e,t){return f({key:e,output:null,decrypt:!0,mode:t})},r.aes.Algorithm=function(e,t){u||d();var n=this;n.name=e,n.mode=new t({blockSize:16,cipher:{encrypt:function(e,t){return p(n._w,e,t,!1)},decrypt:function(e,t){return p(n._w,e,t,!0)}}}),n._init=!1},r.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t,n=e.key;if("string"!=typeof n||16!==n.length&&24!==n.length&&32!==n.length){if(r.util.isArray(n)&&(16===n.length||24===n.length||32===n.length)){t=n,n=r.util.createBuffer();for(var i=0;i>>=2;for(i=0;i>8^255&d^99,a[m]=d,o[d]=m,p=(h=e[d])<<24^d<<16^d<<8^d^h,f=((n=e[m])^(r=e[n])^(i=e[r]))<<24^(m^i)<<16^(m^r^i)<<8^m^n^i;for(var y=0;y<4;++y)l[y][m]=p,c[y][d]=f,p=p<<24|p>>>8,f=f<<24|f>>>8;0===m?m=g=1:(m=n^e[e[e[n^i]]],g^=e[e[g]])}}function h(e,t){for(var n,r=e.slice(0),i=1,o=r.length,l=4*(o+6+1),u=o;u>>16&255]<<24^a[n>>>8&255]<<16^a[255&n]<<8^a[n>>>24]^s[i]<<24,i++):o>6&&u%o==4&&(n=a[n>>>24]<<24^a[n>>>16&255]<<16^a[n>>>8&255]<<8^a[255&n]),r[u]=r[u-o]^n;if(t){for(var d,h=c[0],p=c[1],f=c[2],m=c[3],g=r.slice(0),y=(u=0,(l=r.length)-4);u>>24]]^p[a[d>>>16&255]]^f[a[d>>>8&255]]^m[a[255&d]];r=g}return r}function p(e,t,n,r){var i,s,u,d,h,p,f,m,g,y,b,v,k=e.length/4-1;r?(i=c[0],s=c[1],u=c[2],d=c[3],h=o):(i=l[0],s=l[1],u=l[2],d=l[3],h=a),p=t[0]^e[0],f=t[r?3:1]^e[1],m=t[2]^e[2],g=t[r?1:3]^e[3];for(var w=3,_=1;_>>24]^s[f>>>16&255]^u[m>>>8&255]^d[255&g]^e[++w],b=i[f>>>24]^s[m>>>16&255]^u[g>>>8&255]^d[255&p]^e[++w],v=i[m>>>24]^s[g>>>16&255]^u[p>>>8&255]^d[255&f]^e[++w],g=i[g>>>24]^s[p>>>16&255]^u[f>>>8&255]^d[255&m]^e[++w],p=y,f=b,m=v;n[0]=h[p>>>24]<<24^h[f>>>16&255]<<16^h[m>>>8&255]<<8^h[255&g]^e[++w],n[r?3:1]=h[f>>>24]<<24^h[m>>>16&255]<<16^h[g>>>8&255]<<8^h[255&p]^e[++w],n[2]=h[m>>>24]<<24^h[g>>>16&255]<<16^h[p>>>8&255]<<8^h[255&f]^e[++w],n[r?1:3]=h[g>>>24]<<24^h[p>>>16&255]<<16^h[f>>>8&255]<<8^h[255&m]^e[++w]}function f(e){var t,n="AES-"+((e=e||{}).mode||"CBC").toUpperCase(),i=(t=e.decrypt?r.cipher.createDecipher(n,e.key):r.cipher.createCipher(n,e.key)).start;return t.start=function(e,n){var a=null;n instanceof r.util.ByteBuffer&&(a=n,n={}),(n=n||{}).output=a,n.iv=e,i.call(t,n)},t}},function(e,t,n){var r=n(34);r.pki=r.pki||{};var i=e.exports=r.pki.oids=r.oids=r.oids||{};function a(e,t){i[e]=t,i[t]=e}function o(e,t){i[e]=t}a("1.2.840.113549.1.1.1","rsaEncryption"),a("1.2.840.113549.1.1.4","md5WithRSAEncryption"),a("1.2.840.113549.1.1.5","sha1WithRSAEncryption"),a("1.2.840.113549.1.1.7","RSAES-OAEP"),a("1.2.840.113549.1.1.8","mgf1"),a("1.2.840.113549.1.1.9","pSpecified"),a("1.2.840.113549.1.1.10","RSASSA-PSS"),a("1.2.840.113549.1.1.11","sha256WithRSAEncryption"),a("1.2.840.113549.1.1.12","sha384WithRSAEncryption"),a("1.2.840.113549.1.1.13","sha512WithRSAEncryption"),a("1.3.101.112","EdDSA25519"),a("1.2.840.10040.4.3","dsa-with-sha1"),a("1.3.14.3.2.7","desCBC"),a("1.3.14.3.2.26","sha1"),a("2.16.840.1.101.3.4.2.1","sha256"),a("2.16.840.1.101.3.4.2.2","sha384"),a("2.16.840.1.101.3.4.2.3","sha512"),a("1.2.840.113549.2.5","md5"),a("1.2.840.113549.1.7.1","data"),a("1.2.840.113549.1.7.2","signedData"),a("1.2.840.113549.1.7.3","envelopedData"),a("1.2.840.113549.1.7.4","signedAndEnvelopedData"),a("1.2.840.113549.1.7.5","digestedData"),a("1.2.840.113549.1.7.6","encryptedData"),a("1.2.840.113549.1.9.1","emailAddress"),a("1.2.840.113549.1.9.2","unstructuredName"),a("1.2.840.113549.1.9.3","contentType"),a("1.2.840.113549.1.9.4","messageDigest"),a("1.2.840.113549.1.9.5","signingTime"),a("1.2.840.113549.1.9.6","counterSignature"),a("1.2.840.113549.1.9.7","challengePassword"),a("1.2.840.113549.1.9.8","unstructuredAddress"),a("1.2.840.113549.1.9.14","extensionRequest"),a("1.2.840.113549.1.9.20","friendlyName"),a("1.2.840.113549.1.9.21","localKeyId"),a("1.2.840.113549.1.9.22.1","x509Certificate"),a("1.2.840.113549.1.12.10.1.1","keyBag"),a("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag"),a("1.2.840.113549.1.12.10.1.3","certBag"),a("1.2.840.113549.1.12.10.1.4","crlBag"),a("1.2.840.113549.1.12.10.1.5","secretBag"),a("1.2.840.113549.1.12.10.1.6","safeContentsBag"),a("1.2.840.113549.1.5.13","pkcs5PBES2"),a("1.2.840.113549.1.5.12","pkcs5PBKDF2"),a("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4"),a("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4"),a("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC"),a("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC"),a("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC"),a("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC"),a("1.2.840.113549.2.7","hmacWithSHA1"),a("1.2.840.113549.2.8","hmacWithSHA224"),a("1.2.840.113549.2.9","hmacWithSHA256"),a("1.2.840.113549.2.10","hmacWithSHA384"),a("1.2.840.113549.2.11","hmacWithSHA512"),a("1.2.840.113549.3.7","des-EDE3-CBC"),a("2.16.840.1.101.3.4.1.2","aes128-CBC"),a("2.16.840.1.101.3.4.1.22","aes192-CBC"),a("2.16.840.1.101.3.4.1.42","aes256-CBC"),a("2.5.4.3","commonName"),a("2.5.4.5","serialName"),a("2.5.4.6","countryName"),a("2.5.4.7","localityName"),a("2.5.4.8","stateOrProvinceName"),a("2.5.4.9","streetAddress"),a("2.5.4.10","organizationName"),a("2.5.4.11","organizationalUnitName"),a("2.5.4.13","description"),a("2.5.4.15","businessCategory"),a("2.5.4.17","postalCode"),a("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName"),a("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName"),a("2.16.840.1.113730.1.1","nsCertType"),a("2.16.840.1.113730.1.13","nsComment"),o("2.5.29.1","authorityKeyIdentifier"),o("2.5.29.2","keyAttributes"),o("2.5.29.3","certificatePolicies"),o("2.5.29.4","keyUsageRestriction"),o("2.5.29.5","policyMapping"),o("2.5.29.6","subtreesConstraint"),o("2.5.29.7","subjectAltName"),o("2.5.29.8","issuerAltName"),o("2.5.29.9","subjectDirectoryAttributes"),o("2.5.29.10","basicConstraints"),o("2.5.29.11","nameConstraints"),o("2.5.29.12","policyConstraints"),o("2.5.29.13","basicConstraints"),a("2.5.29.14","subjectKeyIdentifier"),a("2.5.29.15","keyUsage"),o("2.5.29.16","privateKeyUsagePeriod"),a("2.5.29.17","subjectAltName"),a("2.5.29.18","issuerAltName"),a("2.5.29.19","basicConstraints"),o("2.5.29.20","cRLNumber"),o("2.5.29.21","cRLReason"),o("2.5.29.22","expirationDate"),o("2.5.29.23","instructionCode"),o("2.5.29.24","invalidityDate"),o("2.5.29.25","cRLDistributionPoints"),o("2.5.29.26","issuingDistributionPoint"),o("2.5.29.27","deltaCRLIndicator"),o("2.5.29.28","issuingDistributionPoint"),o("2.5.29.29","certificateIssuer"),o("2.5.29.30","nameConstraints"),a("2.5.29.31","cRLDistributionPoints"),a("2.5.29.32","certificatePolicies"),o("2.5.29.33","policyMappings"),o("2.5.29.34","policyConstraints"),a("2.5.29.35","authorityKeyIdentifier"),o("2.5.29.36","policyConstraints"),a("2.5.29.37","extKeyUsage"),o("2.5.29.46","freshestCRL"),o("2.5.29.54","inhibitAnyPolicy"),a("1.3.6.1.4.1.11129.2.4.2","timestampList"),a("1.3.6.1.5.5.7.1.1","authorityInfoAccess"),a("1.3.6.1.5.5.7.3.1","serverAuth"),a("1.3.6.1.5.5.7.3.2","clientAuth"),a("1.3.6.1.5.5.7.3.3","codeSigning"),a("1.3.6.1.5.5.7.3.4","emailProtection"),a("1.3.6.1.5.5.7.3.8","timeStamping")},,function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}()},function(e,t,n){"use strict";var r=n(192).Buffer,i=n(1032),a=n(299),o=n(1040),s=n(1041),l=n(1042);e.exports=function(e){var t=[],n=[];return{encode:l(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1,protoAction:"error"}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n,e),register:function(e,t,n,o){return i(t,"must have a constructor"),i(n,"must have an encode function"),i(e>=0,"must have a non-negative type"),i(o,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var i=a(),o=r.allocUnsafe(1);return o.writeInt8(e,0),i.append(o),i.append(n(t)),i})),this.registerDecoder(e,o),this},registerEncoder:function(e,n){return i(e,"must have an encode function"),i(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return i(e>=0,"must have a non-negative type"),i(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:o.encoder,decoder:o.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},,function(e,t,n){"use strict";var r=n(90),i=n(132),a=n(123),o=n(42),s=n(115),l=Object.assign;e.exports=!l||n(21)((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=r}))?function(e,t){for(var n=o(e),l=arguments.length,c=1,u=i.f,d=a.f;l>c;)for(var h,p=s(arguments[c++]),f=u?r(p).concat(u(p)):r(p),m=f.length,g=0;m>g;)d.call(p,h=f[g++])&&(n[h]=p[h]);return n}:l},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){"use strict";var r=n(63),i=n(76);e.exports=function(e){var t=String(i(this)),n="",a=r(e);if(a<0||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){"use strict";var r=n(33),i=n(85);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},function(e,t,n){"use strict";var r=n(97),i=n(205),a=n(110),o=n(52);e.exports=n(153)(Array,"Array",(function(e,t){this._t=o(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,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r,i,a,o=n(62),s=n(201),l=n(174),c=n(171),u=n(20),d=u.process,h=u.setImmediate,p=u.clearImmediate,f=u.MessageChannel,m=u.Dispatch,g=0,y={},b=function(){var e=+this;if(y.hasOwnProperty(e)){var t=y[e];delete y[e],t()}},v=function(e){b.call(e.data)};h&&p||(h=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return y[++g]=function(){s("function"==typeof e?e:Function(e),t)},r(g),g},p=function(e){delete y[e]},"process"==n(67)(d)?r=function(e){d.nextTick(o(b,e,1))}:m&&m.now?r=function(e){m.now(o(b,e,1))}:f?(a=(i=new f).port2,i.port1.onmessage=v,r=o(a.postMessage,a,1)):u.addEventListener&&"function"==typeof postMessage&&!u.importScripts?(r=function(e){u.postMessage(e+"","*")},u.addEventListener("message",v,!1)):r="onreadystatechange"in c("script")?function(e){l.appendChild(c("script")).onreadystatechange=function(){l.removeChild(this),b.call(e)}}:function(e){setTimeout(o(b,e,1),0)}),e.exports={set:h,clear:p}},function(e,t,n){"use strict";var r=n(47);function i(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new i(e)}},function(e,t,n){var r=n(20).navigator;e.exports=r&&r.userAgent||""},,,,function(e,t,n){"use strict";var r=n(300),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=d;var a=n(264);a.inherits=n(193);var o=n(718),s=n(722);a.inherits(d,o);for(var l=i(s.prototype),c=0;c65&&-1!==o){var s=t[o];","===s?(++o,t=t.substr(0,o)+"\r\n "+t.substr(o)):t=t.substr(0,o)+"\r\n"+s+t.substr(o+1),a=i-o-1,o=-1,++i}else" "!==t[i]&&"\t"!==t[i]&&","!==t[i]||(o=i);return t}function o(e){return e.replace(/^\s+/,"")}i.encode=function(e,t){t=t||{};var n,i="-----BEGIN "+e.type+"-----\r\n";if(e.procType&&(i+=a(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]})),e.contentDomain&&(i+=a(n={name:"Content-Domain",values:[e.contentDomain]})),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),i+=a(n)),e.headers)for(var o=0;ol;)r(s,n=t[l++])&&(~a(c,n)||c.push(n));return c}},function(e,t,n){var r=n(33),i=n(15),a=n(90);e.exports=n(35)?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),s=o.length,l=0;s>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){var r=n(52),i=n(92).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?function(e){try{return i(e)}catch(t){return o.slice()}}(e):i(r(e))}},function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var r=n(47),i=n(22),a=n(201),o=[].slice,s={},l=function(e,t,n){if(!(t in s)){for(var r=[],i=0;i>>0||(o.test(n)?16:10))}:r},function(e,t,n){var r=n(20).parseFloat,i=n(116).trim;e.exports=1/r(n(176)+"-0")!=-1/0?function(e){var t=i(String(e),3),n=r(t);return 0===n&&"-"==t.charAt(0)?-0:n}:r},function(e,t,n){var r=n(67);e.exports=function(e,t){if("number"!=typeof e&&"Number"!=r(e))throw TypeError(t);return+e}},function(e,t,n){var r=n(22),i=Math.floor;e.exports=function(e){return!r(e)&&isFinite(e)&&i(e)===e}},function(e,t){e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Math.log(1+e)}},function(e,t,n){var r=n(15);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(o){var a=e.return;throw void 0!==a&&r(a.call(e)),o}}},function(e,t,n){var r=n(402);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(47),i=n(42),a=n(115),o=n(31);e.exports=function(e,t,n,s,l){r(t);var c=i(e),u=a(c),d=o(c.length),h=l?d-1:0,p=l?-1:1;if(n<2)for(;;){if(h in u){s=u[h],h+=p;break}if(h+=p,l?h<0:d<=h)throw TypeError("Reduce of empty array with no initial value")}for(;l?h>=0:d>h;h+=p)h in u&&(s=t(s,u[h],h,c));return s}},function(e,t,n){"use strict";var r=n(42),i=n(91),a=n(31);e.exports=[].copyWithin||function(e,t){var n=r(this),o=a(n.length),s=i(e,o),l=i(t,o),c=arguments.length>2?arguments[2]:void 0,u=Math.min((void 0===c?o:i(c,o))-l,o-s),d=1;for(l0;)l in n?n[s]=n[l]:delete n[s],s+=d,l+=d;return n}},function(e,t,n){"use strict";var r=n(185);n(2)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(e,t,n){n(35)&&"g"!=/./g.flags&&n(33).f(RegExp.prototype,"flags",{configurable:!0,get:n(124)})},function(e,t,n){var r=n(20),i=n(206).set,a=r.MutationObserver||r.WebKitMutationObserver,o=r.process,s=r.Promise,l="process"==n(67)(o);e.exports=function(){var e,t,n,c=function(){var r,i;for(l&&(r=o.domain)&&r.exit();e;){i=e.fn,e=e.next;try{i()}catch(a){throw e?n():t=void 0,a}}t=void 0,r&&r.enter()};if(l)n=function(){o.nextTick(c)};else if(!a||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var u=s.resolve(void 0);n=function(){u.then(c)}}else n=function(){i.call(r,c)};else{var d=!0,h=document.createTextNode("");new a(c).observe(h,{characterData:!0}),n=function(){h.data=d=!d}}return function(r){var i={fn:r,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},function(e,t,n){"use strict";var r=n(241),i=n(111);e.exports=n(137)("Map",(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(e){var t=r.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},function(e,t,n){"use strict";var r=n(33).f,i=n(83),a=n(101),o=n(62),s=n(99),l=n(100),c=n(153),u=n(205),d=n(98),h=n(35),p=n(82).fastKey,f=n(111),m=h?"_s":"size",g=function(e,t){var n,r=p(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,c){var u=e((function(e,r){s(e,u,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,null!=r&&l(r,n,e[c],e)}));return a(u.prototype,{clear:function(){for(var e=f(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=f(this,t),r=g(n,e);if(r){var i=r.n,a=r.p;delete n._i[r.i],r.r=!0,a&&(a.n=i),i&&(i.p=a),n._f==r&&(n._f=i),n._l==r&&(n._l=a),n[m]--}return!!r},forEach:function(e){f(this,t);for(var n,r=o(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(f(this,t),e)}}),h&&r(u.prototype,"size",{get:function(){return f(this,t)[m]}}),u},def:function(e,t,n){var r,i,a=g(e,t);return a?a.v=n:(e._l=a={i:i=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=a),r&&(r.n=a),e[m]++,"F"!==i&&(e._i[i]=a)),e},getEntry:g,setStrong:function(e,t,n){c(e,t,(function(e,n){this._t=f(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?u(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,u(1))}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var r=n(241),i=n(111);e.exports=n(137)("Set",(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(e){return r.def(i(this,"Set"),e=0===e?0:e,e)}},r)},function(e,t,n){"use strict";var r,i=n(69)(0),a=n(51),o=n(82),s=n(200),l=n(244),c=n(22),u=n(21),d=n(111),h=o.getWeak,p=Object.isExtensible,f=l.ufstore,m={},g=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(c(e)){var t=h(e);return!0===t?f(d(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return l.def(d(this,"WeakMap"),e,t)}},b=e.exports=n(137)("WeakMap",g,y,l,!0,!0);u((function(){return 7!=(new b).set((Object.freeze||Object)(m),7).get(m)}))&&(s((r=l.getConstructor(g,"WeakMap")).prototype,y),o.NEED=!0,i(["delete","has","get","set"],(function(e){var t=b.prototype,n=t[e];a(t,e,(function(t,i){if(c(t)&&!p(t)){this._f||(this._f=new r);var a=this._f[e](t,i);return"set"==e?this:a}return n.call(this,t,i)}))})))},function(e,t,n){"use strict";var r=n(101),i=n(82).getWeak,a=n(15),o=n(22),s=n(99),l=n(100),c=n(69),u=n(50),d=n(111),h=c(5),p=c(6),f=0,m=function(e){return e._l||(e._l=new g)},g=function(){this.a=[]},y=function(e,t){return h(e.a,(function(e){return e[0]===t}))};g.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var n=y(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=p(this.a,(function(t){return t[0]===e}));return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,a){var c=e((function(e,r){s(e,c,t,"_i"),e._t=t,e._i=f++,e._l=void 0,null!=r&&l(r,n,e[a],e)}));return r(c.prototype,{delete:function(e){if(!o(e))return!1;var n=i(e);return!0===n?m(d(this,t)).delete(e):n&&u(n,this._i)&&delete n[this._i]},has:function(e){if(!o(e))return!1;var n=i(e);return!0===n?m(d(this,t)).has(e):n&&u(n,this._i)}}),c},def:function(e,t,n){var r=i(a(t),!0);return!0===r?m(e).set(t,n):r[e._i]=n,e},ufstore:m}},function(e,t,n){var r=n(63),i=n(31);e.exports=function(e){if(void 0===e)return 0;var t=r(e),n=i(t);if(t!==n)throw RangeError("Wrong length!");return n}},function(e,t,n){var r=n(92),i=n(132),a=n(15),o=n(20).Reflect;e.exports=o&&o.ownKeys||function(e){var t=r.f(a(e)),n=i.f;return n?t.concat(n(e)):t}},,,,,,,,,,,,,,,,,,function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(95).Buffer)},function(e,t,n){var r=n(34);n(145),n(44),(e.exports=r.hmac=r.hmac||{}).create=function(){var e=null,t=null,n=null,i=null,a={start:function(a,o){if(null!==a)if("string"==typeof a){if(!((a=a.toLowerCase())in r.md.algorithms))throw new Error('Unknown hash algorithm "'+a+'"');t=r.md.algorithms[a].create()}else t=a;if(null===o)o=e;else{if("string"==typeof o)o=r.util.createBuffer(o);else if(r.util.isArray(o)){var s=o;o=r.util.createBuffer();for(var l=0;lt.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),n=r.util.createBuffer(),i=r.util.createBuffer(),c=o.length();for(l=0;l>>0,l>>>0];for(var c=i.fullMessageLength.length-1;c>=0;--c)i.fullMessageLength[c]+=l[1],l[1]=l[0]+(i.fullMessageLength[c]/4294967296>>>0),i.fullMessageLength[c]=i.fullMessageLength[c]>>>0,l[0]=l[1]/4294967296>>>0;return t.putBytes(a),s(e,n,t),(t.read>2048||0===t.length())&&t.compact(),i},i.digest=function(){var o=r.util.createBuffer();o.putBytes(t.bytes());var l,c=i.fullMessageLength[i.fullMessageLength.length-1]+i.messageLengthSize&i.blockLength-1;o.putBytes(a.substr(0,i.blockLength-c));for(var u=8*i.fullMessageLength[0],d=0;d>>0,o.putInt32(u>>>0),u=l>>>0;o.putInt32(u);var h={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};s(h,n,o);var p=r.util.createBuffer();return p.putInt32(h.h0),p.putInt32(h.h1),p.putInt32(h.h2),p.putInt32(h.h3),p.putInt32(h.h4),p},i};var a=null,o=!1;function s(e,t,n){for(var r,i,a,o,s,l,c,u=n.length();u>=64;){for(i=e.h0,a=e.h1,o=e.h2,s=e.h3,l=e.h4,c=0;c<16;++c)r=n.getInt32(),t[c]=r,r=(i<<5|i>>>27)+(s^a&(o^s))+l+1518500249+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<20;++c)r=(r=t[c-3]^t[c-8]^t[c-14]^t[c-16])<<1|r>>>31,t[c]=r,r=(i<<5|i>>>27)+(s^a&(o^s))+l+1518500249+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<32;++c)r=(r=t[c-3]^t[c-8]^t[c-14]^t[c-16])<<1|r>>>31,t[c]=r,r=(i<<5|i>>>27)+(a^o^s)+l+1859775393+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<40;++c)r=(r=t[c-6]^t[c-16]^t[c-28]^t[c-32])<<2|r>>>30,t[c]=r,r=(i<<5|i>>>27)+(a^o^s)+l+1859775393+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<60;++c)r=(r=t[c-6]^t[c-16]^t[c-28]^t[c-32])<<2|r>>>30,t[c]=r,r=(i<<5|i>>>27)+(a&o|s&(a^o))+l+2400959708+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<80;++c)r=(r=t[c-6]^t[c-16]^t[c-28]^t[c-32])<<2|r>>>30,t[c]=r,r=(i<<5|i>>>27)+(a^o^s)+l+3395469782+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;e.h0=e.h0+i|0,e.h1=e.h1+a|0,e.h2=e.h2+o|0,e.h3=e.h3+s|0,e.h4=e.h4+l|0,u-=64}}},function(e,t,n){"use strict";n.r(t);var r=n(0),i=n(4); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function a(e){return null!=e&&""+e!="false"} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function o(e,t){return void 0===t&&(t=0),function(e){return!isNaN(parseFloat(e))&&!isNaN(Number(e))} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e)?Number(e):t} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function s(e){return e instanceof r.ElementRef?e.nativeElement:e} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var l=n(147),c=n(310),u=n(32),d=n(1105),h=n(1103),p=n(1),f=n(168),m=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r}return p.c(t,e),t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!==r&&r>0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame((function(){return t.flush(null)}))))},t.prototype.recycleAsyncId=function(t,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);0===t.actions.length&&(cancelAnimationFrame(n),t.scheduled=void 0)},t}(f.a),g=n(167),y=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return p.c(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,n=this.actions,r=-1,i=n.length;e=e||n.shift();do{if(t=e.execute(e.state,e.delay))break}while(++r0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t.scheduled||(t.scheduled=_(t.flush.bind(t,null))))},t.prototype.recycleAsyncId=function(t,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);0===t.actions.length&&(j(n),t.scheduled=void 0)},t}(f.a),x=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return p.c(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,n=this.actions,r=-1,i=n.length;e=e||n.shift();do{if(t=e.execute(e.state,e.delay))break}while(++r=0}var M=n(122);function q(e){var t=e.index,n=e.period,r=e.subscriber;if(r.next(t),!r.closed){if(-1===n)return r.complete();e.index=t+1,this.schedule(e,n)}}function B(e,t){return void 0===t&&(t=I.a),n=function(){return function(e,t,n){void 0===e&&(e=0);var r=-1;return R(t)?r=Number(t)<1?1:Number(t):Object(M.a)(t)&&(n=t),Object(M.a)(n)||(n=I.a),new u.a((function(t){var i=R(e)?e:+e-n.now();return n.schedule(q,i,{index:0,period:r,subscriber:t})}))}(e,t)},function(e){return e.lift(new A(n))};var n}var L=n(311);function F(e){return function(t){return t.lift(new U(e))}}var U=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var n=new V(e),r=Object(D.c)(this.notifier,new D.a(n));return r&&!n.seenValue?(n.add(r),t.subscribe(n)):n},e}(),V=function(e){function t(t){var n=e.call(this,t)||this;return n.seenValue=!1,n}return p.c(t,e),t.prototype.notifyNext=function(){this.seenValue=!0,this.complete()},t.prototype.notifyComplete=function(){},t}(D.b),H=n(1107);var K,W=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new G(e))},e}(),G=function(e){function t(t){var n=e.call(this,t)||this;return n.hasPrev=!1,n}return p.c(t,e),t.prototype._next=function(e){var t;this.hasPrev?t=[this.prev,e]:this.hasPrev=!0,this.prev=e,t&&this.destination.next(t)},t}(T.a),Q=n(1106),$=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r}return p.c(t,e),t.prototype.schedule=function(t,n){return void 0===n&&(n=0),n>0?e.prototype.schedule.call(this,t,n):(this.delay=n,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,n){return n>0||this.closed?e.prototype.execute.call(this,t,n):this._execute(t,n)},t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?e.prototype.requestAsyncId.call(this,t,n,r):t.flush(this)},t}(f.a),Y=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return p.c(t,e),t}(g.a))($),Z=n(165);function J(e){var t=e.error;e.subscriber.error(t)}K||(K={});var X=function(){function e(e,t,n){this.kind=e,this.value=t,this.error=n,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,n){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return n&&n()}},e.prototype.accept=function(e,t,n){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,n)},e.prototype.toObservable=function(){var e,t;switch(this.kind){case"N":return Object(c.a)(this.value);case"E":return e=this.error,t?new u.a((function(n){return t.schedule(J,0,{error:e,subscriber:n})})):new u.a((function(t){return t.error(e)}));case"C":return Object(Z.b)()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}();var ee,te=function(e){function t(t,n,r){void 0===r&&(r=0);var i=e.call(this,t)||this;return i.scheduler=n,i.delay=r,i}return p.c(t,e),t.dispatch=function(e){var t=e.notification,n=e.destination;t.observe(n),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.destination.add(this.scheduler.schedule(t.dispatch,this.delay,new ne(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(X.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(X.createError(e)),this.unsubscribe()},t.prototype._complete=function(){this.scheduleMessage(X.createComplete()),this.unsubscribe()},t}(T.a),ne=function(){return function(e,t){this.notification=e,this.destination=t}}(),re=n(130),ie=n(304),ae=function(e){function t(t,n,r){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var i=e.call(this)||this;return i.scheduler=r,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=t<1?1:t,i._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return p.c(t,e),t.prototype.nextInfiniteTimeWindow=function(t){var n=this._events;n.push(t),n.length>this._bufferSize&&n.shift(),e.prototype.next.call(this,t)},t.prototype.nextTimeWindow=function(t){this._events.push(new oe(this._getNow(),t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,n=this._infiniteTimeWindow,r=n?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,a=r.length;if(this.closed)throw new re.a;if(this.isStopped||this.hasError?t=E.a.EMPTY:(this.observers.push(e),t=new ie.a(this,e)),i&&e.add(e=new te(e,i)),n)for(var o=0;ot&&(a=Math.max(a,i-t)),a>0&&r.splice(0,a),r},t}(l.a),oe=function(){return function(e,t){this.time=e,this.value=t}}();function se(e,t,n){var r;return r=e&&"object"==typeof e?e:{bufferSize:e,windowTime:t,refCount:!1,scheduler:n},function(e){return e.lift(function(e){var t,n,r=e.bufferSize,i=void 0===r?Number.POSITIVE_INFINITY:r,a=e.windowTime,o=void 0===a?Number.POSITIVE_INFINITY:a,s=e.refCount,l=e.scheduler,c=0,u=!1,d=!1;return function(e){var r;c++,!t||u?(u=!1,t=new ae(i,o,l),r=t.subscribe(this),n=e.subscribe({next:function(e){t.next(e)},error:function(e){u=!0,t.error(e)},complete:function(){d=!0,n=void 0,t.complete()}})):r=t.subscribe(this),this.add((function(){c--,r.unsubscribe(),n&&!d&&s&&0===c&&(n.unsubscribe(),n=void 0,t=void 0)}))}} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(r))}}try{ee="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(It){ee=!1}var le,ce,ue,de=function(){function e(e){this._platformId=e,this.isBrowser=this._platformId?Object(i.isPlatformBrowser)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!ee)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}return e.ctorParameters=function(){return[{type:Object,decorators:[{type:r.Optional},{type:r.Inject,args:[r.PLATFORM_ID]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(r.PLATFORM_ID,8))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](r.PLATFORM_ID,8))},e}(),he=function(){function e(){}return e.ɵmod=r["ɵɵdefineNgModule"]({type:e}),e.ɵinj=r["ɵɵdefineInjector"]({factory:function(t){return new(t||e)}}),e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function pe(e){return function(){if(null==le&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){return le=!0}}))}finally{le=le||!1}return le}()?e:!!e.capture} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function fe(){if("object"!=typeof document||!document)return 0;if(null==ce){var e=document.createElement("div"),t=e.style;e.dir="rtl",t.height="1px",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";var n=document.createElement("div"),r=n.style;r.width="2px",r.height="1px",e.appendChild(n),document.body.appendChild(e),ce=0,0===e.scrollLeft&&(e.scrollLeft=1,ce=0===e.scrollLeft?1:2),e.parentNode.removeChild(e)}return ce} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function me(e){if(function(){if(null==ue){var e="undefined"!=typeof document?document.head:null;ue=!(!e||!e.createShadowRoot&&!e.attachShadow)}return ue}()){var t=e.getRootNode?e.getRootNode():null;if("undefined"!=typeof ShadowRoot&&ShadowRoot&&t instanceof ShadowRoot)return t}return null} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ge=new r.InjectionToken("cdk-dir-doc",{providedIn:"root",factory:function(){return Object(r.inject)(i.DOCUMENT)} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */});var ye=function(){function e(e){if(this.value="ltr",this.change=new r.EventEmitter,e){var t=e.body?e.body.dir:null,n=e.documentElement?e.documentElement.dir:null,i=t||n;this.value="ltr"===i||"rtl"===i?i:"ltr"}}return e.prototype.ngOnDestroy=function(){this.change.complete()},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[ge]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(ge,8))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](ge,8))},e}(),be=function(){function e(){this._dir="ltr",this._isInitialized=!1,this.change=new r.EventEmitter}return Object.defineProperty(e.prototype,"dir",{get:function(){return this._dir},set:function(e){var t=this._dir,n=e?e.toLowerCase():e;this._rawDir=e,this._dir="ltr"===n||"rtl"===n?n:"ltr",t!==this._dir&&this._isInitialized&&this.change.emit(this._dir)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.dir},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._isInitialized=!0},e.prototype.ngOnDestroy=function(){this.change.complete()},e.propDecorators={change:[{type:r.Output,args:["dirChange"]}],dir:[{type:r.Input}]},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","dir",""]],hostVars:1,hostBindings:function(e,t){2&e&&r["ɵɵattribute"]("dir",t._rawDir)},inputs:{dir:"dir"},outputs:{change:"dirChange"},exportAs:["dir"],features:[r["ɵɵProvidersFeature"]([{provide:ye,useExisting:e}])]}),e}(),ve=function(){function e(){}return e.ɵmod=r["ɵɵdefineNgModule"]({type:e}),e.ɵinj=r["ɵɵdefineInjector"]({factory:function(t){return new(t||e)}}),("undefined"==typeof ngJitMode||ngJitMode)&&r["ɵɵsetNgModuleScope"](e,{declarations:[be],exports:[be]}),e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var ke=function(e){function t(t){var n=e.call(this)||this;return n._data=t,n}return Object(p.c)(t,e),t.prototype.connect=function(){return S(this._data)?this._data:Object(c.a)(this._data)},t.prototype.disconnect=function(){},t}((function(){})); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */!function(){function e(e,t,n){var r=this;void 0===e&&(e=!1),void 0===n&&(n=!0),this._multiple=e,this._emitChanges=n,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new l.a,t&&t.length&&(e?t.forEach((function(e){return r._markSelected(e)})):this._markSelected(t[0]),this._selectedToEmit.length=0)}Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected},enumerable:!0,configurable:!0}),e.prototype.select=function(){for(var e=this,t=[],n=0;n1&&!this._multiple)throw Error("Cannot pass multiple values into SelectionModel with single-value mode.")}}();!function(){function e(){this._listeners=[]}e.prototype.notify=function(e,t){var n,r;try{for(var i=Object(p.h)(this._listeners),a=i.next();!a.done;a=i.next()){(0,a.value)(e,t)}}catch(o){n={error:o}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}},e.prototype.listen=function(e){var t=this;return this._listeners.push(e),function(){t._listeners=t._listeners.filter((function(t){return e!==t}))}},e.prototype.ngOnDestroy=function(){this._listeners=[]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)}}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var we=["contentWrapper"],_e=["*"],je=new r.InjectionToken("VIRTUAL_SCROLL_STRATEGY"),Ce=function(){function e(e,t,n){var r,i;this._scrolledIndexChange=new l.a,this.scrolledIndexChange=this._scrolledIndexChange.pipe((function(e){return e.lift(new O(r,i))})),this._viewport=null,this._itemSize=e,this._minBufferPx=t,this._maxBufferPx=n}return e.prototype.attach=function(e){this._viewport=e,this._updateTotalContentSize(),this._updateRenderedRange()},e.prototype.detach=function(){this._scrolledIndexChange.complete(),this._viewport=null},e.prototype.updateItemAndBufferSize=function(e,t,n){if(n0&&(r.end=Math.min(a,r.end+c),r.start=Math.max(0,Math.floor(t-this._minBufferPx/this._itemSize)))}}this._viewport.setRenderedRange(r),this._viewport.setRenderedContentOffset(this._itemSize*r.start),this._scrolledIndexChange.next(Math.floor(t))}},e}();function xe(e){return e._scrollStrategy}var Ee=function(){function e(){this._itemSize=20,this._minBufferPx=100,this._maxBufferPx=200,this._scrollStrategy=new Ce(this.itemSize,this.minBufferPx,this.maxBufferPx)}return Object.defineProperty(e.prototype,"itemSize",{get:function(){return this._itemSize},set:function(e){this._itemSize=o(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minBufferPx",{get:function(){return this._minBufferPx},set:function(e){this._minBufferPx=o(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxBufferPx",{get:function(){return this._maxBufferPx},set:function(e){this._maxBufferPx=o(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this._scrollStrategy.updateItemAndBufferSize(this.itemSize,this.minBufferPx,this.maxBufferPx)},e.propDecorators={itemSize:[{type:r.Input}],minBufferPx:[{type:r.Input}],maxBufferPx:[{type:r.Input}]},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["cdk-virtual-scroll-viewport","itemSize",""]],inputs:{itemSize:"itemSize",minBufferPx:"minBufferPx",maxBufferPx:"maxBufferPx"},features:[r["ɵɵProvidersFeature"]([{provide:je,useFactory:xe,deps:[Object(r.forwardRef)((function(){return e}))]}]),r["ɵɵNgOnChangesFeature"]]}),e}(),Se=function(){function e(e,t,n){this._ngZone=e,this._platform=t,this._scrolled=new l.a,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=n}return e.prototype.register=function(e){var t=this;this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe((function(){return t._scrolled.next(e)})))},e.prototype.deregister=function(e){var t=this.scrollContainers.get(e);t&&(t.unsubscribe(),this.scrollContainers.delete(e))},e.prototype.scrolled=function(e){var t=this;return void 0===e&&(e=20),this._platform.isBrowser?new u.a((function(n){t._globalSubscription||t._addGlobalListener();var r=e>0?t._scrolled.pipe(B(e)).subscribe(n):t._scrolled.subscribe(n);return t._scrolledCount++,function(){r.unsubscribe(),t._scrolledCount--,t._scrolledCount||t._removeGlobalListener()}})):Object(c.a)()},e.prototype.ngOnDestroy=function(){var e=this;this._removeGlobalListener(),this.scrollContainers.forEach((function(t,n){return e.deregister(n)})),this._scrolled.complete()},e.prototype.ancestorScrolled=function(e,t){var n=this.getAncestorScrollContainers(e);return this.scrolled(t).pipe(Object(L.a)((function(e){return!e||n.indexOf(e)>-1})))},e.prototype.getAncestorScrollContainers=function(e){var t=this,n=[];return this.scrollContainers.forEach((function(r,i){t._scrollableContainsElement(i,e)&&n.push(i)})),n},e.prototype._getDocument=function(){return this._document||document},e.prototype._getWindow=function(){return this._getDocument().defaultView||window},e.prototype._scrollableContainsElement=function(e,t){var n=t.nativeElement,r=e.getElementRef().nativeElement;do{if(n==r)return!0}while(n=n.parentElement);return!1},e.prototype._addGlobalListener=function(){var e=this;this._globalSubscription=this._ngZone.runOutsideAngular((function(){var t=e._getWindow();return Object(d.a)(t.document,"scroll").subscribe((function(){return e._scrolled.next()}))}))},e.prototype._removeGlobalListener=function(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)},e.ctorParameters=function(){return[{type:r.NgZone},{type:de},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[i.DOCUMENT]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(r.NgZone),Object(r["ɵɵinject"])(de),Object(r["ɵɵinject"])(i.DOCUMENT,8))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](r.NgZone),r["ɵɵinject"](de),r["ɵɵinject"](i.DOCUMENT,8))},e}(),Te=function(){function e(e,t,n,r){var i=this;this.elementRef=e,this.scrollDispatcher=t,this.ngZone=n,this.dir=r,this._destroyed=new l.a,this._elementScrolled=new u.a((function(e){return i.ngZone.runOutsideAngular((function(){return Object(d.a)(i.elementRef.nativeElement,"scroll").pipe(F(i._destroyed)).subscribe(e)}))}))}return e.prototype.ngOnInit=function(){this.scrollDispatcher.register(this)},e.prototype.ngOnDestroy=function(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()},e.prototype.elementScrolled=function(){return this._elementScrolled},e.prototype.getElementRef=function(){return this.elementRef},e.prototype.scrollTo=function(e){var t=this.elementRef.nativeElement,n=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=n?e.end:e.start),null==e.right&&(e.right=n?e.start:e.end),null!=e.bottom&&(e.top=t.scrollHeight-t.clientHeight-e.bottom),n&&0!=fe()?(null!=e.left&&(e.right=t.scrollWidth-t.clientWidth-e.left),2==fe()?e.left=e.right:1==fe()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=t.scrollWidth-t.clientWidth-e.right),this._applyScrollToOptions(e)},e.prototype._applyScrollToOptions=function(e){var t=this.elementRef.nativeElement;"object"==typeof document&&"scrollBehavior"in document.documentElement.style?t.scrollTo(e):(null!=e.top&&(t.scrollTop=e.top),null!=e.left&&(t.scrollLeft=e.left))},e.prototype.measureScrollOffset=function(e){var t=this.elementRef.nativeElement;if("top"==e)return t.scrollTop;if("bottom"==e)return t.scrollHeight-t.clientHeight-t.scrollTop;var n=this.dir&&"rtl"==this.dir.value;return"start"==e?e=n?"right":"left":"end"==e&&(e=n?"left":"right"),n&&2==fe()?"left"==e?t.scrollWidth-t.clientWidth-t.scrollLeft:t.scrollLeft:n&&1==fe()?"left"==e?t.scrollLeft+t.scrollWidth-t.clientWidth:-t.scrollLeft:"left"==e?t.scrollLeft:t.scrollWidth-t.clientWidth-t.scrollLeft},e.ctorParameters=function(){return[{type:r.ElementRef},{type:Se},{type:r.NgZone},{type:ye,decorators:[{type:r.Optional}]}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](Se),r["ɵɵdirectiveInject"](r.NgZone),r["ɵɵdirectiveInject"](ye,8))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]}),e}(),Oe=function(){function e(e,t,n){var r=this;this._platform=e,this._document=n,t.runOutsideAngular((function(){var t=r._getWindow();r._change=e.isBrowser?Object(h.a)(Object(d.a)(t,"resize"),Object(d.a)(t,"orientationchange")):Object(c.a)(),r._invalidateCache=r.change().subscribe((function(){return r._updateViewportSize()}))}))}return e.prototype.ngOnDestroy=function(){this._invalidateCache.unsubscribe()},e.prototype.getViewportSize=function(){this._viewportSize||this._updateViewportSize();var e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e},e.prototype.getViewportRect=function(){var e=this.getViewportScrollPosition(),t=this.getViewportSize(),n=t.width,r=t.height;return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+n,height:r,width:n}},e.prototype.getViewportScrollPosition=function(){if(!this._platform.isBrowser)return{top:0,left:0};var e=this._getDocument(),t=this._getWindow(),n=e.documentElement,r=n.getBoundingClientRect();return{top:-r.top||e.body.scrollTop||t.scrollY||n.scrollTop||0,left:-r.left||e.body.scrollLeft||t.scrollX||n.scrollLeft||0}},e.prototype.change=function(e){return void 0===e&&(e=20),e>0?this._change.pipe(B(e)):this._change},e.prototype._getDocument=function(){return this._document||document},e.prototype._getWindow=function(){return this._getDocument().defaultView||window},e.prototype._updateViewportSize=function(){var e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}},e.ctorParameters=function(){return[{type:de},{type:r.NgZone},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[i.DOCUMENT]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(de),Object(r["ɵɵinject"])(r.NgZone),Object(r["ɵɵinject"])(i.DOCUMENT,8))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](de),r["ɵɵinject"](r.NgZone),r["ɵɵinject"](i.DOCUMENT,8))},e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ze="undefined"!=typeof requestAnimationFrame?y:x,Ie=function(e){function t(t,n,r,i,a,o,s){var c=e.call(this,t,o,r,a)||this;if(c.elementRef=t,c._changeDetectorRef=n,c._scrollStrategy=i,c._detachedSubject=new l.a,c._renderedRangeSubject=new l.a,c._orientation="vertical",c.scrolledIndexChange=new u.a((function(e){return c._scrollStrategy.scrolledIndexChange.subscribe((function(t){return Promise.resolve().then((function(){return c.ngZone.run((function(){return e.next(t)}))}))}))})),c.renderedRangeStream=c._renderedRangeSubject.asObservable(),c._totalContentSize=0,c._totalContentWidth="",c._totalContentHeight="",c._renderedRange={start:0,end:0},c._dataLength=0,c._viewportSize=0,c._renderedContentOffset=0,c._renderedContentOffsetNeedsRewrite=!1,c._isChangeDetectionPending=!1,c._runAfterChangeDetection=[],c._viewportChanges=E.a.EMPTY,!i)throw Error('Error: cdk-virtual-scroll-viewport requires the "itemSize" property to be set.');return s&&(c._viewportChanges=s.change().subscribe((function(){c.checkViewportSize()}))),c}return Object(p.c)(t,e),Object.defineProperty(t.prototype,"orientation",{get:function(){return this._orientation},set:function(e){this._orientation!==e&&(this._orientation=e,this._calculateSpacerSize())},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;e.prototype.ngOnInit.call(this),this.ngZone.runOutsideAngular((function(){return Promise.resolve().then((function(){t._measureViewportSize(),t._scrollStrategy.attach(t),t.elementScrolled().pipe(Object(H.a)(null),B(0,ze)).subscribe((function(){return t._scrollStrategy.onContentScrolled()})),t._markChangeDetectionNeeded()}))}))},t.prototype.ngOnDestroy=function(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),e.prototype.ngOnDestroy.call(this)},t.prototype.attach=function(e){var t=this;if(this._forOf)throw Error("CdkVirtualScrollViewport is already attached.");this.ngZone.runOutsideAngular((function(){t._forOf=e,t._forOf.dataStream.pipe(F(t._detachedSubject)).subscribe((function(e){var n=e.length;n!==t._dataLength&&(t._dataLength=n,t._scrollStrategy.onDataLengthChanged()),t._doChangeDetection()}))}))},t.prototype.detach=function(){this._forOf=null,this._detachedSubject.next()},t.prototype.getDataLength=function(){return this._dataLength},t.prototype.getViewportSize=function(){return this._viewportSize},t.prototype.getRenderedRange=function(){return this._renderedRange},t.prototype.setTotalContentSize=function(e){this._totalContentSize!==e&&(this._totalContentSize=e,this._calculateSpacerSize(),this._markChangeDetectionNeeded())},t.prototype.setRenderedRange=function(e){var t,n,r=this;t=this._renderedRange,n=e,(t.start!=n.start||t.end!=n.end)&&(this._renderedRangeSubject.next(this._renderedRange=e),this._markChangeDetectionNeeded((function(){return r._scrollStrategy.onContentRendered()})))},t.prototype.getOffsetToRenderedContentStart=function(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset},t.prototype.setRenderedContentOffset=function(e,t){var n=this;void 0===t&&(t="to-start");var r=this.dir&&"rtl"==this.dir.value,i="horizontal"==this.orientation,a=i?"X":"Y",o="translate"+a+"("+Number((i&&r?-1:1)*e)+"px)";this._renderedContentOffset=e,"to-end"===t&&(o+=" translate"+a+"(-100%)",this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=o&&(this._renderedContentTransform=o,this._markChangeDetectionNeeded((function(){n._renderedContentOffsetNeedsRewrite?(n._renderedContentOffset-=n.measureRenderedContentSize(),n._renderedContentOffsetNeedsRewrite=!1,n.setRenderedContentOffset(n._renderedContentOffset)):n._scrollStrategy.onRenderedOffsetChanged()})))},t.prototype.scrollToOffset=function(e,t){void 0===t&&(t="auto");var n={behavior:t};"horizontal"===this.orientation?n.start=e:n.top=e,this.scrollTo(n)},t.prototype.scrollToIndex=function(e,t){void 0===t&&(t="auto"),this._scrollStrategy.scrollToIndex(e,t)},t.prototype.measureScrollOffset=function(t){return t?e.prototype.measureScrollOffset.call(this,t):e.prototype.measureScrollOffset.call(this,"horizontal"===this.orientation?"start":"top")},t.prototype.measureRenderedContentSize=function(){var e=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?e.offsetWidth:e.offsetHeight},t.prototype.measureRangeSize=function(e){return this._forOf?this._forOf.measureRangeSize(e,this.orientation):0},t.prototype.checkViewportSize=function(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()},t.prototype._measureViewportSize=function(){var e=this.elementRef.nativeElement;this._viewportSize="horizontal"===this.orientation?e.clientWidth:e.clientHeight},t.prototype._markChangeDetectionNeeded=function(e){var t=this;e&&this._runAfterChangeDetection.push(e),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular((function(){return Promise.resolve().then((function(){t._doChangeDetection()}))})))},t.prototype._doChangeDetection=function(){var e,t,n=this;this._isChangeDetectionPending=!1,this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,this.ngZone.run((function(){return n._changeDetectorRef.markForCheck()}));var r=this._runAfterChangeDetection;this._runAfterChangeDetection=[];try{for(var i=Object(p.h)(r),a=i.next();!a.done;a=i.next()){(0,a.value)()}}catch(o){e={error:o}}finally{try{a&&!a.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}},t.prototype._calculateSpacerSize=function(){this._totalContentHeight="horizontal"===this.orientation?"":this._totalContentSize+"px",this._totalContentWidth="horizontal"===this.orientation?this._totalContentSize+"px":""},t.ctorParameters=function(){return[{type:r.ElementRef},{type:r.ChangeDetectorRef},{type:r.NgZone},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[je]}]},{type:ye,decorators:[{type:r.Optional}]},{type:Se},{type:Oe,decorators:[{type:r.Optional}]}]},t.propDecorators={orientation:[{type:r.Input}],scrolledIndexChange:[{type:r.Output}],_contentWrapper:[{type:r.ViewChild,args:["contentWrapper",{static:!0}]}]},t.ɵfac=function(e){return new(e||t)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](r.ChangeDetectorRef),r["ɵɵdirectiveInject"](r.NgZone),r["ɵɵdirectiveInject"](je,8),r["ɵɵdirectiveInject"](ye,8),r["ɵɵdirectiveInject"](Se),r["ɵɵdirectiveInject"](Oe,8))},t.ɵcmp=r["ɵɵdefineComponent"]({type:t,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(e,t){var n;(1&e&&r["ɵɵstaticViewQuery"](we,!0),2&e)&&(r["ɵɵqueryRefresh"](n=r["ɵɵloadQuery"]())&&(t._contentWrapper=n.first))},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(e,t){2&e&&r["ɵɵclassProp"]("cdk-virtual-scroll-orientation-horizontal","horizontal"===t.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==t.orientation)},inputs:{orientation:"orientation"},outputs:{scrolledIndexChange:"scrolledIndexChange"},features:[r["ɵɵProvidersFeature"]([{provide:Te,useExisting:t}]),r["ɵɵInheritDefinitionFeature"]],ngContentSelectors:_e,decls:10,vars:4,consts:[[1,"cdk-virtual-scroll-content-wrapper"],["contentWrapper",""],[1,"cdk-virtual-scroll-spacer"]],template:function(e,t){1&e&&(r["ɵɵprojectionDef"](),r["ɵɵtext"](0,"\n"),r["ɵɵelementStart"](1,"div",0,1),r["ɵɵtext"](3,"\n "),r["ɵɵprojection"](4),r["ɵɵtext"](5,"\n"),r["ɵɵelementEnd"](),r["ɵɵtext"](6,"\n"),r["ɵɵtext"](7,"\n"),r["ɵɵelement"](8,"div",2),r["ɵɵtext"](9,"\n")),2&e&&(r["ɵɵadvance"](8),r["ɵɵstyleProp"]("width",t._totalContentWidth)("height",t._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"],encapsulation:2,changeDetection:0}),t}(Te); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function De(e,t){var n=t;if(!n.getBoundingClientRect)return 0;var r=n.getBoundingClientRect();return"horizontal"==e?r.width:r.height}var Ae=function(){function e(e,t,n,r,i){var a=this;this._viewContainerRef=e,this._template=t,this._differs=n,this._viewport=r,this.viewChange=new l.a,this._dataSourceChanges=new l.a,this.cdkVirtualForTemplateCacheSize=20,this.dataStream=this._dataSourceChanges.pipe(Object(H.a)(null),(function(e){return e.lift(new W)}),Object(Q.a)((function(e){var t=Object(p.f)(e,2),n=t[0],r=t[1];return a._changeDataSource(n,r)})),se(1)),this._differ=null,this._templateCache=[],this._needsUpdate=!1,this._destroyed=new l.a,this.dataStream.subscribe((function(e){a._data=e,a._onRenderedDataChange()})),this._viewport.renderedRangeStream.pipe(F(this._destroyed)).subscribe((function(e){a._renderedRange=e,i.run((function(){return a.viewChange.next(a._renderedRange)})),a._onRenderedDataChange()})),this._viewport.attach(this)}return Object.defineProperty(e.prototype,"cdkVirtualForOf",{get:function(){return this._cdkVirtualForOf},set:function(e){this._cdkVirtualForOf=e,!function(e){return e&&"function"==typeof e.connect}(e)?this._dataSourceChanges.next(new ke(S(e)?e:Array.prototype.slice.call(e||[]))):this._dataSourceChanges.next(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cdkVirtualForTrackBy",{get:function(){return this._cdkVirtualForTrackBy},set:function(e){var t=this;this._needsUpdate=!0,this._cdkVirtualForTrackBy=e?function(n,r){return e(n+(t._renderedRange?t._renderedRange.start:0),r)}:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cdkVirtualForTemplate",{set:function(e){e&&(this._needsUpdate=!0,this._template=e)},enumerable:!0,configurable:!0}),e.prototype.measureRangeSize=function(e,t){if(e.start>=e.end)return 0;if(e.startthis._renderedRange.end)throw Error("Error: attempted to measure an item that isn't rendered.");for(var n=e.start-this._renderedRange.start,r=0,i=e.end-e.start;i--;)for(var a=this._viewContainerRef.get(i+n),o=a?a.rootNodes.length:0;o--;)r+=De(t,a.rootNodes[o]);return r},e.prototype.ngDoCheck=function(){if(this._differ&&this._needsUpdate){var e=this._differ.diff(this._renderedItems);e?this._applyChanges(e):this._updateContext(),this._needsUpdate=!1}},e.prototype.ngOnDestroy=function(){var e,t;this._viewport.detach(),this._dataSourceChanges.next(),this._dataSourceChanges.complete(),this.viewChange.complete(),this._destroyed.next(),this._destroyed.complete();try{for(var n=Object(p.h)(this._templateCache),r=n.next();!r.done;r=n.next()){r.value.destroy()}}catch(i){e={error:i}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}},e.prototype._onRenderedDataChange=function(){this._renderedRange&&(this._renderedItems=this._data.slice(this._renderedRange.start,this._renderedRange.end),this._differ||(this._differ=this._differs.find(this._renderedItems).create(this.cdkVirtualForTrackBy)),this._needsUpdate=!0)},e.prototype._changeDataSource=function(e,t){return e&&e.disconnect(this),this._needsUpdate=!0,t?t.connect(this):Object(c.a)()},e.prototype._updateContext=function(){for(var e=this._data.length,t=this._viewContainerRef.length;t--;){var n=this._viewContainerRef.get(t);n.context.index=this._renderedRange.start+t,n.context.count=e,this._updateComputedContextProperties(n.context),n.detectChanges()}},e.prototype._applyChanges=function(e){var t=this;e.forEachOperation((function(e,n,r){if(null==e.previousIndex)(i=t._insertViewForNewItem(r)).context.$implicit=e.item;else if(null==r)t._cacheView(t._detachView(n));else{var i=t._viewContainerRef.get(n);t._viewContainerRef.move(i,r),i.context.$implicit=e.item}})),e.forEachIdentityChange((function(e){t._viewContainerRef.get(e.currentIndex).context.$implicit=e.item}));for(var n=this._data.length,r=this._viewContainerRef.length;r--;){var i=this._viewContainerRef.get(r);i.context.index=this._renderedRange.start+r,i.context.count=n,this._updateComputedContextProperties(i.context)}},e.prototype._cacheView=function(e){if(this._templateCache.length-1?1:1e3;return parseFloat(e)*t}function Ue(e,t){return e.getPropertyValue(t).split(",").map((function(e){return e.trim()}))} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ve(e){var t=e.getBoundingClientRect();return{top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.width,height:t.height}}function He(e,t,n){var r=e.top,i=e.bottom,a=e.left,o=e.right;return n>=r&&n<=i&&t>=a&&t<=o}function Ke(e,t,n){e.top+=t,e.bottom=e.top+e.height,e.left+=n,e.right=e.left+e.width}function We(e,t,n,r){var i=e.top,a=e.right,o=e.bottom,s=e.left,l=e.width*t,c=e.height*t;return r>i-c&&rs-l&&n=o._config.dragStartThreshold){if(!(Date.now()>=o._dragStartTime+o._getDragStartDelay(e)))return void o._endDragSequence(e);o._dropContainer&&o._dropContainer.isDragging()||(o._hasStartedDragging=!0,o._ngZone.run((function(){return o._startDragSequence(e)})))}}},this._pointerUp=function(e){o._endDragSequence(e)},this.withRootElement(e),this._parentPositions=new Ge(n,i),a.registerDragItem(this)}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||!(!this._dropContainer||!this._dropContainer.disabled)},set:function(e){var t=a(e);t!==this._disabled&&(this._disabled=t,this._toggleNativeDragInteractions())},enumerable:!0,configurable:!0}),e.prototype.getPlaceholderElement=function(){return this._placeholder},e.prototype.getRootElement=function(){return this._rootElement},e.prototype.getVisibleElement=function(){return this.isDragging()?this.getPlaceholderElement():this.getRootElement()},e.prototype.withHandles=function(e){return this._handles=e.map((function(e){return s(e)})),this._handles.forEach((function(e){return Le(e,!1)})),this._toggleNativeDragInteractions(),this},e.prototype.withPreviewTemplate=function(e){return this._previewTemplate=e,this},e.prototype.withPlaceholderTemplate=function(e){return this._placeholderTemplate=e,this},e.prototype.withRootElement=function(e){var t=this,n=s(e);return n!==this._rootElement&&(this._rootElement&&this._removeRootElementListeners(this._rootElement),this._ngZone.runOutsideAngular((function(){n.addEventListener("mousedown",t._pointerDown,$e),n.addEventListener("touchstart",t._pointerDown,Qe)})),this._initialTransform=void 0,this._rootElement=n),this},e.prototype.withBoundaryElement=function(e){var t=this;return this._boundaryElement=e?s(e):null,this._resizeSubscription.unsubscribe(),e&&(this._resizeSubscription=this._viewportRuler.change(10).subscribe((function(){return t._containInsideBoundaryOnResize()}))),this},e.prototype.dispose=function(){this._removeRootElementListeners(this._rootElement),this.isDragging()&&et(this._rootElement),et(this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._dragDropRegistry.removeDragItem(this),this._removeSubscriptions(),this.beforeStarted.complete(),this.started.complete(),this.released.complete(),this.ended.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this._moveEvents.complete(),this._handles=[],this._disabledHandles.clear(),this._dropContainer=void 0,this._resizeSubscription.unsubscribe(),this._parentPositions.clear(),this._boundaryElement=this._rootElement=this._placeholderTemplate=this._previewTemplate=this._anchor=null},e.prototype.isDragging=function(){return this._hasStartedDragging&&this._dragDropRegistry.isDragging(this)},e.prototype.reset=function(){this._rootElement.style.transform=this._initialTransform||"",this._activeTransform={x:0,y:0},this._passiveTransform={x:0,y:0}},e.prototype.disableHandle=function(e){this._handles.indexOf(e)>-1&&this._disabledHandles.add(e)},e.prototype.enableHandle=function(e){this._disabledHandles.delete(e)},e.prototype.withDirection=function(e){return this._direction=e,this},e.prototype._withDropContainer=function(e){this._dropContainer=e},e.prototype.getFreeDragPosition=function(){var e=this.isDragging()?this._activeTransform:this._passiveTransform;return{x:e.x,y:e.y}},e.prototype.setFreeDragPosition=function(e){return this._activeTransform={x:0,y:0},this._passiveTransform.x=e.x,this._passiveTransform.y=e.y,this._dropContainer||this._applyRootElementTransform(e.x,e.y),this},e.prototype._sortFromLastPointerPosition=function(){var e=this._pointerPositionAtLastDirectionChange;e&&this._dropContainer&&this._updateActiveDropContainer(this._getConstrainedPointerPosition(e))},e.prototype._removeSubscriptions=function(){this._pointerMoveSubscription.unsubscribe(),this._pointerUpSubscription.unsubscribe(),this._scrollSubscription.unsubscribe()},e.prototype._destroyPreview=function(){this._preview&&et(this._preview),this._previewRef&&this._previewRef.destroy(),this._preview=this._previewRef=null},e.prototype._destroyPlaceholder=function(){this._placeholder&&et(this._placeholder),this._placeholderRef&&this._placeholderRef.destroy(),this._placeholder=this._placeholderRef=null},e.prototype._endDragSequence=function(e){var t=this;this._dragDropRegistry.isDragging(this)&&(this._removeSubscriptions(),this._dragDropRegistry.stopDragging(this),this._toggleNativeDragInteractions(),this._handles&&(this._rootElement.style.webkitTapHighlightColor=this._rootElementTapHighlight),this._hasStartedDragging&&(this.released.next({source:this}),this._dropContainer?(this._dropContainer._stopScrolling(),this._animatePreviewToPlaceholder().then((function(){t._cleanupDragArtifacts(e),t._cleanupCachedDimensions(),t._dragDropRegistry.stopDragging(t)}))):(this._passiveTransform.x=this._activeTransform.x,this._passiveTransform.y=this._activeTransform.y,this._ngZone.run((function(){t.ended.next({source:t,distance:t._getDragDistance(t._getPointerPositionOnPage(e))})})),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this))))},e.prototype._startDragSequence=function(e){this.started.next({source:this}),tt(e)&&(this._lastTouchEventTime=Date.now()),this._toggleNativeDragInteractions();var t,n=this._dropContainer;if(n){var r=this._rootElement,i=r.parentNode,a=this._preview=this._createPreviewElement(),o=this._placeholder=this._createPlaceholderElement(),s=this._anchor=this._anchor||this._document.createComment("");i.insertBefore(s,r),r.style.display="none",this._document.body.appendChild(i.replaceChild(o,r)),(t=this._document,t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement||t.msFullscreenElement||t.body).appendChild(a),n.start(),this._initialContainer=n,this._initialIndex=n.getItemIndex(this)}else this._initialContainer=this._initialIndex=void 0;this._parentPositions.cache(n?n.getScrollableParents():[])},e.prototype._initializeDragSequence=function(e,t){var n=this;t.stopPropagation();var r=this.isDragging(),i=tt(t),a=!i&&0!==t.button,o=this._rootElement,s=!i&&this._lastTouchEventTime&&this._lastTouchEventTime+800>Date.now();if(t.target&&t.target.draggable&&"mousedown"===t.type&&t.preventDefault(),!(r||a||s)){this._handles.length&&(this._rootElementTapHighlight=o.style.webkitTapHighlightColor,o.style.webkitTapHighlightColor="transparent"),this._hasStartedDragging=this._hasMoved=!1,this._removeSubscriptions(),this._pointerMoveSubscription=this._dragDropRegistry.pointerMove.subscribe(this._pointerMove),this._pointerUpSubscription=this._dragDropRegistry.pointerUp.subscribe(this._pointerUp),this._scrollSubscription=this._dragDropRegistry.scroll.subscribe((function(e){n._updateOnScroll(e)})),this._boundaryElement&&(this._boundaryRect=Ve(this._boundaryElement));var l=this._previewTemplate;this._pickupPositionInElement=l&&l.template&&!l.matchSize?{x:0,y:0}:this._getPointerPositionInElement(e,t);var c=this._pickupPositionOnPage=this._getPointerPositionOnPage(t);this._pointerDirectionDelta={x:0,y:0},this._pointerPositionAtLastDirectionChange={x:c.x,y:c.y},this._dragStartTime=Date.now(),this._dragDropRegistry.startDragging(this,t)}},e.prototype._cleanupDragArtifacts=function(e){var t=this;this._rootElement.style.display="",this._anchor.parentNode.replaceChild(this._rootElement,this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._boundaryRect=this._previewRect=void 0,this._ngZone.run((function(){var n=t._dropContainer,r=n.getItemIndex(t),i=t._getPointerPositionOnPage(e),a=t._getDragDistance(t._getPointerPositionOnPage(e)),o=n._isOverContainer(i.x,i.y);t.ended.next({source:t,distance:a}),t.dropped.next({item:t,currentIndex:r,previousIndex:t._initialIndex,container:n,previousContainer:t._initialContainer,isPointerOverContainer:o,distance:a}),n.drop(t,r,t._initialContainer,o,a,t._initialIndex),t._dropContainer=t._initialContainer}))},e.prototype._updateActiveDropContainer=function(e){var t=this,n=e.x,r=e.y,i=this._initialContainer._getSiblingContainerFromPosition(this,n,r);!i&&this._dropContainer!==this._initialContainer&&this._initialContainer._isOverContainer(n,r)&&(i=this._initialContainer),i&&i!==this._dropContainer&&this._ngZone.run((function(){t.exited.next({item:t,container:t._dropContainer}),t._dropContainer.exit(t),t._dropContainer=i,t._dropContainer.enter(t,n,r,i===t._initialContainer&&i.sortingDisabled?t._initialIndex:void 0),t.entered.next({item:t,container:i,currentIndex:i.getItemIndex(t)})})),this._dropContainer._startScrollingIfNecessary(n,r),this._dropContainer._sortItem(this,n,r,this._pointerDirectionDelta),this._preview.style.transform=Ze(n-this._pickupPositionInElement.x,r-this._pickupPositionInElement.y)},e.prototype._createPreviewElement=function(){var e,t=this._previewTemplate,n=this.previewClass,r=t?t.template:null;if(r&&t){var i=t.matchSize?this._rootElement.getBoundingClientRect():null,a=t.viewContainer.createEmbeddedView(r,t.context);a.detectChanges(),e=nt(a,this._document),this._previewRef=a,t.matchSize?rt(e,i):e.style.transform=Ze(this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else{var o=this._rootElement;rt(e=Je(o),o.getBoundingClientRect())}return Be(e.style,{pointerEvents:"none",margin:"0",position:"fixed",top:"0",left:"0",zIndex:""+(this._config.zIndex||1e3)}),Le(e,!1),e.classList.add("cdk-drag-preview"),e.setAttribute("dir",this._direction),n&&(Array.isArray(n)?n.forEach((function(t){return e.classList.add(t)})):e.classList.add(n)),e},e.prototype._animatePreviewToPlaceholder=function(){var e=this;if(!this._hasMoved)return Promise.resolve();var t=this._placeholder.getBoundingClientRect();this._preview.classList.add("cdk-drag-animating"),this._preview.style.transform=Ze(t.left,t.top);var n=function(e){var t=getComputedStyle(e),n=Ue(t,"transition-property"),r=n.find((function(e){return"transform"===e||"all"===e}));if(!r)return 0;var i=n.indexOf(r),a=Ue(t,"transition-duration"),o=Ue(t,"transition-delay");return Fe(a[i])+Fe(o[i])}(this._preview);return 0===n?Promise.resolve():this._ngZone.runOutsideAngular((function(){return new Promise((function(t){var r=function(n){(!n||n.target===e._preview&&"transform"===n.propertyName)&&(e._preview.removeEventListener("transitionend",r),t(),clearTimeout(i))},i=setTimeout(r,1.5*n);e._preview.addEventListener("transitionend",r)}))}))},e.prototype._createPlaceholderElement=function(){var e,t=this._placeholderTemplate,n=t?t.template:null;return n?(this._placeholderRef=t.viewContainer.createEmbeddedView(n,t.context),this._placeholderRef.detectChanges(),e=nt(this._placeholderRef,this._document)):e=Je(this._rootElement),e.classList.add("cdk-drag-placeholder"),e},e.prototype._getPointerPositionInElement=function(e,t){var n=this._rootElement.getBoundingClientRect(),r=e===this._rootElement?null:e,i=r?r.getBoundingClientRect():n,a=tt(t)?t.targetTouches[0]:t,o=this._getViewportScrollPosition(),s=a.pageX-i.left-o.left,l=a.pageY-i.top-o.top;return{x:i.left-n.left+s,y:i.top-n.top+l}},e.prototype._getPointerPositionOnPage=function(e){var t=tt(e)?e.touches[0]||e.changedTouches[0]:e,n=this._getViewportScrollPosition();return{x:t.pageX-n.left,y:t.pageY-n.top}},e.prototype._getConstrainedPointerPosition=function(e){var t=this.constrainPosition?this.constrainPosition(e,this):e,n=this._dropContainer?this._dropContainer.lockAxis:null;if("x"===this.lockAxis||"x"===n?t.y=this._pickupPositionOnPage.y:"y"!==this.lockAxis&&"y"!==n||(t.x=this._pickupPositionOnPage.x),this._boundaryRect){var r=this._pickupPositionInElement,i=r.x,a=r.y,o=this._boundaryRect,s=this._previewRect,l=o.top+a,c=o.bottom-(s.height-a),u=o.left+i,d=o.right-(s.width-i);t.x=Xe(t.x,u,d),t.y=Xe(t.y,l,c)}return t},e.prototype._updatePointerDirectionDelta=function(e){var t=e.x,n=e.y,r=this._pointerDirectionDelta,i=this._pointerPositionAtLastDirectionChange,a=Math.abs(t-i.x),o=Math.abs(n-i.y);return a>this._config.pointerDirectionChangeThreshold&&(r.x=t>i.x?1:-1,i.x=t),o>this._config.pointerDirectionChangeThreshold&&(r.y=n>i.y?1:-1,i.y=n),r},e.prototype._toggleNativeDragInteractions=function(){if(this._rootElement&&this._handles){var e=this._handles.length>0||!this.isDragging();e!==this._nativeInteractionsEnabled&&(this._nativeInteractionsEnabled=e,Le(this._rootElement,e))}},e.prototype._removeRootElementListeners=function(e){e.removeEventListener("mousedown",this._pointerDown,$e),e.removeEventListener("touchstart",this._pointerDown,Qe)},e.prototype._applyRootElementTransform=function(e,t){var n=Ze(e,t);null==this._initialTransform&&(this._initialTransform=this._rootElement.style.transform||""),this._rootElement.style.transform=this._initialTransform?n+" "+this._initialTransform:n},e.prototype._getDragDistance=function(e){var t=this._pickupPositionOnPage;return t?{x:e.x-t.x,y:e.y-t.y}:{x:0,y:0}},e.prototype._cleanupCachedDimensions=function(){this._boundaryRect=this._previewRect=void 0,this._parentPositions.clear()},e.prototype._containInsideBoundaryOnResize=function(){var e=this._passiveTransform,t=e.x,n=e.y;if(!(0===t&&0===n||this.isDragging())&&this._boundaryElement){var r=this._boundaryElement.getBoundingClientRect(),i=this._rootElement.getBoundingClientRect();if(!(0===r.width&&0===r.height||0===i.width&&0===i.height)){var a=r.left-i.left,o=i.right-r.right,s=r.top-i.top,l=i.bottom-r.bottom;r.width>i.width?(a>0&&(t+=a),o>0&&(t-=o)):t=0,r.height>i.height?(s>0&&(n+=s),l>0&&(n-=l)):n=0,t===this._passiveTransform.x&&n===this._passiveTransform.y||this.setFreeDragPosition({y:n,x:t})}}},e.prototype._getDragStartDelay=function(e){var t=this.dragStartDelay;return"number"==typeof t?t:tt(e)?t.touch:t?t.mouse:0},e.prototype._updateOnScroll=function(e){var t=this._parentPositions.handleScroll(e);this._boundaryRect&&t&&Ke(this._boundaryRect,t.top,t.left)},e.prototype._getViewportScrollPosition=function(){var e=this._parentPositions.positions.get(this._document);return e?e.scrollPosition:this._viewportRuler.getViewportScrollPosition()},e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ze(e,t){return"translate3d("+Math.round(e)+"px, "+Math.round(t)+"px, 0)"}function Je(e){var t=e.cloneNode(!0),n=t.querySelectorAll("[id]"),r=e.querySelectorAll("canvas");t.removeAttribute("id");for(var i=0;i-1&&a.splice(o,1),c&&!this._dragDropRegistry.isDragging(c)){(u=c.getRootElement()).parentElement.insertBefore(l,u),a.splice(i,0,e)}else{var u=s(this.element);this._shouldEnterAsFirstChild(t,n)?(u.insertBefore(l,a[0].getRootElement()),a.unshift(e)):(u.appendChild(l),a.push(e))}l.style.transform="",this._cacheItemPositions(),this._cacheParentPositions(),this.entered.next({item:e,container:this,currentIndex:this.getItemIndex(e)})},e.prototype.exit=function(e){this._reset(),this.exited.next({item:e,container:this})},e.prototype.drop=function(e,t,n,r,i,a){this._reset(),null==a&&(a=n.getItemIndex(e)),this.dropped.next({item:e,currentIndex:t,previousIndex:a,container:this,previousContainer:n,isPointerOverContainer:r,distance:i})},e.prototype.withItems=function(e){var t=this,n=this._draggables;(this._draggables=e,e.forEach((function(e){return e._withDropContainer(t)})),this.isDragging())&&(n.filter((function(e){return e.isDragging()})).every((function(t){return-1===e.indexOf(t)}))?this._reset():this._cacheItems());return this},e.prototype.withDirection=function(e){return this._direction=e,this},e.prototype.connectedTo=function(e){return this._siblings=e.slice(),this},e.prototype.withOrientation=function(e){return this._orientation=e,this},e.prototype.withScrollableParents=function(e){var t=s(this.element);return this._scrollableElements=-1===e.indexOf(t)?Object(p.g)([t],e):e.slice(),this},e.prototype.getScrollableParents=function(){return this._scrollableElements},e.prototype.getItemIndex=function(e){return this._isDragging?ct("horizontal"===this._orientation&&"rtl"===this._direction?this._itemPositions.slice().reverse():this._itemPositions,(function(t){return t.drag===e})):this._draggables.indexOf(e)},e.prototype.isReceiving=function(){return this._activeSiblings.size>0},e.prototype._sortItem=function(e,t,n,r){if(!this.sortingDisabled&&We(this._clientRect,.05,t,n)){var i=this._itemPositions,a=this._getItemIndexFromPointerPosition(e,t,n,r);if(!(-1===a&&i.length>0)){var o="horizontal"===this._orientation,s=ct(i,(function(t){return t.drag===e})),l=i[a],c=i[s].clientRect,u=l.clientRect,d=s>a?1:-1;this._previousSwap.drag=l.drag,this._previousSwap.delta=o?r.x:r.y;var h=this._getItemOffsetPx(c,u,d),p=this._getSiblingOffsetPx(s,i,d),f=i.slice();it(i,s,a),this.sorted.next({previousIndex:s,currentIndex:a,container:this,item:e}),i.forEach((function(t,n){if(f[n]!==t){var r=t.drag===e,i=r?h:p,a=r?e.getPlaceholderElement():t.drag.getRootElement();t.offset+=i,o?(a.style.transform="translate3d("+Math.round(t.offset)+"px, 0, 0)",Ke(t.clientRect,0,i)):(a.style.transform="translate3d(0, "+Math.round(t.offset)+"px, 0)",Ke(t.clientRect,i,0))}}))}}},e.prototype._startScrollingIfNecessary=function(e,t){var n=this;if(!this.autoScrollDisabled){var r,i=0,a=0;if(this._parentPositions.positions.forEach((function(o,s){var l;s!==n._document&&o.clientRect&&!r&&We(o.clientRect,.05,e,t)&&(l=Object(p.f)(function(e,t,n,r){var i=ht(t,r),a=pt(t,n),o=0,s=0;if(i){var l=e.scrollTop;1===i?l>0&&(o=1):e.scrollHeight-l>e.clientHeight&&(o=2)}if(a){var c=e.scrollLeft;1===a?c>0&&(s=1):e.scrollWidth-c>e.clientWidth&&(s=2)}return[o,s]} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(s,o.clientRect,e,t),2),i=l[0],a=l[1],(i||a)&&(r=s))})),!i&&!a){var o=this._viewportRuler.getViewportSize(),s=o.width,l=o.height,c={width:s,height:l,top:0,right:s,bottom:l,left:0};i=ht(c,t),a=pt(c,e),r=window}!r||i===this._verticalScrollDirection&&a===this._horizontalScrollDirection&&r===this._scrollNode||(this._verticalScrollDirection=i,this._horizontalScrollDirection=a,this._scrollNode=r,(i||a)&&r?this._ngZone.runOutsideAngular(this._startScrollInterval):this._stopScrolling())}},e.prototype._stopScrolling=function(){this._stopScrollTimers.next()},e.prototype._cacheParentPositions=function(){var e=s(this.element);this._parentPositions.cache(this._scrollableElements),this._clientRect=this._parentPositions.positions.get(e).clientRect},e.prototype._cacheItemPositions=function(){var e="horizontal"===this._orientation;this._itemPositions=this._activeDraggables.map((function(e){var t=e.getVisibleElement();return{drag:e,offset:0,clientRect:Ve(t)}})).sort((function(t,n){return e?t.clientRect.left-n.clientRect.left:t.clientRect.top-n.clientRect.top}))},e.prototype._reset=function(){var e=this;this._isDragging=!1;var t=s(this.element).style;t.scrollSnapType=t.msScrollSnapType=this._initialScrollSnap,this._activeDraggables.forEach((function(e){var t=e.getRootElement();t&&(t.style.transform="")})),this._siblings.forEach((function(t){return t._stopReceiving(e)})),this._activeDraggables=[],this._itemPositions=[],this._previousSwap.drag=null,this._previousSwap.delta=0,this._stopScrolling(),this._viewportScrollSubscription.unsubscribe(),this._parentPositions.clear()},e.prototype._getSiblingOffsetPx=function(e,t,n){var r="horizontal"===this._orientation,i=t[e].clientRect,a=t[e+-1*n],o=i[r?"width":"height"]*n;if(a){var s=r?"left":"top",l=r?"right":"bottom";-1===n?o-=a.clientRect[s]-i[l]:o+=i[s]-a.clientRect[l]}return o},e.prototype._getItemOffsetPx=function(e,t,n){var r="horizontal"===this._orientation,i=r?t.left-e.left:t.top-e.top;return-1===n&&(i+=r?t.width-e.width:t.height-e.height),i},e.prototype._shouldEnterAsFirstChild=function(e,t){if(!this._activeDraggables.length)return!1;var n=this._itemPositions,r="horizontal"===this._orientation;if(n[0].drag!==this._activeDraggables[0]){var i=n[n.length-1].clientRect;return r?e>=i.right:t>=i.bottom}var a=n[0].clientRect;return r?e<=a.left:t<=a.top},e.prototype._getItemIndexFromPointerPosition=function(e,t,n,r){var i=this,a="horizontal"===this._orientation;return ct(this._itemPositions,(function(o,s,l){var c=o.drag,u=o.clientRect;if(c===e)return l.length<2;if(r){var d=a?r.x:r.y;if(c===i._previousSwap.drag&&d===i._previousSwap.delta)return!1}return a?t>=Math.floor(u.left)&&t=Math.floor(u.top)&&n=n-i&&t<=n+i?1:t>=r-i&&t<=r+i?2:0}function pt(e,t){var n=e.left,r=e.right,i=.05*e.width;return t>=n-i&&t<=n+i?1:t>=r-i&&t<=r+i?2:0}var ft=pe({passive:!1,capture:!0}),mt=function(){function e(e,t){var n=this;this._ngZone=e,this._dropInstances=new Set,this._dragInstances=new Set,this._activeDragInstances=new Set,this._globalListeners=new Map,this.pointerMove=new l.a,this.pointerUp=new l.a,this.scroll=new l.a,this._preventDefaultWhileDragging=function(e){n._activeDragInstances.size&&e.preventDefault()},this._document=t}return e.prototype.registerDropContainer=function(e){this._dropInstances.has(e)||this._dropInstances.add(e)},e.prototype.registerDragItem=function(e){var t=this;this._dragInstances.add(e),1===this._dragInstances.size&&this._ngZone.runOutsideAngular((function(){t._document.addEventListener("touchmove",t._preventDefaultWhileDragging,ft)}))},e.prototype.removeDropContainer=function(e){this._dropInstances.delete(e)},e.prototype.removeDragItem=function(e){this._dragInstances.delete(e),this.stopDragging(e),0===this._dragInstances.size&&this._document.removeEventListener("touchmove",this._preventDefaultWhileDragging,ft)},e.prototype.startDragging=function(e,t){var n=this;if(!this._activeDragInstances.has(e)&&(this._activeDragInstances.add(e),1===this._activeDragInstances.size)){var r=t.type.startsWith("touch"),i=r?"touchmove":"mousemove",a=r?"touchend":"mouseup";this._globalListeners.set(i,{handler:function(e){return n.pointerMove.next(e)},options:ft}).set(a,{handler:function(e){return n.pointerUp.next(e)},options:!0}).set("scroll",{handler:function(e){return n.scroll.next(e)},options:!0}).set("selectstart",{handler:this._preventDefaultWhileDragging,options:ft}),this._ngZone.runOutsideAngular((function(){n._globalListeners.forEach((function(e,t){n._document.addEventListener(t,e.handler,e.options)}))}))}},e.prototype.stopDragging=function(e){this._activeDragInstances.delete(e),0===this._activeDragInstances.size&&this._clearGlobalListeners()},e.prototype.isDragging=function(e){return this._activeDragInstances.has(e)},e.prototype.ngOnDestroy=function(){var e=this;this._dragInstances.forEach((function(t){return e.removeDragItem(t)})),this._dropInstances.forEach((function(t){return e.removeDropContainer(t)})),this._clearGlobalListeners(),this.pointerMove.complete(),this.pointerUp.complete()},e.prototype._clearGlobalListeners=function(){var e=this;this._globalListeners.forEach((function(t,n){e._document.removeEventListener(n,t.handler,t.options)})),this._globalListeners.clear()},e.ctorParameters=function(){return[{type:r.NgZone},{type:void 0,decorators:[{type:r.Inject,args:[i.DOCUMENT]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(r.NgZone),Object(r["ɵɵinject"])(i.DOCUMENT))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](r.NgZone),r["ɵɵinject"](i.DOCUMENT))},e}(),gt={dragStartThreshold:5,pointerDirectionChangeThreshold:5},yt=function(){function e(e,t,n,r){this._document=e,this._ngZone=t,this._viewportRuler=n,this._dragDropRegistry=r}return e.prototype.createDrag=function(e,t){return void 0===t&&(t=gt),new Ye(e,t,this._document,this._ngZone,this._viewportRuler,this._dragDropRegistry)},e.prototype.createDropList=function(e){return new lt(e,this._dragDropRegistry,this._document,this._ngZone,this._viewportRuler)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[i.DOCUMENT]}]},{type:r.NgZone},{type:Oe},{type:mt}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(i.DOCUMENT),Object(r["ɵɵinject"])(r.NgZone),Object(r["ɵɵinject"])(Oe),Object(r["ɵɵinject"])(mt))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](i.DOCUMENT),r["ɵɵinject"](r.NgZone),r["ɵɵinject"](Oe),r["ɵɵinject"](mt))},e}(),bt=new r.InjectionToken("CDK_DRAG_PARENT"),vt=function(){function e(e,t){this.element=e,this._stateChanges=new l.a,this._disabled=!1,this._parentDrag=t,Le(e.nativeElement,!1)}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=a(e),this._stateChanges.next(this)},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this._stateChanges.complete()},e.ctorParameters=function(){return[{type:r.ElementRef},{type:void 0,decorators:[{type:r.Inject,args:[bt]},{type:r.Optional}]}]},e.propDecorators={disabled:[{type:r.Input,args:["cdkDragHandleDisabled"]}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](bt,8))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdkDragHandle",""]],hostAttrs:[1,"cdk-drag-handle"],inputs:{disabled:["cdkDragHandleDisabled","disabled"]}}),e}(),kt=function(){function e(e){this.templateRef=e}return e.ctorParameters=function(){return[{type:r.TemplateRef}]},e.propDecorators={data:[{type:r.Input}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.TemplateRef))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["ng-template","cdkDragPlaceholder",""]],inputs:{data:"data"}}),e}(),wt=function(){function e(e){this.templateRef=e,this._matchSize=!1}return Object.defineProperty(e.prototype,"matchSize",{get:function(){return this._matchSize},set:function(e){this._matchSize=a(e)},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:r.TemplateRef}]},e.propDecorators={data:[{type:r.Input}],matchSize:[{type:r.Input}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.TemplateRef))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["ng-template","cdkDragPreview",""]],inputs:{matchSize:"matchSize",data:"data"}}),e}(),_t=new r.InjectionToken("CDK_DRAG_CONFIG");function jt(){return{dragStartThreshold:5,pointerDirectionChangeThreshold:5}} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ct=new r.InjectionToken("CDK_DROP_LIST"),xt=function(){function e(e,t,n,i,a,o,s,c,d){var h=this;this.element=e,this.dropContainer=t,this._document=n,this._ngZone=i,this._viewContainerRef=a,this._dir=s,this._changeDetectorRef=d,this._destroyed=new l.a,this.started=new r.EventEmitter,this.released=new r.EventEmitter,this.ended=new r.EventEmitter,this.entered=new r.EventEmitter,this.exited=new r.EventEmitter,this.dropped=new r.EventEmitter,this.moved=new u.a((function(e){var t=h._dragRef.moved.pipe(Object(Re.a)((function(e){return{source:h,pointerPosition:e.pointerPosition,event:e.event,delta:e.delta,distance:e.distance}}))).subscribe(e);return function(){t.unsubscribe()}})),this._dragRef=c.createDrag(e,{dragStartThreshold:o&&null!=o.dragStartThreshold?o.dragStartThreshold:5,pointerDirectionChangeThreshold:o&&null!=o.pointerDirectionChangeThreshold?o.pointerDirectionChangeThreshold:5,zIndex:null==o?void 0:o.zIndex}),this._dragRef.data=this,o&&this._assignDefaults(o),t&&(this._dragRef._withDropContainer(t._dropListRef),t.addItem(this)),this._syncInputs(this._dragRef),this._handleEvents(this._dragRef)}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||this.dropContainer&&this.dropContainer.disabled},set:function(e){this._disabled=a(e),this._dragRef.disabled=this._disabled},enumerable:!0,configurable:!0}),e.prototype.getPlaceholderElement=function(){return this._dragRef.getPlaceholderElement()},e.prototype.getRootElement=function(){return this._dragRef.getRootElement()},e.prototype.reset=function(){this._dragRef.reset()},e.prototype.getFreeDragPosition=function(){return this._dragRef.getFreeDragPosition()},e.prototype.ngAfterViewInit=function(){var e=this;this._ngZone.onStable.asObservable().pipe(Object(Me.a)(1),F(this._destroyed)).subscribe((function(){e._updateRootElement(),e._handles.changes.pipe(Object(H.a)(e._handles),Object(qe.a)((function(t){var n=t.filter((function(t){return t._parentDrag===e})).map((function(e){return e.element}));e._dragRef.withHandles(n)})),Object(Q.a)((function(e){return h.a.apply(void 0,Object(p.g)(e.map((function(e){return e._stateChanges.pipe(Object(H.a)(e))}))))})),F(e._destroyed)).subscribe((function(t){var n=e._dragRef,r=t.element.nativeElement;t.disabled?n.disableHandle(r):n.enableHandle(r)})),e.freeDragPosition&&e._dragRef.setFreeDragPosition(e.freeDragPosition)}))},e.prototype.ngOnChanges=function(e){var t=e.rootElementSelector,n=e.freeDragPosition;t&&!t.firstChange&&this._updateRootElement(),n&&!n.firstChange&&this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)},e.prototype.ngOnDestroy=function(){this.dropContainer&&this.dropContainer.removeItem(this),this._destroyed.next(),this._destroyed.complete(),this._dragRef.dispose()},e.prototype._updateRootElement=function(){var e=this.element.nativeElement,t=this.rootElementSelector?Et(e,this.rootElementSelector):e;if(t&&t.nodeType!==this._document.ELEMENT_NODE)throw Error('cdkDrag must be attached to an element node. Currently attached to "'+t.nodeName+'".');this._dragRef.withRootElement(t||e)},e.prototype._getBoundaryElement=function(){var e=this.boundaryElement;if(!e)return null;if("string"==typeof e)return Et(this.element.nativeElement,e);var t=s(e);if(Object(r.isDevMode)()&&!t.contains(this.element.nativeElement))throw Error("Draggable element is not inside of the node passed into cdkDragBoundary.");return t},e.prototype._syncInputs=function(e){var t=this;e.beforeStarted.subscribe((function(){if(!e.isDragging()){var n=t._dir,r=t.dragStartDelay,i=t._placeholderTemplate?{template:t._placeholderTemplate.templateRef,context:t._placeholderTemplate.data,viewContainer:t._viewContainerRef}:null,a=t._previewTemplate?{template:t._previewTemplate.templateRef,context:t._previewTemplate.data,matchSize:t._previewTemplate.matchSize,viewContainer:t._viewContainerRef}:null;e.disabled=t.disabled,e.lockAxis=t.lockAxis,e.dragStartDelay="object"==typeof r&&r?r:o(r),e.constrainPosition=t.constrainPosition,e.previewClass=t.previewClass,e.withBoundaryElement(t._getBoundaryElement()).withPlaceholderTemplate(i).withPreviewTemplate(a),n&&e.withDirection(n.value)}}))},e.prototype._handleEvents=function(e){var t=this;e.started.subscribe((function(){t.started.emit({source:t}),t._changeDetectorRef.markForCheck()})),e.released.subscribe((function(){t.released.emit({source:t})})),e.ended.subscribe((function(e){t.ended.emit({source:t,distance:e.distance}),t._changeDetectorRef.markForCheck()})),e.entered.subscribe((function(e){t.entered.emit({container:e.container.data,item:t,currentIndex:e.currentIndex})})),e.exited.subscribe((function(e){t.exited.emit({container:e.container.data,item:t})})),e.dropped.subscribe((function(e){t.dropped.emit({previousIndex:e.previousIndex,currentIndex:e.currentIndex,previousContainer:e.previousContainer.data,container:e.container.data,isPointerOverContainer:e.isPointerOverContainer,item:t,distance:e.distance})}))},e.prototype._assignDefaults=function(e){var t=e.lockAxis,n=e.dragStartDelay,r=e.constrainPosition,i=e.previewClass,a=e.boundaryElement,o=e.draggingDisabled,s=e.rootElementSelector;this.disabled=null!=o&&o,this.dragStartDelay=n||0,t&&(this.lockAxis=t),r&&(this.constrainPosition=r),i&&(this.previewClass=i),a&&(this.boundaryElement=a),s&&(this.rootElementSelector=s)},e.ctorParameters=function(){return[{type:r.ElementRef},{type:void 0,decorators:[{type:r.Inject,args:[Ct]},{type:r.Optional},{type:r.SkipSelf}]},{type:void 0,decorators:[{type:r.Inject,args:[i.DOCUMENT]}]},{type:r.NgZone},{type:r.ViewContainerRef},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[_t]}]},{type:ye,decorators:[{type:r.Optional}]},{type:yt},{type:r.ChangeDetectorRef}]},e.propDecorators={_handles:[{type:r.ContentChildren,args:[vt,{descendants:!0}]}],_previewTemplate:[{type:r.ContentChild,args:[wt]}],_placeholderTemplate:[{type:r.ContentChild,args:[kt]}],data:[{type:r.Input,args:["cdkDragData"]}],lockAxis:[{type:r.Input,args:["cdkDragLockAxis"]}],rootElementSelector:[{type:r.Input,args:["cdkDragRootElement"]}],boundaryElement:[{type:r.Input,args:["cdkDragBoundary"]}],dragStartDelay:[{type:r.Input,args:["cdkDragStartDelay"]}],freeDragPosition:[{type:r.Input,args:["cdkDragFreeDragPosition"]}],disabled:[{type:r.Input,args:["cdkDragDisabled"]}],constrainPosition:[{type:r.Input,args:["cdkDragConstrainPosition"]}],previewClass:[{type:r.Input,args:["cdkDragPreviewClass"]}],started:[{type:r.Output,args:["cdkDragStarted"]}],released:[{type:r.Output,args:["cdkDragReleased"]}],ended:[{type:r.Output,args:["cdkDragEnded"]}],entered:[{type:r.Output,args:["cdkDragEntered"]}],exited:[{type:r.Output,args:["cdkDragExited"]}],dropped:[{type:r.Output,args:["cdkDragDropped"]}],moved:[{type:r.Output,args:["cdkDragMoved"]}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](Ct,12),r["ɵɵdirectiveInject"](i.DOCUMENT),r["ɵɵdirectiveInject"](r.NgZone),r["ɵɵdirectiveInject"](r.ViewContainerRef),r["ɵɵdirectiveInject"](_t,8),r["ɵɵdirectiveInject"](ye,8),r["ɵɵdirectiveInject"](yt),r["ɵɵdirectiveInject"](r.ChangeDetectorRef))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdkDrag",""]],contentQueries:function(e,t,n){var i;(1&e&&(r["ɵɵcontentQuery"](n,wt,!0),r["ɵɵcontentQuery"](n,kt,!0),r["ɵɵcontentQuery"](n,vt,!0)),2&e)&&(r["ɵɵqueryRefresh"](i=r["ɵɵloadQuery"]())&&(t._previewTemplate=i.first),r["ɵɵqueryRefresh"](i=r["ɵɵloadQuery"]())&&(t._placeholderTemplate=i.first),r["ɵɵqueryRefresh"](i=r["ɵɵloadQuery"]())&&(t._handles=i))},hostAttrs:[1,"cdk-drag"],hostVars:4,hostBindings:function(e,t){2&e&&r["ɵɵclassProp"]("cdk-drag-disabled",t.disabled)("cdk-drag-dragging",t._dragRef.isDragging())},inputs:{disabled:["cdkDragDisabled","disabled"],dragStartDelay:["cdkDragStartDelay","dragStartDelay"],lockAxis:["cdkDragLockAxis","lockAxis"],constrainPosition:["cdkDragConstrainPosition","constrainPosition"],previewClass:["cdkDragPreviewClass","previewClass"],boundaryElement:["cdkDragBoundary","boundaryElement"],rootElementSelector:["cdkDragRootElement","rootElementSelector"],data:["cdkDragData","data"],freeDragPosition:["cdkDragFreeDragPosition","freeDragPosition"]},outputs:{started:"cdkDragStarted",released:"cdkDragReleased",ended:"cdkDragEnded",entered:"cdkDragEntered",exited:"cdkDragExited",dropped:"cdkDragDropped",moved:"cdkDragMoved"},exportAs:["cdkDrag"],features:[r["ɵɵProvidersFeature"]([{provide:bt,useExisting:e}]),r["ɵɵNgOnChangesFeature"]]}),e}();function Et(e,t){for(var n=e.parentElement;n;){if(n.matches?n.matches(t):n.msMatchesSelector(t))return n;n=n.parentElement}return null} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var St=function(){function e(){this._items=new Set,this._disabled=!1}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=a(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this._items.clear()},e.propDecorators={disabled:[{type:r.Input,args:["cdkDropListGroupDisabled"]}]},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdkDropListGroup",""]],inputs:{disabled:["cdkDropListGroupDisabled","disabled"]},exportAs:["cdkDropListGroup"]}),e}(),Tt=0,Ot=function(){function e(t,n,i,a,o,s,c){var u=this;this.element=t,this._changeDetectorRef=i,this._dir=a,this._group=o,this._scrollDispatcher=s,this._destroyed=new l.a,this.connectedTo=[],this.id="cdk-drop-list-"+Tt++,this.enterPredicate=function(){return!0},this.dropped=new r.EventEmitter,this.entered=new r.EventEmitter,this.exited=new r.EventEmitter,this.sorted=new r.EventEmitter,this._unsortedItems=new Set,this._dropListRef=n.createDropList(t),this._dropListRef.data=this,c&&this._assignDefaults(c),this._dropListRef.enterPredicate=function(e,t){return u.enterPredicate(e.data,t.data)},this._setupInputSyncSubscription(this._dropListRef),this._handleEvents(this._dropListRef),e._dropLists.push(this),o&&o._items.add(this)}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||!!this._group&&this._group.disabled},set:function(e){this._dropListRef.disabled=this._disabled=a(e)},enumerable:!0,configurable:!0}),e.prototype.addItem=function(e){this._unsortedItems.add(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()},e.prototype.removeItem=function(e){this._unsortedItems.delete(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()},e.prototype.getSortedItems=function(){return Array.from(this._unsortedItems).sort((function(e,t){return e._dragRef.getVisibleElement().compareDocumentPosition(t._dragRef.getVisibleElement())&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}))},e.prototype.ngOnDestroy=function(){var t=e._dropLists.indexOf(this);t>-1&&e._dropLists.splice(t,1),this._group&&this._group._items.delete(this),this._unsortedItems.clear(),this._dropListRef.dispose(),this._destroyed.next(),this._destroyed.complete()},e.prototype.start=function(){this._dropListRef.start()},e.prototype.drop=function(e,t,n,r){this._dropListRef.drop(e._dragRef,t,n._dropListRef,r,{x:0,y:0})},e.prototype.enter=function(e,t,n){this._dropListRef.enter(e._dragRef,t,n)},e.prototype.exit=function(e){this._dropListRef.exit(e._dragRef)},e.prototype.getItemIndex=function(e){return this._dropListRef.getItemIndex(e._dragRef)},e.prototype._setupInputSyncSubscription=function(t){var n=this;this._dir&&this._dir.change.pipe(Object(H.a)(this._dir.value),F(this._destroyed)).subscribe((function(e){return t.withDirection(e)})),t.beforeStarted.subscribe((function(){var r,i=(r=n.connectedTo,Array.isArray(r)?r:[r]).map((function(t){return"string"==typeof t?e._dropLists.find((function(e){return e.id===t})):t}));if(n._group&&n._group._items.forEach((function(e){-1===i.indexOf(e)&&i.push(e)})),!n._scrollableParentsResolved&&n._scrollDispatcher){var o=n._scrollDispatcher.getAncestorScrollContainers(n.element).map((function(e){return e.getElementRef().nativeElement}));n._dropListRef.withScrollableParents(o),n._scrollableParentsResolved=!0}t.disabled=n.disabled,t.lockAxis=n.lockAxis,t.sortingDisabled=a(n.sortingDisabled),t.autoScrollDisabled=a(n.autoScrollDisabled),t.connectedTo(i.filter((function(e){return e&&e!==n})).map((function(e){return e._dropListRef}))).withOrientation(n.orientation)}))},e.prototype._handleEvents=function(e){var t=this;e.beforeStarted.subscribe((function(){t._syncItemsWithRef(),t._changeDetectorRef.markForCheck()})),e.entered.subscribe((function(e){t.entered.emit({container:t,item:e.item.data,currentIndex:e.currentIndex})})),e.exited.subscribe((function(e){t.exited.emit({container:t,item:e.item.data}),t._changeDetectorRef.markForCheck()})),e.sorted.subscribe((function(e){t.sorted.emit({previousIndex:e.previousIndex,currentIndex:e.currentIndex,container:t,item:e.item.data})})),e.dropped.subscribe((function(e){t.dropped.emit({previousIndex:e.previousIndex,currentIndex:e.currentIndex,previousContainer:e.previousContainer.data,container:e.container.data,item:e.item.data,isPointerOverContainer:e.isPointerOverContainer,distance:e.distance}),t._changeDetectorRef.markForCheck()}))},e.prototype._assignDefaults=function(e){var t=e.lockAxis,n=e.draggingDisabled,r=e.sortingDisabled,i=e.listAutoScrollDisabled,a=e.listOrientation;this.disabled=null!=n&&n,this.sortingDisabled=null!=r&&r,this.autoScrollDisabled=null!=i&&i,this.orientation=a||"vertical",t&&(this.lockAxis=t)},e.prototype._syncItemsWithRef=function(){this._dropListRef.withItems(this.getSortedItems().map((function(e){return e._dragRef})))},e._dropLists=[],e.ctorParameters=function(){return[{type:r.ElementRef},{type:yt},{type:r.ChangeDetectorRef},{type:ye,decorators:[{type:r.Optional}]},{type:St,decorators:[{type:r.Optional},{type:r.SkipSelf}]},{type:Se},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[_t]}]}]},e.propDecorators={connectedTo:[{type:r.Input,args:["cdkDropListConnectedTo"]}],data:[{type:r.Input,args:["cdkDropListData"]}],orientation:[{type:r.Input,args:["cdkDropListOrientation"]}],id:[{type:r.Input}],lockAxis:[{type:r.Input,args:["cdkDropListLockAxis"]}],disabled:[{type:r.Input,args:["cdkDropListDisabled"]}],sortingDisabled:[{type:r.Input,args:["cdkDropListSortingDisabled"]}],enterPredicate:[{type:r.Input,args:["cdkDropListEnterPredicate"]}],autoScrollDisabled:[{type:r.Input,args:["cdkDropListAutoScrollDisabled"]}],dropped:[{type:r.Output,args:["cdkDropListDropped"]}],entered:[{type:r.Output,args:["cdkDropListEntered"]}],exited:[{type:r.Output,args:["cdkDropListExited"]}],sorted:[{type:r.Output,args:["cdkDropListSorted"]}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](yt),r["ɵɵdirectiveInject"](r.ChangeDetectorRef),r["ɵɵdirectiveInject"](ye,8),r["ɵɵdirectiveInject"](St,12),r["ɵɵdirectiveInject"](Se),r["ɵɵdirectiveInject"](_t,8))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdkDropList",""],["cdk-drop-list"]],hostAttrs:[1,"cdk-drop-list"],hostVars:7,hostBindings:function(e,t){2&e&&(r["ɵɵhostProperty"]("id",t.id),r["ɵɵclassProp"]("cdk-drop-list-disabled",t.disabled)("cdk-drop-list-dragging",t._dropListRef.isDragging())("cdk-drop-list-receiving",t._dropListRef.isReceiving()))},inputs:{connectedTo:["cdkDropListConnectedTo","connectedTo"],id:"id",enterPredicate:["cdkDropListEnterPredicate","enterPredicate"],disabled:["cdkDropListDisabled","disabled"],sortingDisabled:["cdkDropListSortingDisabled","sortingDisabled"],autoScrollDisabled:["cdkDropListAutoScrollDisabled","autoScrollDisabled"],orientation:["cdkDropListOrientation","orientation"],lockAxis:["cdkDropListLockAxis","lockAxis"],data:["cdkDropListData","data"]},outputs:{dropped:"cdkDropListDropped",entered:"cdkDropListEntered",exited:"cdkDropListExited",sorted:"cdkDropListSorted"},exportAs:["cdkDropList"],features:[r["ɵɵProvidersFeature"]([{provide:St,useValue:void 0},{provide:Ct,useExisting:e}])]}),e}(),zt=function(){function e(){}return e.ɵmod=r["ɵɵdefineNgModule"]({type:e}),e.ɵinj=r["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:[yt],imports:[Ne]}),("undefined"==typeof ngJitMode||ngJitMode)&&r["ɵɵsetNgModuleScope"](e,{declarations:function(){return[Ot,St,xt,vt,wt,kt]},exports:function(){return[Ne,Ot,St,xt,vt,wt,kt]}}),e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return a}));var r=n(162);function i(){for(var e=[],t=0;ts||n!=n?c*(1/0):c*n}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(t){return{e:!0,v:t}}}},function(e,t,n){var r=n(15),i=n(22),a=n(207);e.exports=function(e,t){if(r(e),i(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){var r=n(100);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},function(e,t,n){var r; +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(n,i){"use strict";var a=[],o=Object.getPrototypeOf,s=a.slice,l=a.flat?function(e){return a.flat.call(e)}:function(e){return a.concat.apply([],e)},c=a.push,u=a.indexOf,d={},h=d.toString,p=d.hasOwnProperty,f=p.toString,m=f.call(Object),g={},y=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},b=function(e){return null!=e&&e===e.window},v=n.document,k={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var r,i,a=(n=n||v).createElement("script");if(a.text=e,t)for(r in k)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&a.setAttribute(r,i);n.head.appendChild(a).parentNode.removeChild(a)}function _(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?d[h.call(e)]||"object":typeof e}var j=function(e,t){return new j.fn.init(e,t)};function C(e){var t=!!e&&"length"in e&&e.length,n=_(e);return!y(e)&&!b(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}j.fn=j.prototype={jquery:"3.6.0",constructor:j,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=j.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return j.each(this,e)},map:function(e){return this.pushStack(j.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(j.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(j.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+M+")"+M+"*"),K=new RegExp(M+"|>"),W=new RegExp(L),G=new RegExp("^"+q+"$"),Q={ID:new RegExp("^#("+q+")"),CLASS:new RegExp("^\\.("+q+")"),TAG:new RegExp("^("+q+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+L),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},$=/HTML$/i,Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,X=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=function(){h()},oe=ke((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{A.apply(z=N.call(w.childNodes),w.childNodes),z[w.childNodes.length].nodeType}catch(xe){A={apply:z.length?function(e,t){D.apply(e,N.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(e,t,r,i){var a,s,c,u,d,f,y,b=t&&t.ownerDocument,w=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==w&&9!==w&&11!==w)return r;if(!i&&(h(t),t=t||p,m)){if(11!==w&&(d=X.exec(e)))if(a=d[1]){if(9===w){if(!(c=t.getElementById(a)))return r;if(c.id===a)return r.push(c),r}else if(b&&(c=b.getElementById(a))&&v(t,c)&&c.id===a)return r.push(c),r}else{if(d[2])return A.apply(r,t.getElementsByTagName(e)),r;if((a=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return A.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&!S[e+" "]&&(!g||!g.test(e))&&(1!==w||"object"!==t.nodeName.toLowerCase())){if(y=e,b=t,1===w&&(K.test(e)||H.test(e))){for((b=ee.test(e)&&ye(t.parentNode)||t)===t&&n.scope||((u=t.getAttribute("id"))?u=u.replace(re,ie):t.setAttribute("id",u=k)),s=(f=o(e)).length;s--;)f[s]=(u?"#"+u:":scope")+" "+ve(f[s]);y=f.join(",")}try{return A.apply(r,b.querySelectorAll(y)),r}catch(_){S(e,!0)}finally{u===k&&t.removeAttribute("id")}}}return l(e.replace(U,"$1"),t,r,i)}function le(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function ce(e){return e[k]=!0,e}function ue(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(xe){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function he(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function fe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function me(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&oe(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ge(e){return ce((function(t){return t=+t,ce((function(n,r){for(var i,a=e([],n.length,t),o=a.length;o--;)n[i=a[o]]&&(n[i]=!(r[i]=n[i]))}))}))}function ye(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=se.support={},a=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!$.test(t||n&&n.nodeName||"HTML")},h=se.setDocument=function(e){var t,i,o=e?e.ownerDocument||e:w;return o!=p&&9===o.nodeType&&o.documentElement?(f=(p=o).documentElement,m=!a(p),w!=p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",ae,!1):i.attachEvent&&i.attachEvent("onunload",ae)),n.scope=ue((function(e){return f.appendChild(e).appendChild(p.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),n.attributes=ue((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=ue((function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=J.test(p.getElementsByClassName),n.getById=ue((function(e){return f.appendChild(e).id=k,!p.getElementsByName||!p.getElementsByName(k).length})),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n,r,i,a=t.getElementById(e);if(a){if((n=a.getAttributeNode("id"))&&n.value===e)return[a];for(i=t.getElementsByName(e),r=0;a=i[r++];)if((n=a.getAttributeNode("id"))&&n.value===e)return[a]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,a=t.getElementsByTagName(e);if("*"===e){for(;n=a[i++];)1===n.nodeType&&r.push(n);return r}return a},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&m)return t.getElementsByClassName(e)},y=[],g=[],(n.qsa=J.test(p.querySelectorAll))&&(ue((function(e){var t;f.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||g.push("~="),(t=p.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||g.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||g.push(".#.+[+~]"),e.querySelectorAll("\\\f"),g.push("[\\r\\n\\f]")})),ue((function(e){e.innerHTML="";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),f.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")}))),(n.matchesSelector=J.test(b=f.matches||f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ue((function(e){n.disconnectedMatch=b.call(e,"*"),b.call(e,"[s!='']:x"),y.push("!=",L)})),g=g.length&&new RegExp(g.join("|")),y=y.length&&new RegExp(y.join("|")),t=J.test(f.compareDocumentPosition),v=t||J.test(f.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},T=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==p||e.ownerDocument==w&&v(w,e)?-1:t==p||t.ownerDocument==w&&v(w,t)?1:u?P(u,e)-P(u,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,i=e.parentNode,a=t.parentNode,o=[e],s=[t];if(!i||!a)return e==p?-1:t==p?1:i?-1:a?1:u?P(u,e)-P(u,t):0;if(i===a)return he(e,t);for(n=e;n=n.parentNode;)o.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;o[r]===s[r];)r++;return r?he(o[r],s[r]):o[r]==w?-1:s[r]==w?1:0},p):p},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(h(e),n.matchesSelector&&m&&!S[t+" "]&&(!y||!y.test(t))&&(!g||!g.test(t)))try{var r=b.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(xe){S(t,!0)}return se(t,p,null,[e]).length>0},se.contains=function(e,t){return(e.ownerDocument||e)!=p&&h(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=p&&h(e);var i=r.attrHandle[t.toLowerCase()],a=i&&O.call(r.attrHandle,t.toLowerCase())?i(e,t,!m):void 0;return void 0!==a?a:n.attributes||!m?e.getAttribute(t):(a=e.getAttributeNode(t))&&a.specified?a.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,r=[],i=0,a=0;if(d=!n.detectDuplicates,u=!n.sortStable&&e.slice(0),e.sort(T),d){for(;t=e[a++];)t===e[a]&&(i=r.push(a));for(;i--;)e.splice(r[i],1)}return u=null,e},i=se.getText=function(e){var t,n="",r=0,a=e.nodeType;if(a){if(1===a||9===a||11===a){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===a||4===a)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=se.selectors={cacheLength:50,createPseudo:ce,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&W.test(n)&&(t=o(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=se.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var a="nth"!==e.slice(0,3),o="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,h,p,f,m=a!==o?"nextSibling":"previousSibling",g=t.parentNode,y=s&&t.nodeName.toLowerCase(),b=!l&&!s,v=!1;if(g){if(a){for(;m;){for(h=t;h=h[m];)if(s?h.nodeName.toLowerCase()===y:1===h.nodeType)return!1;f=m="only"===e&&!f&&"nextSibling"}return!0}if(f=[o?g.firstChild:g.lastChild],o&&b){for(v=(p=(c=(u=(d=(h=g)[k]||(h[k]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]||[])[0]===_&&c[1])&&c[2],h=p&&g.childNodes[p];h=++p&&h&&h[m]||(v=p=0)||f.pop();)if(1===h.nodeType&&++v&&h===t){u[e]=[_,p,v];break}}else if(b&&(v=p=(c=(u=(d=(h=t)[k]||(h[k]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]||[])[0]===_&&c[1]),!1===v)for(;(h=++p&&h&&h[m]||(v=p=0)||f.pop())&&((s?h.nodeName.toLowerCase()!==y:1!==h.nodeType)||!++v||(b&&((u=(d=h[k]||(h[k]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]=[_,v]),h!==t)););return(v-=i)===r||v%r==0&&v/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return i[k]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ce((function(e,n){for(var r,a=i(e,t),o=a.length;o--;)e[r=P(e,a[o])]=!(n[r]=a[o])})):function(e){return i(e,0,n)}):i}},pseudos:{not:ce((function(e){var t=[],n=[],r=s(e.replace(U,"$1"));return r[k]?ce((function(e,t,n,i){for(var a,o=r(e,null,i,[]),s=e.length;s--;)(a=o[s])&&(e[s]=!(t[s]=a))})):function(e,i,a){return t[0]=e,r(t,null,a,n),t[0]=null,!n.pop()}})),has:ce((function(e){return function(t){return se(e,t).length>0}})),contains:ce((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}})),lang:ce((function(e){return G.test(e||"")||se.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=m?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:me(!1),disabled:me(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Z.test(e.nodeName)},input:function(e){return Y.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ge((function(){return[0]})),last:ge((function(e,t){return[t-1]})),eq:ge((function(e,t,n){return[n<0?n+t:n]})),even:ge((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:ge((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function _e(e,t,n,r,i){for(var a,o=[],s=0,l=e.length,c=null!=t;s-1&&(a[c]=!(o[c]=d))}}else y=_e(y===o?y.splice(f,y.length):y),i?i(null,o,y,l):A.apply(o,y)}))}function Ce(e){for(var t,n,i,a=e.length,o=r.relative[e[0].type],s=o||r.relative[" "],l=o?1:0,u=ke((function(e){return e===t}),s,!0),d=ke((function(e){return P(t,e)>-1}),s,!0),h=[function(e,n,r){var i=!o&&(r||n!==c)||((t=n).nodeType?u(e,n,r):d(e,n,r));return t=null,i}];l1&&we(h),l>1&&ve(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(U,"$1"),n,l0,i=e.length>0,a=function(a,o,s,l,u){var d,f,g,y=0,b="0",v=a&&[],k=[],w=c,j=a||i&&r.find.TAG("*",u),C=_+=null==w?1:Math.random()||.1,x=j.length;for(u&&(c=o==p||o||u);b!==x&&null!=(d=j[b]);b++){if(i&&d){for(f=0,o||d.ownerDocument==p||(h(d),s=!m);g=e[f++];)if(g(d,o||p,s)){l.push(d);break}u&&(_=C)}n&&((d=!g&&d)&&y--,a&&v.push(d))}if(y+=b,n&&b!==y){for(f=0;g=t[f++];)g(v,k,o,s);if(a){if(y>0)for(;b--;)v[b]||k[b]||(k[b]=I.call(l));k=_e(k)}A.apply(l,k),u&&!a&&k.length>0&&y+t.length>1&&se.uniqueSort(l)}return u&&(_=C,c=w),v};return n?ce(a):a}(a,i))).selector=e}return s},l=se.select=function(e,t,n,i){var a,l,c,u,d,h="function"==typeof e&&e,p=!i&&o(e=h.selector||e);if(n=n||[],1===p.length){if((l=p[0]=p[0].slice(0)).length>2&&"ID"===(c=l[0]).type&&9===t.nodeType&&m&&r.relative[l[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(te,ne),t)||[])[0]))return n;h&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(a=Q.needsContext.test(e)?0:l.length;a--&&(c=l[a],!r.relative[u=c.type]);)if((d=r.find[u])&&(i=d(c.matches[0].replace(te,ne),ee.test(l[0].type)&&ye(t.parentNode)||t))){if(l.splice(a,1),!(e=i.length&&ve(l)))return A.apply(n,i),n;break}}return(h||s(e,p))(i,t,!m,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},n.sortStable=k.split("").sort(T).join("")===k,n.detectDuplicates=!!d,h(),n.sortDetached=ue((function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))})),ue((function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")}))||de("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&ue((function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||de("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),ue((function(e){return null==e.getAttribute("disabled")}))||de(R,(function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null})),se}(n);j.find=x,j.expr=x.selectors,j.expr[":"]=j.expr.pseudos,j.uniqueSort=j.unique=x.uniqueSort,j.text=x.getText,j.isXMLDoc=x.isXML,j.contains=x.contains,j.escapeSelector=x.escape;var E=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&j(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},T=j.expr.match.needsContext;function O(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var z=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function I(e,t,n){return y(t)?j.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?j.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?j.grep(e,(function(e){return u.call(t,e)>-1!==n})):j.filter(t,e,n)}j.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?j.find.matchesSelector(r,e)?[r]:[]:j.find.matches(e,j.grep(t,(function(e){return 1===e.nodeType})))},j.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(j(e).filter((function(){for(t=0;t1?j.uniqueSort(n):n},filter:function(e){return this.pushStack(I(this,e||[],!1))},not:function(e){return this.pushStack(I(this,e||[],!0))},is:function(e){return!!I(this,"string"==typeof e&&T.test(e)?j(e):e||[],!1).length}});var D,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(j.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:A.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof j?t[0]:t,j.merge(this,j.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:v,!0)),z.test(r[1])&&j.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=v.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(j):j.makeArray(e,this)}).prototype=j.fn,D=j(v);var N=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};function R(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}j.fn.extend({has:function(e){var t=j(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&j.find.matchesSelector(n,e))){a.push(n);break}return this.pushStack(a.length>1?j.uniqueSort(a):a)},index:function(e){return e?"string"==typeof e?u.call(j(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(j.uniqueSort(j.merge(this.get(),j(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),j.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return E(e,"parentNode")},parentsUntil:function(e,t,n){return E(e,"parentNode",n)},next:function(e){return R(e,"nextSibling")},prev:function(e){return R(e,"previousSibling")},nextAll:function(e){return E(e,"nextSibling")},prevAll:function(e){return E(e,"previousSibling")},nextUntil:function(e,t,n){return E(e,"nextSibling",n)},prevUntil:function(e,t,n){return E(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return null!=e.contentDocument&&o(e.contentDocument)?e.contentDocument:(O(e,"template")&&(e=e.content||e),j.merge([],e.childNodes))}},(function(e,t){j.fn[e]=function(n,r){var i=j.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=j.filter(r,i)),this.length>1&&(P[e]||j.uniqueSort(i),N.test(e)&&i.reverse()),this.pushStack(i)}}));var M=/[^\x20\t\r\n\f]+/g;function q(e){return e}function B(e){throw e}function L(e,t,n,r){var i;try{e&&y(i=e.promise)?i.call(e).done(t).fail(n):e&&y(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}j.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return j.each(e.match(M)||[],(function(e,n){t[n]=!0})),t}(e):j.extend({},e);var t,n,r,i,a=[],o=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;o.length;s=-1)for(n=o.shift();++s-1;)a.splice(n,1),n<=s&&s--})),this},has:function(e){return e?j.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=o=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=o=[],n||t||(a=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],o.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},j.extend({Deferred:function(e){var t=[["notify","progress",j.Callbacks("memory"),j.Callbacks("memory"),2],["resolve","done",j.Callbacks("once memory"),j.Callbacks("once memory"),0,"resolved"],["reject","fail",j.Callbacks("once memory"),j.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return a.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return j.Deferred((function(n){j.each(t,(function(t,r){var i=y(e[r[4]])&&e[r[4]];a[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&y(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,r,i){var a=0;function o(e,t,r,i){return function(){var s=this,l=arguments,c=function(){var n,c;if(!(e=a&&(r!==B&&(s=void 0,l=[n]),t.rejectWith(s,l))}};e?u():(j.Deferred.getStackHook&&(u.stackTrace=j.Deferred.getStackHook()),n.setTimeout(u))}}return j.Deferred((function(n){t[0][3].add(o(0,n,y(i)?i:q,n.notifyWith)),t[1][3].add(o(0,n,y(e)?e:q)),t[2][3].add(o(0,n,y(r)?r:B))})).promise()},promise:function(e){return null!=e?j.extend(e,i):i}},a={};return j.each(t,(function(e,n){var o=n[2],s=n[5];i[n[1]]=o.add,s&&o.add((function(){r=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),o.add(n[3].fire),a[n[0]]=function(){return a[n[0]+"With"](this===a?void 0:this,arguments),this},a[n[0]+"With"]=o.fireWith})),i.promise(a),e&&e.call(a,a),a},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),a=j.Deferred(),o=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&(L(e,a.done(o(n)).resolve,a.reject,!t),"pending"===a.state()||y(i[n]&&i[n].then)))return a.then();for(;n--;)L(i[n],o(n),a.reject);return a.promise()}});var F=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;j.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&F.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},j.readyException=function(e){n.setTimeout((function(){throw e}))};var U=j.Deferred();function V(){v.removeEventListener("DOMContentLoaded",V),n.removeEventListener("load",V),j.ready()}j.fn.ready=function(e){return U.then(e).catch((function(e){j.readyException(e)})),this},j.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--j.readyWait:j.isReady)||(j.isReady=!0,!0!==e&&--j.readyWait>0||U.resolveWith(v,[j]))}}),j.ready.then=U.then,"complete"===v.readyState||"loading"!==v.readyState&&!v.documentElement.doScroll?n.setTimeout(j.ready):(v.addEventListener("DOMContentLoaded",V),n.addEventListener("load",V));var H=function(e,t,n,r,i,a,o){var s=0,l=e.length,c=null==n;if("object"===_(n))for(s in i=!0,n)H(e,t,s,n[s],!0,a,o);else if(void 0!==r&&(i=!0,y(r)||(o=!0),c&&(o?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(j(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){J.remove(this,e)}))}}),j.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Z.get(e,t),n&&(!r||Array.isArray(n)?r=Z.access(e,t,j.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=j.queue(e,t),r=n.length,i=n.shift(),a=j._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete a.stop,i.call(e,(function(){j.dequeue(e,t)}),a)),!r&&a&&a.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Z.get(e,n)||Z.access(e,n,{empty:j.Callbacks("once memory").add((function(){Z.remove(e,[t+"queue",n])}))})}}),j.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,ye=/^$|^module$|\/(?:java|ecma)script/i;pe=v.createDocumentFragment().appendChild(v.createElement("div")),(fe=v.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),pe.appendChild(fe),g.checkClone=pe.cloneNode(!0).cloneNode(!0).lastChild.checked,pe.innerHTML="",g.noCloneChecked=!!pe.cloneNode(!0).lastChild.defaultValue,pe.innerHTML="",g.option=!!pe.lastChild;var be={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&O(e,t)?j.merge([e],n):n}function ke(e,t){for(var n=0,r=e.length;n",""]);var we=/<|&#?\w+;/;function _e(e,t,n,r,i){for(var a,o,s,l,c,u,d=t.createDocumentFragment(),h=[],p=0,f=e.length;p-1)i&&i.push(a);else if(c=oe(a),o=ve(d.appendChild(a),"script"),c&&ke(o),n)for(u=0;a=o[u++];)ye.test(a.type||"")&&n.push(a);return d}var je=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function xe(){return!1}function Ee(e,t){return e===function(){try{return v.activeElement}catch(e){}}()==("focus"===t)}function Se(e,t,n,r,i,a){var o,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Se(e,s,n,r,t[s],a);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=xe;else if(!i)return e;return 1===a&&(o=i,(i=function(e){return j().off(e),o.apply(this,arguments)}).guid=o.guid||(o.guid=j.guid++)),e.each((function(){j.event.add(this,t,i,r,n)}))}function Te(e,t,n){n?(Z.set(e,t,!1),j.event.add(e,t,{namespace:!1,handler:function(e){var r,i,a=Z.get(this,t);if(1&e.isTrigger&&this[t]){if(a.length)(j.event.special[t]||{}).delegateType&&e.stopPropagation();else if(a=s.call(arguments),Z.set(this,t,a),r=n(this,t),this[t](),a!==(i=Z.get(this,t))||r?Z.set(this,t,!1):i={},a!==i)return e.stopImmediatePropagation(),e.preventDefault(),i&&i.value}else a.length&&(Z.set(this,t,{value:j.event.trigger(j.extend(a[0],j.Event.prototype),a.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Z.get(e,t)&&j.event.add(e,t,Ce)}j.event={global:{},add:function(e,t,n,r,i){var a,o,s,l,c,u,d,h,p,f,m,g=Z.get(e);if($(e))for(n.handler&&(n=(a=n).handler,i=a.selector),i&&j.find.matchesSelector(ae,i),n.guid||(n.guid=j.guid++),(l=g.events)||(l=g.events=Object.create(null)),(o=g.handle)||(o=g.handle=function(t){return void 0!==j&&j.event.triggered!==t.type?j.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(M)||[""]).length;c--;)p=m=(s=je.exec(t[c])||[])[1],f=(s[2]||"").split(".").sort(),p&&(d=j.event.special[p]||{},p=(i?d.delegateType:d.bindType)||p,d=j.event.special[p]||{},u=j.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&j.expr.match.needsContext.test(i),namespace:f.join(".")},a),(h=l[p])||((h=l[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,f,o)||e.addEventListener&&e.addEventListener(p,o)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,u):h.push(u),j.event.global[p]=!0)},remove:function(e,t,n,r,i){var a,o,s,l,c,u,d,h,p,f,m,g=Z.hasData(e)&&Z.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(M)||[""]).length;c--;)if(p=m=(s=je.exec(t[c])||[])[1],f=(s[2]||"").split(".").sort(),p){for(d=j.event.special[p]||{},h=l[p=(r?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=a=h.length;a--;)u=h[a],!i&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(h.splice(a,1),u.selector&&h.delegateCount--,d.remove&&d.remove.call(e,u));o&&!h.length&&(d.teardown&&!1!==d.teardown.call(e,f,g.handle)||j.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)j.event.remove(e,p+t[c],n,r,!0);j.isEmptyObject(l)&&Z.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,a,o,s=new Array(arguments.length),l=j.event.fix(e),c=(Z.get(this,"events")||Object.create(null))[l.type]||[],u=j.event.special[l.type]||{};for(s[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(a=[],o={},n=0;n-1:j.find(i,this,null,[c]).length),o[i]&&a.push(r);a.length&&s.push({elem:c,handlers:a})}return c=this,l\s*$/g;function De(e,t){return O(e,"table")&&O(11!==t.nodeType?t:t.firstChild,"tr")&&j(e).children("tbody")[0]||e}function Ae(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ne(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,a,o,s;if(1===t.nodeType){if(Z.hasData(e)&&(s=Z.get(e).events))for(i in Z.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof f&&!g.checkClone&&ze.test(f))return e.each((function(i){var a=e.eq(i);m&&(t[0]=f.call(this,i,a.html())),Me(a,t,n,r)}));if(h&&(a=(i=_e(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=a),a||r)){for(s=(o=j.map(ve(i,"script"),Ae)).length;d0&&ke(o,!l&&ve(e,"script")),s},cleanData:function(e){for(var t,n,r,i=j.event.special,a=0;void 0!==(n=e[a]);a++)if($(n)){if(t=n[Z.expando]){if(t.events)for(r in t.events)i[r]?j.event.remove(n,r):j.removeEvent(n,r,t.handle);n[Z.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),j.fn.extend({detach:function(e){return qe(this,e,!0)},remove:function(e){return qe(this,e)},text:function(e){return H(this,(function(e){return void 0===e?j.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Me(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||De(this,e).appendChild(e)}))},prepend:function(){return Me(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=De(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Me(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Me(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(j.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return j.clone(this,e,t)}))},html:function(e){return H(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!be[(ge.exec(e)||["",""])[1].toLowerCase()]){e=j.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-a-l-s-.5))||0),l}function tt(e,t,n){var r=Le(e),i=(!g.boxSizingReliable()||n)&&"border-box"===j.css(e,"boxSizing",!1,r),a=i,o=Ve(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Be.test(o)){if(!n)return o;o="auto"}return(!g.boxSizingReliable()&&i||!g.reliableTrDimensions()&&O(e,"tr")||"auto"===o||!parseFloat(o)&&"inline"===j.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===j.css(e,"boxSizing",!1,r),(a=s in e)&&(o=e[s])),(o=parseFloat(o)||0)+et(e,t,n||(i?"border":"content"),a,r,o)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}j.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ve(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,a,o,s=Q(t),l=Ye.test(t),c=e.style;if(l||(t=Qe(s)),o=j.cssHooks[t]||j.cssHooks[s],void 0===n)return o&&"get"in o&&void 0!==(i=o.get(e,!1,r))?i:c[t];"string"===(a=typeof n)&&(i=re.exec(n))&&i[1]&&(n=ce(e,t,i),a="number"),null!=n&&n==n&&("number"!==a||l||(n+=i&&i[3]||(j.cssNumber[s]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),o&&"set"in o&&void 0===(n=o.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,a,o,s=Q(t);return Ye.test(t)||(t=Qe(s)),(o=j.cssHooks[t]||j.cssHooks[s])&&"get"in o&&(i=o.get(e,!0,n)),void 0===i&&(i=Ve(e,t,r)),"normal"===i&&t in Je&&(i=Je[t]),""===n||n?(a=parseFloat(i),!0===n||isFinite(a)?a||0:i):i}}),j.each(["height","width"],(function(e,t){j.cssHooks[t]={get:function(e,n,r){if(n)return!$e.test(j.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,t,r):Fe(e,Ze,(function(){return tt(e,t,r)}))},set:function(e,n,r){var i,a=Le(e),o=!g.scrollboxSize()&&"absolute"===a.position,s=(o||r)&&"border-box"===j.css(e,"boxSizing",!1,a),l=r?et(e,t,r,s,a):0;return s&&o&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(a[t])-et(e,t,"border",!1,a)-.5)),l&&(i=re.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=j.css(e,t)),Xe(0,n,l)}}})),j.cssHooks.marginLeft=He(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ve(e,"marginLeft"))||e.getBoundingClientRect().left-Fe(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),j.each({margin:"",padding:"",border:"Width"},(function(e,t){j.cssHooks[e+t]={expand:function(n){for(var r=0,i={},a="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+ie[r]+t]=a[r]||a[r-2]||a[0];return i}},"margin"!==e&&(j.cssHooks[e+t].set=Xe)})),j.fn.extend({css:function(e,t){return H(this,(function(e,t,n){var r,i,a={},o=0;if(Array.isArray(t)){for(r=Le(e),i=t.length;o1)}}),j.Tween=nt,nt.prototype={constructor:nt,init:function(e,t,n,r,i,a){this.elem=e,this.prop=n,this.easing=i||j.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=a||(j.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=j.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}},nt.prototype.init.prototype=nt.prototype,nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=j.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){j.fx.step[e.prop]?j.fx.step[e.prop](e):1!==e.elem.nodeType||!j.cssHooks[e.prop]&&null==e.elem.style[Qe(e.prop)]?e.elem[e.prop]=e.now:j.style(e.elem,e.prop,e.now+e.unit)}}},nt.propHooks.scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},j.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},j.fx=nt.prototype.init,j.fx.step={};var rt,it,at=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function st(){it&&(!1===v.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(st):n.setTimeout(st,j.fx.interval),j.fx.tick())}function lt(){return n.setTimeout((function(){rt=void 0})),rt=Date.now()}function ct(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ie[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),a=0,o=i.length;a1)},removeAttr:function(e){return this.each((function(){j.removeAttr(this,e)}))}}),j.extend({attr:function(e,t,n){var r,i,a=e.nodeType;if(3!==a&&8!==a&&2!==a)return void 0===e.getAttribute?j.prop(e,t,n):(1===a&&j.isXMLDoc(e)||(i=j.attrHooks[t.toLowerCase()]||(j.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void j.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=j.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&O(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?j.removeAttr(e,n):e.setAttribute(n,n),n}},j.each(j.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=pt[t]||j.find.attr;pt[t]=function(e,t,r){var i,a,o=t.toLowerCase();return r||(a=pt[o],pt[o]=i,i=null!=n(e,t,r)?o:null,pt[o]=a),i}}));var ft=/^(?:input|select|textarea|button)$/i,mt=/^(?:a|area)$/i;function gt(e){return(e.match(M)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(M)||[]}j.fn.extend({prop:function(e,t){return H(this,j.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[j.propFix[e]||e]}))}}),j.extend({prop:function(e,t,n){var r,i,a=e.nodeType;if(3!==a&&8!==a&&2!==a)return 1===a&&j.isXMLDoc(e)||(t=j.propFix[t]||t,i=j.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=j.find.attr(e,"tabindex");return t?parseInt(t,10):ft.test(e.nodeName)||mt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(j.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),j.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){j.propFix[this.toLowerCase()]=this})),j.fn.extend({addClass:function(e){var t,n,r,i,a,o,s,l=0;if(y(e))return this.each((function(t){j(this).addClass(e.call(this,t,yt(this)))}));if((t=bt(e)).length)for(;n=this[l++];)if(i=yt(n),r=1===n.nodeType&&" "+gt(i)+" "){for(o=0;a=t[o++];)r.indexOf(" "+a+" ")<0&&(r+=a+" ");i!==(s=gt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,a,o,s,l=0;if(y(e))return this.each((function(t){j(this).removeClass(e.call(this,t,yt(this)))}));if(!arguments.length)return this.attr("class","");if((t=bt(e)).length)for(;n=this[l++];)if(i=yt(n),r=1===n.nodeType&&" "+gt(i)+" "){for(o=0;a=t[o++];)for(;r.indexOf(" "+a+" ")>-1;)r=r.replace(" "+a+" "," ");i!==(s=gt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):y(e)?this.each((function(n){j(this).toggleClass(e.call(this,n,yt(this),t),t)})):this.each((function(){var t,i,a,o;if(r)for(i=0,a=j(this),o=bt(e);t=o[i++];)a.hasClass(t)?a.removeClass(t):a.addClass(t);else void 0!==e&&"boolean"!==n||((t=yt(this))&&Z.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Z.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+gt(yt(n))+" ").indexOf(t)>-1)return!0;return!1}});var vt=/\r/g;j.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=y(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,j(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=j.map(i,(function(e){return null==e?"":e+""}))),(t=j.valHooks[this.type]||j.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=j.valHooks[i.type]||j.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(vt,""):null==n?"":n:void 0}}),j.extend({valHooks:{option:{get:function(e){var t=j.find.attr(e,"value");return null!=t?t:gt(j.text(e))}},select:{get:function(e){var t,n,r,i=e.options,a=e.selectedIndex,o="select-one"===e.type,s=o?null:[],l=o?a+1:i.length;for(r=a<0?l:o?a:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),a}}}}),j.each(["radio","checkbox"],(function(){j.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=j.inArray(j(e).val(),t)>-1}},g.checkOn||(j.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),g.focusin="onfocusin"in n;var kt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};j.extend(j.event,{trigger:function(e,t,r,i){var a,o,s,l,c,u,d,h,f=[r||v],m=p.call(e,"type")?e.type:e,g=p.call(e,"namespace")?e.namespace.split("."):[];if(o=h=s=r=r||v,3!==r.nodeType&&8!==r.nodeType&&!kt.test(m+j.event.triggered)&&(m.indexOf(".")>-1&&(g=m.split("."),m=g.shift(),g.sort()),c=m.indexOf(":")<0&&"on"+m,(e=e[j.expando]?e:new j.Event(m,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:j.makeArray(t,[e]),d=j.event.special[m]||{},i||!d.trigger||!1!==d.trigger.apply(r,t))){if(!i&&!d.noBubble&&!b(r)){for(l=d.delegateType||m,kt.test(l+m)||(o=o.parentNode);o;o=o.parentNode)f.push(o),s=o;s===(r.ownerDocument||v)&&f.push(s.defaultView||s.parentWindow||n)}for(a=0;(o=f[a++])&&!e.isPropagationStopped();)h=o,e.type=a>1?l:d.bindType||m,(u=(Z.get(o,"events")||Object.create(null))[e.type]&&Z.get(o,"handle"))&&u.apply(o,t),(u=c&&o[c])&&u.apply&&$(o)&&(e.result=u.apply(o,t),!1===e.result&&e.preventDefault());return e.type=m,i||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(f.pop(),t)||!$(r)||c&&y(r[m])&&!b(r)&&((s=r[c])&&(r[c]=null),j.event.triggered=m,e.isPropagationStopped()&&h.addEventListener(m,wt),r[m](),e.isPropagationStopped()&&h.removeEventListener(m,wt),j.event.triggered=void 0,s&&(r[c]=s)),e.result}},simulate:function(e,t,n){var r=j.extend(new j.Event,n,{type:e,isSimulated:!0});j.event.trigger(r,null,t)}}),j.fn.extend({trigger:function(e,t){return this.each((function(){j.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return j.event.trigger(e,t,n,!0)}}),g.focusin||j.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){j.event.simulate(t,e.target,j.event.fix(e))};j.event.special[t]={setup:function(){var r=this.ownerDocument||this.document||this,i=Z.access(r,t);i||r.addEventListener(e,n,!0),Z.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=Z.access(r,t)-1;i?Z.access(r,t,i):(r.removeEventListener(e,n,!0),Z.remove(r,t))}}}));var _t=n.location,jt={guid:Date.now()},Ct=/\?/;j.parseXML=function(e){var t,r;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(i){}return r=t&&t.getElementsByTagName("parsererror")[0],t&&!r||j.error("Invalid XML: "+(r?j.map(r.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var xt=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,Tt=/^(?:input|select|textarea|keygen)/i;function Ot(e,t,n,r){var i;if(Array.isArray(t))j.each(t,(function(t,i){n||xt.test(e)?r(e,i):Ot(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==_(t))r(e,t);else for(i in t)Ot(e+"["+i+"]",t[i],n,r)}j.param=function(e,t){var n,r=[],i=function(e,t){var n=y(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!j.isPlainObject(e))j.each(e,(function(){i(this.name,this.value)}));else for(n in e)Ot(n,e[n],t,i);return r.join("&")},j.fn.extend({serialize:function(){return j.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=j.prop(this,"elements");return e?j.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!j(this).is(":disabled")&&Tt.test(this.nodeName)&&!St.test(e)&&(this.checked||!me.test(e))})).map((function(e,t){var n=j(this).val();return null==n?null:Array.isArray(n)?j.map(n,(function(e){return{name:t.name,value:e.replace(Et,"\r\n")}})):{name:t.name,value:n.replace(Et,"\r\n")}})).get()}});var zt=/%20/g,It=/#.*$/,Dt=/([?&])_=[^&]*/,At=/^(.*?):[ \t]*([^\r\n]*)$/gm,Nt=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},qt="*/".concat("*"),Bt=v.createElement("a");function Lt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,a=t.toLowerCase().match(M)||[];if(y(n))for(;r=a[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Ft(e,t,n,r){var i={},a=e===Mt;function o(s){var l;return i[s]=!0,j.each(e[s]||[],(function(e,s){var c=s(t,n,r);return"string"!=typeof c||a||i[c]?a?!(l=c):void 0:(t.dataTypes.unshift(c),o(c),!1)})),l}return o(t.dataTypes[0])||!i["*"]&&o("*")}function Ut(e,t){var n,r,i=j.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&j.extend(!0,e,r),e}Bt.href=_t.href,j.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:_t.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(_t.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":qt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":j.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ut(Ut(e,j.ajaxSettings),t):Ut(j.ajaxSettings,e)},ajaxPrefilter:Lt(Rt),ajaxTransport:Lt(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,a,o,s,l,c,u,d,h,p=j.ajaxSetup({},t),f=p.context||p,m=p.context&&(f.nodeType||f.jquery)?j(f):j.event,g=j.Deferred(),y=j.Callbacks("once memory"),b=p.statusCode||{},k={},w={},_="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(c){if(!o)for(o={};t=At.exec(a);)o[t[1].toLowerCase()+" "]=(o[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=o[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,k[e]=t),this},overrideMimeType:function(e){return null==c&&(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)C.always(e[C.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||_;return r&&r.abort(t),x(0,t),this}};if(g.promise(C),p.url=((e||p.url||_t.href)+"").replace(Pt,_t.protocol+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(M)||[""],null==p.crossDomain){l=v.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(E){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=j.param(p.data,p.traditional)),Ft(Rt,p,t,C),c)return C;for(d in(u=j.event&&p.global)&&0==j.active++&&j.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nt.test(p.type),i=p.url.replace(It,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(zt,"+")):(h=p.url.slice(i.length),p.data&&(p.processData||"string"==typeof p.data)&&(i+=(Ct.test(i)?"&":"?")+p.data,delete p.data),!1===p.cache&&(i=i.replace(Dt,"$1"),h=(Ct.test(i)?"&":"?")+"_="+jt.guid+++h),p.url=i+h),p.ifModified&&(j.lastModified[i]&&C.setRequestHeader("If-Modified-Since",j.lastModified[i]),j.etag[i]&&C.setRequestHeader("If-None-Match",j.etag[i])),(p.data&&p.hasContent&&!1!==p.contentType||t.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+qt+"; q=0.01":""):p.accepts["*"]),p.headers)C.setRequestHeader(d,p.headers[d]);if(p.beforeSend&&(!1===p.beforeSend.call(f,C,p)||c))return C.abort();if(_="abort",y.add(p.complete),C.done(p.success),C.fail(p.error),r=Ft(Mt,p,t,C)){if(C.readyState=1,u&&m.trigger("ajaxSend",[C,p]),c)return C;p.async&&p.timeout>0&&(s=n.setTimeout((function(){C.abort("timeout")}),p.timeout));try{c=!1,r.send(k,x)}catch(E){if(c)throw E;x(-1,E)}}else x(-1,"No Transport");function x(e,t,o,l){var d,h,v,k,w,_=t;c||(c=!0,s&&n.clearTimeout(s),r=void 0,a=l||"",C.readyState=e>0?4:0,d=e>=200&&e<300||304===e,o&&(k=function(e,t,n){for(var r,i,a,o,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)a=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){a=i;break}o||(o=i)}a=a||o}if(a)return a!==l[0]&&l.unshift(a),n[a]}(p,C,o)),!d&&j.inArray("script",p.dataTypes)>-1&&j.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),k=function(e,t,n,r){var i,a,o,s,l,c={},u=e.dataTypes.slice();if(u[1])for(o in e.converters)c[o.toLowerCase()]=e.converters[o];for(a=u.shift();a;)if(e.responseFields[a]&&(n[e.responseFields[a]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=a,a=u.shift())if("*"===a)a=l;else if("*"!==l&&l!==a){if(!(o=c[l+" "+a]||c["* "+a]))for(i in c)if((s=i.split(" "))[1]===a&&(o=c[l+" "+s[0]]||c["* "+s[0]])){!0===o?o=c[i]:!0!==c[i]&&(a=s[0],u.unshift(s[1]));break}if(!0!==o)if(o&&e.throws)t=o(t);else try{t=o(t)}catch(E){return{state:"parsererror",error:o?E:"No conversion from "+l+" to "+a}}}return{state:"success",data:t}}(p,k,C,d),d?(p.ifModified&&((w=C.getResponseHeader("Last-Modified"))&&(j.lastModified[i]=w),(w=C.getResponseHeader("etag"))&&(j.etag[i]=w)),204===e||"HEAD"===p.type?_="nocontent":304===e?_="notmodified":(_=k.state,h=k.data,d=!(v=k.error))):(v=_,!e&&_||(_="error",e<0&&(e=0))),C.status=e,C.statusText=(t||_)+"",d?g.resolveWith(f,[h,_,C]):g.rejectWith(f,[C,_,v]),C.statusCode(b),b=void 0,u&&m.trigger(d?"ajaxSuccess":"ajaxError",[C,p,d?h:v]),y.fireWith(f,[C,_]),u&&(m.trigger("ajaxComplete",[C,p]),--j.active||j.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return j.get(e,t,n,"json")},getScript:function(e,t){return j.get(e,void 0,t,"script")}}),j.each(["get","post"],(function(e,t){j[t]=function(e,n,r,i){return y(n)&&(i=i||r,r=n,n=void 0),j.ajax(j.extend({url:e,type:t,dataType:i,data:n,success:r},j.isPlainObject(e)&&e))}})),j.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),j._evalUrl=function(e,t,n){return j.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){j.globalEval(e,t,n)}})},j.fn.extend({wrapAll:function(e){var t;return this[0]&&(y(e)&&(e=e.call(this[0])),t=j(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return y(e)?this.each((function(t){j(this).wrapInner(e.call(this,t))})):this.each((function(){var t=j(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=y(e);return this.each((function(n){j(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){j(this).replaceWith(this.childNodes)})),this}}),j.expr.pseudos.hidden=function(e){return!j.expr.pseudos.visible(e)},j.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},j.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Ht=j.ajaxSettings.xhr();g.cors=!!Ht&&"withCredentials"in Ht,g.ajax=Ht=!!Ht,j.ajaxTransport((function(e){var t,r;if(g.cors||Ht&&!e.crossDomain)return{send:function(i,a){var o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)s[o]=e.xhrFields[o];for(o in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(o,i[o]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?a(0,"error"):a(s.status,s.statusText):a(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout((function(){t&&r()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(l){if(t)throw l}},abort:function(){t&&t()}}})),j.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),j.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return j.globalEval(e),e}}}),j.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),j.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=j(" + diff --git a/images/4.png b/images/4.png deleted file mode 100644 index ae7d7b55e49ba35ac68887efa5410c8314699b11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4810 zcmV;*5;g6KP)Kr3%nZA{9eD&~M4k~60^uPE33>OsyQ=p4Zg(gBsP2Rja>hA(^-`Vc zTUEEd*YEdz_qLRm*9TFpkowGUFQRV4UwN~bWY{b++FS}$P5bsY(yEb(k9tPsBJ73yzO zx8pn3RFZ)#-Kd+X&}?@2@0bAZgu9{k&V%H2#|k;>V~qHt6%zBAj)4FqzmM+aB}IE- zXt)YvO*M?CPgMs?hRzQbm;OnN2`gkJ^+ovq)+xYX07^lBxaPkg6eD@uf5DAnl_xx< z!)s)5+I;jd9BWs4g2g4X$z%R#a5&PY(D^mjH(w2kqI7gsRm3@o9w2I|Vd!3Yi>VzU4D zrm1SLKATw~zoaRYc1H&G~j2kx| zLx&DUT3Q+zl7T!#6=TkyKacVQ2e9|^&#;e<{OoV*G2VcR+lHj$nQ49D4|cwcfk30# z8NiC)UV_J`K$dTgS~Qax^0j){cKi{}c?(1+i^eWZQ}IBb96Zn~6UBBbvdJ*hNExgE zSwtsE7>tGfsP_0U<;ZEc$a@S?a*^CFcz!q&mi?dIYwU_iwYRrp+}N>LvSbM+O}dLh zpR7C1;c%dL@7}om_S^9fix%PjY4>9PfrGHwz8z6xPZ-e0g2zZ9@I_gtQ9@n4534p` zhRaK!eltTDd5ZD$NfB~{Ws;?-;i$2ybP!$|kl%e)NQxmsm_Q`d^mM4%xh7+(i=9p< z=FXjqRjb~E-QIoj)!f{IZ?4pdFm@xtIfo|2qmUl zVP1?f+JXvNsCzklG0q~|ek9cU1H!9xAHkuJye+B37!M{+oQTz{*T7=2T-W?hoH&My z7catWHves~E-7TiEHGA%DoBz6&lH4mI6q1G_3BIbu=bizhC<5VaINaxDo9@#^uo9n z>PCGkt_meAS@LE|WdzA$80Z-%7*8T?)281LrS@O9BClUgJ;~^_7=n{-G$7w%5`QnR zxq=mEFR|Np9sN>bs-~|H2IyI{W?}sJ@w%6tJ9iH6y|)TSj~+!+QyzlN(9_B2K^vDs=G$t zYe`Ez#_0F*5a;&?RW7L@JtIr^f+I&yz#q^;3`a|tYb-|5KQ=QZL?ql~Wj~*ICdFhM zg}pvjq*)C_V-?gj`O)rH1jCY&38))#4A9GP2xh_O<>jG&|3YMDW{UH5b+x#3=@Q!7 z+5`cyTCLr77A}3Px>$#ql!M$t`A09pk4N)T8)<_-h)?R9Nm+r!$!l>Q;v+>oIi)W~ z4si$}4OVwUsjMK23WOxffJ5#!^Lq^#`Nl}d#LYD_=TLG4QE3ewL!c*$rlg4f*ja}o zRqdiG8{HH&lzrb;?7)vE=Tq|Mz@U69W%#l%ikhoFd_~uV@(eYpY?A4Oy?_-_R8)jH zbLI#RwCd6;TFWfQ)n_lt8F7qJ>N9BZru9dszm4FftoEk2J&QSGyIn z_`W`$PlVmqUw;EHyzo5I(=&9h+V63qP7LguG|v!XbEkYCgQAe5Wh%eu`gXf{*^aEqIc~aafad zlE(PvC&t6VT(|B6Or1Kl+xWsE?b&Ca!|2gt@YrK>1bK<2?TH3hXtfBOsP%YJfVMoAU8V2$hDWqfYR zw&zXB$K%vpq==vr`vM&17)QAC=SU$@N`|pgVikJz>ebh!jOaFM)F@Gzh}7ux^uZq) ztUn%BjG765heaGQxNgS+r?4K~DL$ek!-1t`MR;{cp$OHfVv8}FIn-SBqT*~j+yN5? z6_p@8%??$pm}#Pj#&Pp%eFLsus6`}P3T941Day0KY?6>_(T)Yn7Qc9QAz8ATFxE~= zxJqDNP9cu(Ii@rn`8np8l1Y4GD8-d}=Ffi`GiE%Jq!iSS_3Qr=m6eqOTjtH1Co0wP zZQ8VHcBv2%_O&#B?B;kLe9PP_SjoYq)bvVq*B46)W)e+rOh1N$&t>yTyR5 z%SNEMpN+0nlPZM4`q>8xP(Vs?x?}55>=EmCUB%BfT)^c9uMl)WFAJ7EIT(*j=&fJ3 zl43!emjo6pSfKlCPGINGeGI#I?-th2^mogaEu^6Jq9_{Qo_lT~Hg4P~DiKC0)FiQB)*=`y z`jN%=r4ST|!wn8RA8e}?_+pC^Jb&gjkInlU1fJ;9Ua7OXFnaVT-DkJ8wPMGP9mKZM zW6pE9+P-}o8XFsRubV#o!4To?f>2%~18ojhg4t7k{k5Y^T*9!bz~MOP?NxUR%YsM%Q=C@d`0eRgf_ z6_J}nSEM7#Wb9#ztJiouQ(u1|kec2THvI0JdOS*V{53JJ3}RQ~G9B18awuFhx6G*e zRXHgyG5AQK(!PeC^ALU*V?*L(LU~Fu+N>c0kdi*j5?gUJVeQFEA8xlNrIo9y`t9G3 zguc115%*G(SV=iaWKk+w8T(q=v4O@USe}#wLvHe-8=Be!!Vuy^r>J)s^4hnm|k?u(Onx$+_^Tpp3J zH;{*|B@dc?yo$1RCCLI68K%~QA&YUpp*0}zBbr49>F<0BWn}}>u={8;8JZzMA%pX6 zk!?)6pw8?3T<)l@u0}~oNy502l2Q_Sx(H8lly$OaFtF=g!;M!xnfBV_u!rxU(Su*B zzJ$IO6E1rL;jpX;>*uok%5#^o=29Jc)Aziz+wKd9c^XpIyL!+=Ohy@1m)&S=3qX!y zO#BWO@{m~*dyDc&G~hEc<4W<^TQi8UXep9INmOqS9xT@#Q(9Vzkt0V5i;r$DmlJo~ zaYs^x?Ao<6T&mYMhCNMfSbwDv`n+@W|3Q(>GuHTgUOL*aaN&=2=gXz}ty{N-cFkxyd$CA(za4Q4 z#%4I+iNhdC)Ky6_a#WbwHt6~cn!JmaGsbr@5c5fiqAanOln zPYuSsqjPcmoKu9j?-x5TVR$Bdek}#<4ObdS$cGLc6502R88Z^b@%E&TKVFX&EB*;J zH8p~fz542_m@;LG?tM3G*hosL3*k$^uZtmt7Bl)=ySI@ejcnv61M~4gZ39{;q$T1= z4|_-?(cAQ=di?$5e2gp0fYYPIWb$4T{9PlmaL;X_#W4<3T*u;E#6;a6y;!AndWaSV zX9HQ~&wsw0GWNTXm6f=_cHe#XiR_z0Ra%-uc$HqOs;a`Te)V3`O&SqnY9nvt9VcG$ zAQ_=`cJ>T8{5{vMh_H9;T4ctRN#5Jy4@FZ1v(PFWpqN0Mr&~piR5nX1_%F0fv46b=S|NM_dZjx*aKankb z&WW=q+J6+o%1>bU!4oJgKaM}QImMV0PB+Tv?}2-d;-}}n3Dxp=jfBISE++kjnYu2( zg{fy^ml0Q&6JB!oOgo-__l!_VdYVyqfS&Tw?FLdt5Kpf>jctE!g4Jda=MCY`3NpyC zwQ)}7KK=Al%$_|VF>R}9zM>Cxxo2?DdD#2zZK$BWxRg5B|D6CQl? z1UBrd6IEcY7(48t&c#L!VLQKU#v@Bl;`jTnQ4Yg9$a!r<6$@!x{cWVY#uv~M_GdAb z{rvOK2_Jrdci#D#ps&fvjfP{#j^V`@U%>R~KNMS=xaO7co;t-=Sqg0hiWmq3pC`-` zec?@Yd@h)DeKT@W7JG&zk4Iw+sidA4ohb2w|Ki23h>1mKvCLj-YinbyClrQMEcoRa z!HP63Hut#H;M1*9@ur3|m)uymsuHDzc9izFV^E$|u$P)TFV0b~`o<&5`Mq<@_+)QA z4xDNgH8EB;AKk>x*vm}D#Mk6Ga-zsfvhTnDzStaIR#ql*5`Mqt<|dpxc~Wd&;`Nc% z)>d&1Z(&MM2LEiJ|3GNOxTKV26iw`06bgx=?^;ZBNt`R+*Sg~mys`T@E976PPmB#0 zvY2FiNr5NIag}>y(o)z%Du}Y`c_Rx;FC=N&V zp9D*9eV09i?ecLN^Di{|N8d%EX&P`dez?WT@Qs}a@3aRYH(d*RN3x<=*t@mPoT4MW zp#M}=>nM$I*ppkDU_M+9>+WrSwNL)b!IGhC_~#B%)UR;)mgA_uM4eZ9cs0kEe9`o; zqX}R&gnmtS!#$kIjDrB4=(G^9A$H+TlM=-uh1bRrRzRdA5+y>qsp==C1PMEK1_u?t kqvqtEWnky}*#8MI0FGYM++~UPqyPW_07*qoM6N<$f;)3USpWb4 diff --git a/images/7.png b/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..7098e4c76843820c156cc6045ab73c113bd161ea GIT binary patch literal 1620 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 S5~#-j0000